From 31c59ad8b6a72f95c98a306ecf92d198c03110b4 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 29 Sep 2023 21:54:46 +0800 Subject: [PATCH 01/33] Fix hydration on slow connection (#8680) --- .changeset/curly-bags-attack.md | 5 +++ .../astro/src/runtime/server/astro-island.ts | 31 ++++++++++++++----- .../src/runtime/server/render/component.ts | 2 ++ 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 .changeset/curly-bags-attack.md diff --git a/.changeset/curly-bags-attack.md b/.changeset/curly-bags-attack.md new file mode 100644 index 000000000..5148e0f46 --- /dev/null +++ b/.changeset/curly-bags-attack.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix hydration on slow connection diff --git a/packages/astro/src/runtime/server/astro-island.ts b/packages/astro/src/runtime/server/astro-island.ts index 710319aac..58eb7f2e0 100644 --- a/packages/astro/src/runtime/server/astro-island.ts +++ b/packages/astro/src/runtime/server/astro-island.ts @@ -56,17 +56,34 @@ declare const Astro: { document.addEventListener('astro:after-swap', this.unmount, { once: true }); } connectedCallback() { - if (!this.hasAttribute('await-children') || this.firstChild) { + if ( + !this.hasAttribute('await-children') || + document.readyState === 'interactive' || + document.readyState === 'complete' + ) { this.childrenConnectedCallback(); } else { // connectedCallback may run *before* children are rendered (ex. HTML streaming) - // If SSR children are expected, but not yet rendered, - // Wait with a mutation observer - new MutationObserver((_, mo) => { + // If SSR children are expected, but not yet rendered, wait with a mutation observer + // for a special marker inserted when rendering islands that signals the end of the island + const onConnected = () => { + document.removeEventListener('DOMContentLoaded', onConnected); mo.disconnect(); - // Wait until the next macrotask to ensure children are really rendered - setTimeout(() => this.childrenConnectedCallback(), 0); - }).observe(this, { childList: true }); + this.childrenConnectedCallback(); + }; + const mo = new MutationObserver(() => { + if ( + this.lastChild?.nodeType === Node.COMMENT_NODE && + this.lastChild.nodeValue === 'astro:end' + ) { + this.lastChild.remove(); + onConnected(); + } + }); + mo.observe(this, { childList: true }); + // in case the marker comment got stripped and the mutation observer waited indefinitely, + // also wait for DOMContentLoaded as a last resort + document.addEventListener('DOMContentLoaded', onConnected); } } async childrenConnectedCallback() { diff --git a/packages/astro/src/runtime/server/render/component.ts b/packages/astro/src/runtime/server/render/component.ts index bfb82ceda..158a88a07 100644 --- a/packages/astro/src/runtime/server/render/component.ts +++ b/packages/astro/src/runtime/server/render/component.ts @@ -360,6 +360,8 @@ If you're still stuck, please open an issue on GitHub or join us at https://astr if (island.children) { island.props['await-children'] = ''; + // Marker to signal that Astro island children is completed while streaming + island.children += ``; } return { From 345808170fce783ddd3c9a4035a91fa64dcc5f46 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 29 Sep 2023 21:55:46 +0800 Subject: [PATCH 02/33] Fix duplicated Astro and Vite injected styles (#8706) --- .changeset/olive-bags-think.md | 5 +++ packages/astro/e2e/css-sourcemaps.test.js | 36 --------------- packages/astro/e2e/css.test.js | 18 ++------ .../fixtures/css-sourcemaps/astro.config.mjs | 7 --- .../e2e/fixtures/css-sourcemaps/package.json | 8 ---- .../e2e/fixtures/css-sourcemaps/src/env.d.ts | 1 - .../css-sourcemaps/src/pages/index.astro | 9 ---- .../css-sourcemaps/src/styles/main.css | 3 -- packages/astro/e2e/view-transitions.test.js | 2 +- packages/astro/src/runtime/client/hmr.ts | 45 ++----------------- packages/astro/src/transitions/router.ts | 2 +- .../astro/src/vite-plugin-astro-server/css.ts | 2 +- .../src/vite-plugin-astro-server/route.ts | 15 ++----- 13 files changed, 18 insertions(+), 135 deletions(-) create mode 100644 .changeset/olive-bags-think.md delete mode 100644 packages/astro/e2e/css-sourcemaps.test.js delete mode 100644 packages/astro/e2e/fixtures/css-sourcemaps/astro.config.mjs delete mode 100644 packages/astro/e2e/fixtures/css-sourcemaps/package.json delete mode 100644 packages/astro/e2e/fixtures/css-sourcemaps/src/env.d.ts delete mode 100644 packages/astro/e2e/fixtures/css-sourcemaps/src/pages/index.astro delete mode 100644 packages/astro/e2e/fixtures/css-sourcemaps/src/styles/main.css diff --git a/.changeset/olive-bags-think.md b/.changeset/olive-bags-think.md new file mode 100644 index 000000000..70fc7501e --- /dev/null +++ b/.changeset/olive-bags-think.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix duplicated Astro and Vite injected styles diff --git a/packages/astro/e2e/css-sourcemaps.test.js b/packages/astro/e2e/css-sourcemaps.test.js deleted file mode 100644 index 4ea3fc0e2..000000000 --- a/packages/astro/e2e/css-sourcemaps.test.js +++ /dev/null @@ -1,36 +0,0 @@ -import { expect } from '@playwright/test'; -import { testFactory } from './test-utils.js'; - -const test = testFactory({ - root: './fixtures/css/', -}); - -let devServer; - -test.beforeAll(async ({ astro }) => { - devServer = await astro.startDevServer(); -}); - -test.afterAll(async () => { - await devServer.stop(); -}); - -test.describe('CSS Sourcemap HMR', () => { - test('removes Astro-injected CSS once Vite-injected CSS loads', async ({ page, astro }) => { - const html = await astro.fetch('/').then((res) => res.text()); - - // style[data-astro-dev-id] should exist in initial SSR'd markup - expect(html).toMatch('data-astro-dev-id'); - - await page.goto(astro.resolveUrl('/')); - - // Ensure JS has initialized - await page.waitForTimeout(500); - - // style[data-astro-dev-id] should NOT exist once JS runs - expect(await page.locator('style[data-astro-dev-id]').count()).toEqual(0); - - // style[data-vite-dev-id] should exist now - expect(await page.locator('style[data-vite-dev-id]').count()).toBeGreaterThan(0); - }); -}); diff --git a/packages/astro/e2e/css.test.js b/packages/astro/e2e/css.test.js index b302d9d90..3e0486d0f 100644 --- a/packages/astro/e2e/css.test.js +++ b/packages/astro/e2e/css.test.js @@ -29,21 +29,9 @@ test.describe('CSS HMR', () => { await expect(h).toHaveCSS('color', 'rgb(0, 128, 0)'); }); - test('removes Astro-injected CSS once Vite-injected CSS loads', async ({ page, astro }) => { + test('removes Astro-injected CSS once Vite-injected CSS loads', async ({ astro }) => { const html = await astro.fetch('/').then((res) => res.text()); - - // style[data-astro-dev-id] should exist in initial SSR'd markup - expect(html).toMatch('data-astro-dev-id'); - - await page.goto(astro.resolveUrl('/')); - - // Ensure JS has initialized - await page.waitForTimeout(500); - - // style[data-astro-dev-id] should NOT exist once JS runs - expect(await page.locator('style[data-astro-dev-id]').count()).toEqual(0); - - // style[data-vite-dev-id] should exist now - expect(await page.locator('style[data-vite-dev-id]').count()).toBeGreaterThan(0); + // style[data-vite-dev-id] should exist in initial SSR'd markup + expect(html).toMatch('data-vite-dev-id'); }); }); diff --git a/packages/astro/e2e/fixtures/css-sourcemaps/astro.config.mjs b/packages/astro/e2e/fixtures/css-sourcemaps/astro.config.mjs deleted file mode 100644 index 7e8fac1e7..000000000 --- a/packages/astro/e2e/fixtures/css-sourcemaps/astro.config.mjs +++ /dev/null @@ -1,7 +0,0 @@ -export default { - vite: { - css: { - devSourcemap: true, - } - } -}; diff --git a/packages/astro/e2e/fixtures/css-sourcemaps/package.json b/packages/astro/e2e/fixtures/css-sourcemaps/package.json deleted file mode 100644 index 1fa4c2c79..000000000 --- a/packages/astro/e2e/fixtures/css-sourcemaps/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "@e2e/css-sourcemaps", - "version": "0.0.0", - "private": true, - "dependencies": { - "astro": "workspace:*" - } -} diff --git a/packages/astro/e2e/fixtures/css-sourcemaps/src/env.d.ts b/packages/astro/e2e/fixtures/css-sourcemaps/src/env.d.ts deleted file mode 100644 index 8c34fb45e..000000000 --- a/packages/astro/e2e/fixtures/css-sourcemaps/src/env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// \ No newline at end of file diff --git a/packages/astro/e2e/fixtures/css-sourcemaps/src/pages/index.astro b/packages/astro/e2e/fixtures/css-sourcemaps/src/pages/index.astro deleted file mode 100644 index 7275177f9..000000000 --- a/packages/astro/e2e/fixtures/css-sourcemaps/src/pages/index.astro +++ /dev/null @@ -1,9 +0,0 @@ -

hello world

- - diff --git a/packages/astro/e2e/fixtures/css-sourcemaps/src/styles/main.css b/packages/astro/e2e/fixtures/css-sourcemaps/src/styles/main.css deleted file mode 100644 index c80a6cde1..000000000 --- a/packages/astro/e2e/fixtures/css-sourcemaps/src/styles/main.css +++ /dev/null @@ -1,3 +0,0 @@ -:root { - --h1-color: red; -} diff --git a/packages/astro/e2e/view-transitions.test.js b/packages/astro/e2e/view-transitions.test.js index 05a8f8ad0..a04b905af 100644 --- a/packages/astro/e2e/view-transitions.test.js +++ b/packages/astro/e2e/view-transitions.test.js @@ -631,7 +631,7 @@ test.describe('View Transitions', () => { }); test('client:only styles are retained on transition', async ({ page, astro }) => { - const totalExpectedStyles = 8; + const totalExpectedStyles = 7; // Go to page 1 await page.goto(astro.resolveUrl('/client-only-one')); diff --git a/packages/astro/src/runtime/client/hmr.ts b/packages/astro/src/runtime/client/hmr.ts index 989ddc6b9..5b6eddc23 100644 --- a/packages/astro/src/runtime/client/hmr.ts +++ b/packages/astro/src/runtime/client/hmr.ts @@ -1,46 +1,7 @@ /// if (import.meta.hot) { - // Vite injects ` + diff --git a/packages/astro/e2e/fixtures/view-transitions/src/pages/one.astro b/packages/astro/e2e/fixtures/view-transitions/src/pages/one.astro index cc57e76d8..d05973036 100644 --- a/packages/astro/e2e/fixtures/view-transitions/src/pages/one.astro +++ b/packages/astro/e2e/fixtures/view-transitions/src/pages/one.astro @@ -1,7 +1,7 @@ --- import Layout from '../components/Layout.astro'; --- - +

Page 1

test go to 2 diff --git a/packages/astro/e2e/view-transitions.test.js b/packages/astro/e2e/view-transitions.test.js index a04b905af..31e3128f5 100644 --- a/packages/astro/e2e/view-transitions.test.js +++ b/packages/astro/e2e/view-transitions.test.js @@ -20,6 +20,20 @@ function scrollToBottom(page) { }); } +function collectPreloads(page) { + return page.evaluate(() => { + window.preloads = []; + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => + mutation.addedNodes.forEach((node) => { + if (node.nodeName === 'LINK' && node.rel === 'preload') preloads.push(node.href); + }) + ); + }); + observer.observe(document.head, { childList: true }); + }); +} + test.describe('View Transitions', () => { test('Moving from page 1 to page 2', async ({ page, astro }) => { const loads = []; @@ -170,11 +184,15 @@ test.describe('View Transitions', () => { let p = page.locator('#one'); await expect(p, 'should have content').toHaveText('Page 1'); + await collectPreloads(page); + // Go to page 2 await page.click('#click-two'); p = page.locator('#two'); await expect(p, 'should have content').toHaveText('Page 2'); await expect(p, 'imported CSS updated').toHaveCSS('font-size', '24px'); + const preloads = await page.evaluate(() => window.preloads); + expect(preloads.length === 1 && preloads[0].endsWith('/two.css')).toBeTruthy(); }); test('astro:page-load event fires when navigating to new page', async ({ page, astro }) => { diff --git a/packages/astro/src/transitions/router.ts b/packages/astro/src/transitions/router.ts index 12ac5615d..1049f92d1 100644 --- a/packages/astro/src/transitions/router.ts +++ b/packages/astro/src/transitions/router.ts @@ -292,7 +292,9 @@ async function updateDOM( // Do not preload links that are already on the page. if ( !document.querySelector( - `[${PERSIST_ATTR}="${el.getAttribute(PERSIST_ATTR)}"], link[rel=stylesheet]` + `[${PERSIST_ATTR}="${el.getAttribute( + PERSIST_ATTR + )}"], link[rel=stylesheet][href="${el.getAttribute('href')}"]` ) ) { const c = document.createElement('link'); From db83237dd3690051203461b6449e116737aee389 Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Fri, 29 Sep 2023 23:14:09 +0200 Subject: [PATCH 04/33] refactor(markdown): Move `astro:assets`-specific code out of the main Vite plugin (#8704) --- .../astro/src/vite-plugin-markdown/images.ts | 34 +++++++++++++++++++ .../astro/src/vite-plugin-markdown/index.ts | 32 ++++------------- 2 files changed, 41 insertions(+), 25 deletions(-) create mode 100644 packages/astro/src/vite-plugin-markdown/images.ts diff --git a/packages/astro/src/vite-plugin-markdown/images.ts b/packages/astro/src/vite-plugin-markdown/images.ts new file mode 100644 index 000000000..959d34ec9 --- /dev/null +++ b/packages/astro/src/vite-plugin-markdown/images.ts @@ -0,0 +1,34 @@ +export type MarkdownImagePath = { raw: string; resolved: string; safeName: string }; + +export function getMarkdownCodeForImages(imagePaths: MarkdownImagePath[], html: string) { + return ` + import { getImage } from "astro:assets"; + ${imagePaths + .map((entry) => `import Astro__${entry.safeName} from ${JSON.stringify(entry.raw)};`) + .join('\n')} + + const images = async function() { + return { + ${imagePaths + .map((entry) => `"${entry.raw}": await getImage({src: Astro__${entry.safeName}})`) + .join(',\n')} + } + } + + async function updateImageReferences(html) { + return images().then((images) => { + return html.replaceAll(/__ASTRO_IMAGE_="([^"]+)"/gm, (full, imagePath) => + spreadAttributes({ + src: images[imagePath].src, + ...images[imagePath].attributes, + }) + ); + }); + } + + // NOTE: This causes a top-level await to appear in the user's code, which can break very easily due to a Rollup + // bug and certain adapters not supporting it correctly. See: https://github.com/rollup/rollup/issues/4708 + // Tread carefully! + const html = await updateImageReferences(${JSON.stringify(html)}); + `; +} diff --git a/packages/astro/src/vite-plugin-markdown/index.ts b/packages/astro/src/vite-plugin-markdown/index.ts index 6422f7305..3c8a1af46 100644 --- a/packages/astro/src/vite-plugin-markdown/index.ts +++ b/packages/astro/src/vite-plugin-markdown/index.ts @@ -16,6 +16,7 @@ import { isMarkdownFile } from '../core/util.js'; import { shorthash } from '../runtime/server/shorthash.js'; import type { PluginMetadata } from '../vite-plugin-astro/types.js'; import { escapeViteEnvReferences, getFileInfo } from '../vite-plugin-utils/index.js'; +import { getMarkdownCodeForImages, type MarkdownImagePath } from './images.js'; interface AstroPluginOptions { settings: AstroSettings; @@ -95,7 +96,7 @@ export default function markdown({ settings, logger }: AstroPluginOptions): Plug const { headings, imagePaths: rawImagePaths, frontmatter } = renderResult.metadata; // Resolve all the extracted images from the content - const imagePaths: { raw: string; resolved: string; safeName: string }[] = []; + const imagePaths: MarkdownImagePath[] = []; for (const imagePath of rawImagePaths.values()) { imagePaths.push({ raw: imagePath, @@ -119,34 +120,15 @@ export default function markdown({ settings, logger }: AstroPluginOptions): Plug astroServerRuntimeModulePath )}; import { AstroError, AstroErrorData } from ${JSON.stringify(astroErrorModulePath)}; - ${layout ? `import Layout from ${JSON.stringify(layout)};` : ''} - import { getImage } from "astro:assets"; - ${imagePaths - .map((entry) => `import Astro__${entry.safeName} from ${JSON.stringify(entry.raw)};`) - .join('\n')} - const images = async function() { - return { - ${imagePaths - .map((entry) => `"${entry.raw}": await getImage({src: Astro__${entry.safeName}})`) - .join(',\n')} - } + ${ + // Only include the code relevant to `astro:assets` if there's images in the file + imagePaths.length > 0 + ? getMarkdownCodeForImages(imagePaths, html) + : `const html = ${JSON.stringify(html)};` } - async function updateImageReferences(html) { - return images().then((images) => { - return html.replaceAll(/__ASTRO_IMAGE_="([^"]+)"/gm, (full, imagePath) => - spreadAttributes({ - src: images[imagePath].src, - ...images[imagePath].attributes, - }) - ); - }); - } - - const html = await updateImageReferences(${JSON.stringify(html)}); - export const frontmatter = ${JSON.stringify(frontmatter)}; export const file = ${JSON.stringify(fileId)}; export const url = ${JSON.stringify(fileUrl)}; From 47ea310f01d06ed1562c790bec348718a2fa8277 Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Fri, 29 Sep 2023 23:14:40 +0200 Subject: [PATCH 05/33] feat: resolve images through the file systems on applicable runtimes (#8698) * feat: add a node image endpoint * test: fix --- .changeset/gold-trains-eat.md | 6 ++ packages/astro/package.json | 2 +- .../generic.ts} | 7 +- packages/astro/src/assets/endpoint/node.ts | 88 +++++++++++++++++++ packages/astro/src/assets/internal.ts | 7 +- .../astro/src/assets/vite-plugin-assets.ts | 8 ++ packages/astro/src/core/build/index.ts | 2 +- packages/astro/src/core/dev/container.ts | 2 +- packages/astro/test/core-image.test.js | 9 +- packages/integrations/node/src/index.ts | 5 +- 10 files changed, 118 insertions(+), 18 deletions(-) create mode 100644 .changeset/gold-trains-eat.md rename packages/astro/src/assets/{image-endpoint.ts => endpoint/generic.ts} (89%) create mode 100644 packages/astro/src/assets/endpoint/node.ts diff --git a/.changeset/gold-trains-eat.md b/.changeset/gold-trains-eat.md new file mode 100644 index 000000000..207c819a7 --- /dev/null +++ b/.changeset/gold-trains-eat.md @@ -0,0 +1,6 @@ +--- +'@astrojs/node': patch +'astro': patch +--- + +Use a Node-specific image endpoint to resolve images in dev and Node SSR. This should fix many issues related to getting 404 from the \_image endpoint under certain configurations diff --git a/packages/astro/package.json b/packages/astro/package.json index afa6a47d7..4cdadee47 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -56,7 +56,7 @@ "./components/*": "./components/*", "./assets": "./dist/assets/index.js", "./assets/utils": "./dist/assets/utils/index.js", - "./assets/image-endpoint": "./dist/assets/image-endpoint.js", + "./assets/endpoint/*": "./dist/assets/endpoint/*.js", "./assets/services/sharp": "./dist/assets/services/sharp.js", "./assets/services/squoosh": "./dist/assets/services/squoosh.js", "./assets/services/noop": "./dist/assets/services/noop.js", diff --git a/packages/astro/src/assets/image-endpoint.ts b/packages/astro/src/assets/endpoint/generic.ts similarity index 89% rename from packages/astro/src/assets/image-endpoint.ts rename to packages/astro/src/assets/endpoint/generic.ts index b7f027536..140189fe0 100644 --- a/packages/astro/src/assets/image-endpoint.ts +++ b/packages/astro/src/assets/endpoint/generic.ts @@ -1,8 +1,8 @@ import { isRemotePath } from '@astrojs/internal-helpers/path'; import mime from 'mime/lite.js'; -import type { APIRoute } from '../@types/astro.js'; -import { getConfiguredImageService, isRemoteAllowed } from './internal.js'; -import { etag } from './utils/etag.js'; +import type { APIRoute } from '../../@types/astro.js'; +import { getConfiguredImageService, isRemoteAllowed } from '../internal.js'; +import { etag } from '../utils/etag.js'; // @ts-expect-error import { imageConfig } from 'astro:assets'; @@ -40,7 +40,6 @@ export const GET: APIRoute = async ({ request }) => { let inputBuffer: Buffer | undefined = undefined; - // TODO: handle config subpaths? const sourceUrl = isRemotePath(transform.src) ? new URL(transform.src) : new URL(transform.src, url.origin); diff --git a/packages/astro/src/assets/endpoint/node.ts b/packages/astro/src/assets/endpoint/node.ts new file mode 100644 index 000000000..1e9616264 --- /dev/null +++ b/packages/astro/src/assets/endpoint/node.ts @@ -0,0 +1,88 @@ +import { isRemotePath, removeQueryString } from '@astrojs/internal-helpers/path'; +import { readFile } from 'fs/promises'; +import mime from 'mime/lite.js'; +import type { APIRoute } from '../../@types/astro.js'; +import { getConfiguredImageService, isRemoteAllowed } from '../internal.js'; +import { etag } from '../utils/etag.js'; +// @ts-expect-error +import { assetsDir, imageConfig } from 'astro:assets'; + +async function loadLocalImage(src: string, url: URL) { + const filePath = import.meta.env.DEV + ? removeQueryString(src.slice('/@fs'.length)) + : new URL('.' + src, assetsDir); + let buffer: Buffer | undefined = undefined; + + try { + buffer = await readFile(filePath); + } catch (e) { + const sourceUrl = new URL(src, url.origin); + buffer = await loadRemoteImage(sourceUrl); + } + + return buffer; +} + +async function loadRemoteImage(src: URL) { + try { + const res = await fetch(src); + + if (!res.ok) { + return undefined; + } + + return Buffer.from(await res.arrayBuffer()); + } catch (err: unknown) { + return undefined; + } +} + +/** + * Endpoint used in dev and SSR to serve optimized images by the base image services + */ +export const GET: APIRoute = async ({ request }) => { + try { + const imageService = await getConfiguredImageService(); + + if (!('transform' in imageService)) { + throw new Error('Configured image service is not a local service'); + } + + const url = new URL(request.url); + const transform = await imageService.parseURL(url, imageConfig); + + if (!transform?.src) { + throw new Error('Incorrect transform returned by `parseURL`'); + } + + let inputBuffer: Buffer | undefined = undefined; + + if (isRemotePath(transform.src)) { + if (isRemoteAllowed(transform.src, imageConfig) === false) { + return new Response('Forbidden', { status: 403 }); + } + + inputBuffer = await loadRemoteImage(new URL(transform.src)); + } else { + inputBuffer = await loadLocalImage(transform.src, url); + } + + if (!inputBuffer) { + return new Response('Not Found', { status: 404 }); + } + + const { data, format } = await imageService.transform(inputBuffer, transform, imageConfig); + + return new Response(data, { + status: 200, + headers: { + 'Content-Type': mime.getType(format) ?? `image/${format}`, + 'Cache-Control': 'public, max-age=31536000', + ETag: etag(data.toString()), + Date: new Date().toUTCString(), + }, + }); + } catch (err: unknown) { + return new Response(`Server Error: ${err}`, { status: 500 }); + } +}; diff --git a/packages/astro/src/assets/internal.ts b/packages/astro/src/assets/internal.ts index f6c3b0b52..9cb48f588 100644 --- a/packages/astro/src/assets/internal.ts +++ b/packages/astro/src/assets/internal.ts @@ -10,10 +10,11 @@ import type { } from './types.js'; import { matchHostname, matchPattern } from './utils/remotePattern.js'; -export function injectImageEndpoint(settings: AstroSettings) { - const endpointEntrypoint = settings.config.image.endpoint ?? 'astro/assets/image-endpoint'; +export function injectImageEndpoint(settings: AstroSettings, mode: 'dev' | 'build') { + const endpointEntrypoint = + settings.config.image.endpoint ?? + (mode === 'dev' ? 'astro/assets/endpoint/node' : 'astro/assets/endpoint/generic'); - // TODO: Add a setting to disable the image endpoint settings.injectedRoutes.push({ pattern: '/_image', entryPoint: endpointEntrypoint, diff --git a/packages/astro/src/assets/vite-plugin-assets.ts b/packages/astro/src/assets/vite-plugin-assets.ts index 9c95b6dc4..fd3ca2c32 100644 --- a/packages/astro/src/assets/vite-plugin-assets.ts +++ b/packages/astro/src/assets/vite-plugin-assets.ts @@ -10,6 +10,7 @@ import { prependForwardSlash, removeQueryString, } from '../core/path.js'; +import { isServerLikeOutput } from '../prerender/utils.js'; import { VALID_INPUT_FORMATS, VIRTUAL_MODULE_ID, VIRTUAL_SERVICE_ID } from './consts.js'; import { emitESMImage } from './utils/emitAsset.js'; import { hashTransform, propsToFilename } from './utils/transformToPath.js'; @@ -58,6 +59,13 @@ export default function assets({ export { default as Image } from "astro/components/Image.astro"; export const imageConfig = ${JSON.stringify(settings.config.image)}; + export const assetsDir = new URL(${JSON.stringify( + new URL( + isServerLikeOutput(settings.config) + ? settings.config.build.client + : settings.config.outDir + ) + )}); export const getImage = async (options) => await getImageInternal(options, imageConfig); `; } diff --git a/packages/astro/src/core/build/index.ts b/packages/astro/src/core/build/index.ts index aefea5080..5f5ae69a1 100644 --- a/packages/astro/src/core/build/index.ts +++ b/packages/astro/src/core/build/index.ts @@ -111,7 +111,7 @@ class AstroBuilder { }); if (isServerLikeOutput(this.settings.config)) { - this.settings = injectImageEndpoint(this.settings); + this.settings = injectImageEndpoint(this.settings, 'build'); } this.manifest = createRouteManifest({ settings: this.settings }, this.logger); diff --git a/packages/astro/src/core/dev/container.ts b/packages/astro/src/core/dev/container.ts index 52dd4c1a4..6cc5713f2 100644 --- a/packages/astro/src/core/dev/container.ts +++ b/packages/astro/src/core/dev/container.ts @@ -50,7 +50,7 @@ export async function createContainer({ isRestart, }); - settings = injectImageEndpoint(settings); + settings = injectImageEndpoint(settings, 'dev'); const { base, diff --git a/packages/astro/test/core-image.test.js b/packages/astro/test/core-image.test.js index a6ee4342c..653ad5dfd 100644 --- a/packages/astro/test/core-image.test.js +++ b/packages/astro/test/core-image.test.js @@ -180,8 +180,6 @@ describe('astro:image', () => { let html = await res.text(); $ = cheerio.load(html); - console.log(html); - let $img = $('img'); expect($img).to.have.a.lengthOf(1); @@ -854,17 +852,14 @@ describe('astro:image', () => { output: 'server', adapter: testAdapter(), image: { + endpoint: 'astro/assets/endpoint/node', service: testImageService(), }, }); await fixture.build(); }); - // TODO - // This is not working because the image service does a fetch() on the underlying - // image and we do not have an HTTP server in these tests. We either need - // to start one, or find another way to tell the image service how to load these files. - it.skip('dynamic route images are built at response time', async () => { + it('dynamic route images are built at response time sss', async () => { const app = await fixture.loadTestAdapterApp(); let request = new Request('http://example.com/'); let response = await app.render(request); diff --git a/packages/integrations/node/src/index.ts b/packages/integrations/node/src/index.ts index 5978371e4..1f3707949 100644 --- a/packages/integrations/node/src/index.ts +++ b/packages/integrations/node/src/index.ts @@ -30,8 +30,11 @@ export default function createIntegration(userOptions: UserOptions): AstroIntegr return { name: '@astrojs/node', hooks: { - 'astro:config:setup': ({ updateConfig }) => { + 'astro:config:setup': ({ updateConfig, config }) => { updateConfig({ + image: { + endpoint: config.image.endpoint ?? 'astro/assets/endpoint/node', + }, vite: { ssr: { noExternal: ['@astrojs/node'], From 0b22bb9af45d888d2a6de563ffdc3b8ad1bc0731 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr Date: Sat, 30 Sep 2023 06:49:04 +0200 Subject: [PATCH 06/33] fix(cloudflare): broken link in docs (#8709) --- packages/integrations/cloudflare/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/integrations/cloudflare/README.md b/packages/integrations/cloudflare/README.md index 830c0c9f0..7bfbd4b85 100644 --- a/packages/integrations/cloudflare/README.md +++ b/packages/integrations/cloudflare/README.md @@ -169,7 +169,7 @@ default: `false` Whether or not to import `.wasm` files [directly as ES modules](https://github.com/WebAssembly/esm-integration/tree/main/proposals/esm-integration) using the `.wasm?module` import syntax. -Add `wasmModuleImports: true` to `astro.config.mjs` to enable this functionality in both the Cloudflare build and the Astro dev server. [Read more](#use-wasm-modules) +Add `wasmModuleImports: true` to `astro.config.mjs` to enable this functionality in both the Cloudflare build and the Astro dev server. Read more about [using Wasm modules](#use-wasm-modules) ```diff lang="js" // astro.config.mjs @@ -192,7 +192,7 @@ default `"off"` Determines whether and how the Cloudflare Runtime is added to `astro dev`. -The Cloudflare Runtime includes [Cloudflare bindings](https://developers.cloudflare.com/pages/platform/functions/bindings), [environment variables](https://developers.cloudflare.com/pages/platform/functions/bindings/#environment-variables), and the [cf object](https://developers.cloudflare.com/workers/runtime-apis/request/#incomingrequestcfproperties). Read more about [accessing the Cloudflare Runtime](#access-to-the-cloudflare-runtime). +The Cloudflare Runtime includes [Cloudflare bindings](https://developers.cloudflare.com/pages/platform/functions/bindings), [environment variables](https://developers.cloudflare.com/pages/platform/functions/bindings/#environment-variables), and the [cf object](https://developers.cloudflare.com/workers/runtime-apis/request/#incomingrequestcfproperties). Read more about [accessing the Cloudflare Runtime](#cloudflare-runtime). - `local`: uses bindings mocking and locally static placeholders - `off`: no access to the Cloudflare runtime using `astro dev`. You can alternatively use [Preview with Wrangler](#preview-with-wrangler) From a067c2a2c7fee6786e9cc8c50bc9aae645750f76 Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Mon, 2 Oct 2023 01:34:57 -0700 Subject: [PATCH 07/33] [ci] release (#8699) Co-authored-by: github-actions[bot] --- .changeset/curly-bags-attack.md | 5 -- .changeset/gold-trains-eat.md | 6 -- .changeset/olive-bags-think.md | 5 -- .changeset/orange-windows-battle.md | 5 -- examples/basics/package.json | 2 +- examples/blog/package.json | 2 +- examples/component/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-lit/package.json | 2 +- 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 | 4 +- examples/integration/package.json | 2 +- examples/middleware/package.json | 4 +- examples/minimal/package.json | 2 +- examples/non-html-pages/package.json | 2 +- examples/portfolio/package.json | 2 +- examples/ssr/package.json | 4 +- examples/view-transitions/package.json | 4 +- examples/with-markdoc/package.json | 2 +- examples/with-markdown-plugins/package.json | 2 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 2 +- examples/with-nanostores/package.json | 2 +- examples/with-tailwindcss/package.json | 2 +- examples/with-vite-plugin-pwa/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 10 +++ packages/astro/package.json | 2 +- packages/integrations/cloudflare/CHANGELOG.md | 12 +++ packages/integrations/cloudflare/package.json | 4 +- packages/integrations/markdoc/package.json | 2 +- packages/integrations/mdx/package.json | 2 +- packages/integrations/node/CHANGELOG.md | 9 ++ packages/integrations/node/package.json | 4 +- packages/integrations/svelte/package.json | 2 +- packages/integrations/tailwind/package.json | 2 +- packages/integrations/vercel/package.json | 2 +- packages/integrations/vue/package.json | 2 +- pnpm-lock.yaml | 87 +++++++------------ 44 files changed, 104 insertions(+), 119 deletions(-) delete mode 100644 .changeset/curly-bags-attack.md delete mode 100644 .changeset/gold-trains-eat.md delete mode 100644 .changeset/olive-bags-think.md delete mode 100644 .changeset/orange-windows-battle.md diff --git a/.changeset/curly-bags-attack.md b/.changeset/curly-bags-attack.md deleted file mode 100644 index 5148e0f46..000000000 --- a/.changeset/curly-bags-attack.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fix hydration on slow connection diff --git a/.changeset/gold-trains-eat.md b/.changeset/gold-trains-eat.md deleted file mode 100644 index 207c819a7..000000000 --- a/.changeset/gold-trains-eat.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@astrojs/node': patch -'astro': patch ---- - -Use a Node-specific image endpoint to resolve images in dev and Node SSR. This should fix many issues related to getting 404 from the \_image endpoint under certain configurations diff --git a/.changeset/olive-bags-think.md b/.changeset/olive-bags-think.md deleted file mode 100644 index 70fc7501e..000000000 --- a/.changeset/olive-bags-think.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fix duplicated Astro and Vite injected styles diff --git a/.changeset/orange-windows-battle.md b/.changeset/orange-windows-battle.md deleted file mode 100644 index 37fcb28fa..000000000 --- a/.changeset/orange-windows-battle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/cloudflare': minor ---- - -Change build target from `es2020` to `es2022`, for better support diff --git a/examples/basics/package.json b/examples/basics/package.json index b9c2f8405..f6fc2b0c6 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index f1d800c36..a298e08fd 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^1.1.0", "@astrojs/rss": "^3.0.0", "@astrojs/sitemap": "^3.0.0", - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/component/package.json b/examples/component/package.json index 6476be5ac..d572e7005 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.2.0" + "astro": "^3.2.1" }, "peerDependencies": { "astro": "^2.0.0-beta.0" diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index b3f1cd709..db79aaaf0 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.3.0", "@types/alpinejs": "^3.7.2", "alpinejs": "^3.12.3", - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index 9b50c39cc..f6ae6a012 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/lit": "^3.0.0", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^3.2.0", + "astro": "^3.2.1", "lit": "^2.8.0" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index 508e93a79..c2d7eb14b 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -16,7 +16,7 @@ "@astrojs/solid-js": "^3.0.1", "@astrojs/svelte": "^4.0.2", "@astrojs/vue": "^3.0.0", - "astro": "^3.2.0", + "astro": "^3.2.1", "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 f1e16f0da..46b4b571f 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.0.0", "@preact/signals": "^1.2.1", - "astro": "^3.2.0", + "astro": "^3.2.1", "preact": "^10.17.1" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index fdd46e936..edba28b7b 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.0.2", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "astro": "^3.2.0", + "astro": "^3.2.1", "react": "^18.2.0", "react-dom": "^18.2.0" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index e5596fd97..84cc85bdc 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^3.0.1", - "astro": "^3.2.0", + "astro": "^3.2.1", "solid-js": "^1.7.11" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 13c3b0048..2e03cee02 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^4.0.2", - "astro": "^3.2.0", + "astro": "^3.2.1", "svelte": "^4.2.0" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 31b4a243e..da9bf28b1 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^3.0.0", - "astro": "^3.2.0", + "astro": "^3.2.1", "vue": "^3.3.4" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index 662bdfab4..d35a9360e 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -11,7 +11,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/node": "^6.0.1", - "astro": "^3.2.0" + "@astrojs/node": "^6.0.2", + "astro": "^3.2.1" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index 438218492..8acaa37e6 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.2.0" + "astro": "^3.2.1" }, "peerDependencies": { "astro": "^2.0.0-beta.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index d15f99ca5..317ce8037 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.0.1", - "astro": "^3.2.0", + "@astrojs/node": "^6.0.2", + "astro": "^3.2.1", "html-minifier": "^4.0.0" } } diff --git a/examples/minimal/package.json b/examples/minimal/package.json index 448adabe5..36b91b384 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 0a99088be..765d1d3c3 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index d3440479a..392d556b8 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/ssr/package.json b/examples/ssr/package.json index ac2732434..c40191950 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.0.1", + "@astrojs/node": "^6.0.2", "@astrojs/svelte": "^4.0.2", - "astro": "^3.2.0", + "astro": "^3.2.1", "svelte": "^4.2.0" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index ee1ff91e5..eb5e5d52c 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "@astrojs/tailwind": "^5.0.0", - "@astrojs/node": "^6.0.1", - "astro": "^3.2.0" + "@astrojs/node": "^6.0.2", + "astro": "^3.2.1" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index 3a05e55ef..09ccf4b7e 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/markdoc": "^0.5.0", - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index c347f223f..64f258fa7 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^3.2.0", - "astro": "^3.2.0", + "astro": "^3.2.1", "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 17615e975..544821c82 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.0" + "astro": "^3.2.1" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index 4d65d87bb..4165672e0 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/mdx": "^1.1.0", "@astrojs/preact": "^3.0.0", - "astro": "^3.2.0", + "astro": "^3.2.1", "preact": "^10.17.1" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index f2d45cb96..f31189861 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.0.0", "@nanostores/preact": "^0.5.0", - "astro": "^3.2.0", + "astro": "^3.2.1", "nanostores": "^0.9.3", "preact": "^10.17.1" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 560674866..71a67b9ab 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,7 +14,7 @@ "@astrojs/mdx": "^1.1.0", "@astrojs/tailwind": "^5.0.0", "@types/canvas-confetti": "^1.6.0", - "astro": "^3.2.0", + "astro": "^3.2.1", "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 07dbc1a7c..fcc64a765 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.2.0", + "astro": "^3.2.1", "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 421190d78..277fd1ff3 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^3.2.0", + "astro": "^3.2.1", "vitest": "^0.34.2" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 53c4c2097..a7a88e208 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,15 @@ # astro +## 3.2.1 + +### Patch Changes + +- [#8680](https://github.com/withastro/astro/pull/8680) [`31c59ad8b`](https://github.com/withastro/astro/commit/31c59ad8b6a72f95c98a306ecf92d198c03110b4) Thanks [@bluwy](https://github.com/bluwy)! - Fix hydration on slow connection + +- [#8698](https://github.com/withastro/astro/pull/8698) [`47ea310f0`](https://github.com/withastro/astro/commit/47ea310f01d06ed1562c790bec348718a2fa8277) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Use a Node-specific image endpoint to resolve images in dev and Node SSR. This should fix many issues related to getting 404 from the \_image endpoint under certain configurations + +- [#8706](https://github.com/withastro/astro/pull/8706) [`345808170`](https://github.com/withastro/astro/commit/345808170fce783ddd3c9a4035a91fa64dcc5f46) Thanks [@bluwy](https://github.com/bluwy)! - Fix duplicated Astro and Vite injected styles + ## 3.2.0 ### Minor Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 4cdadee47..d711ab539 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "3.2.0", + "version": "3.2.1", "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/cloudflare/CHANGELOG.md b/packages/integrations/cloudflare/CHANGELOG.md index 0cfb77d9e..86a575051 100644 --- a/packages/integrations/cloudflare/CHANGELOG.md +++ b/packages/integrations/cloudflare/CHANGELOG.md @@ -1,5 +1,17 @@ # @astrojs/cloudflare +## 7.4.0 + +### Minor Changes + +- [#8682](https://github.com/withastro/astro/pull/8682) [`c3572fd5e`](https://github.com/withastro/astro/commit/c3572fd5e0e3864cd728f83502a52e9274793ee2) Thanks [@dario-piotrowicz](https://github.com/dario-piotrowicz)! - Change build target from `es2020` to `es2022`, for better support + +### Patch Changes + +- Updated dependencies [[`31c59ad8b`](https://github.com/withastro/astro/commit/31c59ad8b6a72f95c98a306ecf92d198c03110b4), [`47ea310f0`](https://github.com/withastro/astro/commit/47ea310f01d06ed1562c790bec348718a2fa8277), [`345808170`](https://github.com/withastro/astro/commit/345808170fce783ddd3c9a4035a91fa64dcc5f46)]: + - astro@3.2.1 + - @astrojs/underscore-redirects@0.3.0 + ## 7.3.1 ### Patch Changes diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json index 967c6ebf0..bf4b41907 100644 --- a/packages/integrations/cloudflare/package.json +++ b/packages/integrations/cloudflare/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/cloudflare", "description": "Deploy your site to Cloudflare Workers/Pages", - "version": "7.3.1", + "version": "7.4.0", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -47,7 +47,7 @@ "vite": "^4.4.9" }, "peerDependencies": { - "astro": "workspace:^3.2.0" + "astro": "workspace:^3.2.1" }, "devDependencies": { "@types/iarna__toml": "^2.0.2", diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json index 750b23557..16f41ea9a 100644 --- a/packages/integrations/markdoc/package.json +++ b/packages/integrations/markdoc/package.json @@ -75,7 +75,7 @@ "zod": "3.21.1" }, "peerDependencies": { - "astro": "workspace:^3.2.0" + "astro": "workspace:^3.2.1" }, "devDependencies": { "@astrojs/markdown-remark": "workspace:*", diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index 65f3b3d5b..7046d2771 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -51,7 +51,7 @@ "vfile": "^5.3.7" }, "peerDependencies": { - "astro": "workspace:^3.2.0" + "astro": "workspace:^3.2.1" }, "devDependencies": { "@types/chai": "^4.3.5", diff --git a/packages/integrations/node/CHANGELOG.md b/packages/integrations/node/CHANGELOG.md index 25d2fbcea..036eb0658 100644 --- a/packages/integrations/node/CHANGELOG.md +++ b/packages/integrations/node/CHANGELOG.md @@ -1,5 +1,14 @@ # @astrojs/node +## 6.0.2 + +### Patch Changes + +- [#8698](https://github.com/withastro/astro/pull/8698) [`47ea310f0`](https://github.com/withastro/astro/commit/47ea310f01d06ed1562c790bec348718a2fa8277) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Use a Node-specific image endpoint to resolve images in dev and Node SSR. This should fix many issues related to getting 404 from the \_image endpoint under certain configurations + +- Updated dependencies [[`31c59ad8b`](https://github.com/withastro/astro/commit/31c59ad8b6a72f95c98a306ecf92d198c03110b4), [`47ea310f0`](https://github.com/withastro/astro/commit/47ea310f01d06ed1562c790bec348718a2fa8277), [`345808170`](https://github.com/withastro/astro/commit/345808170fce783ddd3c9a4035a91fa64dcc5f46)]: + - astro@3.2.1 + ## 6.0.1 ### Patch Changes diff --git a/packages/integrations/node/package.json b/packages/integrations/node/package.json index bc46be914..c76058835 100644 --- a/packages/integrations/node/package.json +++ b/packages/integrations/node/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/node", "description": "Deploy your site to a Node.js server", - "version": "6.0.1", + "version": "6.0.2", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -37,7 +37,7 @@ "server-destroy": "^1.0.1" }, "peerDependencies": { - "astro": "workspace:^3.2.0" + "astro": "workspace:^3.2.1" }, "devDependencies": { "@types/node": "^18.17.8", diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json index 806b408af..8591769ec 100644 --- a/packages/integrations/svelte/package.json +++ b/packages/integrations/svelte/package.json @@ -48,7 +48,7 @@ "vite": "^4.4.9" }, "peerDependencies": { - "astro": "workspace:^3.2.0", + "astro": "workspace:^3.2.1", "svelte": "^3.55.0 || ^4.0.0" }, "engines": { diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json index 521260431..7e4808c5b 100644 --- a/packages/integrations/tailwind/package.json +++ b/packages/integrations/tailwind/package.json @@ -43,7 +43,7 @@ "vite": "^4.4.9" }, "peerDependencies": { - "astro": "workspace:^3.2.0", + "astro": "workspace:^3.2.1", "tailwindcss": "^3.0.24" } } diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index c9bb4a8b2..c7d2e8f19 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -61,7 +61,7 @@ "web-vitals": "^3.4.0" }, "peerDependencies": { - "astro": "workspace:^3.2.0" + "astro": "workspace:^3.2.1" }, "devDependencies": { "@types/set-cookie-parser": "^2.4.3", diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index 228b08a0b..101df60eb 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -56,7 +56,7 @@ "vue": "^3.3.4" }, "peerDependencies": { - "astro": "workspace:^3.2.0", + "astro": "workspace:^3.2.1", "vue": "^3.2.30" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d5045374..7af0f2954 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -125,7 +125,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/blog: @@ -140,25 +140,15 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/sitemap astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro - examples/deno: - dependencies: - astro: - specifier: ^3.2.0 - version: link:../../packages/astro - devDependencies: - '@astrojs/deno': - specifier: ^5.0.1 - version: 5.0.1(astro@packages+astro) - examples/framework-alpine: dependencies: '@astrojs/alpinejs': @@ -171,7 +161,7 @@ importers: specifier: ^3.12.3 version: 3.12.3 astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/framework-lit: @@ -183,7 +173,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro lit: specifier: ^2.8.0 @@ -207,7 +197,7 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/vue astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -237,7 +227,7 @@ importers: specifier: ^1.2.1 version: 1.2.1(preact@10.17.1) astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -255,7 +245,7 @@ importers: specifier: ^18.2.7 version: 18.2.7 astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -270,7 +260,7 @@ importers: specifier: ^3.0.1 version: link:../../packages/integrations/solid astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro solid-js: specifier: ^1.7.11 @@ -282,7 +272,7 @@ importers: specifier: ^4.0.2 version: link:../../packages/integrations/svelte astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro svelte: specifier: ^4.2.0 @@ -294,7 +284,7 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/vue astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro vue: specifier: ^3.3.4 @@ -303,25 +293,25 @@ importers: examples/hackernews: dependencies: '@astrojs/node': - specifier: ^6.0.1 + specifier: ^6.0.2 version: link:../../packages/integrations/node astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/middleware: dependencies: '@astrojs/node': - specifier: ^6.0.1 + specifier: ^6.0.2 version: link:../../packages/integrations/node astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -330,31 +320,31 @@ importers: examples/minimal: dependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/ssr: dependencies: '@astrojs/node': - specifier: ^6.0.1 + specifier: ^6.0.2 version: link:../../packages/integrations/node '@astrojs/svelte': specifier: ^4.0.2 version: link:../../packages/integrations/svelte astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro svelte: specifier: ^4.2.0 @@ -363,13 +353,13 @@ importers: examples/view-transitions: devDependencies: '@astrojs/node': - specifier: ^6.0.1 + specifier: ^6.0.2 version: link:../../packages/integrations/node '@astrojs/tailwind': specifier: ^5.0.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/with-markdoc: @@ -378,7 +368,7 @@ importers: specifier: ^0.5.0 version: link:../../packages/integrations/markdoc astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/with-markdown-plugins: @@ -387,7 +377,7 @@ importers: specifier: ^3.2.0 version: link:../../packages/markdown/remark astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro hast-util-select: specifier: ^5.0.5 @@ -408,7 +398,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro examples/with-mdx: @@ -420,7 +410,7 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/preact astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -435,7 +425,7 @@ importers: specifier: ^0.5.0 version: 0.5.0(nanostores@0.9.3)(preact@10.17.1) astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro nanostores: specifier: ^0.9.3 @@ -456,7 +446,7 @@ importers: specifier: ^1.6.0 version: 1.6.0 astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 @@ -474,7 +464,7 @@ importers: examples/with-vite-plugin-pwa: dependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro vite-plugin-pwa: specifier: 0.16.4 @@ -486,7 +476,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^3.2.0 + specifier: ^3.2.1 version: link:../../packages/astro vitest: specifier: ^0.34.2 @@ -920,12 +910,6 @@ importers: specifier: workspace:* version: link:../../.. - packages/astro/e2e/fixtures/css-sourcemaps: - dependencies: - astro: - specifier: workspace:* - version: link:../../.. - packages/astro/e2e/fixtures/custom-client-directives: dependencies: '@astrojs/react': @@ -5224,15 +5208,6 @@ packages: resolution: {integrity: sha512-Mp+qrNhly+27bL/Zq8lGeUY+YrdoU0eDfIlAeGIPrzt0PnI/jGpvPUdCaugv4zbCrDkOUScFfcbeEiYumrdJnw==} dev: false - /@astrojs/deno@5.0.1(astro@packages+astro): - resolution: {integrity: sha512-nYztGqHqC+q3A9ynjj3gblAkO/ZylDwahjVTx+2DvZgX4U+BJU/gL5BZkNtL+P10opCKJi29NvvVFvk6jwZHmA==} - peerDependencies: - astro: '*' - dependencies: - astro: link:packages/astro - esbuild: 0.19.2 - dev: true - /@astrojs/language-server@2.3.0(prettier-plugin-astro@0.12.0)(prettier@3.0.3)(typescript@5.1.6): resolution: {integrity: sha512-NFSzszjR4+f0+fTUCuFKXrLWusJFqWvHMrIzHB0lXUE8dt3Dm1Ok9Emrdj3s3BvlguJz05MV9xSIz1puMvomtQ==} hasBin: true From 4c2bec681b0752e7215b8a32bd2d44bf477adac1 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 2 Oct 2023 08:51:53 -0400 Subject: [PATCH 08/33] Fixes View transition styles being missing when component used multiple times (#8710) --- .changeset/wet-numbers-serve.md | 6 +++++ packages/astro/src/@types/astro.ts | 2 +- packages/astro/src/core/render/result.ts | 2 +- .../runtime/server/render/astro/instance.ts | 4 +-- .../src/components/Wait.astro | 4 +++ .../view-transitions/src/pages/multiple.astro | 13 ++++++++++ packages/astro/test/view-transitions.test.js | 25 +++++++++++++++++++ .../markdoc/components/TreeNode.ts | 3 +-- 8 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 .changeset/wet-numbers-serve.md create mode 100644 packages/astro/test/fixtures/view-transitions/src/components/Wait.astro create mode 100644 packages/astro/test/fixtures/view-transitions/src/pages/multiple.astro create mode 100644 packages/astro/test/view-transitions.test.js diff --git a/.changeset/wet-numbers-serve.md b/.changeset/wet-numbers-serve.md new file mode 100644 index 000000000..049251d76 --- /dev/null +++ b/.changeset/wet-numbers-serve.md @@ -0,0 +1,6 @@ +--- +'@astrojs/markdoc': patch +'astro': patch +--- + +Fixes View transition styles being missing when component used multiple times diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index 109629428..eab00891d 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -2209,7 +2209,7 @@ export interface SSRMetadata { hasRenderedHead: boolean; headInTree: boolean; extraHead: string[]; - propagators: Map; + propagators: Set; } /* Preview server stuff */ diff --git a/packages/astro/src/core/render/result.ts b/packages/astro/src/core/render/result.ts index abfcb5e3e..6f8ca9303 100644 --- a/packages/astro/src/core/render/result.ts +++ b/packages/astro/src/core/render/result.ts @@ -224,7 +224,7 @@ export function createResult(args: CreateResultArgs): SSRResult { hasDirectives: new Set(), headInTree: false, extraHead: [], - propagators: new Map(), + propagators: new Set(), }, }; diff --git a/packages/astro/src/runtime/server/render/astro/instance.ts b/packages/astro/src/runtime/server/render/astro/instance.ts index feae0e0e8..0748cbbb3 100644 --- a/packages/astro/src/runtime/server/render/astro/instance.ts +++ b/packages/astro/src/runtime/server/render/astro/instance.ts @@ -82,8 +82,8 @@ export function createAstroComponentInstance( ) { validateComponentProps(props, displayName); const instance = new AstroComponentInstance(result, props, slots, factory); - if (isAPropagatingComponent(result, factory) && !result._metadata.propagators.has(factory)) { - result._metadata.propagators.set(factory, instance); + if (isAPropagatingComponent(result, factory)) { + result._metadata.propagators.add(instance); } return instance; } diff --git a/packages/astro/test/fixtures/view-transitions/src/components/Wait.astro b/packages/astro/test/fixtures/view-transitions/src/components/Wait.astro new file mode 100644 index 000000000..df29afcaa --- /dev/null +++ b/packages/astro/test/fixtures/view-transitions/src/components/Wait.astro @@ -0,0 +1,4 @@ +--- +await new Promise(resolve => setTimeout(resolve, 10)); +--- +
{Astro.props.num}
diff --git a/packages/astro/test/fixtures/view-transitions/src/pages/multiple.astro b/packages/astro/test/fixtures/view-transitions/src/pages/multiple.astro new file mode 100644 index 000000000..5c6c2059c --- /dev/null +++ b/packages/astro/test/fixtures/view-transitions/src/pages/multiple.astro @@ -0,0 +1,13 @@ +--- +import Wait from '../components/Wait.astro'; +--- + + + Testing + + + {[1,2].map(num => ( + + ))} + + diff --git a/packages/astro/test/view-transitions.test.js b/packages/astro/test/view-transitions.test.js new file mode 100644 index 000000000..d0c32b0df --- /dev/null +++ b/packages/astro/test/view-transitions.test.js @@ -0,0 +1,25 @@ +import { expect } from 'chai'; +import * as cheerio from 'cheerio'; +import { loadFixture } from './test-utils.js'; + +describe('View Transitions styles', () => { + let fixture; + let devServer; + + before(async () => { + fixture = await loadFixture({ root: './fixtures/view-transitions/' }); + devServer = await fixture.startDevServer(); + }); + + after(async () => { + await devServer.stop(); + }) + + it('style tag added for each instance of the component', async () => { + let res = await fixture.fetch('/multiple'); + let html = await res.text(); + let $ = cheerio.load(html); + + expect($('head style')).to.have.a.lengthOf(3); + }); +}); diff --git a/packages/integrations/markdoc/components/TreeNode.ts b/packages/integrations/markdoc/components/TreeNode.ts index 31976c19d..80940bc07 100644 --- a/packages/integrations/markdoc/components/TreeNode.ts +++ b/packages/integrations/markdoc/components/TreeNode.ts @@ -92,8 +92,7 @@ export const ComponentNode = createComponent({ // `result.propagators` has been moved to `result._metadata.propagators` // TODO: remove this fallback in the next markdoc integration major const propagators = result._metadata.propagators || result.propagators; - propagators.set( - {}, + propagators.add( { init() { return headAndContent; From 22fae5211ac77caab1b3227a64231bc2540bcbef Mon Sep 17 00:00:00 2001 From: matthewp Date: Mon, 2 Oct 2023 12:54:01 +0000 Subject: [PATCH 09/33] [ci] format --- packages/astro/test/view-transitions.test.js | 2 +- packages/integrations/markdoc/components/TreeNode.ts | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/astro/test/view-transitions.test.js b/packages/astro/test/view-transitions.test.js index d0c32b0df..6d4d19cbb 100644 --- a/packages/astro/test/view-transitions.test.js +++ b/packages/astro/test/view-transitions.test.js @@ -13,7 +13,7 @@ describe('View Transitions styles', () => { after(async () => { await devServer.stop(); - }) + }); it('style tag added for each instance of the component', async () => { let res = await fixture.fetch('/multiple'); diff --git a/packages/integrations/markdoc/components/TreeNode.ts b/packages/integrations/markdoc/components/TreeNode.ts index 80940bc07..01bd20d71 100644 --- a/packages/integrations/markdoc/components/TreeNode.ts +++ b/packages/integrations/markdoc/components/TreeNode.ts @@ -92,13 +92,11 @@ export const ComponentNode = createComponent({ // `result.propagators` has been moved to `result._metadata.propagators` // TODO: remove this fallback in the next markdoc integration major const propagators = result._metadata.propagators || result.propagators; - propagators.add( - { - init() { - return headAndContent; - }, - } - ); + propagators.add({ + init() { + return headAndContent; + }, + }); return headAndContent; } From 3dd65bf8895faedfa4c92599961acca07457c62f Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr Date: Mon, 2 Oct 2023 16:04:57 +0200 Subject: [PATCH 10/33] feat(cloudflare): add local mockings for CF bindings (#8655) * feat(cloudflare): add D1 database binding * feat(cloudflare): add local mocking for R2 bindings (#8656) * feat(cloudflare): add local mocking for KV bindings (#8657) * feat(cloudflare): add local mocking for Caches bindings (#8664) * feat(cloudflare): add local mocking for DO bindings (#8690) --------- Co-authored-by: Sarah Rainsberger --- .changeset/funny-cobras-accept.md | 5 + .changeset/hot-readers-live.md | 5 + .changeset/hungry-mails-boil.md | 5 + .changeset/khaki-toes-exercise.md | 5 + .changeset/yellow-kiwis-pretend.md | 5 + packages/integrations/cloudflare/.gitignore | 3 +- packages/integrations/cloudflare/README.md | 9 +- packages/integrations/cloudflare/package.json | 1 + packages/integrations/cloudflare/src/index.ts | 86 +++++++++++++---- .../cloudflare/src/utils/parser.ts | 59 +++++++++++- .../integrations/cloudflare/test/cf.test.js | 64 +++++++++++-- .../test/fixtures/cf/src/pages/caches.astro | 15 +++ .../test/fixtures/cf/src/pages/d1.astro | 21 ++++ .../test/fixtures/cf/src/pages/do.astro | 15 +++ .../test/fixtures/cf/src/pages/index.astro | 3 +- .../test/fixtures/cf/src/pages/kv.astro | 20 ++++ .../test/fixtures/cf/src/pages/r2.astro | 20 ++++ .../cloudflare/test/fixtures/cf/wrangler.toml | 33 +++++++ pnpm-lock.yaml | 95 ++++++++++++++++--- 19 files changed, 423 insertions(+), 46 deletions(-) create mode 100644 .changeset/funny-cobras-accept.md create mode 100644 .changeset/hot-readers-live.md create mode 100644 .changeset/hungry-mails-boil.md create mode 100644 .changeset/khaki-toes-exercise.md create mode 100644 .changeset/yellow-kiwis-pretend.md create mode 100644 packages/integrations/cloudflare/test/fixtures/cf/src/pages/caches.astro create mode 100644 packages/integrations/cloudflare/test/fixtures/cf/src/pages/d1.astro create mode 100644 packages/integrations/cloudflare/test/fixtures/cf/src/pages/do.astro create mode 100644 packages/integrations/cloudflare/test/fixtures/cf/src/pages/kv.astro create mode 100644 packages/integrations/cloudflare/test/fixtures/cf/src/pages/r2.astro diff --git a/.changeset/funny-cobras-accept.md b/.changeset/funny-cobras-accept.md new file mode 100644 index 000000000..65805719c --- /dev/null +++ b/.changeset/funny-cobras-accept.md @@ -0,0 +1,5 @@ +--- +'@astrojs/cloudflare': minor +--- + +Introduces support for local KV bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/hot-readers-live.md b/.changeset/hot-readers-live.md new file mode 100644 index 000000000..f510d77c1 --- /dev/null +++ b/.changeset/hot-readers-live.md @@ -0,0 +1,5 @@ +--- +'@astrojs/cloudflare': minor +--- + +Introduces support for local Durable Objects bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/hungry-mails-boil.md b/.changeset/hungry-mails-boil.md new file mode 100644 index 000000000..851928e7a --- /dev/null +++ b/.changeset/hungry-mails-boil.md @@ -0,0 +1,5 @@ +--- +'@astrojs/cloudflare': minor +--- + +Introduces support for local D1 bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/khaki-toes-exercise.md b/.changeset/khaki-toes-exercise.md new file mode 100644 index 000000000..f8daf864d --- /dev/null +++ b/.changeset/khaki-toes-exercise.md @@ -0,0 +1,5 @@ +--- +'@astrojs/cloudflare': minor +--- + +Introduces support for local R2 bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/yellow-kiwis-pretend.md b/.changeset/yellow-kiwis-pretend.md new file mode 100644 index 000000000..cd5ee554b --- /dev/null +++ b/.changeset/yellow-kiwis-pretend.md @@ -0,0 +1,5 @@ +--- +'@astrojs/cloudflare': minor +--- + +Introduces support for local Caches bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/packages/integrations/cloudflare/.gitignore b/packages/integrations/cloudflare/.gitignore index 58b200bf6..0134f82df 100644 --- a/packages/integrations/cloudflare/.gitignore +++ b/packages/integrations/cloudflare/.gitignore @@ -1,2 +1,3 @@ # Astro cloudflare directory mode creates a function directory -functions \ No newline at end of file +functions +.mf diff --git a/packages/integrations/cloudflare/README.md b/packages/integrations/cloudflare/README.md index 7bfbd4b85..10a381a7b 100644 --- a/packages/integrations/cloudflare/README.md +++ b/packages/integrations/cloudflare/README.md @@ -212,7 +212,14 @@ export default defineConfig({ ## Cloudflare runtime -Gives you access to [environment variables](https://developers.cloudflare.com/pages/platform/functions/bindings/#environment-variables). +Gives you access to [environment variables](https://developers.cloudflare.com/pages/platform/functions/bindings/#environment-variables), and [Cloudflare bindings](https://developers.cloudflare.com/pages/platform/functions/bindings). + +Currently supported bindings: + +- [Cloudflare D1](https://developers.cloudflare.com/d1/) +- [Cloudflare R2](https://developers.cloudflare.com/r2/) +- [Cloudflare Workers KV](https://developers.cloudflare.com/kv/) +- [Cloudflare Durable Objects](https://developers.cloudflare.com/durable-objects/) You can access the runtime from Astro components through `Astro.locals` inside any .astro` file. diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json index bf4b41907..80f26b33b 100644 --- a/packages/integrations/cloudflare/package.json +++ b/packages/integrations/cloudflare/package.json @@ -36,6 +36,7 @@ "dependencies": { "@astrojs/underscore-redirects": "workspace:*", "@cloudflare/workers-types": "^4.20230821.0", + "miniflare": "^3.20230918.0", "@iarna/toml": "^2.2.5", "@miniflare/cache": "^2.14.1", "@miniflare/shared": "^2.14.1", diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index e0f055612..59cd92ce3 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -1,11 +1,9 @@ import type { AstroConfig, AstroIntegration, RouteData } from 'astro'; import { createRedirectsFromAstroRoutes } from '@astrojs/underscore-redirects'; -import { CacheStorage } from '@miniflare/cache'; -import { NoOpLog } from '@miniflare/shared'; -import { MemoryStorage } from '@miniflare/storage-memory'; import { AstroError } from 'astro/errors'; import esbuild from 'esbuild'; +import { Miniflare } from 'miniflare'; import * as fs from 'node:fs'; import * as os from 'node:os'; import { dirname, relative, sep } from 'node:path'; @@ -14,7 +12,13 @@ import glob from 'tiny-glob'; import { getAdapter } from './getAdapter.js'; import { deduplicatePatterns } from './utils/deduplicatePatterns.js'; import { getCFObject } from './utils/getCFObject.js'; -import { getEnvVars } from './utils/parser.js'; +import { + getD1Bindings, + getDOBindings, + getEnvVars, + getKVBindings, + getR2Bindings, +} from './utils/parser.js'; import { prependForwardSlash } from './utils/prependForwardSlash.js'; import { rewriteWasmImportPath } from './utils/rewriteWasmImportPath.js'; import { wasmModuleLoader } from './utils/wasm-module-loader.js'; @@ -55,20 +59,10 @@ interface BuildConfig { split?: boolean; } -class StorageFactory { - storages = new Map(); - - storage(namespace: string) { - let storage = this.storages.get(namespace); - if (storage) return storage; - this.storages.set(namespace, (storage = new MemoryStorage())); - return storage; - } -} - export default function createIntegration(args?: Options): AstroIntegration { let _config: AstroConfig; let _buildConfig: BuildConfig; + let _mf: Miniflare; let _entryPoints = new Map(); const SERVER_BUILD_FOLDER = '/$server_build/'; @@ -122,7 +116,55 @@ export default function createIntegration(args?: Options): AstroIntegration { try { const cf = await getCFObject(runtimeMode); const vars = await getEnvVars(); + const D1Bindings = await getD1Bindings(); + const R2Bindings = await getR2Bindings(); + const KVBindings = await getKVBindings(); + const DOBindings = await getDOBindings(); + let bindingsEnv = new Object({}); + // fix for the error "kj/filesystem-disk-unix.c++:1709: warning: PWD environment variable doesn't match current directory." + // note: This mismatch might be primarily due to the test runner. + const originalPWD = process.env.PWD; + process.env.PWD = process.cwd(); + + _mf = new Miniflare({ + modules: true, + script: '', + cache: true, + cachePersist: true, + cacheWarnUsage: true, + d1Databases: D1Bindings, + d1Persist: true, + r2Buckets: R2Bindings, + r2Persist: true, + kvNamespaces: KVBindings, + kvPersist: true, + durableObjects: DOBindings, + durableObjectsPersist: true, + }); + await _mf.ready; + + for (const D1Binding of D1Bindings) { + const db = await _mf.getD1Database(D1Binding); + Reflect.set(bindingsEnv, D1Binding, db); + } + for (const R2Binding of R2Bindings) { + const bucket = await _mf.getR2Bucket(R2Binding); + Reflect.set(bindingsEnv, R2Binding, bucket); + } + for (const KVBinding of KVBindings) { + const namespace = await _mf.getKVNamespace(KVBinding); + Reflect.set(bindingsEnv, KVBinding, namespace); + } + for (const key in DOBindings) { + if (Object.prototype.hasOwnProperty.call(DOBindings, key)) { + const DO = await _mf.getDurableObjectNamespace(key); + Reflect.set(bindingsEnv, key, DO); + } + } + const mfCache = await _mf.getCaches(); + + process.env.PWD = originalPWD; const clientLocalsSymbol = Symbol.for('astro.locals'); Reflect.set(req, clientLocalsSymbol, { runtime: { @@ -136,18 +178,14 @@ export default function createIntegration(args?: Options): AstroIntegration { // will be fetched from git dynamically once we support mocking of bindings CF_PAGES_COMMIT_SHA: 'TBA', CF_PAGES_URL: `http://${req.headers.host}`, + ...bindingsEnv, ...vars, }, cf: cf, waitUntil: (_promise: Promise) => { return; }, - caches: new CacheStorage( - { cache: true, cachePersist: false }, - new NoOpLog(), - new StorageFactory(), - {} - ), + caches: mfCache, }, }); next(); @@ -157,6 +195,12 @@ export default function createIntegration(args?: Options): AstroIntegration { }); } }, + 'astro:server:done': async ({ logger }) => { + if (_mf) { + logger.info('Cleaning up the Miniflare instance, and shutting down the workerd server.'); + await _mf.dispose(); + } + }, 'astro:build:setup': ({ vite, target }) => { if (target === 'server') { vite.resolve ||= {}; diff --git a/packages/integrations/cloudflare/src/utils/parser.ts b/packages/integrations/cloudflare/src/utils/parser.ts index e9a9cdd00..de239a1ee 100644 --- a/packages/integrations/cloudflare/src/utils/parser.ts +++ b/packages/integrations/cloudflare/src/utils/parser.ts @@ -12,6 +12,8 @@ import dotenv from 'dotenv'; import { findUpSync } from 'find-up'; import * as fs from 'node:fs'; import { dirname, resolve } from 'node:path'; +import type {} from '@cloudflare/workers-types/experimental'; +let _wrangler: any; function findWranglerToml( referencePath: string = process.cwd(), @@ -119,7 +121,9 @@ function getVarsForDev(config: any, configPath: string | undefined): any { return config.vars; } } -export async function getEnvVars() { + +function parseConfig() { + if (_wrangler) return _wrangler; let rawConfig; const configPath = findWranglerToml(process.cwd(), false); // false = args.experimentalJsonConfig if (!configPath) { @@ -129,6 +133,59 @@ export async function getEnvVars() { if (configPath?.endsWith('toml')) { rawConfig = parseTOML(fs.readFileSync(configPath).toString(), configPath); } + _wrangler = { rawConfig, configPath }; + return { rawConfig, configPath }; +} + +export async function getEnvVars() { + const { rawConfig, configPath } = parseConfig(); const vars = getVarsForDev(rawConfig, configPath); return vars; } + +export async function getD1Bindings() { + const { rawConfig } = parseConfig(); + if (!rawConfig) return []; + if (!rawConfig?.d1_databases) return []; + const bindings = (rawConfig?.d1_databases as []).map( + (binding: { binding: string }) => binding.binding + ); + return bindings; +} + +export async function getR2Bindings() { + const { rawConfig } = parseConfig(); + if (!rawConfig) return []; + if (!rawConfig?.r2_buckets) return []; + const bindings = (rawConfig?.r2_buckets as []).map( + (binding: { binding: string }) => binding.binding + ); + return bindings; +} + +export async function getKVBindings() { + const { rawConfig } = parseConfig(); + if (!rawConfig) return []; + if (!rawConfig?.kv_namespaces) return []; + const bindings = (rawConfig?.kv_namespaces as []).map( + (binding: { binding: string }) => binding.binding + ); + return bindings; +} + +export function getDOBindings(): Record< + string, + { scriptName?: string | undefined; unsafeUniqueKey?: string | undefined; className: string } +> { + const { rawConfig } = parseConfig(); + if (!rawConfig) return {}; + if (!rawConfig?.durable_objects) return {}; + const output = new Object({}) as Record< + string, + { scriptName?: string | undefined; unsafeUniqueKey?: string | undefined; className: string } + >; + for (const binding of rawConfig?.durable_objects.bindings) { + Reflect.set(output, binding.name, { className: binding.class_name }); + } + return output; +} diff --git a/packages/integrations/cloudflare/test/cf.test.js b/packages/integrations/cloudflare/test/cf.test.js index 78a18dcdf..0078f3024 100644 --- a/packages/integrations/cloudflare/test/cf.test.js +++ b/packages/integrations/cloudflare/test/cf.test.js @@ -54,11 +54,6 @@ describe('Astro Cloudflare Runtime', () => { adapter: cloudflare({ runtime: 'local', }), - image: { - service: { - entrypoint: 'astro/assets/services/noop', - }, - }, }); process.chdir('./test/fixtures/cf'); devServer = await fixture.startDevServer(); @@ -68,12 +63,65 @@ describe('Astro Cloudflare Runtime', () => { await devServer?.stop(); }); - it('Populates CF, Vars & Bindings', async () => { + it('adds cf object', async () => { let res = await fixture.fetch('/'); expect(res.status).to.equal(200); let html = await res.text(); let $ = cheerio.load(html); - expect($('#hasRuntime').text()).to.equal('true'); - expect($('#hasCache').text()).to.equal('true'); + expect($('#hasCF').text()).to.equal('true'); + }); + + it('adds cache mocking', async () => { + let res = await fixture.fetch('/caches'); + expect(res.status).to.equal(200); + let html = await res.text(); + let $ = cheerio.load(html); + expect($('#hasCACHE').text()).to.equal('true'); + }); + + it('adds D1 mocking', async () => { + expect(await fixture.pathExists('../.mf/d1')).to.be.true; + + let res = await fixture.fetch('/d1'); + expect(res.status).to.equal(200); + let html = await res.text(); + let $ = cheerio.load(html); + expect($('#hasDB').text()).to.equal('true'); + expect($('#hasPRODDB').text()).to.equal('true'); + expect($('#hasACCESS').text()).to.equal('true'); + }); + + it('adds R2 mocking', async () => { + expect(await fixture.pathExists('../.mf/r2')).to.be.true; + + let res = await fixture.fetch('/r2'); + expect(res.status).to.equal(200); + let html = await res.text(); + let $ = cheerio.load(html); + expect($('#hasBUCKET').text()).to.equal('true'); + expect($('#hasPRODBUCKET').text()).to.equal('true'); + expect($('#hasACCESS').text()).to.equal('true'); + }); + + it('adds KV mocking', async () => { + expect(await fixture.pathExists('../.mf/kv')).to.be.true; + + let res = await fixture.fetch('/kv'); + expect(res.status).to.equal(200); + let html = await res.text(); + let $ = cheerio.load(html); + expect($('#hasKV').text()).to.equal('true'); + expect($('#hasPRODKV').text()).to.equal('true'); + expect($('#hasACCESS').text()).to.equal('true'); + }); + + it('adds DO mocking', async () => { + expect(await fixture.pathExists('../.mf/do')).to.be.true; + + let res = await fixture.fetch('/do'); + expect(res.status).to.equal(200); + let html = await res.text(); + let $ = cheerio.load(html); + expect($('#hasDO').text()).to.equal('true'); }); }); diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/caches.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/caches.astro new file mode 100644 index 000000000..743111721 --- /dev/null +++ b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/caches.astro @@ -0,0 +1,15 @@ +--- +const runtime = Astro.locals.runtime; +--- + + + + + + + CACHES + + +
{!!runtime.caches}
+ + diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/d1.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/d1.astro new file mode 100644 index 000000000..a28940e9f --- /dev/null +++ b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/d1.astro @@ -0,0 +1,21 @@ +--- +const runtime = Astro.locals.runtime; +const db = runtime.env?.D1; +await db.exec("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)"); +await db.exec("INSERT INTO test (name) VALUES ('true')"); +const result = await db.prepare("SELECT * FROM test").all(); +--- + + + + + + + D1 + + +
{!!runtime.env?.D1}
+
{!!runtime.env?.D1_PROD}
+
{!!result.results[0].name}
+ + diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/do.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/do.astro new file mode 100644 index 000000000..e338c8e8f --- /dev/null +++ b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/do.astro @@ -0,0 +1,15 @@ +--- +const runtime = Astro.locals.runtime; +--- + + + + + + + DO + + +
{!!runtime.env.DO}
+ + diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/index.astro index 0e904752f..5ba11985f 100644 --- a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/index.astro +++ b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/index.astro @@ -7,7 +7,6 @@ const runtime = Astro.locals.runtime;

Testing

-
{!!runtime.cf?.colo}
-
{!!runtime.caches}
+
{!!runtime.cf?.colo}
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/kv.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/kv.astro new file mode 100644 index 000000000..d21f163a0 --- /dev/null +++ b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/kv.astro @@ -0,0 +1,20 @@ +--- +const runtime = Astro.locals.runtime; +const kv = runtime.env?.KV; +await kv.put("test", "true"); +const result = await kv.get("test") +--- + + + + + + + KV + + +
{!!runtime.env?.KV}
+
{!!runtime.env?.KV_PROD}
+
{!!result}
+ + diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/r2.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/r2.astro new file mode 100644 index 000000000..fbb9fc61b --- /dev/null +++ b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/r2.astro @@ -0,0 +1,20 @@ +--- +const runtime = Astro.locals.runtime; +const bucket = runtime.env?.R2; +await bucket.put("test", "true"); +const result = await (await bucket.get("test")).text() +--- + + + + + + + R2 + + +
{!!runtime.env?.R2}
+
{!!runtime.env?.R2_PROD}
+
{!!result}
+ + diff --git a/packages/integrations/cloudflare/test/fixtures/cf/wrangler.toml b/packages/integrations/cloudflare/test/fixtures/cf/wrangler.toml index ba0fa64c4..17fd88ea5 100644 --- a/packages/integrations/cloudflare/test/fixtures/cf/wrangler.toml +++ b/packages/integrations/cloudflare/test/fixtures/cf/wrangler.toml @@ -1,4 +1,37 @@ name = "test" +kv_namespaces = [ + { binding = "KV", id = "", preview_id = "" }, + { binding = "KV_PROD", id = "", preview_id = "" } +] + [vars] COOL = "ME" + +[[d1_databases]] +binding = "D1" # Should match preview_database_id, i.e. available in your Worker on env.DB +database_name = "" +database_id = "" +preview_database_id = "D1" # Required for Pages local development + +[[d1_databases]] +binding = "D1_PROD" # Should match preview_database_id +database_name = "" +database_id = "" +preview_database_id = "D1_PROD" # Required for Pages local development + +[[r2_buckets]] +binding = 'R2' # <~ valid JavaScript variable name +bucket_name = '' + +[[r2_buckets]] +binding = 'R2_PROD' # <~ valid JavaScript variable name +bucket_name = '' + +[[durable_objects.bindings]] +name = "DO" +class_name = "DurableObjectExample" + +[[durable_objects.bindings]] +name = "DO_PROD" +class_name = "DurableObjectProductionExample" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7af0f2954..0d8219cf0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3672,6 +3672,9 @@ importers: find-up: specifier: ^6.3.0 version: 6.3.0 + miniflare: + specifier: ^3.20230918.0 + version: 3.20230918.0 tiny-glob: specifier: ^0.2.9 version: 0.2.9 @@ -6974,6 +6977,15 @@ packages: dev: true optional: true + /@cloudflare/workerd-darwin-64@1.20230904.0: + resolution: {integrity: sha512-/GDlmxAFbDtrQwP4zOXFbqOfaPvkDxdsCoEa+KEBcAl5uR98+7WW5/b8naBHX+t26uS7p4bLlImM8J5F1ienRQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /@cloudflare/workerd-darwin-arm64@1.20230814.1: resolution: {integrity: sha512-U2mcgi+AiuI/4EY5Wk/GmygiNoCNw/V2mcHmxESqe4r6XbJYOzBdEsjnqJ05rqd0JlEM8m64jRtE6/qBnQHygg==} engines: {node: '>=16'} @@ -6983,6 +6995,15 @@ packages: dev: true optional: true + /@cloudflare/workerd-darwin-arm64@1.20230904.0: + resolution: {integrity: sha512-x8WXNc2xnDqr5y1iirnNdyx8GZY3rL5xiF7ebK3mKQeB+jFjkhO71yuPTkDCzUWtOvw1Wfd4jbwy4wxacMX4mQ==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /@cloudflare/workerd-linux-64@1.20230814.1: resolution: {integrity: sha512-Q4kITXLTCuG2i2Z01fbb5AjVRRIf3+lS4ZVsFbTbIwtcOOG4Ozcw7ee7tKsFES7hFqR4Eg9gMG4/aS0mmi+L2g==} engines: {node: '>=16'} @@ -6992,6 +7013,15 @@ packages: dev: true optional: true + /@cloudflare/workerd-linux-64@1.20230904.0: + resolution: {integrity: sha512-V58xyMS3oDpKO8Dpdh0r0BXm99OzoGgvWe9ufttVraj/1NTMGELwb6i9ySb8k3F1J9m/sO26+TV7pQc/bGC1VQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@cloudflare/workerd-linux-arm64@1.20230814.1: resolution: {integrity: sha512-BX5SaksXw+pkREVw3Rw2eSNXplqZw+14CcwW/5x/4oq/C6yn5qCvKxJfM7pukJGMI4wkJPOYops7B3g27FB/HA==} engines: {node: '>=16'} @@ -7001,6 +7031,15 @@ packages: dev: true optional: true + /@cloudflare/workerd-linux-arm64@1.20230904.0: + resolution: {integrity: sha512-VrDaW+pjb5IAKEnNWtEaFiG377kXKmk5Fu0Era4W+jKzPON2BW/qRb/4LNHXQ4yxg/2HLm7RiUTn7JZtt1qO6A==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@cloudflare/workerd-windows-64@1.20230814.1: resolution: {integrity: sha512-GWHqfyhsG/1wm2W8afkYX3q3fWXUWWD8NGtHfAs6ZVTHdW3mmYyMhKR0lc6ptBwz5i5aXRlP2S+CxxxwwDbKpw==} engines: {node: '>=16'} @@ -7010,6 +7049,15 @@ packages: dev: true optional: true + /@cloudflare/workerd-windows-64@1.20230904.0: + resolution: {integrity: sha512-/R/dE8uy+8J2YeXfDhI8/Bg7YUirdbbjH5/l/Vv00ZRE0lC3nPLcYeyBXSwXIQ6/Xht3gN+lksLQgKd0ZWRd+Q==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@cloudflare/workers-types@4.20230821.0: resolution: {integrity: sha512-lVQSyr5E4CEkQw7WIdsrMTj+kHjsm28mJ0B5AhNFByKR+16KTFsU/RW/nGLKHHW2jxT5lvYI+HjNQMzC9QR8Ng==} dev: false @@ -9691,7 +9739,6 @@ packages: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} dependencies: printable-characters: 1.0.42 - dev: true /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -10160,7 +10207,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: true /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -10693,7 +10739,6 @@ packages: /data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - dev: true /data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} @@ -11575,7 +11620,6 @@ packages: /exit-hook@2.2.1: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - dev: true /expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} @@ -11939,7 +11983,6 @@ packages: dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 - dev: true /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -11992,7 +12035,6 @@ packages: /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - dev: true /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} @@ -14055,6 +14097,28 @@ packages: - utf-8-validate dev: true + /miniflare@3.20230918.0: + resolution: {integrity: sha512-Dd29HB7ZlT1CXB2tPH8nW6fBOOXi/m7qFZHjKm2jGS+1OaGfrv0PkT5UspWW5jQi8rWI87xtordAUiIJkwWqRw==} + engines: {node: '>=16.13'} + dependencies: + acorn: 8.10.0 + acorn-walk: 8.2.0 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + source-map-support: 0.5.21 + stoppable: 1.1.0 + undici: 5.23.0 + workerd: 1.20230904.0 + ws: 8.13.0 + youch: 3.2.3 + zod: 3.21.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -14207,7 +14271,6 @@ packages: /mustache@4.2.0: resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} hasBin: true - dev: true /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -15329,7 +15392,6 @@ packages: /printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - dev: true /prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} @@ -16372,7 +16434,6 @@ packages: dependencies: as-table: 1.0.55 get-source: 2.0.12 - dev: true /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} @@ -16392,7 +16453,6 @@ packages: /stoppable@1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} - dev: true /stream-parser@0.3.1: resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} @@ -18235,6 +18295,19 @@ packages: '@cloudflare/workerd-windows-64': 1.20230814.1 dev: true + /workerd@1.20230904.0: + resolution: {integrity: sha512-t9znszH0rQGK4mJGvF9L3nN0qKEaObAGx0JkywFtAwH8OkSn+YfQbHNZE+YsJ4qa1hOz1DCNEk08UDFRBaYq4g==} + engines: {node: '>=16'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20230904.0 + '@cloudflare/workerd-darwin-arm64': 1.20230904.0 + '@cloudflare/workerd-linux-64': 1.20230904.0 + '@cloudflare/workerd-linux-arm64': 1.20230904.0 + '@cloudflare/workerd-windows-64': 1.20230904.0 + dev: false + /workerpool@6.2.1: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} dev: true @@ -18305,7 +18378,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} @@ -18455,7 +18527,6 @@ packages: cookie: 0.5.0 mustache: 4.2.0 stacktracey: 2.1.8 - dev: true /zod@3.21.1: resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} From 5fb6a266f8946bf378fc7bace3ffe21ddf1f46e4 Mon Sep 17 00:00:00 2001 From: alexanderniebuhr Date: Mon, 2 Oct 2023 14:08:47 +0000 Subject: [PATCH 11/33] [ci] format --- packages/integrations/cloudflare/src/utils/parser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/integrations/cloudflare/src/utils/parser.ts b/packages/integrations/cloudflare/src/utils/parser.ts index de239a1ee..4045a0e72 100644 --- a/packages/integrations/cloudflare/src/utils/parser.ts +++ b/packages/integrations/cloudflare/src/utils/parser.ts @@ -7,12 +7,12 @@ * TODO: Tackle this file, once their is an decision on the upstream request */ +import type {} from '@cloudflare/workers-types/experimental'; import TOML from '@iarna/toml'; import dotenv from 'dotenv'; import { findUpSync } from 'find-up'; import * as fs from 'node:fs'; import { dirname, resolve } from 'node:path'; -import type {} from '@cloudflare/workers-types/experimental'; let _wrangler: any; function findWranglerToml( From 6db2687ef01c5b831d2e4783c57fef539e2de214 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 2 Oct 2023 22:33:24 +0800 Subject: [PATCH 12/33] fix(deno): link to adapter repo (#8712) --- packages/integrations/deno/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/integrations/deno/README.md b/packages/integrations/deno/README.md index 2428b341c..53db97349 100644 --- a/packages/integrations/deno/README.md +++ b/packages/integrations/deno/README.md @@ -1,3 +1,3 @@ # @astrojs/deno 🦖 -This adapter is no longer maintained by Astro. Please see [the new repository for the Deno adapter](https://github.com/withastro/netlify-adapter) which is now maintained by the Deno organization. +This adapter is no longer maintained by Astro. Please see [the new repository for the Deno adapter](https://github.com/denoland/deno-astro-adapter) which is now maintained by the Deno organization. From 455af3235b3268852e6988accecc796f03f6d16e Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Mon, 2 Oct 2023 23:17:34 +0800 Subject: [PATCH 13/33] Fix CSS styles on windows (#8724) --- .changeset/poor-frogs-melt.md | 5 +++++ .../src/content/vite-plugin-content-assets.ts | 4 ++-- .../astro/src/vite-plugin-astro-server/css.ts | 19 +++++++++++++++---- .../src/vite-plugin-astro-server/route.ts | 10 +++++++--- 4 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 .changeset/poor-frogs-melt.md diff --git a/.changeset/poor-frogs-melt.md b/.changeset/poor-frogs-melt.md new file mode 100644 index 000000000..a07930d29 --- /dev/null +++ b/.changeset/poor-frogs-melt.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix CSS styles on Windows diff --git a/packages/astro/src/content/vite-plugin-content-assets.ts b/packages/astro/src/content/vite-plugin-content-assets.ts index 5d82a684f..133fc9edd 100644 --- a/packages/astro/src/content/vite-plugin-content-assets.ts +++ b/packages/astro/src/content/vite-plugin-content-assets.ts @@ -64,7 +64,7 @@ export function astroContentAssetPropagationPlugin({ if (!devModuleLoader.getModuleById(basePath)?.ssrModule) { await devModuleLoader.import(basePath); } - const { stylesMap, urls } = await getStylesForURL( + const { styles, urls } = await getStylesForURL( pathToFileURL(basePath), devModuleLoader, 'development' @@ -77,7 +77,7 @@ export function astroContentAssetPropagationPlugin({ ); stringifiedLinks = JSON.stringify([...urls]); - stringifiedStyles = JSON.stringify([...stylesMap.values()]); + stringifiedStyles = JSON.stringify(styles.map((s) => s.content)); stringifiedScripts = JSON.stringify([...hoistedScripts]); } else { // Otherwise, use placeholders to inject styles and scripts diff --git a/packages/astro/src/vite-plugin-astro-server/css.ts b/packages/astro/src/vite-plugin-astro-server/css.ts index d256f48c7..0da51db1e 100644 --- a/packages/astro/src/vite-plugin-astro-server/css.ts +++ b/packages/astro/src/vite-plugin-astro-server/css.ts @@ -4,14 +4,21 @@ import { viteID } from '../core/util.js'; import { isBuildableCSSRequest } from './util.js'; import { crawlGraph } from './vite.js'; +interface ImportedStyle { + id: string; + url: string; + content: string; +} + /** Given a filePath URL, crawl Vite’s module graph to find all style imports. */ export async function getStylesForURL( filePath: URL, loader: ModuleLoader, mode: RuntimeMode -): Promise<{ urls: Set; stylesMap: Map }> { +): Promise<{ urls: Set; styles: ImportedStyle[] }> { const importedCssUrls = new Set(); - const importedStylesMap = new Map(); + // Map of url to injected style object. Use a `url` key to deduplicate styles + const importedStylesMap = new Map(); for await (const importedModule of crawlGraph(loader, viteID(filePath), true)) { if (isBuildableCSSRequest(importedModule.url)) { @@ -28,7 +35,11 @@ export async function getStylesForURL( mode === 'development' && // only inline in development typeof ssrModule?.default === 'string' // ignore JS module styles ) { - importedStylesMap.set(importedModule.id ?? importedModule.url, ssrModule.default); + importedStylesMap.set(importedModule.url, { + id: importedModule.id ?? importedModule.url, + url: importedModule.url, + content: ssrModule.default, + }); } else { // NOTE: We use the `url` property here. `id` would break Windows. importedCssUrls.add(importedModule.url); @@ -38,6 +49,6 @@ export async function getStylesForURL( return { urls: importedCssUrls, - stylesMap: importedStylesMap, + styles: [...importedStylesMap.values()], }; } diff --git a/packages/astro/src/vite-plugin-astro-server/route.ts b/packages/astro/src/vite-plugin-astro-server/route.ts index 34ab119da..069c2ffe8 100644 --- a/packages/astro/src/vite-plugin-astro-server/route.ts +++ b/packages/astro/src/vite-plugin-astro-server/route.ts @@ -293,7 +293,11 @@ async function getScriptsAndStyles({ pipeline, filePath }: GetScriptsAndStylesPa } // Pass framework CSS in as style tags to be appended to the page. - const { urls: styleUrls, stylesMap } = await getStylesForURL(filePath, moduleLoader, mode); + const { urls: styleUrls, styles: importedStyles } = await getStylesForURL( + filePath, + moduleLoader, + mode + ); let links = new Set(); [...styleUrls].forEach((href) => { links.add({ @@ -306,7 +310,7 @@ async function getScriptsAndStyles({ pipeline, filePath }: GetScriptsAndStylesPa }); let styles = new Set(); - [...stylesMap].forEach(([url, content]) => { + importedStyles.forEach(({ id, url, content }) => { // Vite handles HMR for styles injected as scripts scripts.add({ props: { @@ -319,7 +323,7 @@ async function getScriptsAndStyles({ pipeline, filePath }: GetScriptsAndStylesPa // should emulate what Vite injects so further HMR works as expected. styles.add({ props: { - 'data-vite-dev-id': url, + 'data-vite-dev-id': id, }, children: content, }); From 78fda5c3ecebe8e15a0ce2941c80f3742665b9f7 Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Mon, 2 Oct 2023 08:55:56 -0700 Subject: [PATCH 14/33] [ci] release (#8722) Co-authored-by: github-actions[bot] --- .changeset/funny-cobras-accept.md | 5 -- .changeset/hot-readers-live.md | 5 -- .changeset/hungry-mails-boil.md | 5 -- .changeset/khaki-toes-exercise.md | 5 -- .changeset/poor-frogs-melt.md | 5 -- .changeset/wet-numbers-serve.md | 6 -- .changeset/yellow-kiwis-pretend.md | 5 -- examples/basics/package.json | 2 +- examples/blog/package.json | 2 +- examples/component/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-lit/package.json | 2 +- 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 | 4 +- examples/with-markdown-plugins/package.json | 2 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 2 +- examples/with-nanostores/package.json | 2 +- examples/with-tailwindcss/package.json | 2 +- examples/with-vite-plugin-pwa/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 8 +++ packages/astro/package.json | 2 +- packages/integrations/cloudflare/CHANGELOG.md | 20 +++++++ packages/integrations/cloudflare/package.json | 4 +- packages/integrations/markdoc/CHANGELOG.md | 9 +++ packages/integrations/markdoc/package.json | 4 +- packages/integrations/mdx/package.json | 2 +- packages/integrations/node/package.json | 2 +- packages/integrations/svelte/package.json | 2 +- packages/integrations/tailwind/package.json | 2 +- packages/integrations/vercel/package.json | 2 +- packages/integrations/vue/package.json | 2 +- pnpm-lock.yaml | 56 +++++++++---------- 47 files changed, 104 insertions(+), 103 deletions(-) delete mode 100644 .changeset/funny-cobras-accept.md delete mode 100644 .changeset/hot-readers-live.md delete mode 100644 .changeset/hungry-mails-boil.md delete mode 100644 .changeset/khaki-toes-exercise.md delete mode 100644 .changeset/poor-frogs-melt.md delete mode 100644 .changeset/wet-numbers-serve.md delete mode 100644 .changeset/yellow-kiwis-pretend.md diff --git a/.changeset/funny-cobras-accept.md b/.changeset/funny-cobras-accept.md deleted file mode 100644 index 65805719c..000000000 --- a/.changeset/funny-cobras-accept.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/cloudflare': minor ---- - -Introduces support for local KV bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/hot-readers-live.md b/.changeset/hot-readers-live.md deleted file mode 100644 index f510d77c1..000000000 --- a/.changeset/hot-readers-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/cloudflare': minor ---- - -Introduces support for local Durable Objects bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/hungry-mails-boil.md b/.changeset/hungry-mails-boil.md deleted file mode 100644 index 851928e7a..000000000 --- a/.changeset/hungry-mails-boil.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/cloudflare': minor ---- - -Introduces support for local D1 bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/khaki-toes-exercise.md b/.changeset/khaki-toes-exercise.md deleted file mode 100644 index f8daf864d..000000000 --- a/.changeset/khaki-toes-exercise.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/cloudflare': minor ---- - -Introduces support for local R2 bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/.changeset/poor-frogs-melt.md b/.changeset/poor-frogs-melt.md deleted file mode 100644 index a07930d29..000000000 --- a/.changeset/poor-frogs-melt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fix CSS styles on Windows diff --git a/.changeset/wet-numbers-serve.md b/.changeset/wet-numbers-serve.md deleted file mode 100644 index 049251d76..000000000 --- a/.changeset/wet-numbers-serve.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@astrojs/markdoc': patch -'astro': patch ---- - -Fixes View transition styles being missing when component used multiple times diff --git a/.changeset/yellow-kiwis-pretend.md b/.changeset/yellow-kiwis-pretend.md deleted file mode 100644 index cd5ee554b..000000000 --- a/.changeset/yellow-kiwis-pretend.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/cloudflare': minor ---- - -Introduces support for local Caches bindings. Enhances development experience by allowing direct integration with `astro dev`. diff --git a/examples/basics/package.json b/examples/basics/package.json index f6fc2b0c6..ef4594b62 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index a298e08fd..45faa7718 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^1.1.0", "@astrojs/rss": "^3.0.0", "@astrojs/sitemap": "^3.0.0", - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/component/package.json b/examples/component/package.json index d572e7005..f9d2b5c14 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.2.1" + "astro": "^3.2.2" }, "peerDependencies": { "astro": "^2.0.0-beta.0" diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index db79aaaf0..ce2ada0ff 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.3.0", "@types/alpinejs": "^3.7.2", "alpinejs": "^3.12.3", - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index f6ae6a012..23e2b6fe4 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/lit": "^3.0.0", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^3.2.1", + "astro": "^3.2.2", "lit": "^2.8.0" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index c2d7eb14b..f22be4a1b 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -16,7 +16,7 @@ "@astrojs/solid-js": "^3.0.1", "@astrojs/svelte": "^4.0.2", "@astrojs/vue": "^3.0.0", - "astro": "^3.2.1", + "astro": "^3.2.2", "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 46b4b571f..34e7700eb 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.0.0", "@preact/signals": "^1.2.1", - "astro": "^3.2.1", + "astro": "^3.2.2", "preact": "^10.17.1" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index edba28b7b..d6625a540 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.0.2", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "astro": "^3.2.1", + "astro": "^3.2.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 84cc85bdc..21ba4fdb0 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^3.0.1", - "astro": "^3.2.1", + "astro": "^3.2.2", "solid-js": "^1.7.11" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 2e03cee02..462208a0e 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^4.0.2", - "astro": "^3.2.1", + "astro": "^3.2.2", "svelte": "^4.2.0" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index da9bf28b1..af27cb66d 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^3.0.0", - "astro": "^3.2.1", + "astro": "^3.2.2", "vue": "^3.3.4" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index d35a9360e..25d7b7aa4 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^6.0.2", - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index 8acaa37e6..3c242c972 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.2.1" + "astro": "^3.2.2" }, "peerDependencies": { "astro": "^2.0.0-beta.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index 317ce8037..8feb14952 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^6.0.2", - "astro": "^3.2.1", + "astro": "^3.2.2", "html-minifier": "^4.0.0" } } diff --git a/examples/minimal/package.json b/examples/minimal/package.json index 36b91b384..d5369f267 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 765d1d3c3..273a51616 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index 392d556b8..7dae943dc 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/ssr/package.json b/examples/ssr/package.json index c40191950..45c483ebe 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^6.0.2", "@astrojs/svelte": "^4.0.2", - "astro": "^3.2.1", + "astro": "^3.2.2", "svelte": "^4.2.0" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index eb5e5d52c..47ec9f85f 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^5.0.0", "@astrojs/node": "^6.0.2", - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index 09ccf4b7e..48dce43c2 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -11,7 +11,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/markdoc": "^0.5.0", - "astro": "^3.2.1" + "@astrojs/markdoc": "^0.5.1", + "astro": "^3.2.2" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index 64f258fa7..01e75914e 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^3.2.0", - "astro": "^3.2.1", + "astro": "^3.2.2", "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 544821c82..1277b9de3 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.2.1" + "astro": "^3.2.2" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index 4165672e0..0c6e54b0f 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/mdx": "^1.1.0", "@astrojs/preact": "^3.0.0", - "astro": "^3.2.1", + "astro": "^3.2.2", "preact": "^10.17.1" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index f31189861..a0844daa8 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.0.0", "@nanostores/preact": "^0.5.0", - "astro": "^3.2.1", + "astro": "^3.2.2", "nanostores": "^0.9.3", "preact": "^10.17.1" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 71a67b9ab..2aef837af 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,7 +14,7 @@ "@astrojs/mdx": "^1.1.0", "@astrojs/tailwind": "^5.0.0", "@types/canvas-confetti": "^1.6.0", - "astro": "^3.2.1", + "astro": "^3.2.2", "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 fcc64a765..03ed9159b 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.2.1", + "astro": "^3.2.2", "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 277fd1ff3..6b7bc5d0d 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^3.2.1", + "astro": "^3.2.2", "vitest": "^0.34.2" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index a7a88e208..4013b24e2 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,13 @@ # astro +## 3.2.2 + +### Patch Changes + +- [#8724](https://github.com/withastro/astro/pull/8724) [`455af3235`](https://github.com/withastro/astro/commit/455af3235b3268852e6988accecc796f03f6d16e) Thanks [@bluwy](https://github.com/bluwy)! - Fix CSS styles on Windows + +- [#8710](https://github.com/withastro/astro/pull/8710) [`4c2bec681`](https://github.com/withastro/astro/commit/4c2bec681b0752e7215b8a32bd2d44bf477adac1) Thanks [@matthewp](https://github.com/matthewp)! - Fixes View transition styles being missing when component used multiple times + ## 3.2.1 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index d711ab539..7b7ef218c 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "3.2.1", + "version": "3.2.2", "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/cloudflare/CHANGELOG.md b/packages/integrations/cloudflare/CHANGELOG.md index 86a575051..f315fd57a 100644 --- a/packages/integrations/cloudflare/CHANGELOG.md +++ b/packages/integrations/cloudflare/CHANGELOG.md @@ -1,5 +1,25 @@ # @astrojs/cloudflare +## 7.5.0 + +### Minor Changes + +- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local KV bindings. Enhances development experience by allowing direct integration with `astro dev`. + +- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local Durable Objects bindings. Enhances development experience by allowing direct integration with `astro dev`. + +- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local D1 bindings. Enhances development experience by allowing direct integration with `astro dev`. + +- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local R2 bindings. Enhances development experience by allowing direct integration with `astro dev`. + +- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local Caches bindings. Enhances development experience by allowing direct integration with `astro dev`. + +### Patch Changes + +- Updated dependencies [[`455af3235`](https://github.com/withastro/astro/commit/455af3235b3268852e6988accecc796f03f6d16e), [`4c2bec681`](https://github.com/withastro/astro/commit/4c2bec681b0752e7215b8a32bd2d44bf477adac1)]: + - astro@3.2.2 + - @astrojs/underscore-redirects@0.3.0 + ## 7.4.0 ### Minor Changes diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json index 80f26b33b..0fc14b203 100644 --- a/packages/integrations/cloudflare/package.json +++ b/packages/integrations/cloudflare/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/cloudflare", "description": "Deploy your site to Cloudflare Workers/Pages", - "version": "7.4.0", + "version": "7.5.0", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -48,7 +48,7 @@ "vite": "^4.4.9" }, "peerDependencies": { - "astro": "workspace:^3.2.1" + "astro": "workspace:^3.2.2" }, "devDependencies": { "@types/iarna__toml": "^2.0.2", diff --git a/packages/integrations/markdoc/CHANGELOG.md b/packages/integrations/markdoc/CHANGELOG.md index 9d161961e..97dcc73c1 100644 --- a/packages/integrations/markdoc/CHANGELOG.md +++ b/packages/integrations/markdoc/CHANGELOG.md @@ -1,5 +1,14 @@ # @astrojs/markdoc +## 0.5.1 + +### Patch Changes + +- [#8710](https://github.com/withastro/astro/pull/8710) [`4c2bec681`](https://github.com/withastro/astro/commit/4c2bec681b0752e7215b8a32bd2d44bf477adac1) Thanks [@matthewp](https://github.com/matthewp)! - Fixes View transition styles being missing when component used multiple times + +- Updated dependencies [[`455af3235`](https://github.com/withastro/astro/commit/455af3235b3268852e6988accecc796f03f6d16e), [`4c2bec681`](https://github.com/withastro/astro/commit/4c2bec681b0752e7215b8a32bd2d44bf477adac1)]: + - astro@3.2.2 + ## 0.5.0 ### Minor Changes diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json index 16f41ea9a..af1a1d2bc 100644 --- a/packages/integrations/markdoc/package.json +++ b/packages/integrations/markdoc/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/markdoc", "description": "Add support for Markdoc in your Astro site", - "version": "0.5.0", + "version": "0.5.1", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -75,7 +75,7 @@ "zod": "3.21.1" }, "peerDependencies": { - "astro": "workspace:^3.2.1" + "astro": "workspace:^3.2.2" }, "devDependencies": { "@astrojs/markdown-remark": "workspace:*", diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index 7046d2771..cd580afd5 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -51,7 +51,7 @@ "vfile": "^5.3.7" }, "peerDependencies": { - "astro": "workspace:^3.2.1" + "astro": "workspace:^3.2.2" }, "devDependencies": { "@types/chai": "^4.3.5", diff --git a/packages/integrations/node/package.json b/packages/integrations/node/package.json index c76058835..337d1e65f 100644 --- a/packages/integrations/node/package.json +++ b/packages/integrations/node/package.json @@ -37,7 +37,7 @@ "server-destroy": "^1.0.1" }, "peerDependencies": { - "astro": "workspace:^3.2.1" + "astro": "workspace:^3.2.2" }, "devDependencies": { "@types/node": "^18.17.8", diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json index 8591769ec..77ee714b0 100644 --- a/packages/integrations/svelte/package.json +++ b/packages/integrations/svelte/package.json @@ -48,7 +48,7 @@ "vite": "^4.4.9" }, "peerDependencies": { - "astro": "workspace:^3.2.1", + "astro": "workspace:^3.2.2", "svelte": "^3.55.0 || ^4.0.0" }, "engines": { diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json index 7e4808c5b..9a90b3c92 100644 --- a/packages/integrations/tailwind/package.json +++ b/packages/integrations/tailwind/package.json @@ -43,7 +43,7 @@ "vite": "^4.4.9" }, "peerDependencies": { - "astro": "workspace:^3.2.1", + "astro": "workspace:^3.2.2", "tailwindcss": "^3.0.24" } } diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index c7d2e8f19..87881e0d1 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -61,7 +61,7 @@ "web-vitals": "^3.4.0" }, "peerDependencies": { - "astro": "workspace:^3.2.1" + "astro": "workspace:^3.2.2" }, "devDependencies": { "@types/set-cookie-parser": "^2.4.3", diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index 101df60eb..ad2075613 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -56,7 +56,7 @@ "vue": "^3.3.4" }, "peerDependencies": { - "astro": "workspace:^3.2.1", + "astro": "workspace:^3.2.2", "vue": "^3.2.30" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d8219cf0..8af88487b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -125,7 +125,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/blog: @@ -140,13 +140,13 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/sitemap astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/framework-alpine: @@ -161,7 +161,7 @@ importers: specifier: ^3.12.3 version: 3.12.3 astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/framework-lit: @@ -173,7 +173,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro lit: specifier: ^2.8.0 @@ -197,7 +197,7 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/vue astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -227,7 +227,7 @@ importers: specifier: ^1.2.1 version: 1.2.1(preact@10.17.1) astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -245,7 +245,7 @@ importers: specifier: ^18.2.7 version: 18.2.7 astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -260,7 +260,7 @@ importers: specifier: ^3.0.1 version: link:../../packages/integrations/solid astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro solid-js: specifier: ^1.7.11 @@ -272,7 +272,7 @@ importers: specifier: ^4.0.2 version: link:../../packages/integrations/svelte astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro svelte: specifier: ^4.2.0 @@ -284,7 +284,7 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/vue astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro vue: specifier: ^3.3.4 @@ -296,13 +296,13 @@ importers: specifier: ^6.0.2 version: link:../../packages/integrations/node astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/middleware: @@ -311,7 +311,7 @@ importers: specifier: ^6.0.2 version: link:../../packages/integrations/node astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -320,19 +320,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/ssr: @@ -344,7 +344,7 @@ importers: specifier: ^4.0.2 version: link:../../packages/integrations/svelte astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro svelte: specifier: ^4.2.0 @@ -359,16 +359,16 @@ importers: specifier: ^5.0.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/with-markdoc: dependencies: '@astrojs/markdoc': - specifier: ^0.5.0 + specifier: ^0.5.1 version: link:../../packages/integrations/markdoc astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/with-markdown-plugins: @@ -377,7 +377,7 @@ importers: specifier: ^3.2.0 version: link:../../packages/markdown/remark astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro hast-util-select: specifier: ^5.0.5 @@ -398,7 +398,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro examples/with-mdx: @@ -410,7 +410,7 @@ importers: specifier: ^3.0.0 version: link:../../packages/integrations/preact astro: - specifier: ^3.2.1 + specifier: ^3.2.2 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.3)(preact@10.17.1) astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro nanostores: specifier: ^0.9.3 @@ -446,7 +446,7 @@ importers: specifier: ^1.6.0 version: 1.6.0 astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 @@ -464,7 +464,7 @@ importers: examples/with-vite-plugin-pwa: dependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro vite-plugin-pwa: specifier: 0.16.4 @@ -476,7 +476,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^3.2.1 + specifier: ^3.2.2 version: link:../../packages/astro vitest: specifier: ^0.34.2 From f9477aade1648c7adbc1a69df4d3e09b145a14fc Mon Sep 17 00:00:00 2001 From: Genteure Date: Tue, 3 Oct 2023 00:36:15 +0800 Subject: [PATCH 15/33] fix: typo in error deprecation message (#8708) Co-authored-by: Alexander Niebuhr --- packages/astro/src/core/errors/errors-data.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index 5f825126f..d805bb6ff 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1158,7 +1158,7 @@ export const ContentSchemaContainsSlugError = { /** * @docs * @message A collection queried via `getCollection()` does not exist. - * @deprecated Collections that do not exist no longer result in an error. A warning is omitted instead. + * @deprecated Collections that do not exist no longer result in an error. A warning is given instead. * @description * When querying a collection, ensure a collection directory with the requested name exists under `src/content/`. */ From d1c75fe158839699c59728cf3a83888e8c72a459 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 3 Oct 2023 21:36:38 +0800 Subject: [PATCH 16/33] Fix `tsconfig.json` update causing the server to crash (#8736) --- .changeset/red-masks-drop.md | 5 ++ .../content/vite-plugin-content-imports.ts | 12 +++-- packages/astro/src/core/module-loader/vite.ts | 51 ++++++++++++++----- 3 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 .changeset/red-masks-drop.md diff --git a/.changeset/red-masks-drop.md b/.changeset/red-masks-drop.md new file mode 100644 index 000000000..3564fa9e8 --- /dev/null +++ b/.changeset/red-masks-drop.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fix `tsconfig.json` update causing the server to crash diff --git a/packages/astro/src/content/vite-plugin-content-imports.ts b/packages/astro/src/content/vite-plugin-content-imports.ts index 4643e0922..15ca6d956 100644 --- a/packages/astro/src/content/vite-plugin-content-imports.ts +++ b/packages/astro/src/content/vite-plugin-content-imports.ts @@ -148,9 +148,15 @@ export const _internal = { hasContentFlag(modUrl, DATA_FLAG) || Boolean(getContentRendererByViteId(modUrl, settings)) ) { - const mod = await viteServer.moduleGraph.getModuleByUrl(modUrl); - if (mod) { - viteServer.moduleGraph.invalidateModule(mod); + try { + const mod = await viteServer.moduleGraph.getModuleByUrl(modUrl); + if (mod) { + viteServer.moduleGraph.invalidateModule(mod); + } + } catch (e: any) { + // The server may be closed due to a restart caused by this file change + if (e.code === 'ERR_CLOSED_SERVER') break; + throw e; } } } diff --git a/packages/astro/src/core/module-loader/vite.ts b/packages/astro/src/core/module-loader/vite.ts index f58b2e720..48ec230f0 100644 --- a/packages/astro/src/core/module-loader/vite.ts +++ b/packages/astro/src/core/module-loader/vite.ts @@ -1,19 +1,52 @@ import { EventEmitter } from 'node:events'; +import path from 'node:path'; import type * as vite from 'vite'; import type { ModuleLoader, ModuleLoaderEventEmitter } from './loader.js'; export function createViteLoader(viteServer: vite.ViteDevServer): ModuleLoader { const events = new EventEmitter() as ModuleLoaderEventEmitter; - viteServer.watcher.on('add', (...args) => events.emit('file-add', args)); - viteServer.watcher.on('unlink', (...args) => events.emit('file-unlink', args)); - viteServer.watcher.on('change', (...args) => events.emit('file-change', args)); + let isTsconfigUpdated = false; + function isTsconfigUpdate(filePath: string) { + const result = path.basename(filePath) === 'tsconfig.json'; + if (result) isTsconfigUpdated = true; + return result; + } - wrapMethod(viteServer.ws, 'send', (msg) => { + // Skip event emit on tsconfig change as Vite restarts the server, and we don't + // want to trigger unnecessary work that will be invalidated shortly. + viteServer.watcher.on('add', (...args) => { + if (!isTsconfigUpdate(args[0])) { + events.emit('file-add', args); + } + }); + viteServer.watcher.on('unlink', (...args) => { + if (!isTsconfigUpdate(args[0])) { + events.emit('file-unlink', args); + } + }); + viteServer.watcher.on('change', (...args) => { + if (!isTsconfigUpdate(args[0])) { + events.emit('file-change', args); + } + }); + + const _wsSend = viteServer.ws.send; + viteServer.ws.send = function (...args: any) { + // If the tsconfig changed, Vite will trigger a reload as it invalidates the module. + // However in Astro, the whole server is restarted when the tsconfig changes. If we + // do a restart and reload at the same time, the browser will refetch and the server + // is not ready yet, causing a blank page. Here we block that reload from happening. + if (isTsconfigUpdated) { + isTsconfigUpdated = false; + return; + } + const msg = args[0] as vite.HMRPayload; if (msg?.type === 'error') { events.emit('hmr-error', msg); } - }); + _wsSend.apply(this, args); + }; return { import(src) { @@ -56,11 +89,3 @@ export function createViteLoader(viteServer: vite.ViteDevServer): ModuleLoader { events, }; } - -function wrapMethod(object: any, method: string, newFn: (...args: any[]) => void) { - const orig = object[method]; - object[method] = function (...args: any[]) { - newFn.apply(this, args); - return orig.apply(this, args); - }; -} From 6f60da805e0014bc50dd07bef972e91c73560c3c Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 3 Oct 2023 16:25:25 +0200 Subject: [PATCH 17/33] feat: add provenance to packages (#8737) --- .changeset/eleven-buttons-wash.md | 25 +++++++++++++++++++ packages/astro/package.json | 3 +++ packages/integrations/alpinejs/package.json | 3 +++ packages/integrations/cloudflare/package.json | 3 +++ packages/integrations/lit/package.json | 3 +++ packages/integrations/markdoc/package.json | 3 +++ packages/integrations/mdx/package.json | 3 +++ packages/integrations/node/package.json | 3 +++ packages/integrations/partytown/package.json | 3 +++ packages/integrations/preact/package.json | 3 +++ packages/integrations/prefetch/package.json | 3 +++ packages/integrations/react/package.json | 3 +++ packages/integrations/sitemap/package.json | 3 +++ packages/integrations/solid/package.json | 3 +++ packages/integrations/svelte/package.json | 3 +++ packages/integrations/tailwind/package.json | 3 +++ packages/integrations/vercel/package.json | 3 +++ packages/integrations/vue/package.json | 3 +++ packages/internal-helpers/package.json | 5 +++- packages/markdown/remark/package.json | 3 +++ packages/telemetry/package.json | 3 +++ packages/underscore-redirects/package.json | 5 +++- 22 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 .changeset/eleven-buttons-wash.md diff --git a/.changeset/eleven-buttons-wash.md b/.changeset/eleven-buttons-wash.md new file mode 100644 index 000000000..0e3cd3713 --- /dev/null +++ b/.changeset/eleven-buttons-wash.md @@ -0,0 +1,25 @@ +--- +'@astrojs/cloudflare': patch +'@astrojs/partytown': patch +'@astrojs/alpinejs': patch +'@astrojs/prefetch': patch +'@astrojs/tailwind': patch +'@astrojs/markdoc': patch +'@astrojs/sitemap': patch +'@astrojs/underscore-redirects': patch +'@astrojs/preact': patch +'@astrojs/svelte': patch +'@astrojs/vercel': patch +'@astrojs/react': patch +'@astrojs/solid-js': patch +'@astrojs/node': patch +'@astrojs/lit': patch +'@astrojs/mdx': patch +'@astrojs/vue': patch +'@astrojs/internal-helpers': patch +'@astrojs/markdown-remark': patch +'@astrojs/telemetry': patch +'astro': patch +--- + +Add provenance statement when publishing the library from CI diff --git a/packages/astro/package.json b/packages/astro/package.json index 7b7ef218c..aec2fb5e5 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -226,5 +226,8 @@ "engines": { "node": ">=18.14.1", "npm": ">=6.14.0" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/alpinejs/package.json b/packages/integrations/alpinejs/package.json index 8c927159b..9b9f0f0ee 100644 --- a/packages/integrations/alpinejs/package.json +++ b/packages/integrations/alpinejs/package.json @@ -39,5 +39,8 @@ "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json index 0fc14b203..7d4d07356 100644 --- a/packages/integrations/cloudflare/package.json +++ b/packages/integrations/cloudflare/package.json @@ -58,5 +58,8 @@ "cheerio": "1.0.0-rc.12", "mocha": "^10.2.0", "wrangler": "^3.5.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/lit/package.json b/packages/integrations/lit/package.json index 54498a070..28945b53e 100644 --- a/packages/integrations/lit/package.json +++ b/packages/integrations/lit/package.json @@ -59,5 +59,8 @@ "peerDependencies": { "@webcomponents/template-shadowroot": "^0.2.1", "lit": "^2.7.0" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json index af1a1d2bc..8cb356aac 100644 --- a/packages/integrations/markdoc/package.json +++ b/packages/integrations/markdoc/package.json @@ -94,5 +94,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index cd580afd5..8bd9c4c39 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -79,5 +79,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/node/package.json b/packages/integrations/node/package.json index 337d1e65f..20739cbd7 100644 --- a/packages/integrations/node/package.json +++ b/packages/integrations/node/package.json @@ -51,5 +51,8 @@ "mocha": "^10.2.0", "node-mocks-http": "^1.13.0", "undici": "^5.23.0" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/partytown/package.json b/packages/integrations/partytown/package.json index 96c6795a4..ed70b7280 100644 --- a/packages/integrations/partytown/package.json +++ b/packages/integrations/partytown/package.json @@ -38,5 +38,8 @@ "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json index f1e5aa362..c2c24e096 100644 --- a/packages/integrations/preact/package.json +++ b/packages/integrations/preact/package.json @@ -52,5 +52,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/prefetch/package.json b/packages/integrations/prefetch/package.json index 4db207fd2..52259fb18 100644 --- a/packages/integrations/prefetch/package.json +++ b/packages/integrations/prefetch/package.json @@ -40,5 +40,8 @@ }, "dependencies": { "throttles": "^1.0.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json index 8eabf545d..1724f2d73 100644 --- a/packages/integrations/react/package.json +++ b/packages/integrations/react/package.json @@ -67,5 +67,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/sitemap/package.json b/packages/integrations/sitemap/package.json index 16de7702a..fe285e7bf 100644 --- a/packages/integrations/sitemap/package.json +++ b/packages/integrations/sitemap/package.json @@ -43,5 +43,8 @@ "chai": "^4.3.7", "mocha": "^10.2.0", "xml2js": "0.6.2" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json index 5fd37d31d..8dbccc9d9 100644 --- a/packages/integrations/solid/package.json +++ b/packages/integrations/solid/package.json @@ -47,5 +47,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json index 77ee714b0..a1b49b1ee 100644 --- a/packages/integrations/svelte/package.json +++ b/packages/integrations/svelte/package.json @@ -53,5 +53,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json index 9a90b3c92..9e958b576 100644 --- a/packages/integrations/tailwind/package.json +++ b/packages/integrations/tailwind/package.json @@ -45,5 +45,8 @@ "peerDependencies": { "astro": "workspace:^3.2.2", "tailwindcss": "^3.0.24" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index 87881e0d1..2158289db 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -72,5 +72,8 @@ "chai-jest-snapshot": "^2.0.0", "cheerio": "1.0.0-rc.12", "mocha": "^10.2.0" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index ad2075613..16a767e22 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -61,5 +61,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/internal-helpers/package.json b/packages/internal-helpers/package.json index 0ca757a03..ae7f54f53 100644 --- a/packages/internal-helpers/package.json +++ b/packages/internal-helpers/package.json @@ -37,5 +37,8 @@ "keywords": [ "astro", "astro-component" - ] + ], + "publishConfig": { + "provenance": true + } } diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json index d5bd3efae..61b3f4aaa 100644 --- a/packages/markdown/remark/package.json +++ b/packages/markdown/remark/package.json @@ -57,5 +57,8 @@ "chai": "^4.3.7", "mdast-util-mdx-expression": "^1.3.2", "mocha": "^10.2.0" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index d251c7fc9..56564db45 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -49,5 +49,8 @@ }, "engines": { "node": ">=18.14.1" + }, + "publishConfig": { + "provenance": true } } diff --git a/packages/underscore-redirects/package.json b/packages/underscore-redirects/package.json index 2531a51c2..51d81860b 100644 --- a/packages/underscore-redirects/package.json +++ b/packages/underscore-redirects/package.json @@ -38,5 +38,8 @@ "keywords": [ "astro", "astro-component" - ] + ], + "publishConfig": { + "provenance": true + } } From f277ba8b703037635bc7adee84d51eaf7dafd388 Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Tue, 3 Oct 2023 17:16:49 +0200 Subject: [PATCH 18/33] feat: expose partytown types (close #8723) (#8740) --- .changeset/tricky-otters-cross.md | 5 +++++ packages/integrations/partytown/src/index.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/tricky-otters-cross.md diff --git a/.changeset/tricky-otters-cross.md b/.changeset/tricky-otters-cross.md new file mode 100644 index 000000000..e104f78eb --- /dev/null +++ b/.changeset/tricky-otters-cross.md @@ -0,0 +1,5 @@ +--- +'@astrojs/partytown': patch +--- + +Expose types for TypeScript users diff --git a/packages/integrations/partytown/src/index.ts b/packages/integrations/partytown/src/index.ts index 13f7b1118..755026512 100644 --- a/packages/integrations/partytown/src/index.ts +++ b/packages/integrations/partytown/src/index.ts @@ -9,7 +9,7 @@ import { fileURLToPath } from 'node:url'; import sirv from './sirv.js'; const resolve = createRequire(import.meta.url).resolve; -type PartytownOptions = { +export type PartytownOptions = { config?: PartytownConfig; }; From 357270f2a3d0bf2aa634ba7e52e9d17618eff4a7 Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Tue, 3 Oct 2023 15:57:31 -0500 Subject: [PATCH 19/33] Improve `astro info` compatability (#8730) * Improve `astro info` compatability * Update packages/astro/src/cli/info/index.ts Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com> * chore: add changeset * feat(info): add copy to clipboard support on Unix machines with xclip installed --------- Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com> --- .changeset/witty-fishes-heal.md | 5 +++++ packages/astro/src/cli/info/index.ts | 22 +++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 .changeset/witty-fishes-heal.md diff --git a/.changeset/witty-fishes-heal.md b/.changeset/witty-fishes-heal.md new file mode 100644 index 000000000..0fb1d79f7 --- /dev/null +++ b/.changeset/witty-fishes-heal.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Improve `astro info` copy to clipboard compatability diff --git a/packages/astro/src/cli/info/index.ts b/packages/astro/src/cli/info/index.ts index 2ee9ffd0d..518817e06 100644 --- a/packages/astro/src/cli/info/index.ts +++ b/packages/astro/src/cli/info/index.ts @@ -41,10 +41,22 @@ export async function printInfo({ flags }: InfoOptions) { await copyToClipboard(output.trim()); } -const SUPPORTED_SYSTEM = new Set(['darwin', 'win32']); async function copyToClipboard(text: string) { const system = platform(); - if (!SUPPORTED_SYSTEM.has(system)) return; + let command = ''; + if (system === 'darwin') { + command = 'pbcopy'; + } else if (system === 'win32') { + command = 'clip'; + } else { + // Unix: check if `xclip` is installed + const output = execSync('which xclip', { encoding: 'utf8' }); + if (output[0] !== '/') { + // Did not find a path for xclip, bail out! + return; + } + command = 'xclip -sel clipboard -l 1'; + } console.log(); const { shouldCopy } = await prompts({ @@ -54,11 +66,11 @@ async function copyToClipboard(text: string) { initial: true, }); if (!shouldCopy) return; - const command = system === 'darwin' ? 'pbcopy' : 'clip'; + try { - execSync(`echo ${JSON.stringify(text.trim())} | ${command}`, { + execSync(command, { + input: text.trim(), encoding: 'utf8', - stdio: 'ignore', }); } catch (e) { console.error( From 240d8ff7c9e70594aca28d22793827e9bc717ef7 Mon Sep 17 00:00:00 2001 From: natemoo-re Date: Tue, 3 Oct 2023 21:00:07 +0000 Subject: [PATCH 20/33] [ci] format --- packages/astro/src/cli/info/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/astro/src/cli/info/index.ts b/packages/astro/src/cli/info/index.ts index 518817e06..cfa9aca8f 100644 --- a/packages/astro/src/cli/info/index.ts +++ b/packages/astro/src/cli/info/index.ts @@ -46,7 +46,7 @@ async function copyToClipboard(text: string) { let command = ''; if (system === 'darwin') { command = 'pbcopy'; - } else if (system === 'win32') { + } else if (system === 'win32') { command = 'clip'; } else { // Unix: check if `xclip` is installed From 71618f4074244ec203d154788b4aff29fce094dd Mon Sep 17 00:00:00 2001 From: Kobe Ruado Date: Wed, 4 Oct 2023 17:55:02 +0800 Subject: [PATCH 21/33] Fix markdown rehype plugin example (#8733) --- packages/astro/src/@types/astro.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index eab00891d..393932d99 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -1168,10 +1168,10 @@ export interface AstroUserConfig { * Pass [rehype plugins](https://github.com/remarkjs/remark-rehype) to customize how your Markdown's output HTML is processed. You can import and apply the plugin function (recommended), or pass the plugin name as a string. * * ```js - * import rehypeMinifyHtml from 'rehype-minify'; + * import { rehypeAccessibleEmojis } from 'rehype-accessible-emojis'; * { * markdown: { - * rehypePlugins: [rehypeMinifyHtml] + * rehypePlugins: [rehypeAccessibleEmojis] * } * } * ``` From 21f4826576c2c812a1604e18717799da3470decd Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 4 Oct 2023 12:23:58 +0200 Subject: [PATCH 22/33] Fixes: Shiki syntax highlighting adds is:raw attribute to the HTML output (#8715) Co-authored-by: Emanuele Stoppa --- .changeset/cuddly-vans-reply.md | 5 +++++ packages/markdown/remark/src/remark-shiki.ts | 4 ++-- packages/markdown/remark/test/shiki.js | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 .changeset/cuddly-vans-reply.md create mode 100644 packages/markdown/remark/test/shiki.js diff --git a/.changeset/cuddly-vans-reply.md b/.changeset/cuddly-vans-reply.md new file mode 100644 index 000000000..702aecc22 --- /dev/null +++ b/.changeset/cuddly-vans-reply.md @@ -0,0 +1,5 @@ +--- +'@astrojs/markdown-remark': patch +--- + +Remove `is:raw` from remark Shiki plugin diff --git a/packages/markdown/remark/src/remark-shiki.ts b/packages/markdown/remark/src/remark-shiki.ts index 6cd3861e5..58ed16369 100644 --- a/packages/markdown/remark/src/remark-shiki.ts +++ b/packages/markdown/remark/src/remark-shiki.ts @@ -76,8 +76,8 @@ export function remarkShiki({ // It would become this before hitting our regexes: // <span class="line" - // Replace "shiki" class naming with "astro" and add "is:raw". - html = html.replace(/
 {
+	const processor = await createMarkdownProcessor();
+
+	it('does not add is:raw to the output', async () => {
+		const {
+			code,
+		} = await processor.render('```\ntest\n```');
+
+		chai
+			.expect(code)
+			.not.to.contain("is:raw");
+	});
+});
\ No newline at end of file

From 272ad45958312b32afffbeff21a88891a2015f68 Mon Sep 17 00:00:00 2001
From: bluwy 
Date: Wed, 4 Oct 2023 10:26:21 +0000
Subject: [PATCH 23/33] [ci] format

---
 packages/markdown/remark/test/shiki.js | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/packages/markdown/remark/test/shiki.js b/packages/markdown/remark/test/shiki.js
index 5077623e8..cc5c6b771 100644
--- a/packages/markdown/remark/test/shiki.js
+++ b/packages/markdown/remark/test/shiki.js
@@ -5,12 +5,8 @@ describe('shiki syntax highlighting', async () => {
 	const processor = await createMarkdownProcessor();
 
 	it('does not add is:raw to the output', async () => {
-		const {
-			code,
-		} = await processor.render('```\ntest\n```');
+		const { code } = await processor.render('```\ntest\n```');
 
-		chai
-			.expect(code)
-			.not.to.contain("is:raw");
+		chai.expect(code).not.to.contain('is:raw');
 	});
-});
\ No newline at end of file
+});

From 21e0757ea22a57d344c934045ca19db93b684436 Mon Sep 17 00:00:00 2001
From: Arsh <69170106+lilnasy@users.noreply.github.com>
Date: Wed, 4 Oct 2023 10:28:36 +0000
Subject: [PATCH 24/33] chore: remove undici polyfill (#8729)

---
 .changeset/green-crabs-breathe.md             |  5 ++
 .changeset/thirty-ravens-fly.md               |  5 ++
 packages/astro/astro.js                       |  7 +--
 packages/astro/package.json                   |  1 -
 packages/astro/src/core/endpoint/index.ts     | 15 +----
 packages/astro/src/core/polyfill.ts           | 60 +------------------
 packages/astro/test/test-utils.js             |  2 +-
 packages/integrations/node/package.json       |  3 +-
 .../node/src/createOutgoingHttpHeaders.ts     | 17 ++----
 packages/telemetry/package.json               |  1 -
 packages/telemetry/src/post.ts                |  1 -
 pnpm-lock.yaml                                | 10 +---
 12 files changed, 22 insertions(+), 105 deletions(-)
 create mode 100644 .changeset/green-crabs-breathe.md
 create mode 100644 .changeset/thirty-ravens-fly.md

diff --git a/.changeset/green-crabs-breathe.md b/.changeset/green-crabs-breathe.md
new file mode 100644
index 000000000..bc4728da4
--- /dev/null
+++ b/.changeset/green-crabs-breathe.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/telemetry': patch
+---
+
+Removed an unnecessary dependency.
diff --git a/.changeset/thirty-ravens-fly.md b/.changeset/thirty-ravens-fly.md
new file mode 100644
index 000000000..ec7d56f82
--- /dev/null
+++ b/.changeset/thirty-ravens-fly.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Node-based adapters now create less server-side javascript
diff --git a/packages/astro/astro.js b/packages/astro/astro.js
index ef5349854..f227ae9e9 100755
--- a/packages/astro/astro.js
+++ b/packages/astro/astro.js
@@ -3,7 +3,6 @@
 
 // ISOMORPHIC FILE: NO TOP-LEVEL IMPORT/REQUIRE() ALLOWED
 // This file has to run as both ESM and CJS on older Node.js versions
-// Needed for Stackblitz: https://github.com/stackblitz/webcontainer-core/issues/281
 
 const CI_INSTRUCTIONS = {
 	NETLIFY: 'https://docs.netlify.com/configure-builds/manage-dependencies/#node-js-and-javascript',
@@ -16,15 +15,11 @@ const CI_INSTRUCTIONS = {
 const engines = '>=18.14.1';
 const skipSemverCheckIfAbove = 19;
 
-// HACK (2023-08-18) Stackblitz does not support Node 18 yet, so we'll fake Node 16 support for some time until it's supported
-// TODO: Remove when Node 18 is supported on Stackblitz
-const isStackblitz = process.env.SHELL === '/bin/jsh' && process.versions.webcontainer != null;
-
 /** `astro *` */
 async function main() {
 	const version = process.versions.node;
 	// Fast-path for higher Node.js versions
-	if (!isStackblitz && (parseInt(version) || 0) <= skipSemverCheckIfAbove) {
+	if ((parseInt(version) || 0) <= skipSemverCheckIfAbove) {
 		try {
 			const semver = await import('semver');
 			if (!semver.satisfies(version, engines)) {
diff --git a/packages/astro/package.json b/packages/astro/package.json
index aec2fb5e5..e335a6461 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -168,7 +168,6 @@
     "string-width": "^6.1.0",
     "strip-ansi": "^7.1.0",
     "tsconfig-resolver": "^3.0.1",
-    "undici": "^5.23.0",
     "unist-util-visit": "^4.1.2",
     "vfile": "^5.3.7",
     "vite": "^4.4.9",
diff --git a/packages/astro/src/core/endpoint/index.ts b/packages/astro/src/core/endpoint/index.ts
index 380e9e345..9720fea66 100644
--- a/packages/astro/src/core/endpoint/index.ts
+++ b/packages/astro/src/core/endpoint/index.ts
@@ -39,7 +39,6 @@ export function createAPIContext({
 	props,
 	adapterName,
 }: CreateAPIContext): APIContext {
-	initResponseWithEncoding();
 	const context = {
 		cookies: new AstroCookies(request),
 		request,
@@ -92,10 +91,7 @@ export function createAPIContext({
 
 type ResponseParameters = ConstructorParameters;
 
-export let ResponseWithEncoding: ReturnType;
-// TODO Remove this after StackBlitz supports Node 18.
-let initResponseWithEncoding = () => {
-	class LocalResponseWithEncoding extends Response {
+	export class ResponseWithEncoding extends Response {
 		constructor(
 			body: ResponseParameters[0],
 			init: ResponseParameters[1],
@@ -122,15 +118,6 @@ let initResponseWithEncoding = () => {
 		}
 	}
 
-	// Set the module scoped variable.
-	ResponseWithEncoding = LocalResponseWithEncoding;
-
-	// Turn this into a noop.
-	initResponseWithEncoding = (() => {}) as any;
-
-	return LocalResponseWithEncoding;
-};
-
 export async function callEndpoint(
 	mod: EndpointHandler,
 	env: Environment,
diff --git a/packages/astro/src/core/polyfill.ts b/packages/astro/src/core/polyfill.ts
index ea7916eb3..3b271d464 100644
--- a/packages/astro/src/core/polyfill.ts
+++ b/packages/astro/src/core/polyfill.ts
@@ -1,63 +1,7 @@
 import crypto from 'node:crypto';
-import {
-	ByteLengthQueuingStrategy,
-	CountQueuingStrategy,
-	ReadableByteStreamController,
-	ReadableStream,
-	ReadableStreamBYOBReader,
-	ReadableStreamBYOBRequest,
-	ReadableStreamDefaultController,
-	ReadableStreamDefaultReader,
-	TransformStream,
-	WritableStream,
-	WritableStreamDefaultController,
-	WritableStreamDefaultWriter,
-} from 'node:stream/web';
-import { File, FormData, Headers, Request, Response, fetch } from 'undici';
-
-// NOTE: This file does not intend to polyfill everything that exists, its main goal is to make life easier
-// for users deploying to runtime that do support these features. In the future, we hope for this file to disappear.
-
-// HACK (2023-08-18) Stackblitz does not support Node 18 yet, so we'll fake Node 16 support for some time until it's supported
-// TODO: Remove when Node 18 is supported on Stackblitz. File should get imported from `node:buffer` instead of `undici` once this is removed
-const isStackblitz = process.env.SHELL === '/bin/jsh' && process.versions.webcontainer != null;
+import buffer from 'node:buffer';
 
 export function apply() {
-	if (isStackblitz) {
-		const neededPolyfills = {
-			ByteLengthQueuingStrategy,
-			CountQueuingStrategy,
-			ReadableByteStreamController,
-			ReadableStream,
-			ReadableStreamBYOBReader,
-			ReadableStreamBYOBRequest,
-			ReadableStreamDefaultController,
-			ReadableStreamDefaultReader,
-			TransformStream,
-			WritableStream,
-			WritableStreamDefaultController,
-			WritableStreamDefaultWriter,
-			File,
-			FormData,
-			Headers,
-			Request,
-			Response,
-			fetch,
-		};
-
-		for (let polyfillName of Object.keys(neededPolyfills)) {
-			if (Object.hasOwnProperty.call(globalThis, polyfillName)) continue;
-
-			// Add polyfill to globalThis
-			Object.defineProperty(globalThis, polyfillName, {
-				configurable: true,
-				enumerable: true,
-				writable: true,
-				value: neededPolyfills[polyfillName as keyof typeof neededPolyfills],
-			});
-		}
-	}
-
 	// Remove when Node 18 is dropped for Node 20
 	if (!globalThis.crypto) {
 		Object.defineProperty(globalThis, 'crypto', {
@@ -68,7 +12,7 @@ export function apply() {
 	// Remove when Node 18 is dropped for Node 20
 	if (!globalThis.File) {
 		Object.defineProperty(globalThis, 'File', {
-			value: File,
+			value: buffer.File,
 		});
 	}
 }
diff --git a/packages/astro/test/test-utils.js b/packages/astro/test/test-utils.js
index e71daa9ba..622ede1f6 100644
--- a/packages/astro/test/test-utils.js
+++ b/packages/astro/test/test-utils.js
@@ -170,7 +170,7 @@ export async function loadFixture(inlineConfig) {
 			try {
 				return await fetch(resolvedUrl, init);
 			} catch (err) {
-				// undici throws a vague error when it fails, so we log the url here to easily debug it
+				// node fetch throws a vague error when it fails, so we log the url here to easily debug it
 				if (err.message?.includes('fetch failed')) {
 					console.error(`[astro test] failed to fetch ${resolvedUrl}`);
 					console.error(err);
diff --git a/packages/integrations/node/package.json b/packages/integrations/node/package.json
index 20739cbd7..865c1541d 100644
--- a/packages/integrations/node/package.json
+++ b/packages/integrations/node/package.json
@@ -49,8 +49,7 @@
     "cheerio": "1.0.0-rc.12",
     "express": "^4.18.2",
     "mocha": "^10.2.0",
-    "node-mocks-http": "^1.13.0",
-    "undici": "^5.23.0"
+    "node-mocks-http": "^1.13.0"
   },
   "publishConfig": {
     "provenance": true
diff --git a/packages/integrations/node/src/createOutgoingHttpHeaders.ts b/packages/integrations/node/src/createOutgoingHttpHeaders.ts
index e6c0c0ba4..a2f9b74e8 100644
--- a/packages/integrations/node/src/createOutgoingHttpHeaders.ts
+++ b/packages/integrations/node/src/createOutgoingHttpHeaders.ts
@@ -8,15 +8,12 @@ import type { OutgoingHttpHeaders } from 'node:http';
  * @returns NodeJS OutgoingHttpHeaders object with multiple set-cookie handled as an array of values
  */
 export const createOutgoingHttpHeaders = (
-	webHeaders: Headers | undefined | null
+	headers: Headers | undefined | null
 ): OutgoingHttpHeaders | undefined => {
-	if (!webHeaders) {
+	if (!headers) {
 		return undefined;
 	}
-
-	// re-type to access Header.getSetCookie()
-	const headers = webHeaders as HeadersWithGetSetCookie;
-
+	
 	// at this point, a multi-value'd set-cookie header is invalid (it was concatenated as a single CSV, which is not valid for set-cookie)
 	const nodeHeaders: OutgoingHttpHeaders = Object.fromEntries(headers.entries());
 
@@ -26,7 +23,8 @@ export const createOutgoingHttpHeaders = (
 
 	// if there is > 1 set-cookie header, we have to fix it to be an array of values
 	if (headers.has('set-cookie')) {
-		const cookieHeaders = headers.getSetCookie();
+		// @ts-expect-error
+		const cookieHeaders = headers.getSetCookie() as string[];
 		if (cookieHeaders.length > 1) {
 			// the Headers.entries() API already normalized all header names to lower case so we can safely index this as 'set-cookie'
 			nodeHeaders['set-cookie'] = cookieHeaders;
@@ -35,8 +33,3 @@ export const createOutgoingHttpHeaders = (
 
 	return nodeHeaders;
 };
-
-interface HeadersWithGetSetCookie extends Headers {
-	// the @astrojs/webapi polyfill makes this available (as of undici@5.19.0), but tsc doesn't pick it up on the built-in Headers type from DOM lib
-	getSetCookie(): string[];
-}
diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json
index 56564db45..5593bce47 100644
--- a/packages/telemetry/package.json
+++ b/packages/telemetry/package.json
@@ -35,7 +35,6 @@
     "dset": "^3.1.2",
     "is-docker": "^3.0.0",
     "is-wsl": "^3.0.0",
-    "undici": "^5.23.0",
     "which-pm-runs": "^1.1.0"
   },
   "devDependencies": {
diff --git a/packages/telemetry/src/post.ts b/packages/telemetry/src/post.ts
index 1c1bd83b2..6aef03bc9 100644
--- a/packages/telemetry/src/post.ts
+++ b/packages/telemetry/src/post.ts
@@ -1,5 +1,4 @@
 const ASTRO_TELEMETRY_ENDPOINT = `https://telemetry.astro.build/api/v1/record`;
-import { fetch } from 'undici';
 
 export function post(body: Record): Promise {
 	return fetch(ASTRO_TELEMETRY_ENDPOINT, {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8af88487b..cd7051c04 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -628,9 +628,6 @@ importers:
       tsconfig-resolver:
         specifier: ^3.0.1
         version: 3.0.1
-      undici:
-        specifier: ^5.23.0
-        version: 5.23.0
       unist-util-visit:
         specifier: ^4.1.2
         version: 4.1.2
@@ -4307,9 +4304,6 @@ importers:
       node-mocks-http:
         specifier: ^1.13.0
         version: 1.13.0
-      undici:
-        specifier: ^5.23.0
-        version: 5.23.0
 
   packages/integrations/node/test/fixtures/api-route:
     dependencies:
@@ -5005,9 +4999,6 @@ importers:
       is-wsl:
         specifier: ^3.0.0
         version: 3.0.0
-      undici:
-        specifier: ^5.23.0
-        version: 5.23.0
       which-pm-runs:
         specifier: ^1.1.0
         version: 1.1.0
@@ -17276,6 +17267,7 @@ packages:
     engines: {node: '>=14.0'}
     dependencies:
       busboy: 1.6.0
+    dev: true
 
   /unherit@3.0.1:
     resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==}

From b18d4bf3b17cf98cf5bbc488772773bdfcc38ec4 Mon Sep 17 00:00:00 2001
From: bluwy 
Date: Wed, 4 Oct 2023 10:31:04 +0000
Subject: [PATCH 25/33] [ci] format

---
 packages/astro/src/core/endpoint/index.ts     | 40 +++++++++----------
 packages/astro/src/core/polyfill.ts           |  2 +-
 .../node/src/createOutgoingHttpHeaders.ts     |  2 +-
 3 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/packages/astro/src/core/endpoint/index.ts b/packages/astro/src/core/endpoint/index.ts
index 9720fea66..b62ba8bed 100644
--- a/packages/astro/src/core/endpoint/index.ts
+++ b/packages/astro/src/core/endpoint/index.ts
@@ -91,32 +91,28 @@ export function createAPIContext({
 
 type ResponseParameters = ConstructorParameters;
 
-	export class ResponseWithEncoding extends Response {
-		constructor(
-			body: ResponseParameters[0],
-			init: ResponseParameters[1],
-			encoding?: BufferEncoding
-		) {
-			// If a body string is given, try to encode it to preserve the behaviour as simple objects.
-			// We don't do the full handling as simple objects so users can control how headers are set instead.
-			if (typeof body === 'string') {
-				// In NodeJS, we can use Buffer.from which supports all BufferEncoding
-				if (typeof Buffer !== 'undefined' && Buffer.from) {
-					body = Buffer.from(body, encoding);
-				}
-				// In non-NodeJS, use the web-standard TextEncoder for utf-8 strings
-				else if (encoding == null || encoding === 'utf8' || encoding === 'utf-8') {
-					body = encoder.encode(body);
-				}
+export class ResponseWithEncoding extends Response {
+	constructor(body: ResponseParameters[0], init: ResponseParameters[1], encoding?: BufferEncoding) {
+		// If a body string is given, try to encode it to preserve the behaviour as simple objects.
+		// We don't do the full handling as simple objects so users can control how headers are set instead.
+		if (typeof body === 'string') {
+			// In NodeJS, we can use Buffer.from which supports all BufferEncoding
+			if (typeof Buffer !== 'undefined' && Buffer.from) {
+				body = Buffer.from(body, encoding);
 			}
-
-			super(body, init);
-
-			if (encoding) {
-				this.headers.set('X-Astro-Encoding', encoding);
+			// In non-NodeJS, use the web-standard TextEncoder for utf-8 strings
+			else if (encoding == null || encoding === 'utf8' || encoding === 'utf-8') {
+				body = encoder.encode(body);
 			}
 		}
+
+		super(body, init);
+
+		if (encoding) {
+			this.headers.set('X-Astro-Encoding', encoding);
+		}
 	}
+}
 
 export async function callEndpoint(
 	mod: EndpointHandler,
diff --git a/packages/astro/src/core/polyfill.ts b/packages/astro/src/core/polyfill.ts
index 3b271d464..c183d23f6 100644
--- a/packages/astro/src/core/polyfill.ts
+++ b/packages/astro/src/core/polyfill.ts
@@ -1,5 +1,5 @@
-import crypto from 'node:crypto';
 import buffer from 'node:buffer';
+import crypto from 'node:crypto';
 
 export function apply() {
 	// Remove when Node 18 is dropped for Node 20
diff --git a/packages/integrations/node/src/createOutgoingHttpHeaders.ts b/packages/integrations/node/src/createOutgoingHttpHeaders.ts
index a2f9b74e8..781a74de6 100644
--- a/packages/integrations/node/src/createOutgoingHttpHeaders.ts
+++ b/packages/integrations/node/src/createOutgoingHttpHeaders.ts
@@ -13,7 +13,7 @@ export const createOutgoingHttpHeaders = (
 	if (!headers) {
 		return undefined;
 	}
-	
+
 	// at this point, a multi-value'd set-cookie header is invalid (it was concatenated as a single CSV, which is not valid for set-cookie)
 	const nodeHeaders: OutgoingHttpHeaders = Object.fromEntries(headers.entries());
 

From aa265d73024422967c1b1c68ad268c419c6c798f Mon Sep 17 00:00:00 2001
From: Bjorn Lu 
Date: Wed, 4 Oct 2023 21:18:39 +0800
Subject: [PATCH 26/33] Remove unused CSS output files when inlined (#8743)

---
 .changeset/tasty-meals-buy.md                 |  5 +++++
 .../src/core/build/plugins/plugin-css.ts      | 22 +++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)
 create mode 100644 .changeset/tasty-meals-buy.md

diff --git a/.changeset/tasty-meals-buy.md b/.changeset/tasty-meals-buy.md
new file mode 100644
index 000000000..1df456b68
--- /dev/null
+++ b/.changeset/tasty-meals-buy.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Remove unused CSS output files when inlined
diff --git a/packages/astro/src/core/build/plugins/plugin-css.ts b/packages/astro/src/core/build/plugins/plugin-css.ts
index d85dc8e56..85652e13b 100644
--- a/packages/astro/src/core/build/plugins/plugin-css.ts
+++ b/packages/astro/src/core/build/plugins/plugin-css.ts
@@ -200,7 +200,7 @@ function rollupPluginAstroBuildCSS(options: PluginOptions): VitePlugin[] {
 			const inlineConfig = settings.config.build.inlineStylesheets;
 			const { assetsInlineLimit = 4096 } = settings.config.vite?.build ?? {};
 
-			Object.entries(bundle).forEach(([_, stylesheet]) => {
+			Object.entries(bundle).forEach(([id, stylesheet]) => {
 				if (
 					stylesheet.type !== 'asset' ||
 					stylesheet.name?.endsWith('.css') !== true ||
@@ -224,10 +224,15 @@ function rollupPluginAstroBuildCSS(options: PluginOptions): VitePlugin[] {
 					: { type: 'external', src: stylesheet.fileName };
 
 				const pages = Array.from(eachPageData(internals));
+				let sheetAddedToPage = false;
 
 				pages.forEach((pageData) => {
 					const orderingInfo = pagesToCss[pageData.moduleSpecifier]?.[stylesheet.fileName];
-					if (orderingInfo !== undefined) return pageData.styles.push({ ...orderingInfo, sheet });
+					if (orderingInfo !== undefined) {
+						pageData.styles.push({ ...orderingInfo, sheet });
+						sheetAddedToPage = true;
+						return;
+					}
 
 					const propagatedPaths = pagesToPropagatedCss[pageData.moduleSpecifier];
 					if (propagatedPaths === undefined) return;
@@ -243,8 +248,21 @@ function rollupPluginAstroBuildCSS(options: PluginOptions): VitePlugin[] {
 							pageData.propagatedStyles.set(pageInfoId, new Set()).get(pageInfoId)!;
 
 						propagatedStyles.add(sheet);
+						sheetAddedToPage = true;
 					});
 				});
+
+				if (toBeInlined && sheetAddedToPage) {
+					// CSS is already added to all used pages, we can delete it from the bundle
+					// and make sure no chunks reference it via `importedCss` (for Vite preloading)
+					// to avoid duplicate CSS.
+					delete bundle[id];
+					for (const chunk of Object.values(bundle)) {
+						if (chunk.type === 'chunk') {
+							chunk.viteMetadata?.importedCss?.delete(id);
+						}
+					}
+				}
 			});
 		},
 	};

From d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9 Mon Sep 17 00:00:00 2001
From: Nate Moore 
Date: Wed, 4 Oct 2023 15:07:21 -0500
Subject: [PATCH 27/33] fix(#8746): improve error message for dynamic component
 usage (#8747)

---
 .changeset/fair-otters-worry.md                | 5 +++++
 packages/astro/src/runtime/server/hydration.ts | 7 ++++---
 2 files changed, 9 insertions(+), 3 deletions(-)
 create mode 100644 .changeset/fair-otters-worry.md

diff --git a/.changeset/fair-otters-worry.md b/.changeset/fair-otters-worry.md
new file mode 100644
index 000000000..f62496140
--- /dev/null
+++ b/.changeset/fair-otters-worry.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Improve error message when user attempts to render a dynamic component reference
diff --git a/packages/astro/src/runtime/server/hydration.ts b/packages/astro/src/runtime/server/hydration.ts
index e9d99c81a..09f42a9b5 100644
--- a/packages/astro/src/runtime/server/hydration.ts
+++ b/packages/astro/src/runtime/server/hydration.ts
@@ -122,9 +122,10 @@ export async function generateHydrateScript(
 	const { hydrate, componentUrl, componentExport } = metadata;
 
 	if (!componentExport.value) {
-		throw new Error(
-			`Unable to resolve a valid export for "${metadata.displayName}"! Please open an issue at https://astro.build/issues!`
-		);
+		throw new AstroError({
+			...AstroErrorData.NoMatchingImport,
+			message: AstroErrorData.NoMatchingImport.message(metadata.displayName),
+		});
 	}
 
 	const island: SSRElement = {

From 78adbc4433208458291e36713909762e148e1e5d Mon Sep 17 00:00:00 2001
From: Jacob Lamb 
Date: Wed, 4 Oct 2023 23:18:45 -0700
Subject: [PATCH 28/33] Update Netlify SSR link (#8700)

---
 .changeset/thick-cups-knock.md     | 5 +++++
 packages/astro/src/@types/astro.ts | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
 create mode 100644 .changeset/thick-cups-knock.md

diff --git a/.changeset/thick-cups-knock.md b/.changeset/thick-cups-knock.md
new file mode 100644
index 000000000..e51ec5b7e
--- /dev/null
+++ b/.changeset/thick-cups-knock.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Update link for Netlify SSR
diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts
index 393932d99..2217e76f2 100644
--- a/packages/astro/src/@types/astro.ts
+++ b/packages/astro/src/@types/astro.ts
@@ -636,7 +636,7 @@ export interface AstroUserConfig {
 	 * @see output
 	 * @description
 	 *
-	 * Deploy to your favorite server, serverless, or edge host with build adapters. Import one of our first-party adapters for [Netlify](https://docs.astro.build/en/guides/deploy/netlify/#adapter-for-ssredge), [Vercel](https://docs.astro.build/en/guides/deploy/vercel/#adapter-for-ssr), and more to engage Astro SSR.
+	 * Deploy to your favorite server, serverless, or edge host with build adapters. Import one of our first-party adapters for [Netlify](https://docs.astro.build/en/guides/deploy/netlify/#adapter-for-ssr), [Vercel](https://docs.astro.build/en/guides/deploy/vercel/#adapter-for-ssr), and more to engage Astro SSR.
 	 *
 	 * [See our Server-side Rendering guide](https://docs.astro.build/en/guides/server-side-rendering/) for more on SSR, and [our deployment guides](https://docs.astro.build/en/guides/deploy/) for a complete list of hosts.
 	 *

From 584d6f068003c5f1d3cb6c04a69c7a33db0b4f11 Mon Sep 17 00:00:00 2001
From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com>
Date: Thu, 5 Oct 2023 03:10:06 -0700
Subject: [PATCH 29/33] [ci] release (#8738)

Co-authored-by: github-actions[bot] 
---
 .changeset/cuddly-vans-reply.md               |   5 -
 .changeset/eleven-buttons-wash.md             |  25 ----
 .changeset/fair-otters-worry.md               |   5 -
 .changeset/green-crabs-breathe.md             |   5 -
 .changeset/red-masks-drop.md                  |   5 -
 .changeset/tasty-meals-buy.md                 |   5 -
 .changeset/thick-cups-knock.md                |   5 -
 .changeset/thirty-ravens-fly.md               |   5 -
 .changeset/tricky-otters-cross.md             |   5 -
 .changeset/witty-fishes-heal.md               |   5 -
 examples/basics/package.json                  |   2 +-
 examples/blog/package.json                    |   6 +-
 examples/component/package.json               |   2 +-
 examples/framework-alpine/package.json        |   4 +-
 examples/framework-lit/package.json           |   4 +-
 examples/framework-multiple/package.json      |  12 +-
 examples/framework-preact/package.json        |   4 +-
 examples/framework-react/package.json         |   4 +-
 examples/framework-solid/package.json         |   4 +-
 examples/framework-svelte/package.json        |   4 +-
 examples/framework-vue/package.json           |   4 +-
 examples/hackernews/package.json              |   4 +-
 examples/integration/package.json             |   2 +-
 examples/middleware/package.json              |   4 +-
 examples/minimal/package.json                 |   2 +-
 examples/non-html-pages/package.json          |   2 +-
 examples/portfolio/package.json               |   2 +-
 examples/ssr/package.json                     |   6 +-
 examples/view-transitions/package.json        |   6 +-
 examples/with-markdoc/package.json            |   4 +-
 examples/with-markdown-plugins/package.json   |   4 +-
 examples/with-markdown-shiki/package.json     |   2 +-
 examples/with-mdx/package.json                |   6 +-
 examples/with-nanostores/package.json         |   4 +-
 examples/with-tailwindcss/package.json        |   6 +-
 examples/with-vite-plugin-pwa/package.json    |   2 +-
 examples/with-vitest/package.json             |   2 +-
 packages/astro/CHANGELOG.md                   |  23 ++++
 packages/astro/package.json                   |   2 +-
 packages/integrations/alpinejs/CHANGELOG.md   |   6 +
 packages/integrations/alpinejs/package.json   |   2 +-
 packages/integrations/cloudflare/CHANGELOG.md |  10 ++
 packages/integrations/cloudflare/package.json |   4 +-
 packages/integrations/lit/CHANGELOG.md        |   6 +
 packages/integrations/lit/package.json        |   2 +-
 packages/integrations/markdoc/CHANGELOG.md    |  10 ++
 packages/integrations/markdoc/package.json    |   4 +-
 packages/integrations/mdx/CHANGELOG.md        |  10 ++
 packages/integrations/mdx/package.json        |   4 +-
 packages/integrations/node/CHANGELOG.md       |   9 ++
 packages/integrations/node/package.json       |   4 +-
 packages/integrations/partytown/CHANGELOG.md  |   8 ++
 packages/integrations/partytown/package.json  |   2 +-
 packages/integrations/preact/CHANGELOG.md     |   6 +
 packages/integrations/preact/package.json     |   2 +-
 packages/integrations/prefetch/CHANGELOG.md   |   6 +
 packages/integrations/prefetch/package.json   |   2 +-
 packages/integrations/react/CHANGELOG.md      |   6 +
 packages/integrations/react/package.json      |   2 +-
 packages/integrations/sitemap/CHANGELOG.md    |   6 +
 packages/integrations/sitemap/package.json    |   2 +-
 packages/integrations/solid/CHANGELOG.md      |   6 +
 packages/integrations/solid/package.json      |   2 +-
 packages/integrations/svelte/CHANGELOG.md     |   9 ++
 packages/integrations/svelte/package.json     |   4 +-
 packages/integrations/tailwind/CHANGELOG.md   |   9 ++
 packages/integrations/tailwind/package.json   |   4 +-
 packages/integrations/vercel/CHANGELOG.md     |  10 ++
 packages/integrations/vercel/package.json     |   4 +-
 packages/integrations/vue/CHANGELOG.md        |   9 ++
 packages/integrations/vue/package.json        |   4 +-
 packages/internal-helpers/CHANGELOG.md        |   6 +
 packages/internal-helpers/package.json        |   2 +-
 packages/markdown/remark/CHANGELOG.md         |  11 ++
 packages/markdown/remark/package.json         |   4 +-
 packages/telemetry/CHANGELOG.md               |   8 ++
 packages/telemetry/package.json               |   2 +-
 packages/underscore-redirects/CHANGELOG.md    |   6 +
 packages/underscore-redirects/package.json    |   2 +-
 pnpm-lock.yaml                                | 109 +++++++++---------
 80 files changed, 318 insertions(+), 209 deletions(-)
 delete mode 100644 .changeset/cuddly-vans-reply.md
 delete mode 100644 .changeset/eleven-buttons-wash.md
 delete mode 100644 .changeset/fair-otters-worry.md
 delete mode 100644 .changeset/green-crabs-breathe.md
 delete mode 100644 .changeset/red-masks-drop.md
 delete mode 100644 .changeset/tasty-meals-buy.md
 delete mode 100644 .changeset/thick-cups-knock.md
 delete mode 100644 .changeset/thirty-ravens-fly.md
 delete mode 100644 .changeset/tricky-otters-cross.md
 delete mode 100644 .changeset/witty-fishes-heal.md

diff --git a/.changeset/cuddly-vans-reply.md b/.changeset/cuddly-vans-reply.md
deleted file mode 100644
index 702aecc22..000000000
--- a/.changeset/cuddly-vans-reply.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@astrojs/markdown-remark': patch
----
-
-Remove `is:raw` from remark Shiki plugin
diff --git a/.changeset/eleven-buttons-wash.md b/.changeset/eleven-buttons-wash.md
deleted file mode 100644
index 0e3cd3713..000000000
--- a/.changeset/eleven-buttons-wash.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-'@astrojs/cloudflare': patch
-'@astrojs/partytown': patch
-'@astrojs/alpinejs': patch
-'@astrojs/prefetch': patch
-'@astrojs/tailwind': patch
-'@astrojs/markdoc': patch
-'@astrojs/sitemap': patch
-'@astrojs/underscore-redirects': patch
-'@astrojs/preact': patch
-'@astrojs/svelte': patch
-'@astrojs/vercel': patch
-'@astrojs/react': patch
-'@astrojs/solid-js': patch
-'@astrojs/node': patch
-'@astrojs/lit': patch
-'@astrojs/mdx': patch
-'@astrojs/vue': patch
-'@astrojs/internal-helpers': patch
-'@astrojs/markdown-remark': patch
-'@astrojs/telemetry': patch
-'astro': patch
----
-
-Add provenance statement when publishing the library from CI
diff --git a/.changeset/fair-otters-worry.md b/.changeset/fair-otters-worry.md
deleted file mode 100644
index f62496140..000000000
--- a/.changeset/fair-otters-worry.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Improve error message when user attempts to render a dynamic component reference
diff --git a/.changeset/green-crabs-breathe.md b/.changeset/green-crabs-breathe.md
deleted file mode 100644
index bc4728da4..000000000
--- a/.changeset/green-crabs-breathe.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@astrojs/telemetry': patch
----
-
-Removed an unnecessary dependency.
diff --git a/.changeset/red-masks-drop.md b/.changeset/red-masks-drop.md
deleted file mode 100644
index 3564fa9e8..000000000
--- a/.changeset/red-masks-drop.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Fix `tsconfig.json` update causing the server to crash
diff --git a/.changeset/tasty-meals-buy.md b/.changeset/tasty-meals-buy.md
deleted file mode 100644
index 1df456b68..000000000
--- a/.changeset/tasty-meals-buy.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Remove unused CSS output files when inlined
diff --git a/.changeset/thick-cups-knock.md b/.changeset/thick-cups-knock.md
deleted file mode 100644
index e51ec5b7e..000000000
--- a/.changeset/thick-cups-knock.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Update link for Netlify SSR
diff --git a/.changeset/thirty-ravens-fly.md b/.changeset/thirty-ravens-fly.md
deleted file mode 100644
index ec7d56f82..000000000
--- a/.changeset/thirty-ravens-fly.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Node-based adapters now create less server-side javascript
diff --git a/.changeset/tricky-otters-cross.md b/.changeset/tricky-otters-cross.md
deleted file mode 100644
index e104f78eb..000000000
--- a/.changeset/tricky-otters-cross.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@astrojs/partytown': patch
----
-
-Expose types for TypeScript users
diff --git a/.changeset/witty-fishes-heal.md b/.changeset/witty-fishes-heal.md
deleted file mode 100644
index 0fb1d79f7..000000000
--- a/.changeset/witty-fishes-heal.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'astro': patch
----
-
-Improve `astro info` copy to clipboard compatability
diff --git a/examples/basics/package.json b/examples/basics/package.json
index ef4594b62..912e95290 100644
--- a/examples/basics/package.json
+++ b/examples/basics/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/blog/package.json b/examples/blog/package.json
index 45faa7718..55e083973 100644
--- a/examples/blog/package.json
+++ b/examples/blog/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/mdx": "^1.1.0",
+    "@astrojs/mdx": "^1.1.1",
     "@astrojs/rss": "^3.0.0",
-    "@astrojs/sitemap": "^3.0.0",
-    "astro": "^3.2.2"
+    "@astrojs/sitemap": "^3.0.1",
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/component/package.json b/examples/component/package.json
index f9d2b5c14..701f1d180 100644
--- a/examples/component/package.json
+++ b/examples/component/package.json
@@ -15,7 +15,7 @@
   ],
   "scripts": {},
   "devDependencies": {
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   },
   "peerDependencies": {
     "astro": "^2.0.0-beta.0"
diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json
index ce2ada0ff..732152d0b 100644
--- a/examples/framework-alpine/package.json
+++ b/examples/framework-alpine/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/alpinejs": "^0.3.0",
+    "@astrojs/alpinejs": "^0.3.1",
     "@types/alpinejs": "^3.7.2",
     "alpinejs": "^3.12.3",
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json
index 23e2b6fe4..407227d7f 100644
--- a/examples/framework-lit/package.json
+++ b/examples/framework-lit/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/lit": "^3.0.0",
+    "@astrojs/lit": "^3.0.1",
     "@webcomponents/template-shadowroot": "^0.2.1",
-    "astro": "^3.2.2",
+    "astro": "^3.2.3",
     "lit": "^2.8.0"
   }
 }
diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json
index f22be4a1b..48cdd3aa5 100644
--- a/examples/framework-multiple/package.json
+++ b/examples/framework-multiple/package.json
@@ -11,12 +11,12 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/preact": "^3.0.0",
-    "@astrojs/react": "^3.0.2",
-    "@astrojs/solid-js": "^3.0.1",
-    "@astrojs/svelte": "^4.0.2",
-    "@astrojs/vue": "^3.0.0",
-    "astro": "^3.2.2",
+    "@astrojs/preact": "^3.0.1",
+    "@astrojs/react": "^3.0.3",
+    "@astrojs/solid-js": "^3.0.2",
+    "@astrojs/svelte": "^4.0.3",
+    "@astrojs/vue": "^3.0.1",
+    "astro": "^3.2.3",
     "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 34e7700eb..f57093b82 100644
--- a/examples/framework-preact/package.json
+++ b/examples/framework-preact/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/preact": "^3.0.0",
+    "@astrojs/preact": "^3.0.1",
     "@preact/signals": "^1.2.1",
-    "astro": "^3.2.2",
+    "astro": "^3.2.3",
     "preact": "^10.17.1"
   }
 }
diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json
index d6625a540..fc5c09440 100644
--- a/examples/framework-react/package.json
+++ b/examples/framework-react/package.json
@@ -11,10 +11,10 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/react": "^3.0.2",
+    "@astrojs/react": "^3.0.3",
     "@types/react": "^18.2.21",
     "@types/react-dom": "^18.2.7",
-    "astro": "^3.2.2",
+    "astro": "^3.2.3",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
   }
diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json
index 21ba4fdb0..652e66209 100644
--- a/examples/framework-solid/package.json
+++ b/examples/framework-solid/package.json
@@ -11,8 +11,8 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/solid-js": "^3.0.1",
-    "astro": "^3.2.2",
+    "@astrojs/solid-js": "^3.0.2",
+    "astro": "^3.2.3",
     "solid-js": "^1.7.11"
   }
 }
diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json
index 462208a0e..cd6fcc4b4 100644
--- a/examples/framework-svelte/package.json
+++ b/examples/framework-svelte/package.json
@@ -11,8 +11,8 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/svelte": "^4.0.2",
-    "astro": "^3.2.2",
+    "@astrojs/svelte": "^4.0.3",
+    "astro": "^3.2.3",
     "svelte": "^4.2.0"
   }
 }
diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json
index af27cb66d..c2a6900d0 100644
--- a/examples/framework-vue/package.json
+++ b/examples/framework-vue/package.json
@@ -11,8 +11,8 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/vue": "^3.0.0",
-    "astro": "^3.2.2",
+    "@astrojs/vue": "^3.0.1",
+    "astro": "^3.2.3",
     "vue": "^3.3.4"
   }
 }
diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json
index 25d7b7aa4..01e390b65 100644
--- a/examples/hackernews/package.json
+++ b/examples/hackernews/package.json
@@ -11,7 +11,7 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/node": "^6.0.2",
-    "astro": "^3.2.2"
+    "@astrojs/node": "^6.0.3",
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/integration/package.json b/examples/integration/package.json
index 3c242c972..01b9cba09 100644
--- a/examples/integration/package.json
+++ b/examples/integration/package.json
@@ -15,7 +15,7 @@
   ],
   "scripts": {},
   "devDependencies": {
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   },
   "peerDependencies": {
     "astro": "^2.0.0-beta.0"
diff --git a/examples/middleware/package.json b/examples/middleware/package.json
index 8feb14952..e2c640532 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.0.2",
-    "astro": "^3.2.2",
+    "@astrojs/node": "^6.0.3",
+    "astro": "^3.2.3",
     "html-minifier": "^4.0.0"
   }
 }
diff --git a/examples/minimal/package.json b/examples/minimal/package.json
index d5369f267..eb852999f 100644
--- a/examples/minimal/package.json
+++ b/examples/minimal/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json
index 273a51616..7655413b5 100644
--- a/examples/non-html-pages/package.json
+++ b/examples/non-html-pages/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json
index 7dae943dc..058b8a1fc 100644
--- a/examples/portfolio/package.json
+++ b/examples/portfolio/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/ssr/package.json b/examples/ssr/package.json
index 45c483ebe..3873a6098 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.0.2",
-    "@astrojs/svelte": "^4.0.2",
-    "astro": "^3.2.2",
+    "@astrojs/node": "^6.0.3",
+    "@astrojs/svelte": "^4.0.3",
+    "astro": "^3.2.3",
     "svelte": "^4.2.0"
   }
 }
diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json
index 47ec9f85f..63afa93a2 100644
--- a/examples/view-transitions/package.json
+++ b/examples/view-transitions/package.json
@@ -10,8 +10,8 @@
     "astro": "astro"
   },
   "devDependencies": {
-    "@astrojs/tailwind": "^5.0.0",
-    "@astrojs/node": "^6.0.2",
-    "astro": "^3.2.2"
+    "@astrojs/tailwind": "^5.0.1",
+    "@astrojs/node": "^6.0.3",
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json
index 48dce43c2..47abbe3d7 100644
--- a/examples/with-markdoc/package.json
+++ b/examples/with-markdoc/package.json
@@ -11,7 +11,7 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/markdoc": "^0.5.1",
-    "astro": "^3.2.2"
+    "@astrojs/markdoc": "^0.5.2",
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json
index 01e75914e..fdf825dcb 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.2.0",
-    "astro": "^3.2.2",
+    "@astrojs/markdown-remark": "^3.2.1",
+    "astro": "^3.2.3",
     "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 1277b9de3..0da01ebdd 100644
--- a/examples/with-markdown-shiki/package.json
+++ b/examples/with-markdown-shiki/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^3.2.2"
+    "astro": "^3.2.3"
   }
 }
diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json
index 0c6e54b0f..a6d84a347 100644
--- a/examples/with-mdx/package.json
+++ b/examples/with-mdx/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/mdx": "^1.1.0",
-    "@astrojs/preact": "^3.0.0",
-    "astro": "^3.2.2",
+    "@astrojs/mdx": "^1.1.1",
+    "@astrojs/preact": "^3.0.1",
+    "astro": "^3.2.3",
     "preact": "^10.17.1"
   }
 }
diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json
index a0844daa8..9939e0779 100644
--- a/examples/with-nanostores/package.json
+++ b/examples/with-nanostores/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/preact": "^3.0.0",
+    "@astrojs/preact": "^3.0.1",
     "@nanostores/preact": "^0.5.0",
-    "astro": "^3.2.2",
+    "astro": "^3.2.3",
     "nanostores": "^0.9.3",
     "preact": "^10.17.1"
   }
diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json
index 2aef837af..f6b4f9d25 100644
--- a/examples/with-tailwindcss/package.json
+++ b/examples/with-tailwindcss/package.json
@@ -11,10 +11,10 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/mdx": "^1.1.0",
-    "@astrojs/tailwind": "^5.0.0",
+    "@astrojs/mdx": "^1.1.1",
+    "@astrojs/tailwind": "^5.0.1",
     "@types/canvas-confetti": "^1.6.0",
-    "astro": "^3.2.2",
+    "astro": "^3.2.3",
     "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 03ed9159b..aafacac3a 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.2.2",
+    "astro": "^3.2.3",
     "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 6b7bc5d0d..bcd760017 100644
--- a/examples/with-vitest/package.json
+++ b/examples/with-vitest/package.json
@@ -12,7 +12,7 @@
     "test": "vitest"
   },
   "dependencies": {
-    "astro": "^3.2.2",
+    "astro": "^3.2.3",
     "vitest": "^0.34.2"
   }
 }
diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md
index 4013b24e2..0d48bc340 100644
--- a/packages/astro/CHANGELOG.md
+++ b/packages/astro/CHANGELOG.md
@@ -1,5 +1,28 @@
 # astro
 
+## 3.2.3
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- [#8747](https://github.com/withastro/astro/pull/8747) [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Improve error message when user attempts to render a dynamic component reference
+
+- [#8736](https://github.com/withastro/astro/pull/8736) [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459) Thanks [@bluwy](https://github.com/bluwy)! - Fix `tsconfig.json` update causing the server to crash
+
+- [#8743](https://github.com/withastro/astro/pull/8743) [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f) Thanks [@bluwy](https://github.com/bluwy)! - Remove unused CSS output files when inlined
+
+- [#8700](https://github.com/withastro/astro/pull/8700) [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d) Thanks [@jacobthesheep](https://github.com/jacobthesheep)! - Update link for Netlify SSR
+
+- [#8729](https://github.com/withastro/astro/pull/8729) [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436) Thanks [@lilnasy](https://github.com/lilnasy)! - Node-based adapters now create less server-side javascript
+
+- [#8730](https://github.com/withastro/astro/pull/8730) [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Improve `astro info` copy to clipboard compatability
+
+- Updated dependencies [[`21f482657`](https://github.com/withastro/astro/commit/21f4826576c2c812a1604e18717799da3470decd), [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436)]:
+  - @astrojs/markdown-remark@3.2.1
+  - @astrojs/internal-helpers@0.2.1
+  - @astrojs/telemetry@3.0.3
+
 ## 3.2.2
 
 ### Patch Changes
diff --git a/packages/astro/package.json b/packages/astro/package.json
index e335a6461..33bf6eb4f 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -1,6 +1,6 @@
 {
   "name": "astro",
-  "version": "3.2.2",
+  "version": "3.2.3",
   "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/alpinejs/CHANGELOG.md b/packages/integrations/alpinejs/CHANGELOG.md
index e4d93eecb..3ba6b4753 100644
--- a/packages/integrations/alpinejs/CHANGELOG.md
+++ b/packages/integrations/alpinejs/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/alpinejs
 
+## 0.3.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 0.3.0
 
 ### Minor Changes
diff --git a/packages/integrations/alpinejs/package.json b/packages/integrations/alpinejs/package.json
index 9b9f0f0ee..80b3eab2a 100644
--- a/packages/integrations/alpinejs/package.json
+++ b/packages/integrations/alpinejs/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/alpinejs",
   "description": "Use Alpine within Astro",
-  "version": "0.3.0",
+  "version": "0.3.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/cloudflare/CHANGELOG.md b/packages/integrations/cloudflare/CHANGELOG.md
index f315fd57a..9dd7772cc 100644
--- a/packages/integrations/cloudflare/CHANGELOG.md
+++ b/packages/integrations/cloudflare/CHANGELOG.md
@@ -1,5 +1,15 @@
 # @astrojs/cloudflare
 
+## 7.5.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - @astrojs/underscore-redirects@0.3.1
+  - astro@3.2.3
+
 ## 7.5.0
 
 ### Minor Changes
diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json
index 7d4d07356..b7ecc2c69 100644
--- a/packages/integrations/cloudflare/package.json
+++ b/packages/integrations/cloudflare/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/cloudflare",
   "description": "Deploy your site to Cloudflare Workers/Pages",
-  "version": "7.5.0",
+  "version": "7.5.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
@@ -48,7 +48,7 @@
     "vite": "^4.4.9"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2"
+    "astro": "workspace:^3.2.3"
   },
   "devDependencies": {
     "@types/iarna__toml": "^2.0.2",
diff --git a/packages/integrations/lit/CHANGELOG.md b/packages/integrations/lit/CHANGELOG.md
index 43283538c..cc83a11fb 100644
--- a/packages/integrations/lit/CHANGELOG.md
+++ b/packages/integrations/lit/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/lit
 
+## 3.0.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 3.0.0
 
 ### Major Changes
diff --git a/packages/integrations/lit/package.json b/packages/integrations/lit/package.json
index 28945b53e..24bbd1717 100644
--- a/packages/integrations/lit/package.json
+++ b/packages/integrations/lit/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/lit",
-  "version": "3.0.0",
+  "version": "3.0.1",
   "description": "Use Lit components within Astro",
   "type": "module",
   "types": "./dist/index.d.ts",
diff --git a/packages/integrations/markdoc/CHANGELOG.md b/packages/integrations/markdoc/CHANGELOG.md
index 97dcc73c1..6f6f28a81 100644
--- a/packages/integrations/markdoc/CHANGELOG.md
+++ b/packages/integrations/markdoc/CHANGELOG.md
@@ -1,5 +1,15 @@
 # @astrojs/markdoc
 
+## 0.5.2
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - @astrojs/internal-helpers@0.2.1
+  - astro@3.2.3
+
 ## 0.5.1
 
 ### Patch Changes
diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json
index 8cb356aac..e7e5eaee0 100644
--- a/packages/integrations/markdoc/package.json
+++ b/packages/integrations/markdoc/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/markdoc",
   "description": "Add support for Markdoc in your Astro site",
-  "version": "0.5.1",
+  "version": "0.5.2",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
@@ -75,7 +75,7 @@
     "zod": "3.21.1"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2"
+    "astro": "workspace:^3.2.3"
   },
   "devDependencies": {
     "@astrojs/markdown-remark": "workspace:*",
diff --git a/packages/integrations/mdx/CHANGELOG.md b/packages/integrations/mdx/CHANGELOG.md
index 85a4409c7..c5fca62c6 100644
--- a/packages/integrations/mdx/CHANGELOG.md
+++ b/packages/integrations/mdx/CHANGELOG.md
@@ -1,5 +1,15 @@
 # @astrojs/mdx
 
+## 1.1.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`21f482657`](https://github.com/withastro/astro/commit/21f4826576c2c812a1604e18717799da3470decd), [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - @astrojs/markdown-remark@3.2.1
+  - astro@3.2.3
+
 ## 1.1.0
 
 ### Minor Changes
diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json
index 8bd9c4c39..2e90eda93 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.0",
+  "version": "1.1.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
@@ -51,7 +51,7 @@
     "vfile": "^5.3.7"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2"
+    "astro": "workspace:^3.2.3"
   },
   "devDependencies": {
     "@types/chai": "^4.3.5",
diff --git a/packages/integrations/node/CHANGELOG.md b/packages/integrations/node/CHANGELOG.md
index 036eb0658..c37b15346 100644
--- a/packages/integrations/node/CHANGELOG.md
+++ b/packages/integrations/node/CHANGELOG.md
@@ -1,5 +1,14 @@
 # @astrojs/node
 
+## 6.0.3
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - astro@3.2.3
+
 ## 6.0.2
 
 ### Patch Changes
diff --git a/packages/integrations/node/package.json b/packages/integrations/node/package.json
index 865c1541d..6b896706d 100644
--- a/packages/integrations/node/package.json
+++ b/packages/integrations/node/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/node",
   "description": "Deploy your site to a Node.js server",
-  "version": "6.0.2",
+  "version": "6.0.3",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
@@ -37,7 +37,7 @@
     "server-destroy": "^1.0.1"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2"
+    "astro": "workspace:^3.2.3"
   },
   "devDependencies": {
     "@types/node": "^18.17.8",
diff --git a/packages/integrations/partytown/CHANGELOG.md b/packages/integrations/partytown/CHANGELOG.md
index d487e6dbf..83c74727d 100644
--- a/packages/integrations/partytown/CHANGELOG.md
+++ b/packages/integrations/partytown/CHANGELOG.md
@@ -1,5 +1,13 @@
 # @astrojs/partytown
 
+## 2.0.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- [#8740](https://github.com/withastro/astro/pull/8740) [`f277ba8b7`](https://github.com/withastro/astro/commit/f277ba8b703037635bc7adee84d51eaf7dafd388) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Expose types for TypeScript users
+
 ## 2.0.0
 
 ### Major Changes
diff --git a/packages/integrations/partytown/package.json b/packages/integrations/partytown/package.json
index ed70b7280..30e17b552 100644
--- a/packages/integrations/partytown/package.json
+++ b/packages/integrations/partytown/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/partytown",
   "description": "Use Partytown to move scripts into a web worker in your Astro project",
-  "version": "2.0.0",
+  "version": "2.0.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/preact/CHANGELOG.md b/packages/integrations/preact/CHANGELOG.md
index 703cef07d..31ff79c90 100644
--- a/packages/integrations/preact/CHANGELOG.md
+++ b/packages/integrations/preact/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/preact
 
+## 3.0.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 3.0.0
 
 ### Major Changes
diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json
index c2c24e096..29a10439a 100644
--- a/packages/integrations/preact/package.json
+++ b/packages/integrations/preact/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/preact",
   "description": "Use Preact components within Astro",
-  "version": "3.0.0",
+  "version": "3.0.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/prefetch/CHANGELOG.md b/packages/integrations/prefetch/CHANGELOG.md
index 45d1364c4..de7ba588e 100644
--- a/packages/integrations/prefetch/CHANGELOG.md
+++ b/packages/integrations/prefetch/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/prefetch
 
+## 0.4.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 0.4.0
 
 ### Minor Changes
diff --git a/packages/integrations/prefetch/package.json b/packages/integrations/prefetch/package.json
index 52259fb18..da199b43a 100644
--- a/packages/integrations/prefetch/package.json
+++ b/packages/integrations/prefetch/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/prefetch",
   "description": "Prefetch page navigations in your Astro site",
-  "version": "0.4.0",
+  "version": "0.4.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/react/CHANGELOG.md b/packages/integrations/react/CHANGELOG.md
index b304c6e77..dec1b4235 100644
--- a/packages/integrations/react/CHANGELOG.md
+++ b/packages/integrations/react/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/react
 
+## 3.0.3
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 3.0.2
 
 ### Patch Changes
diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json
index 1724f2d73..e717cc1a5 100644
--- a/packages/integrations/react/package.json
+++ b/packages/integrations/react/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/react",
   "description": "Use React components within Astro",
-  "version": "3.0.2",
+  "version": "3.0.3",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/sitemap/CHANGELOG.md b/packages/integrations/sitemap/CHANGELOG.md
index 0e570b4fa..482f7a7d5 100644
--- a/packages/integrations/sitemap/CHANGELOG.md
+++ b/packages/integrations/sitemap/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/sitemap
 
+## 3.0.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 3.0.0
 
 ### Major Changes
diff --git a/packages/integrations/sitemap/package.json b/packages/integrations/sitemap/package.json
index fe285e7bf..2cdfa4100 100644
--- a/packages/integrations/sitemap/package.json
+++ b/packages/integrations/sitemap/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/sitemap",
   "description": "Generate a sitemap for your Astro site",
-  "version": "3.0.0",
+  "version": "3.0.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/solid/CHANGELOG.md b/packages/integrations/solid/CHANGELOG.md
index 0605898b6..65d995436 100644
--- a/packages/integrations/solid/CHANGELOG.md
+++ b/packages/integrations/solid/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/solid-js
 
+## 3.0.2
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 3.0.1
 
 ### Patch Changes
diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json
index 8dbccc9d9..7e3fcd11b 100644
--- a/packages/integrations/solid/package.json
+++ b/packages/integrations/solid/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/solid-js",
-  "version": "3.0.1",
+  "version": "3.0.2",
   "description": "Use Solid components within Astro",
   "type": "module",
   "types": "./dist/index.d.ts",
diff --git a/packages/integrations/svelte/CHANGELOG.md b/packages/integrations/svelte/CHANGELOG.md
index 521cf21f6..38a378c2b 100644
--- a/packages/integrations/svelte/CHANGELOG.md
+++ b/packages/integrations/svelte/CHANGELOG.md
@@ -1,5 +1,14 @@
 # @astrojs/svelte
 
+## 4.0.3
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - astro@3.2.3
+
 ## 4.0.2
 
 ### Patch Changes
diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json
index a1b49b1ee..6efeca706 100644
--- a/packages/integrations/svelte/package.json
+++ b/packages/integrations/svelte/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/svelte",
-  "version": "4.0.2",
+  "version": "4.0.3",
   "description": "Use Svelte components within Astro",
   "type": "module",
   "types": "./dist/index.d.ts",
@@ -48,7 +48,7 @@
     "vite": "^4.4.9"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2",
+    "astro": "workspace:^3.2.3",
     "svelte": "^3.55.0 || ^4.0.0"
   },
   "engines": {
diff --git a/packages/integrations/tailwind/CHANGELOG.md b/packages/integrations/tailwind/CHANGELOG.md
index b6347ffc9..6f4431c21 100644
--- a/packages/integrations/tailwind/CHANGELOG.md
+++ b/packages/integrations/tailwind/CHANGELOG.md
@@ -1,5 +1,14 @@
 # @astrojs/tailwind
 
+## 5.0.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - astro@3.2.3
+
 ## 5.0.0
 
 ### Major Changes
diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json
index 9e958b576..17bca109f 100644
--- a/packages/integrations/tailwind/package.json
+++ b/packages/integrations/tailwind/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/tailwind",
   "description": "Use Tailwind CSS to style your Astro site",
-  "version": "5.0.0",
+  "version": "5.0.1",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
@@ -43,7 +43,7 @@
     "vite": "^4.4.9"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2",
+    "astro": "workspace:^3.2.3",
     "tailwindcss": "^3.0.24"
   },
   "publishConfig": {
diff --git a/packages/integrations/vercel/CHANGELOG.md b/packages/integrations/vercel/CHANGELOG.md
index ae77d38a1..9411901b1 100644
--- a/packages/integrations/vercel/CHANGELOG.md
+++ b/packages/integrations/vercel/CHANGELOG.md
@@ -1,5 +1,15 @@
 # @astrojs/vercel
 
+## 5.0.2
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - @astrojs/internal-helpers@0.2.1
+  - astro@3.2.3
+
 ## 5.0.1
 
 ### Patch Changes
diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json
index 2158289db..b10ec83df 100644
--- a/packages/integrations/vercel/package.json
+++ b/packages/integrations/vercel/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/vercel",
   "description": "Deploy your site to Vercel",
-  "version": "5.0.1",
+  "version": "5.0.2",
   "type": "module",
   "author": "withastro",
   "license": "MIT",
@@ -61,7 +61,7 @@
     "web-vitals": "^3.4.0"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2"
+    "astro": "workspace:^3.2.3"
   },
   "devDependencies": {
     "@types/set-cookie-parser": "^2.4.3",
diff --git a/packages/integrations/vue/CHANGELOG.md b/packages/integrations/vue/CHANGELOG.md
index c226ce24f..5a5ee4f19 100644
--- a/packages/integrations/vue/CHANGELOG.md
+++ b/packages/integrations/vue/CHANGELOG.md
@@ -1,5 +1,14 @@
 # @astrojs/vue
 
+## 3.0.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - astro@3.2.3
+
 ## 3.0.0
 
 ### Major Changes
diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json
index 16a767e22..f50cdd01d 100644
--- a/packages/integrations/vue/package.json
+++ b/packages/integrations/vue/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/vue",
-  "version": "3.0.0",
+  "version": "3.0.1",
   "description": "Use Vue components within Astro",
   "type": "module",
   "types": "./dist/index.d.ts",
@@ -56,7 +56,7 @@
     "vue": "^3.3.4"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.2.2",
+    "astro": "workspace:^3.2.3",
     "vue": "^3.2.30"
   },
   "engines": {
diff --git a/packages/internal-helpers/CHANGELOG.md b/packages/internal-helpers/CHANGELOG.md
index e49a0a758..0bcb50284 100644
--- a/packages/internal-helpers/CHANGELOG.md
+++ b/packages/internal-helpers/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/internal-helpers
 
+## 0.2.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 0.2.0
 
 ### Minor Changes
diff --git a/packages/internal-helpers/package.json b/packages/internal-helpers/package.json
index ae7f54f53..650665bfe 100644
--- a/packages/internal-helpers/package.json
+++ b/packages/internal-helpers/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/internal-helpers",
   "description": "Internal helpers used by core Astro packages.",
-  "version": "0.2.0",
+  "version": "0.2.1",
   "type": "module",
   "author": "withastro",
   "license": "MIT",
diff --git a/packages/markdown/remark/CHANGELOG.md b/packages/markdown/remark/CHANGELOG.md
index a5a90e2bb..6d57a4724 100644
--- a/packages/markdown/remark/CHANGELOG.md
+++ b/packages/markdown/remark/CHANGELOG.md
@@ -1,5 +1,16 @@
 # @astrojs/markdown-remark
 
+## 3.2.1
+
+### Patch Changes
+
+- [#8715](https://github.com/withastro/astro/pull/8715) [`21f482657`](https://github.com/withastro/astro/commit/21f4826576c2c812a1604e18717799da3470decd) Thanks [@cprass](https://github.com/cprass)! - Remove `is:raw` from remark Shiki plugin
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
+  - astro@3.2.3
+
 ## 3.2.0
 
 ### Minor Changes
diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json
index 61b3f4aaa..8a3b22236 100644
--- a/packages/markdown/remark/package.json
+++ b/packages/markdown/remark/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/markdown-remark",
-  "version": "3.2.0",
+  "version": "3.2.1",
   "type": "module",
   "author": "withastro",
   "license": "MIT",
@@ -28,7 +28,7 @@
     "test": "mocha --exit --timeout 20000"
   },
   "peerDependencies": {
-    "astro": "workspace:^3.1.0"
+    "astro": "workspace:^3.2.3"
   },
   "dependencies": {
     "@astrojs/prism": "^3.0.0",
diff --git a/packages/telemetry/CHANGELOG.md b/packages/telemetry/CHANGELOG.md
index 9b3f41b2b..21cea4955 100644
--- a/packages/telemetry/CHANGELOG.md
+++ b/packages/telemetry/CHANGELOG.md
@@ -1,5 +1,13 @@
 # @astrojs/telemetry
 
+## 3.0.3
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
+- [#8729](https://github.com/withastro/astro/pull/8729) [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436) Thanks [@lilnasy](https://github.com/lilnasy)! - Removed an unnecessary dependency.
+
 ## 3.0.2
 
 ### Patch Changes
diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json
index 5593bce47..e0230b9d5 100644
--- a/packages/telemetry/package.json
+++ b/packages/telemetry/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/telemetry",
-  "version": "3.0.2",
+  "version": "3.0.3",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/underscore-redirects/CHANGELOG.md b/packages/underscore-redirects/CHANGELOG.md
index 24d5ad86f..8e5d1d08f 100644
--- a/packages/underscore-redirects/CHANGELOG.md
+++ b/packages/underscore-redirects/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/underscore-redirects
 
+## 0.3.1
+
+### Patch Changes
+
+- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
+
 ## 0.3.0
 
 ### Minor Changes
diff --git a/packages/underscore-redirects/package.json b/packages/underscore-redirects/package.json
index 51d81860b..1325d4c8e 100644
--- a/packages/underscore-redirects/package.json
+++ b/packages/underscore-redirects/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/underscore-redirects",
   "description": "Utilities to generate _redirects files in Astro projects",
-  "version": "0.3.0",
+  "version": "0.3.1",
   "type": "module",
   "author": "withastro",
   "license": "MIT",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cd7051c04..d70075993 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -125,34 +125,34 @@ importers:
   examples/basics:
     dependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/blog:
     dependencies:
       '@astrojs/mdx':
-        specifier: ^1.1.0
+        specifier: ^1.1.1
         version: link:../../packages/integrations/mdx
       '@astrojs/rss':
         specifier: ^3.0.0
         version: link:../../packages/astro-rss
       '@astrojs/sitemap':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/sitemap
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/component:
     devDependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/framework-alpine:
     dependencies:
       '@astrojs/alpinejs':
-        specifier: ^0.3.0
+        specifier: ^0.3.1
         version: link:../../packages/integrations/alpinejs
       '@types/alpinejs':
         specifier: ^3.7.2
@@ -161,19 +161,19 @@ importers:
         specifier: ^3.12.3
         version: 3.12.3
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/framework-lit:
     dependencies:
       '@astrojs/lit':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/lit
       '@webcomponents/template-shadowroot':
         specifier: ^0.2.1
         version: 0.2.1
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       lit:
         specifier: ^2.8.0
@@ -182,22 +182,22 @@ importers:
   examples/framework-multiple:
     dependencies:
       '@astrojs/preact':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/preact
       '@astrojs/react':
-        specifier: ^3.0.2
+        specifier: ^3.0.3
         version: link:../../packages/integrations/react
       '@astrojs/solid-js':
-        specifier: ^3.0.1
+        specifier: ^3.0.2
         version: link:../../packages/integrations/solid
       '@astrojs/svelte':
-        specifier: ^4.0.2
+        specifier: ^4.0.3
         version: link:../../packages/integrations/svelte
       '@astrojs/vue':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/vue
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       preact:
         specifier: ^10.17.1
@@ -221,13 +221,13 @@ importers:
   examples/framework-preact:
     dependencies:
       '@astrojs/preact':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/preact
       '@preact/signals':
         specifier: ^1.2.1
         version: 1.2.1(preact@10.17.1)
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       preact:
         specifier: ^10.17.1
@@ -236,7 +236,7 @@ importers:
   examples/framework-react:
     dependencies:
       '@astrojs/react':
-        specifier: ^3.0.2
+        specifier: ^3.0.3
         version: link:../../packages/integrations/react
       '@types/react':
         specifier: ^18.2.21
@@ -245,7 +245,7 @@ importers:
         specifier: ^18.2.7
         version: 18.2.7
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       react:
         specifier: ^18.2.0
@@ -257,10 +257,10 @@ importers:
   examples/framework-solid:
     dependencies:
       '@astrojs/solid-js':
-        specifier: ^3.0.1
+        specifier: ^3.0.2
         version: link:../../packages/integrations/solid
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       solid-js:
         specifier: ^1.7.11
@@ -269,10 +269,10 @@ importers:
   examples/framework-svelte:
     dependencies:
       '@astrojs/svelte':
-        specifier: ^4.0.2
+        specifier: ^4.0.3
         version: link:../../packages/integrations/svelte
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       svelte:
         specifier: ^4.2.0
@@ -281,10 +281,10 @@ importers:
   examples/framework-vue:
     dependencies:
       '@astrojs/vue':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/vue
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       vue:
         specifier: ^3.3.4
@@ -293,25 +293,25 @@ importers:
   examples/hackernews:
     dependencies:
       '@astrojs/node':
-        specifier: ^6.0.2
+        specifier: ^6.0.3
         version: link:../../packages/integrations/node
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/integration:
     devDependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/middleware:
     dependencies:
       '@astrojs/node':
-        specifier: ^6.0.2
+        specifier: ^6.0.3
         version: link:../../packages/integrations/node
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       html-minifier:
         specifier: ^4.0.0
@@ -320,31 +320,31 @@ importers:
   examples/minimal:
     dependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/non-html-pages:
     dependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/portfolio:
     dependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/ssr:
     dependencies:
       '@astrojs/node':
-        specifier: ^6.0.2
+        specifier: ^6.0.3
         version: link:../../packages/integrations/node
       '@astrojs/svelte':
-        specifier: ^4.0.2
+        specifier: ^4.0.3
         version: link:../../packages/integrations/svelte
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       svelte:
         specifier: ^4.2.0
@@ -353,31 +353,31 @@ importers:
   examples/view-transitions:
     devDependencies:
       '@astrojs/node':
-        specifier: ^6.0.2
+        specifier: ^6.0.3
         version: link:../../packages/integrations/node
       '@astrojs/tailwind':
-        specifier: ^5.0.0
+        specifier: ^5.0.1
         version: link:../../packages/integrations/tailwind
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/with-markdoc:
     dependencies:
       '@astrojs/markdoc':
-        specifier: ^0.5.1
+        specifier: ^0.5.2
         version: link:../../packages/integrations/markdoc
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/with-markdown-plugins:
     dependencies:
       '@astrojs/markdown-remark':
-        specifier: ^3.2.0
+        specifier: ^3.2.1
         version: link:../../packages/markdown/remark
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       hast-util-select:
         specifier: ^5.0.5
@@ -398,19 +398,19 @@ importers:
   examples/with-markdown-shiki:
     dependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
 
   examples/with-mdx:
     dependencies:
       '@astrojs/mdx':
-        specifier: ^1.1.0
+        specifier: ^1.1.1
         version: link:../../packages/integrations/mdx
       '@astrojs/preact':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/preact
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       preact:
         specifier: ^10.17.1
@@ -419,13 +419,13 @@ importers:
   examples/with-nanostores:
     dependencies:
       '@astrojs/preact':
-        specifier: ^3.0.0
+        specifier: ^3.0.1
         version: link:../../packages/integrations/preact
       '@nanostores/preact':
         specifier: ^0.5.0
         version: 0.5.0(nanostores@0.9.3)(preact@10.17.1)
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       nanostores:
         specifier: ^0.9.3
@@ -437,16 +437,16 @@ importers:
   examples/with-tailwindcss:
     dependencies:
       '@astrojs/mdx':
-        specifier: ^1.1.0
+        specifier: ^1.1.1
         version: link:../../packages/integrations/mdx
       '@astrojs/tailwind':
-        specifier: ^5.0.0
+        specifier: ^5.0.1
         version: link:../../packages/integrations/tailwind
       '@types/canvas-confetti':
         specifier: ^1.6.0
         version: 1.6.0
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       autoprefixer:
         specifier: ^10.4.15
@@ -464,7 +464,7 @@ importers:
   examples/with-vite-plugin-pwa:
     dependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       vite-plugin-pwa:
         specifier: 0.16.4
@@ -476,7 +476,7 @@ importers:
   examples/with-vitest:
     dependencies:
       astro:
-        specifier: ^3.2.2
+        specifier: ^3.2.3
         version: link:../../packages/astro
       vitest:
         specifier: ^0.34.2
@@ -17267,7 +17267,6 @@ packages:
     engines: {node: '>=14.0'}
     dependencies:
       busboy: 1.6.0
-    dev: true
 
   /unherit@3.0.1:
     resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==}

From ec82e73efac65b948dbbebf8c44885ab08acd53a Mon Sep 17 00:00:00 2001
From: Bjorn Lu 
Date: Thu, 5 Oct 2023 18:29:36 +0800
Subject: [PATCH 30/33] Fix provenance release (#8749)

---
 .github/workflows/release.yml      | 3 +++
 packages/create-astro/package.json | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7161a0d0f..7fe7add2d 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -22,6 +22,9 @@ jobs:
     name: Changelog PR or Release
     if: ${{ github.repository_owner == 'withastro' }}
     runs-on: ubuntu-latest
+    permissions:
+      contents: read
+      id-token: write
     steps:
       - uses: actions/checkout@v3
 
diff --git a/packages/create-astro/package.json b/packages/create-astro/package.json
index 4b526d48b..e7c1afb09 100644
--- a/packages/create-astro/package.json
+++ b/packages/create-astro/package.json
@@ -44,5 +44,8 @@
   },
   "engines": {
     "node": ">=18.14.1"
+  },
+  "publishConfig": {
+    "provenance": true
   }
 }

From 4e5cafa5d2fb0b02a0998ad166c2f9b67f55deae Mon Sep 17 00:00:00 2001
From: Bjorn Lu 
Date: Thu, 5 Oct 2023 18:45:41 +0800
Subject: [PATCH 31/33] Fix git tag release (#8752)

---
 .github/workflows/release.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7fe7add2d..feecf12a5 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -23,7 +23,7 @@ jobs:
     if: ${{ github.repository_owner == 'withastro' }}
     runs-on: ubuntu-latest
     permissions:
-      contents: read
+      contents: write
       id-token: write
     steps:
       - uses: actions/checkout@v3

From 41f93e0ccbc85b73b0c28c19f2cf75b78aa37ba8 Mon Sep 17 00:00:00 2001
From: Matthew Phillips 
Date: Thu, 5 Oct 2023 13:58:03 -0400
Subject: [PATCH 32/33] Print the publish output when it fails

---
 .github/workflows/snapshot-release.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/snapshot-release.yml b/.github/workflows/snapshot-release.yml
index 29f8c7f11..06955fe33 100644
--- a/.github/workflows/snapshot-release.yml
+++ b/.github/workflows/snapshot-release.yml
@@ -81,6 +81,7 @@ jobs:
         id: publish
         run: |
           pnpm run release --tag next--${{ steps.getSnapshotName.outputs.result }} > publish.output.txt 2>&1
+          test $? -eq 0 || cat publish.output.txt
           echo ::set-output name=result::`cat publish.output.txt`
         env:
           # Needs access to publish to npm

From e5e6cf16eb873419585c09597667fce1fad16803 Mon Sep 17 00:00:00 2001
From: Matthew Phillips 
Date: Thu, 5 Oct 2023 14:14:05 -0400
Subject: [PATCH 33/33] Add debugging information on preview releases

---
 .github/workflows/snapshot-release.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/snapshot-release.yml b/.github/workflows/snapshot-release.yml
index 06955fe33..3025c60f0 100644
--- a/.github/workflows/snapshot-release.yml
+++ b/.github/workflows/snapshot-release.yml
@@ -81,7 +81,8 @@ jobs:
         id: publish
         run: |
           pnpm run release --tag next--${{ steps.getSnapshotName.outputs.result }} > publish.output.txt 2>&1
-          test $? -eq 0 || cat publish.output.txt
+          echo "Release complete"
+          cat publish.output.txt
           echo ::set-output name=result::`cat publish.output.txt`
         env:
           # Needs access to publish to npm