From dfa290001dfdb5c53c7f5e40961953bb8efe493b Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 9 Mar 2026 16:18:01 -0400 Subject: [PATCH 1/7] fix(cloudflare): prebundle SSR deps needed for Starlight dev --- packages/integrations/cloudflare/src/index.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index abd80abe0d2b..cd7e3158ca9a 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -174,6 +174,8 @@ export default function createIntegration({ return { optimizeDeps: { include: [ + '@astrojs/cloudflare/entrypoints/server', + '@astrojs/cloudflare/image-service-workerd', 'astro', 'astro/runtime/**', 'astro > html-escaper', @@ -191,8 +193,14 @@ export default function createIntegration({ 'astro > picomatch', 'astro/app', 'astro/assets', + 'astro/assets/runtime', + 'astro/assets/utils/inferRemoteSize.js', + 'astro/assets/fonts/runtime.js', + 'astro/content/runtime', 'astro/compiler-runtime', + 'astro/jsx-runtime', 'astro/app/entrypoint/dev', + 'astro/virtual-modules/middleware.js', ], exclude: [ 'unstorage/drivers/cloudflare-kv-binding', From 87e538f57a0292fb58addb40cda50df0a7d29e15 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 9 Mar 2026 16:34:22 -0400 Subject: [PATCH 2/7] fix(cloudflare): drop server entry from optimizeDeps --- packages/integrations/cloudflare/src/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index cd7e3158ca9a..27e6a2ed2e3d 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -174,7 +174,6 @@ export default function createIntegration({ return { optimizeDeps: { include: [ - '@astrojs/cloudflare/entrypoints/server', '@astrojs/cloudflare/image-service-workerd', 'astro', 'astro/runtime/**', From 8876c832b356a7b26a6bab71a12f44c6965809b8 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 9 Mar 2026 16:35:46 -0400 Subject: [PATCH 3/7] docs(changeset): add cloudflare optimize deps note --- .changeset/quiet-trains-accept.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/quiet-trains-accept.md diff --git a/.changeset/quiet-trains-accept.md b/.changeset/quiet-trains-accept.md new file mode 100644 index 000000000000..aec61d172f5f --- /dev/null +++ b/.changeset/quiet-trains-accept.md @@ -0,0 +1,7 @@ +--- +'@astrojs/cloudflare': patch +--- + +Prebundle additional Astro runtime dependencies for Cloudflare dev to reduce SSR dependency discovery churn, which is necessary to get Starlight + Cloudflare working reliably from a cold optimizer cache. + +Note: `@astrojs/cloudflare/entrypoints/server` is intentionally excluded from the prebundle list because it can fail optimization with `Could not resolve "cloudflare:workers"`. From 5acc9ef9b815eb7429a6b1aa70b29da9ae50b3e3 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 9 Mar 2026 16:41:39 -0400 Subject: [PATCH 4/7] Improve changeset --- .changeset/quiet-trains-accept.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.changeset/quiet-trains-accept.md b/.changeset/quiet-trains-accept.md index aec61d172f5f..c523779ced59 100644 --- a/.changeset/quiet-trains-accept.md +++ b/.changeset/quiet-trains-accept.md @@ -2,6 +2,4 @@ '@astrojs/cloudflare': patch --- -Prebundle additional Astro runtime dependencies for Cloudflare dev to reduce SSR dependency discovery churn, which is necessary to get Starlight + Cloudflare working reliably from a cold optimizer cache. - -Note: `@astrojs/cloudflare/entrypoints/server` is intentionally excluded from the prebundle list because it can fail optimization with `Could not resolve "cloudflare:workers"`. +Prebundle additional Astro runtime dependencies for Cloudflare development server, speeding up initial start time and preventing required restarts. From b179b1ac380c07b895a6b42d4c4c1c7e1b29cdeb Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 9 Mar 2026 16:57:33 -0400 Subject: [PATCH 5/7] fix(cloudflare): only prebundle content runtime in dev --- packages/integrations/cloudflare/src/index.ts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index 27e6a2ed2e3d..65f4642a03ac 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -25,6 +25,25 @@ import { createRequire } from 'node:module'; export type { Runtime } from './utils/handler.js'; +function hasContentCollectionsConfig(srcDir: URL) { + const contentConfigPaths = [ + 'content.config.mjs', + 'content.config.js', + 'content.config.mts', + 'content.config.ts', + 'content/config.mjs', + 'content/config.js', + 'content/config.mts', + 'content/config.ts', + 'live.config.mjs', + 'live.config.js', + 'live.config.mts', + 'live.config.ts', + ]; + + return contentConfigPaths.some((configPath) => existsSync(new URL(`./${configPath}`, srcDir))); +} + export interface Options extends Pick< PluginConfig, @@ -115,6 +134,8 @@ export default function createIntegration({ // (the image-transform-endpoint uses it). At build time, // `compile` uses Sharp on the Node side instead. const needsImagesBindingForDev = isCompile && command === 'dev'; + const usesContentCollections = hasContentCollectionsConfig(config.srcDir); + const prebundleContentRuntime = command === 'dev' && usesContentCollections; cfPluginConfig = { config: cloudflareConfigCustomizer({ @@ -195,7 +216,7 @@ export default function createIntegration({ 'astro/assets/runtime', 'astro/assets/utils/inferRemoteSize.js', 'astro/assets/fonts/runtime.js', - 'astro/content/runtime', + ...(prebundleContentRuntime ? (['astro/content/runtime'] as const) : []), 'astro/compiler-runtime', 'astro/jsx-runtime', 'astro/app/entrypoint/dev', From 0e4493996240ebcac578f946ceb4e8848f62e54b Mon Sep 17 00:00:00 2001 From: Princesseuh <3019731+Princesseuh@users.noreply.github.com> Date: Tue, 10 Mar 2026 03:51:04 +0100 Subject: [PATCH 6/7] fix(cloudflare): Attempt at a fix for style rendering inside non-Node runtimes --- packages/astro/dev-only.d.ts | 5 + packages/astro/src/core/app/dev/pipeline.ts | 16 +- .../runtime/server/render/astro/instance.ts | 6 +- packages/astro/src/vite-plugin-head/index.ts | 128 +++++-- pnpm-lock.yaml | 319 ------------------ 5 files changed, 116 insertions(+), 358 deletions(-) diff --git a/packages/astro/dev-only.d.ts b/packages/astro/dev-only.d.ts index 96f3a94d7924..8e4d2cb7c82c 100644 --- a/packages/astro/dev-only.d.ts +++ b/packages/astro/dev-only.d.ts @@ -78,6 +78,11 @@ declare module 'virtual:astro:dev-css-all' { export const devCSSMap: Map Promise<{ css: Set }>>; } +declare module 'virtual:astro:dev-component-metadata' { + import type { SSRComponentMetadata } from './src/types/public/internal.js'; + export const componentMetadata: Map; +} + declare module 'virtual:astro:app' { export const createApp: import('./src/core/app/types.js').CreateApp; } diff --git a/packages/astro/src/core/app/dev/pipeline.ts b/packages/astro/src/core/app/dev/pipeline.ts index 846740729c3b..c1425894050a 100644 --- a/packages/astro/src/core/app/dev/pipeline.ts +++ b/packages/astro/src/core/app/dev/pipeline.ts @@ -5,6 +5,7 @@ import type { RouteData, SSRElement, } from '../../../types/public/index.js'; +import type { SSRResult } from '../../../types/public/internal.js'; import { type HeadElements, Pipeline, type TryRewriteResult } from '../../base-pipeline.js'; import { ASTRO_VERSION } from '../../constants.js'; import { createModuleScriptElement, createStylesheetElementSet } from '../../render/ssr-element.js'; @@ -131,7 +132,20 @@ export class NonRunnablePipeline extends Pipeline { return { scripts, styles, links }; } - componentMetadata() {} + async componentMetadata(): Promise { + // Import component metadata from the virtual module exposed by the head-metadata plugin. + // This module is dynamically generated from the SSR environment's module graph, + // which contains propagation hints and containsHead flags set during resolveId/transform. + // This is needed because NonRunnablePipeline (e.g. Cloudflare workerd) cannot access + // the Vite module graph directly at render time. + try { + const { componentMetadata } = await import('virtual:astro:dev-component-metadata'); + return componentMetadata; + } catch { + // If the virtual module is not available, fall back to empty metadata. + return new Map(); + } + } async getComponentByRoute(routeData: RouteData): Promise { try { diff --git a/packages/astro/src/runtime/server/render/astro/instance.ts b/packages/astro/src/runtime/server/render/astro/instance.ts index 78c4eb678314..03478f41195b 100644 --- a/packages/astro/src/runtime/server/render/astro/instance.ts +++ b/packages/astro/src/runtime/server/render/astro/instance.ts @@ -77,6 +77,9 @@ export class AstroComponentInstance { private renderImpl(destination: RenderDestination, returnValue: AstroFactoryReturnValue) { if (isHeadAndContent(returnValue)) { + if (returnValue.head) { + this.result._metadata.extraHead.push(returnValue.head); + } return returnValue.content.render(destination); } else { return renderChild(destination, returnValue); @@ -111,7 +114,8 @@ export function createAstroComponentInstance( ) { validateComponentProps(props, result.clientDirectives, displayName); const instance = new AstroComponentInstance(result, props, slots, factory); - if (isAPropagatingComponent(result, factory)) { + const isPropagating = isAPropagatingComponent(result, factory); + if (isPropagating) { result._metadata.propagators.add(instance); } return instance; diff --git a/packages/astro/src/vite-plugin-head/index.ts b/packages/astro/src/vite-plugin-head/index.ts index bebc75c17ab9..0e867c424721 100644 --- a/packages/astro/src/vite-plugin-head/index.ts +++ b/packages/astro/src/vite-plugin-head/index.ts @@ -11,8 +11,12 @@ import { ASTRO_VITE_ENVIRONMENT_NAMES } from '../core/constants.js'; // Detect this in comments, both in .astro components and in js/ts files. const injectExp = /(?:^\/\/|\/\/!)\s*astro-head-inject/; -export default function configHeadVitePlugin(): vite.Plugin { +export const DEV_COMPONENT_METADATA_ID = 'virtual:astro:dev-component-metadata'; +const DEV_COMPONENT_METADATA_RESOLVED_ID = '\0' + DEV_COMPONENT_METADATA_ID; + +export default function configHeadVitePlugin(): vite.Plugin[] { let environment: DevEnvironment; + let server: vite.ViteDevServer; function propagateMetadata< P extends keyof PluginMetadata['astro'], @@ -43,47 +47,97 @@ export default function configHeadVitePlugin(): vite.Plugin { } } - return { - name: 'astro:head-metadata', - enforce: 'pre', - apply: 'serve', - configureServer(server) { - environment = server.environments[ASTRO_VITE_ENVIRONMENT_NAMES.ssr]; - }, - resolveId(source, importer) { - if (importer) { - // Do propagation any time a new module is imported. This is because - // A module with propagation might be loaded before one of its parent pages - // is loaded, in which case that parent page won't have the in-tree and containsHead - // values. Walking up the tree in resolveId ensures that they do - return this.resolve(source, importer, { skipSelf: true }).then((result) => { - if (result) { - let info = this.getModuleInfo(result.id); - const astro = info && getAstroMetadata(info); - if (astro) { - if (astro.propagation === 'self' || astro.propagation === 'in-tree') { - propagateMetadata.call(this, importer, 'propagation', 'in-tree'); + return [ + { + name: 'astro:head-metadata', + enforce: 'pre', + apply: 'serve', + configureServer(_server) { + server = _server; + environment = server.environments[ASTRO_VITE_ENVIRONMENT_NAMES.ssr]; + }, + resolveId(source, importer) { + if (importer) { + // Do propagation any time a new module is imported. This is because + // A module with propagation might be loaded before one of its parent pages + // is loaded, in which case that parent page won't have the in-tree and containsHead + // values. Walking up the tree in resolveId ensures that they do + return this.resolve(source, importer, { skipSelf: true }).then((result) => { + if (result) { + let info = this.getModuleInfo(result.id); + const astro = info && getAstroMetadata(info); + if (astro) { + if (astro.propagation === 'self' || astro.propagation === 'in-tree') { + propagateMetadata.call(this, importer, 'propagation', 'in-tree'); + } + if (astro.containsHead) { + propagateMetadata.call(this, importer, 'containsHead', true); + } } - if (astro.containsHead) { - propagateMetadata.call(this, importer, 'containsHead', true); + } + return result; + }); + } + }, + transform(source, id) { + let info = this.getModuleInfo(id); + if (info && getAstroMetadata(info)?.containsHead) { + propagateMetadata.call(this, id, 'containsHead', true); + } + + if (injectExp.test(source)) { + propagateMetadata.call(this, id, 'propagation', 'in-tree'); + } + }, + }, + { + // Virtual module that exposes componentMetadata collected by the head-metadata plugin. + // This is used by NonRunnablePipeline (e.g. Cloudflare workerd) which cannot access + // the Vite module graph directly at render time. + name: 'astro:dev-component-metadata', + apply: 'serve', + resolveId: { + filter: { + id: new RegExp(`^${DEV_COMPONENT_METADATA_ID}$`), + }, + handler() { + return DEV_COMPONENT_METADATA_RESOLVED_ID; + }, + }, + load: { + filter: { + id: new RegExp(`^\\0${DEV_COMPONENT_METADATA_ID}$`), + }, + handler() { + // Collect all component metadata from the SSR environment's module graph. + // The head-metadata plugin has already propagated 'in-tree' and 'containsHead' + // up through the module graph during resolveId/transform. + const entries: [string, SSRComponentMetadata][] = []; + const ssrEnv = server?.environments[ASTRO_VITE_ENVIRONMENT_NAMES.ssr]; + if (ssrEnv) { + for (const [id] of ssrEnv.moduleGraph.idToModuleMap) { + const info = ssrEnv.pluginContainer.getModuleInfo(id); + if (info) { + const astro = getAstroMetadata(info); + if (astro && (astro.propagation !== 'none' || astro.containsHead)) { + entries.push([ + id, + { + propagation: astro.propagation || 'none', + containsHead: astro.containsHead || false, + }, + ]); + } } } } - return result; - }); - } + return { + code: `export const componentMetadata = new Map(${JSON.stringify(entries)});`, + }; + }, + }, }, - transform(source, id) { - let info = this.getModuleInfo(id); - if (info && getAstroMetadata(info)?.containsHead) { - propagateMetadata.call(this, id, 'containsHead', true); - } - - if (injectExp.test(source)) { - propagateMetadata.call(this, id, 'propagation', 'in-tree'); - } - }, - }; + ]; } export function astroHeadBuildPlugin(internals: BuildInternals): vite.Plugin { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9eb5fa90c36..17dee8bcae10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7140,15 +7140,6 @@ importers: specifier: ^3.1.6 version: 3.1.6(typescript@5.9.3) - triage/current: - dependencies: - '@astrojs/vercel': - specifier: ^10.0.0-beta.4 - version: link:../../packages/integrations/vercel - astro: - specifier: 6.0.0-beta.11 - version: 6.0.0-beta.11(@azure/identity@4.13.0)(@netlify/blobs@10.7.0)(@types/node@25.2.3)(@vercel/functions@3.4.3)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.58.0)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) - packages: '@antfu/utils@0.7.10': @@ -7265,9 +7256,6 @@ packages: '@astrojs/compiler@3.0.0': resolution: {integrity: sha512-MwAbDE5mawZ1SS+D8qWiHdprdME5Tlj2e0YjxnEICvcOpbSukNS7Sa7hA5PK+6RrmUr/t6Gi5YgrdZKjbO/WPQ==} - '@astrojs/internal-helpers@0.8.0-beta.1': - resolution: {integrity: sha512-nX39HmVNrto0AwlGnk6Vj8fQ35v4VVIuSxsbvaANGeAIK7uAjOY3ca7xz+gejWeqGbY7vkGk6vsz3i0jTClCSQ==} - '@astrojs/language-server@2.16.3': resolution: {integrity: sha512-yO5K7RYCMXUfeDlnU6UnmtnoXzpuQc0yhlaCNZ67k1C/MiwwwvMZz+LGa+H35c49w5QBfvtr4w4Zcf5PcH8uYA==} hasBin: true @@ -7280,13 +7268,6 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@7.0.0-beta.6': - resolution: {integrity: sha512-6SRUg3feMrLUyKdjPXrrzE1Gmb+x1jDKqoUmZZcbMzByipCZKAi82DmbuZmRqg7Bb49xGW+iS/F8urOPz8/L+A==} - - '@astrojs/prism@4.0.0-beta.2': - resolution: {integrity: sha512-3snR85nTXnXvgmFJ43AacCQcylk+mpsiQ5Gmr9hcR5IrEA6+EvaYfaF9jlxZqJIZYey/9ubSRmaERtwDhV/FeA==} - engines: {node: ^20.19.1 || >=22.12.0} - '@astrojs/solid-js@5.1.3': resolution: {integrity: sha512-KxfYt4y1d7BuSw6EsN1EaPoGYsIES7bEI6AtTbncuabRUUMZs+mOWOeOdmgnwVLj+jbNbhBjUZsqr77eUviZdw==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} @@ -7297,10 +7278,6 @@ packages: solid-devtools: optional: true - '@astrojs/telemetry@3.3.0': - resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - '@astrojs/vue@5.1.4': resolution: {integrity: sha512-srE+3tgSnGG4FVr7Bs9JAgLcUAg1mtGrbBFdwlj++Y05Awwlc967WCcmOK6rnxQ6q5PcK5+WL2x2tKoWh5SN7A==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} @@ -9882,30 +9859,18 @@ packages: resolution: {integrity: sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==} engines: {node: '>=20.0.0'} - '@shikijs/core@3.23.0': - resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} - '@shikijs/core@4.0.0': resolution: {integrity: sha512-tvV94Dwyz4qFZ8R0MUaFx5Yptgy8yrloa4dwynEJDGjKz+8vqO8Q6FmPZL9W1gSzFHOUMOGQzIHK62aGourFxA==} engines: {node: '>=20'} - '@shikijs/engine-javascript@3.23.0': - resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} - '@shikijs/engine-javascript@4.0.0': resolution: {integrity: sha512-+PEyTS+JTz2lLy2C1Dwwx6hzoehIzqxQYh5MEjv9V4JtSabx+bIkRHfQT+6DnBmPAplGH0exBknWeiJSXC7w1w==} engines: {node: '>=20'} - '@shikijs/engine-oniguruma@3.23.0': - resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - '@shikijs/engine-oniguruma@4.0.0': resolution: {integrity: sha512-KXmq4b6Xw16+4+rz5M4NZMoe/tzs5kTOMSJz8+LCyxSrwmxwTBAM/ab85iSO2Gw79E47HkW4B9HPHUXhrNOivw==} engines: {node: '>=20'} - '@shikijs/langs@3.23.0': - resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - '@shikijs/langs@4.0.0': resolution: {integrity: sha512-dSAT6fBcnOcYZQMWZO8+OmzUKKm+OO0As/qZ3TXLiSy0JsCTEYz1TaX7TDupnYLz7dr0oF2DOTEgPocx1D3aFw==} engines: {node: '>=20'} @@ -9918,9 +9883,6 @@ packages: resolution: {integrity: sha512-zvvK1H763oSOH7jh2eVMYwM2zDEVVqboSn4ChIC1W8SnB5kQwanZYdIWJrWJPlzCjyd8loHlp0a9mOTds8QtGA==} engines: {node: '>=20'} - '@shikijs/themes@3.23.0': - resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - '@shikijs/themes@4.0.0': resolution: {integrity: sha512-xe42kvxOXan5ouXxULez6qwDNUJkoP6kicfg0wKuJBkeIaHLxZBZa2gEGYutL1q27DQZ5+XoR6caVX+E/aNR5A==} engines: {node: '>=20'} @@ -9931,9 +9893,6 @@ packages: peerDependencies: typescript: '>=5.5.0' - '@shikijs/types@3.23.0': - resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - '@shikijs/types@4.0.0': resolution: {integrity: sha512-LCnfBTtQKNtJyc1qMShZr2dJt1uxNI6pI0/YTc2DSNET91aUvnMGHUHsucVCC5AJVcv5XyBqk2NgYRwd20EjbA==} engines: {node: '>=20'} @@ -10792,9 +10751,6 @@ packages: alpinejs@3.15.8: resolution: {integrity: sha512-zxIfCRTBGvF1CCLIOMQOxAyBuqibxSEwS6Jm1a3HGA9rgrJVcjEWlwLcQTVGAWGS8YhAsTRLVrtQ5a5QT9bSSQ==} - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -10902,11 +10858,6 @@ packages: resolution: {integrity: sha512-jL5skNQLA0YBc1R3bVGXyHew3FqGqsT7AgLzWAVeTLzFkwVMUYvs4/lKJSmS7ygcF1GnHnoKG6++8GL9VtWwGQ==} engines: {node: '>=18.14.1'} - astro@6.0.0-beta.11: - resolution: {integrity: sha512-kQvgIJnjgnVgkAOcSXB9/iRHvw437/40dnvi+7J1RQxPAWVahh9fhNPjbCWqcQV4bblzG3SAQLSJCf7FcKnV8g==} - engines: {node: ^20.19.1 || >=22.12.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} - hasBin: true - async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -10989,9 +10940,6 @@ packages: bare-abort-controller: optional: true - base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -11049,10 +10997,6 @@ packages: boundary@2.0.0: resolution: {integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==} - boxen@8.0.1: - resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} - engines: {node: '>=18'} - brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -11139,10 +11083,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} - caniuse-lite@1.0.30001774: resolution: {integrity: sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==} @@ -11237,10 +11177,6 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -11676,10 +11612,6 @@ packages: peerDependencies: typescript: ^5.4.4 - deterministic-object-hash@2.0.2: - resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} - engines: {node: '>=18'} - dettle@1.0.5: resolution: {integrity: sha512-ZVyjhAJ7sCe1PNXEGveObOH9AC8QvMga3HJIghHawtG7mE4K5pW9nz/vDGAr/U7a3LWgdOzEE7ac9MURnyfaTA==} @@ -12990,10 +12922,6 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -14363,10 +14291,6 @@ packages: promise-limit@2.7.0: resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==} - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -14815,9 +14739,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.23.0: - resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} - shiki@4.0.0: resolution: {integrity: sha512-rjKoiw30ZaFsM0xnPPwxco/Jftz/XXqZkcQZBTX4LGheDw8gCDEH87jdgaKDEG3FZO2bFOK27+sR/sDHhbBXfg==} engines: {node: '>=20'} @@ -16037,10 +15958,6 @@ packages: wicked-good-xpath@1.3.0: resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} - widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} - engines: {node: '>=18'} - winston-transport@4.9.0: resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} engines: {node: '>= 12.0.0'} @@ -16083,10 +16000,6 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - wrap-ansi@9.0.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} - wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -16215,10 +16128,6 @@ packages: resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} - yocto-spinner@1.1.0: - resolution: {integrity: sha512-/BY0AUXnS7IKO354uLLA2eRcWiqDifEbd6unXCsOxkFDAkhgUL3PH9X2bFoaU0YchnDXsF+iKleeTLJGckbXfA==} - engines: {node: '>=18.19'} - yoctocolors@2.1.2: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} @@ -16363,8 +16272,6 @@ snapshots: '@astrojs/compiler@3.0.0': {} - '@astrojs/internal-helpers@0.8.0-beta.1': {} - '@astrojs/language-server@2.16.3(prettier-plugin-astro@0.14.1)(prettier@3.8.1)(typescript@5.9.3)': dependencies: '@astrojs/compiler': 2.13.1 @@ -16391,35 +16298,6 @@ snapshots: transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@7.0.0-beta.6': - dependencies: - '@astrojs/internal-helpers': 0.8.0-beta.1 - '@astrojs/prism': 4.0.0-beta.2 - github-slugger: 2.0.0 - hast-util-from-html: 2.0.3 - hast-util-to-text: 4.0.2 - js-yaml: 4.1.1 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.1 - remark-gfm: 4.0.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - remark-smartypants: 3.0.2 - shiki: 3.23.0 - smol-toml: 1.6.0 - unified: 11.0.5 - unist-util-remove-position: 5.0.0 - unist-util-visit: 5.1.0 - unist-util-visit-parents: 6.0.2 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@astrojs/prism@4.0.0-beta.2': - dependencies: - prismjs: 1.30.0 - '@astrojs/solid-js@5.1.3(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass@1.97.3)(solid-js@1.9.11)(tsx@4.21.0)(yaml@2.8.2)': dependencies: solid-js: 1.9.11 @@ -16440,18 +16318,6 @@ snapshots: - tsx - yaml - '@astrojs/telemetry@3.3.0': - dependencies: - ci-info: 4.4.0 - debug: 4.4.3(supports-color@8.1.1) - dlv: 1.1.3 - dset: 3.1.4 - is-docker: 3.0.0 - is-wsl: 3.1.1 - which-pm-runs: 1.1.0 - transitivePeerDependencies: - - supports-color - '@astrojs/vue@5.1.4(@types/node@25.2.3)(astro@packages+astro)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.58.0)(sass@1.97.3)(tsx@4.21.0)(vue@3.5.29(typescript@5.9.3))(yaml@2.8.2)': dependencies: '@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass@1.97.3)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3)) @@ -19038,13 +18904,6 @@ snapshots: '@secretlint/types@10.2.2': {} - '@shikijs/core@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - '@shikijs/core@4.0.0': dependencies: '@shikijs/primitive': 4.0.0 @@ -19053,32 +18912,17 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.4 - '@shikijs/engine-javascript@4.0.0': dependencies: '@shikijs/types': 4.0.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.4 - '@shikijs/engine-oniguruma@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@4.0.0': dependencies: '@shikijs/types': 4.0.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/langs@4.0.0': dependencies: '@shikijs/types': 4.0.0 @@ -19098,10 +18942,6 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.1.0 - '@shikijs/themes@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/themes@4.0.0': dependencies: '@shikijs/types': 4.0.0 @@ -19115,11 +18955,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@shikijs/types@3.23.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - '@shikijs/types@4.0.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -20215,10 +20050,6 @@ snapshots: dependencies: '@vue/reactivity': 3.1.5 - ansi-align@3.0.1: - dependencies: - string-width: 4.2.3 - ansi-colors@4.1.3: {} ansi-escapes@5.0.0: @@ -20324,103 +20155,6 @@ snapshots: marked-smartypants: 1.1.11(marked@12.0.2) ultrahtml: 1.6.0 - astro@6.0.0-beta.11(@azure/identity@4.13.0)(@netlify/blobs@10.7.0)(@types/node@25.2.3)(@vercel/functions@3.4.3)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.58.0)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): - dependencies: - '@astrojs/compiler': 3.0.0 - '@astrojs/internal-helpers': 0.8.0-beta.1 - '@astrojs/markdown-remark': 7.0.0-beta.6 - '@astrojs/telemetry': 3.3.0 - '@capsizecss/unpack': 4.0.0 - '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.3.0(rollup@4.58.0) - aria-query: 5.3.2 - axobject-query: 4.1.0 - boxen: 8.0.1 - ci-info: 4.4.0 - clsx: 2.1.1 - common-ancestor-path: 2.0.0 - cookie: 1.1.1 - cssesc: 3.0.0 - debug: 4.4.3(supports-color@8.1.1) - deterministic-object-hash: 2.0.2 - devalue: 5.6.3 - diff: 8.0.3 - dlv: 1.1.3 - dset: 3.1.4 - es-module-lexer: 2.0.0 - esbuild: 0.25.5 - flattie: 1.1.1 - fontace: 0.4.1 - github-slugger: 2.0.0 - html-escaper: 3.0.3 - http-cache-semantics: 4.2.0 - js-yaml: 4.1.1 - magic-string: 0.30.21 - magicast: 0.5.2 - mrmime: 2.0.1 - neotraverse: 0.6.18 - p-limit: 7.3.0 - p-queue: 9.1.0 - package-manager-detector: 1.6.0 - piccolore: 0.1.3 - picomatch: 4.0.3 - prompts: 2.4.2 - rehype: 13.0.2 - semver: 7.7.4 - shiki: 3.23.0 - smol-toml: 1.6.0 - svgo: 4.0.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.15 - tsconfck: 3.1.6(typescript@5.9.3) - ultrahtml: 1.6.0 - unifont: 0.7.4 - unist-util-visit: 5.1.0 - unstorage: 1.17.4(@azure/identity@4.13.0)(@netlify/blobs@10.7.0)(@vercel/functions@3.4.3) - vfile: 6.0.3 - vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass@1.97.3)(tsx@4.21.0)(yaml@2.8.2) - vitefu: 1.1.2(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(sass@1.97.3)(tsx@4.21.0)(yaml@2.8.2)) - xxhash-wasm: 1.1.0 - yargs-parser: 22.0.0 - yocto-spinner: 1.1.0 - zod: 4.3.6 - optionalDependencies: - sharp: 0.34.5 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@types/node' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - idb-keyval - - ioredis - - jiti - - less - - lightningcss - - rollup - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - uploadthing - - yaml - async-sema@3.1.1: {} async@3.2.6: {} @@ -20516,8 +20250,6 @@ snapshots: bare-events@2.8.2: {} - base-64@1.0.0: {} - base64-js@1.5.1: {} baseline-browser-mapping@2.9.19: {} @@ -20582,17 +20314,6 @@ snapshots: boundary@2.0.0: {} - boxen@8.0.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 8.0.0 - chalk: 5.6.2 - cli-boxes: 3.0.0 - string-width: 7.2.0 - type-fest: 4.41.0 - widest-line: 5.0.0 - wrap-ansi: 9.0.2 - brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -20678,8 +20399,6 @@ snapshots: camelcase@6.3.0: {} - camelcase@8.0.0: {} - caniuse-lite@1.0.30001774: {} canvas-confetti@1.9.4: {} @@ -20783,8 +20502,6 @@ snapshots: cjs-module-lexer@1.4.3: {} - cli-boxes@3.0.0: {} - cli-cursor@4.0.0: dependencies: restore-cursor: 4.0.0 @@ -21159,10 +20876,6 @@ snapshots: transitivePeerDependencies: - supports-color - deterministic-object-hash@2.0.2: - dependencies: - base-64: 1.0.0 - dettle@1.0.5: {} devalue@5.6.3: {} @@ -22649,8 +22362,6 @@ snapshots: dependencies: json-buffer: 3.0.1 - kleur@3.0.3: {} - kleur@4.1.5: {} knip@5.82.1(@types/node@18.19.130)(typescript@5.9.3): @@ -24397,11 +24108,6 @@ snapshots: promise-limit@2.7.0: {} - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - property-information@7.1.0: {} proxy-addr@2.0.7: @@ -25026,17 +24732,6 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.23.0: - dependencies: - '@shikijs/core': 3.23.0 - '@shikijs/engine-javascript': 3.23.0 - '@shikijs/engine-oniguruma': 3.23.0 - '@shikijs/langs': 3.23.0 - '@shikijs/themes': 3.23.0 - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - shiki@4.0.0: dependencies: '@shikijs/core': 4.0.0 @@ -26320,10 +26015,6 @@ snapshots: wicked-good-xpath@1.3.0: {} - widest-line@5.0.0: - dependencies: - string-width: 7.2.0 - winston-transport@4.9.0: dependencies: logform: 2.7.0 @@ -26391,12 +26082,6 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.2 - wrap-ansi@9.0.2: - dependencies: - ansi-styles: 6.2.3 - string-width: 7.2.0 - strip-ansi: 7.1.2 - wrappy@1.0.2: {} write-file-atomic@5.0.1: @@ -26519,10 +26204,6 @@ snapshots: yocto-queue@1.2.2: {} - yocto-spinner@1.1.0: - dependencies: - yoctocolors: 2.1.2 - yoctocolors@2.1.2: {} youch-core@0.3.3: From 2d235e219342d1fa6d373f8c9b06fe10610c5f8d Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Tue, 10 Mar 2026 11:06:24 +0100 Subject: [PATCH 7/7] Create shaggy-emus-reply.md --- .changeset/shaggy-emus-reply.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shaggy-emus-reply.md diff --git a/.changeset/shaggy-emus-reply.md b/.changeset/shaggy-emus-reply.md new file mode 100644 index 000000000000..b94867496e31 --- /dev/null +++ b/.changeset/shaggy-emus-reply.md @@ -0,0 +1,5 @@ +--- +"astro": patch +--- + +fix(cloudflare): Attempt at a fix for style rendering inside non-Node runtimes