blume 1.7.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +19 -0
- package/CHANGELOG.md +227 -0
- package/README.md +34 -21
- package/dist/cli/chunk-11j0384y.js +148 -0
- package/dist/cli/chunk-11j0384y.js.map +10 -0
- package/dist/cli/{chunk-xhtpx3ff.js → chunk-1w8dp3qb.js} +17 -16
- package/dist/cli/{chunk-xhtpx3ff.js.map → chunk-1w8dp3qb.js.map} +3 -3
- package/dist/cli/chunk-2q1dwty4.js +75 -0
- package/dist/cli/chunk-2q1dwty4.js.map +11 -0
- package/dist/cli/chunk-41za066z.js +122 -0
- package/dist/cli/chunk-41za066z.js.map +11 -0
- package/dist/cli/chunk-5a2z0198.js +133 -0
- package/dist/cli/chunk-5a2z0198.js.map +10 -0
- package/dist/cli/{chunk-9he6crym.js → chunk-6k8vp3ta.js} +25 -13
- package/dist/cli/{chunk-9he6crym.js.map → chunk-6k8vp3ta.js.map} +4 -4
- package/dist/cli/{chunk-mt76t7dj.js → chunk-79njf86q.js} +133 -54
- package/dist/cli/chunk-79njf86q.js.map +11 -0
- package/dist/cli/{chunk-3w7b2vcx.js → chunk-7ez8ny0t.js} +2 -2
- package/dist/cli/{chunk-688e0dde.js → chunk-88cpgt6h.js} +1 -1
- package/dist/cli/chunk-a9kptbw5.js +361 -0
- package/dist/cli/chunk-a9kptbw5.js.map +14 -0
- package/dist/cli/chunk-abh8yjkn.js +31 -0
- package/dist/cli/chunk-abh8yjkn.js.map +10 -0
- package/dist/cli/chunk-b5aj94ah.js +91 -0
- package/dist/cli/chunk-b5aj94ah.js.map +10 -0
- package/dist/cli/{chunk-hs3gbh8p.js → chunk-bctazmbk.js} +9 -5
- package/dist/cli/chunk-bctazmbk.js.map +10 -0
- package/dist/cli/chunk-beat36xx.js +279 -0
- package/dist/cli/chunk-beat36xx.js.map +10 -0
- package/dist/cli/chunk-bnbmcwfb.js +145 -0
- package/dist/cli/chunk-bnbmcwfb.js.map +11 -0
- package/dist/cli/{chunk-9bkjd11x.js → chunk-bw22s759.js} +15 -5
- package/dist/cli/{chunk-9bkjd11x.js.map → chunk-bw22s759.js.map} +4 -4
- package/dist/cli/chunk-by2290sx.js +39 -0
- package/dist/cli/chunk-by2290sx.js.map +10 -0
- package/dist/cli/chunk-d1tadaw7.js +79 -0
- package/dist/cli/chunk-d1tadaw7.js.map +10 -0
- package/dist/cli/{chunk-t3tj0dgr.js → chunk-d80hr03s.js} +24 -19
- package/dist/cli/chunk-d80hr03s.js.map +15 -0
- package/dist/cli/chunk-ernrthtr.js +97 -0
- package/dist/cli/chunk-ernrthtr.js.map +10 -0
- package/dist/cli/chunk-f2972sbt.js +374 -0
- package/dist/cli/chunk-f2972sbt.js.map +10 -0
- package/dist/cli/{chunk-exeeb35e.js → chunk-f7t03s3g.js} +2 -2
- package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
- package/dist/cli/chunk-fa25z98p.js.map +11 -0
- package/dist/cli/{chunk-12dxjqk7.js → chunk-fh5hj5jt.js} +44 -21
- package/dist/cli/chunk-fh5hj5jt.js.map +10 -0
- package/dist/cli/{chunk-8cd8tj54.js → chunk-j8mw0za6.js} +86 -57
- package/dist/cli/chunk-j8mw0za6.js.map +35 -0
- package/dist/cli/chunk-jts8mvcz.js +106 -0
- package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
- package/dist/cli/{chunk-ejjx8znq.js → chunk-mnqj32sj.js} +505 -536
- package/dist/cli/chunk-mnqj32sj.js.map +12 -0
- package/dist/cli/{chunk-196vjxp9.js → chunk-mwt1k8n7.js} +100 -372
- package/dist/cli/chunk-mwt1k8n7.js.map +10 -0
- package/dist/cli/chunk-nk3ts2xk.js +51 -0
- package/dist/cli/chunk-nk3ts2xk.js.map +10 -0
- package/dist/cli/{chunk-n9sra6sy.js → chunk-pat2zzwc.js} +10 -14
- package/dist/cli/{chunk-n9sra6sy.js.map → chunk-pat2zzwc.js.map} +2 -2
- package/dist/cli/chunk-pnnvybbk.js +176 -0
- package/dist/cli/chunk-pnnvybbk.js.map +11 -0
- package/dist/cli/{chunk-cvky9gb2.js → chunk-sqn5t4q0.js} +81 -87
- package/dist/cli/chunk-sqn5t4q0.js.map +10 -0
- package/dist/cli/{chunk-eevwt1sc.js → chunk-tzne8qfq.js} +15 -15
- package/dist/cli/{chunk-eevwt1sc.js.map → chunk-tzne8qfq.js.map} +1 -1
- package/dist/cli/chunk-xaz13gwg.js +12449 -0
- package/dist/cli/chunk-xaz13gwg.js.map +182 -0
- package/dist/cli/chunk-y3e45rc8.js +102 -0
- package/dist/cli/chunk-y3e45rc8.js.map +10 -0
- package/dist/cli/chunk-z01ze5c1.js +261 -0
- package/dist/cli/chunk-z01ze5c1.js.map +10 -0
- package/dist/cli/{chunk-5n7t497w.js → chunk-z1f5arsg.js} +247 -755
- package/dist/cli/chunk-z1f5arsg.js.map +36 -0
- package/dist/cli/{chunk-hdm2dkd2.js → chunk-zg2gtj10.js} +1086 -2596
- package/dist/cli/chunk-zg2gtj10.js.map +35 -0
- package/dist/cli/{chunk-ppfvdcd4.js → chunk-zxccj738.js} +1 -1
- package/dist/cli/index.js +214 -57
- package/dist/cli/index.js.map +8 -7
- package/dist/types/ai/agent-readability.d.ts +52 -0
- package/dist/types/ai/ai-catalog.d.ts +42 -0
- package/dist/types/ai/api/paths.d.ts +17 -0
- package/dist/types/ai/api-catalog.d.ts +18 -0
- package/dist/types/ai/ask.d.ts +368 -0
- package/dist/types/ai/changelog-markdown.d.ts +2 -0
- package/dist/types/ai/component-markdown.d.ts +2 -2
- package/dist/types/ai/index.d.ts +24 -0
- package/dist/types/ai/link-headers.d.ts +24 -0
- package/dist/types/ai/llms.d.ts +25 -0
- package/dist/types/ai/markdown.d.ts +45 -0
- package/dist/types/ai/mcp/discovery.d.ts +68 -0
- package/dist/types/ai/mcp/tools.d.ts +16 -0
- package/dist/types/ai/openapi-components.d.ts +43 -0
- package/dist/types/ai/relative-links.d.ts +26 -0
- package/dist/types/ai/serializers.d.ts +15 -0
- package/dist/types/ai/skills.d.ts +42 -0
- package/dist/types/ai/tar.d.ts +25 -0
- package/dist/types/ai/visibility.d.ts +17 -0
- package/dist/types/ai/web-bot-auth.d.ts +16 -0
- package/dist/types/analytics/adobe.d.ts +35 -0
- package/dist/types/analytics/amplitude.d.ts +50 -0
- package/dist/types/analytics/clarity.d.ts +31 -0
- package/dist/types/analytics/clearbit.d.ts +29 -0
- package/dist/types/analytics/cloudflare.d.ts +41 -0
- package/dist/types/analytics/fathom.d.ts +41 -0
- package/dist/types/analytics/google-analytics.d.ts +44 -0
- package/dist/types/analytics/google-tag-manager.d.ts +40 -0
- package/dist/types/analytics/head.d.ts +30 -0
- package/dist/types/analytics/heap.d.ts +40 -0
- package/dist/types/analytics/hightouch.d.ts +44 -0
- package/dist/types/analytics/hotjar.d.ts +33 -0
- package/dist/types/analytics/index.d.ts +61 -0
- package/dist/types/analytics/inline.d.ts +17 -0
- package/dist/types/analytics/logrocket.d.ts +44 -0
- package/dist/types/analytics/mixpanel.d.ts +67 -0
- package/dist/types/analytics/pirsch.d.ts +42 -0
- package/dist/types/analytics/plausible.d.ts +56 -0
- package/dist/types/analytics/posthog.d.ts +45 -0
- package/dist/types/analytics/schema.d.ts +320 -0
- package/dist/types/analytics/script.d.ts +46 -0
- package/dist/types/analytics/segment.d.ts +50 -0
- package/dist/types/analytics/vercel.d.ts +48 -0
- package/dist/types/astro/integration.d.ts +76 -0
- package/dist/types/astro/markdown-negotiation.d.ts +23 -0
- package/dist/types/astro/module-types.d.ts +14 -0
- package/dist/types/astro/pages.d.ts +44 -0
- package/dist/types/cli/env.d.ts +12 -0
- package/dist/types/cli/init/scaffold.d.ts +154 -0
- package/dist/types/components/layout/nav-utils.d.ts +11 -0
- package/dist/types/core/adapter.d.ts +47 -0
- package/dist/types/core/api-name.d.ts +7 -0
- package/dist/types/core/changelog-index.d.ts +13 -0
- package/dist/types/core/config-input.d.ts +209 -505
- package/dist/types/core/config.d.ts +60 -34
- package/dist/types/core/content-assets.d.ts +76 -0
- package/dist/types/core/custom-pages.d.ts +33 -0
- package/dist/types/core/data.d.ts +28 -11
- package/dist/types/core/define-components.d.ts +12 -9
- package/dist/types/core/deployment-env.d.ts +6 -11
- package/dist/types/core/frontmatter.d.ts +10 -0
- package/dist/types/core/graph.d.ts +18 -0
- package/dist/types/core/heading-markers.d.ts +54 -0
- package/dist/types/core/i18n-ui.d.ts +6 -2
- package/dist/types/core/i18n.d.ts +87 -0
- package/dist/types/core/includes.d.ts +138 -0
- package/dist/types/core/last-modified.d.ts +47 -0
- package/dist/types/core/links.d.ts +95 -0
- package/dist/types/core/locale-links.d.ts +60 -0
- package/dist/types/core/manifest.d.ts +17 -0
- package/dist/types/core/meta.d.ts +38 -0
- package/dist/types/core/nav-diagnostics.d.ts +26 -0
- package/dist/types/core/navigation.d.ts +6 -0
- package/dist/types/core/node-require.d.ts +19 -0
- package/dist/types/core/package-json.d.ts +13 -0
- package/dist/types/core/probe.d.ts +42 -0
- package/dist/types/core/project-graph.d.ts +51 -0
- package/dist/types/core/project.d.ts +2 -0
- package/dist/types/core/safe-href.d.ts +2 -0
- package/dist/types/core/safe-links.d.ts +26 -0
- package/dist/types/core/schema.d.ts +2291 -441
- package/dist/types/core/site-url.d.ts +16 -0
- package/dist/types/core/sources/assets.d.ts +36 -0
- package/dist/types/core/sources/cache.d.ts +37 -0
- package/dist/types/core/sources/collection.d.ts +28 -0
- package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
- package/dist/types/core/sources/contentful.d.ts +40 -0
- package/dist/types/core/sources/filesystem.d.ts +24 -0
- package/dist/types/core/sources/github-releases.d.ts +31 -0
- package/dist/types/core/sources/json.d.ts +30 -0
- package/dist/types/core/sources/lexical.d.ts +19 -0
- package/dist/types/core/sources/lower.d.ts +75 -0
- package/dist/types/core/sources/mdx-remote.d.ts +28 -0
- package/dist/types/core/sources/normalize.d.ts +147 -0
- package/dist/types/core/sources/notion.d.ts +131 -0
- package/dist/types/core/sources/obsidian.d.ts +46 -0
- package/dist/types/core/sources/payload.d.ts +39 -0
- package/dist/types/core/sources/portable-text.d.ts +42 -0
- package/dist/types/core/sources/read.d.ts +23 -0
- package/dist/types/core/sources/remote.d.ts +74 -0
- package/dist/types/core/sources/resolve.d.ts +19 -0
- package/dist/types/core/sources/sanity.d.ts +43 -0
- package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
- package/dist/types/core/sources/strapi.d.ts +33 -0
- package/dist/types/core/sources/types.d.ts +7 -0
- package/dist/types/core/sources/watch.d.ts +45 -0
- package/dist/types/core/text-width.d.ts +11 -0
- package/dist/types/core/types.d.ts +20 -1
- package/dist/types/core/unrecognized-keys.d.ts +7 -0
- package/dist/types/core/versions.d.ts +72 -0
- package/dist/types/core/yaml.d.ts +9 -0
- package/dist/types/deploy/adapter-output.d.ts +45 -0
- package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
- package/dist/types/deploy/adapters/index.d.ts +29 -0
- package/dist/types/deploy/adapters/netlify.d.ts +37 -0
- package/dist/types/deploy/adapters/node.d.ts +37 -0
- package/dist/types/deploy/adapters/registry.d.ts +133 -0
- package/dist/types/deploy/adapters/types.d.ts +71 -0
- package/dist/types/deploy/adapters/vercel.d.ts +38 -0
- package/dist/types/deploy/artifacts.d.ts +65 -0
- package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
- package/dist/types/deploy/function-bundle.d.ts +80 -0
- package/dist/types/deploy/headers.d.ts +50 -0
- package/dist/types/deploy/node-headers.d.ts +42 -0
- package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
- package/dist/types/deploy/platforms/index.d.ts +18 -0
- package/dist/types/deploy/platforms/netlify.d.ts +13 -0
- package/dist/types/deploy/platforms/node.d.ts +11 -0
- package/dist/types/deploy/platforms/paths.d.ts +27 -0
- package/dist/types/deploy/platforms/static.d.ts +10 -0
- package/dist/types/deploy/platforms/types.d.ts +104 -0
- package/dist/types/deploy/platforms/vercel.d.ts +32 -0
- package/dist/types/deploy/redirects.d.ts +53 -0
- package/dist/types/deploy/robots.d.ts +8 -0
- package/dist/types/deploy/rss.d.ts +31 -0
- package/dist/types/deploy/sitemap.d.ts +21 -0
- package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
- package/dist/types/markdown/code-title.d.ts +32 -0
- package/dist/types/markdown/fence-meta.d.ts +23 -0
- package/dist/types/markdown/themes.d.ts +3 -3
- package/dist/types/openapi/asyncapi.d.ts +129 -0
- package/dist/types/openapi/graphql-build.d.ts +8 -0
- package/dist/types/openapi/graphql.d.ts +122 -0
- package/dist/types/openapi/model.d.ts +158 -0
- package/dist/types/openapi/parse.d.ts +57 -0
- package/dist/types/openapi/references.d.ts +37 -25
- package/dist/types/openapi/render-mdx.d.ts +33 -0
- package/dist/types/openapi/sentence.d.ts +7 -0
- package/dist/types/openapi/signature.d.ts +10 -0
- package/dist/types/openapi/source.d.ts +22 -0
- package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
- package/dist/types/reference/asyncapi.d.ts +166 -0
- package/dist/types/reference/graphql.d.ts +181 -0
- package/dist/types/reference/index.d.ts +32 -0
- package/dist/types/reference/openapi.d.ts +165 -0
- package/dist/types/reference/options.d.ts +157 -0
- package/dist/types/reference/scalar.d.ts +136 -0
- package/dist/types/reference/schema.d.ts +630 -0
- package/dist/types/search/adapters/algolia.d.ts +32 -0
- package/dist/types/search/adapters/flexsearch.d.ts +12 -0
- package/dist/types/search/adapters/index.d.ts +31 -0
- package/dist/types/search/adapters/mixedbread.d.ts +22 -0
- package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
- package/dist/types/search/adapters/orama.d.ts +13 -0
- package/dist/types/search/adapters/pagefind.d.ts +12 -0
- package/dist/types/search/adapters/registry.d.ts +228 -0
- package/dist/types/search/adapters/types.d.ts +34 -0
- package/dist/types/search/adapters/typesense.d.ts +42 -0
- package/dist/types/search/build.d.ts +23 -0
- package/dist/types/search/documents.d.ts +90 -0
- package/dist/types/search/facets.d.ts +3 -0
- package/dist/types/search/sync/algolia.d.ts +14 -0
- package/dist/types/search/sync/index.d.ts +14 -0
- package/dist/types/search/sync/orama-cloud.d.ts +10 -0
- package/dist/types/search/sync/typesense.d.ts +14 -0
- package/dist/types/sources/contentful.d.ts +68 -0
- package/dist/types/sources/custom.d.ts +20 -0
- package/dist/types/sources/filesystem.d.ts +42 -0
- package/dist/types/sources/github-releases.d.ts +46 -0
- package/dist/types/sources/index.d.ts +48 -0
- package/dist/types/sources/mdx-remote.d.ts +63 -0
- package/dist/types/sources/notion.d.ts +65 -0
- package/dist/types/sources/obsidian.d.ts +34 -0
- package/dist/types/sources/payload.d.ts +68 -0
- package/dist/types/sources/registry.d.ts +1414 -0
- package/dist/types/sources/sanity.d.ts +69 -0
- package/dist/types/sources/shared.d.ts +46 -0
- package/dist/types/sources/strapi.d.ts +66 -0
- package/dist/types/theme/icon-kind.d.ts +11 -0
- package/dist/types/theme/icons.d.ts +20 -0
- package/docs/01-quickstart.mdx +18 -18
- package/docs/02-deployment.mdx +50 -26
- package/docs/03-upgrading.mdx +351 -0
- package/docs/04-migrating.mdx +58 -0
- package/docs/08-faq.mdx +3 -3
- package/docs/advanced/blog.mdx +13 -6
- package/docs/advanced/changelog.mdx +23 -35
- package/docs/advanced/custom-pages.mdx +20 -8
- package/docs/advanced/meta.ts +1 -8
- package/docs/advanced/skills.mdx +8 -0
- package/docs/cli/audit.mdx +646 -0
- package/docs/cli/doctor.mdx +29 -0
- package/docs/{reference/eval.mdx → cli/evals.mdx} +9 -8
- package/docs/cli/index.mdx +105 -0
- package/docs/cli/meta.ts +7 -0
- package/docs/{reference → cli}/translate.mdx +1 -1
- package/docs/cli/validate.mdx +41 -0
- package/docs/cli/version.mdx +40 -0
- package/docs/configuration/analytics.mdx +350 -59
- package/docs/configuration/ask-ai.mdx +176 -61
- package/docs/configuration/customization.mdx +15 -9
- package/docs/configuration/index.mdx +52 -31
- package/docs/configuration/search.mdx +75 -54
- package/docs/configuration/theming.mdx +24 -15
- package/docs/content/components.mdx +21 -5
- package/docs/{reference → content}/frontmatter.mdx +37 -1
- package/docs/content/i18n.mdx +8 -6
- package/docs/content/includes.mdx +2 -4
- package/docs/content/index.mdx +1 -1
- package/docs/content/islands.mdx +10 -5
- package/docs/content/meta.mdx +1 -1
- package/docs/content/meta.ts +1 -0
- package/docs/content/navigation.mdx +12 -7
- package/docs/content/sources.mdx +145 -50
- package/docs/content/syntax.mdx +26 -12
- package/docs/content/versioning.mdx +3 -3
- package/docs/discoverability/agent-discovery.mdx +91 -10
- package/docs/discoverability/index.mdx +5 -5
- package/docs/discoverability/json-api.mdx +4 -4
- package/docs/discoverability/llms-txt.mdx +6 -6
- package/docs/discoverability/markdown.mdx +4 -4
- package/docs/discoverability/mcp.mdx +11 -11
- package/docs/discoverability/sitemap-and-robots.mdx +3 -3
- package/docs/index.mdx +2 -2
- package/docs/references/asyncapi.mdx +59 -0
- package/docs/{advanced → references}/graphql.mdx +45 -32
- package/docs/{reference → references}/meta.ts +2 -2
- package/docs/references/openapi.mdx +171 -0
- package/docs/references/scalar.mdx +64 -0
- package/package.json +42 -8
- package/skills/blume/SKILL.md +21 -8
- package/skills/blume-migrate/SKILL.md +22 -21
- package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
- package/skills/blume-migrate/references/docusaurus.md +5 -4
- package/skills/blume-migrate/references/fumadocs.md +4 -4
- package/skills/blume-migrate/references/mintlify.md +23 -8
- package/skills/blume-migrate/references/monorepo.md +6 -6
- package/skills/blume-migrate/references/starlight.md +4 -4
- package/src/ai/agent-readability.ts +26 -22
- package/src/ai/ai-catalog.ts +259 -0
- package/src/ai/api/handlers.ts +46 -11
- package/src/ai/api-catalog.ts +8 -8
- package/src/ai/ask-data.ts +1 -1
- package/src/ai/ask.ts +624 -100
- package/src/ai/changelog-markdown.ts +91 -0
- package/src/ai/component-markdown.ts +328 -12
- package/src/ai/index.ts +45 -0
- package/src/ai/link-headers.ts +19 -6
- package/src/ai/llms.ts +26 -15
- package/src/ai/markdown.ts +35 -5
- package/src/ai/mcp/data.ts +9 -5
- package/src/ai/mcp/discovery.ts +1 -1
- package/src/ai/openapi-components.ts +4 -1
- package/src/ai/relative-links.ts +170 -0
- package/src/ai/serializers.ts +2 -2
- package/src/ai/skills.ts +1 -1
- package/src/ai/web-bot-auth.ts +2 -2
- package/src/analytics/adobe.ts +46 -0
- package/src/analytics/amplitude.ts +79 -0
- package/src/analytics/clarity.ts +46 -0
- package/src/analytics/clearbit.ts +47 -0
- package/src/analytics/cloudflare.ts +67 -0
- package/src/analytics/fathom.ts +64 -0
- package/src/analytics/google-analytics.ts +84 -0
- package/src/analytics/google-tag-manager.ts +61 -0
- package/src/analytics/head.ts +130 -0
- package/src/analytics/heap.ts +65 -0
- package/src/analytics/hightouch.ts +77 -0
- package/src/analytics/hotjar.ts +47 -0
- package/src/analytics/index.ts +71 -0
- package/src/analytics/inline.ts +21 -0
- package/src/analytics/logrocket.ts +71 -0
- package/src/analytics/mixpanel.ts +92 -0
- package/src/analytics/pirsch.ts +66 -0
- package/src/analytics/plausible.ts +83 -0
- package/src/analytics/posthog.ts +78 -0
- package/src/analytics/schema.ts +60 -0
- package/src/analytics/script.ts +60 -0
- package/src/analytics/segment.ts +85 -0
- package/src/analytics/vercel.ts +50 -0
- package/src/astro/adapter-root.ts +7 -9
- package/src/astro/component-slots.ts +131 -91
- package/src/astro/generate.ts +114 -345
- package/src/astro/integration.ts +2 -6
- package/src/astro/pages.ts +13 -101
- package/src/astro/render-deps.ts +379 -0
- package/src/astro/runtime-deps.ts +201 -0
- package/src/astro/templates.ts +554 -541
- package/src/audit/agent.ts +24 -0
- package/src/audit/catalog.ts +2 -2
- package/src/audit/checks/assets.ts +2 -2
- package/src/audit/checks/dns-aid.ts +1 -1
- package/src/audit/checks/duplicates.ts +3 -1
- package/src/audit/checks/i18n.ts +1 -1
- package/src/audit/checks/indexability.ts +7 -7
- package/src/audit/checks/links.ts +2 -2
- package/src/audit/checks/llms.ts +6 -6
- package/src/audit/checks/network.ts +3 -3
- package/src/audit/checks/og-image.ts +2 -2
- package/src/audit/checks/robots.ts +1 -1
- package/src/audit/checks/sitemap.ts +2 -2
- package/src/audit/checks/social.ts +1 -1
- package/src/audit/run.ts +4 -3
- package/src/audit/terms.ts +31 -0
- package/src/audit/url.ts +13 -13
- package/src/cli/command-meta.ts +10 -0
- package/src/cli/commands/audit.ts +39 -20
- package/src/cli/commands/build.ts +71 -314
- package/src/cli/commands/check.ts +1 -0
- package/src/cli/commands/dev.ts +40 -1
- package/src/cli/commands/doctor.ts +90 -14
- package/src/cli/commands/eject.ts +44 -7
- package/src/cli/commands/eval.ts +2 -2
- package/src/cli/commands/init.ts +161 -41
- package/src/cli/commands/migrate.ts +121 -0
- package/src/cli/commands/preview.ts +7 -1
- package/src/cli/commands/translate.ts +2 -2
- package/src/cli/commands/upgrade.ts +141 -0
- package/src/cli/commands/version.ts +57 -44
- package/src/cli/eject-scripts.ts +121 -6
- package/src/cli/index.ts +11 -1
- package/src/cli/init/install.ts +70 -0
- package/src/cli/init/questions.ts +7 -0
- package/src/cli/init/scaffold.ts +459 -75
- package/src/cli/lazy-command.ts +37 -1
- package/src/cli/prepare.ts +40 -6
- package/src/cli/required-secrets.ts +38 -11
- package/src/cli/unknown-flags.ts +266 -0
- package/src/cli/yarn-pnp.ts +52 -0
- package/src/components/content/AccordionItem.astro +7 -1
- package/src/components/content/Card.astro +4 -3
- package/src/components/content/ColorItem.astro +22 -4
- package/src/components/content/GithubInfo.astro +2 -2
- package/src/components/content/Prompt.astro +25 -25
- package/src/components/content/Tabs.astro +3 -1
- package/src/components/content/Tile.astro +2 -3
- package/src/components/content/Tooltip.astro +57 -9
- package/src/components/content/content-strings.ts +34 -0
- package/src/components/content/diff.ts +1 -1
- package/src/components/content/mermaid-element.ts +13 -2
- package/src/components/content/prompt-markdown.ts +292 -0
- package/src/components/content/tooltip-id.ts +41 -0
- package/src/components/islands/hooks.ts +75 -3
- package/src/components/layout/Analytics.astro +21 -79
- package/src/components/layout/Banner.astro +3 -1
- package/src/components/layout/DiscoveryLinks.astro +69 -0
- package/src/components/layout/Header.astro +83 -20
- package/src/components/layout/LanguageSwitcher.astro +4 -1
- package/src/components/layout/Logo.astro +23 -2
- package/src/components/layout/NavSelector.astro +13 -2
- package/src/components/layout/NavTree.astro +12 -3
- package/src/components/layout/NavTreeScript.astro +17 -3
- package/src/components/layout/PageActions.astro +3 -3
- package/src/components/layout/PageFeedback.astro +11 -1
- package/src/components/layout/PageLayout.astro +52 -5
- package/src/components/layout/ReferenceLayout.astro +21 -12
- package/src/components/layout/RootLayout.astro +69 -43
- package/src/components/layout/Search.astro +30 -6
- package/src/components/layout/WebMcp.astro +1 -1
- package/src/components/layout/analytics-client.ts +101 -15
- package/src/components/layout/drawer-inert.ts +113 -15
- package/src/components/layout/dropdown-clamp.ts +105 -0
- package/src/components/layout/head-scripts.ts +15 -6
- package/src/components/layout/nav-utils.ts +17 -0
- package/src/components/layout/search/algolia.ts +8 -8
- package/src/components/layout/search/orama-cloud.ts +9 -7
- package/src/components/layout/search/typesense.ts +11 -17
- package/src/components/openapi/MessageComposer.astro +2 -2
- package/src/components/openapi/Playground.astro +2 -2
- package/src/components/openapi/playground-client.ts +79 -10
- package/src/core/changelog-index.ts +24 -0
- package/src/core/component-overrides.ts +399 -154
- package/src/core/config-input.ts +212 -543
- package/src/core/config.ts +130 -41
- package/src/core/custom-pages.ts +105 -0
- package/src/core/data.ts +32 -11
- package/src/core/define-components.ts +12 -9
- package/src/core/deployment-env.ts +18 -74
- package/src/core/diagnostics.ts +14 -7
- package/src/core/graph.ts +69 -25
- package/src/core/i18n-ui.ts +6 -2
- package/src/core/i18n.ts +17 -0
- package/src/core/includes.ts +156 -38
- package/src/core/last-modified.ts +6 -11
- package/src/core/links.ts +166 -2
- package/src/core/manifest.ts +10 -3
- package/src/core/navigation.ts +137 -19
- package/src/core/new-tab.ts +35 -0
- package/src/core/node-require.ts +21 -0
- package/src/core/project-graph.ts +42 -26
- package/src/core/project.ts +9 -4
- package/src/core/request-body.ts +61 -0
- package/src/core/safe-href.ts +28 -0
- package/src/core/safe-links.ts +68 -0
- package/src/core/schema.ts +531 -721
- package/src/core/server-features.ts +8 -9
- package/src/core/sources/assets.ts +47 -11
- package/src/core/sources/collection.ts +67 -0
- package/src/core/sources/contentful-rich-text.ts +285 -0
- package/src/core/sources/contentful.ts +173 -0
- package/src/core/sources/github-releases.ts +51 -1
- package/src/core/sources/json.ts +71 -0
- package/src/core/sources/lexical.ts +195 -0
- package/src/core/sources/lower.ts +226 -0
- package/src/core/sources/normalize.ts +52 -2
- package/src/core/sources/notion.ts +39 -28
- package/src/core/sources/payload.ts +135 -0
- package/src/core/sources/portable-text.ts +11 -16
- package/src/core/sources/remote.ts +226 -0
- package/src/core/sources/resolve.ts +104 -166
- package/src/core/sources/sanity.ts +16 -49
- package/src/core/sources/strapi-blocks.ts +124 -0
- package/src/core/sources/strapi.ts +191 -0
- package/src/core/sources/types.ts +12 -1
- package/src/core/types.ts +20 -1
- package/src/core/ui-packs/ar.ts +6 -2
- package/src/core/ui-packs/bg.ts +6 -2
- package/src/core/ui-packs/bn.ts +6 -2
- package/src/core/ui-packs/ca.ts +3 -1
- package/src/core/ui-packs/cs.ts +6 -2
- package/src/core/ui-packs/da.ts +6 -2
- package/src/core/ui-packs/de.ts +6 -2
- package/src/core/ui-packs/el.ts +3 -1
- package/src/core/ui-packs/es.ts +3 -1
- package/src/core/ui-packs/fa.ts +6 -2
- package/src/core/ui-packs/fi.ts +6 -2
- package/src/core/ui-packs/fr.ts +3 -1
- package/src/core/ui-packs/he.ts +6 -2
- package/src/core/ui-packs/hi.ts +6 -2
- package/src/core/ui-packs/hr.ts +6 -2
- package/src/core/ui-packs/hu.ts +6 -2
- package/src/core/ui-packs/id.ts +6 -2
- package/src/core/ui-packs/it.ts +3 -1
- package/src/core/ui-packs/ja.ts +3 -1
- package/src/core/ui-packs/ko.ts +3 -1
- package/src/core/ui-packs/nl.ts +6 -2
- package/src/core/ui-packs/no.ts +6 -2
- package/src/core/ui-packs/pl.ts +6 -2
- package/src/core/ui-packs/pt-br.ts +3 -1
- package/src/core/ui-packs/pt.ts +3 -1
- package/src/core/ui-packs/ro.ts +6 -2
- package/src/core/ui-packs/ru.ts +6 -2
- package/src/core/ui-packs/sk.ts +6 -2
- package/src/core/ui-packs/sr.ts +6 -2
- package/src/core/ui-packs/sv.ts +6 -2
- package/src/core/ui-packs/th.ts +3 -1
- package/src/core/ui-packs/tr.ts +6 -2
- package/src/core/ui-packs/uk.ts +6 -2
- package/src/core/ui-packs/vi.ts +3 -1
- package/src/core/ui-packs/zh-tw.ts +3 -1
- package/src/core/ui-packs/zh.ts +3 -1
- package/src/core/unrecognized-keys.ts +10 -0
- package/src/core/version-cut.ts +116 -8
- package/src/deploy/adapter-output.ts +57 -97
- package/src/deploy/adapters/cloudflare.ts +39 -0
- package/src/deploy/adapters/index.ts +41 -0
- package/src/deploy/adapters/netlify.ts +34 -0
- package/src/deploy/adapters/node.ts +34 -0
- package/src/deploy/adapters/registry.ts +127 -0
- package/src/deploy/adapters/types.ts +92 -0
- package/src/deploy/adapters/vercel.ts +35 -0
- package/src/deploy/artifacts.ts +67 -28
- package/src/deploy/cloudflare-negotiation.ts +179 -100
- package/src/deploy/function-bundle.ts +18 -3
- package/src/deploy/headers.ts +129 -22
- package/src/deploy/node-headers.ts +198 -0
- package/src/deploy/platforms/cloudflare.ts +312 -0
- package/src/deploy/platforms/index.ts +67 -0
- package/src/deploy/platforms/netlify.ts +52 -0
- package/src/deploy/platforms/node.ts +40 -0
- package/src/deploy/platforms/paths.ts +42 -0
- package/src/deploy/platforms/static.ts +29 -0
- package/src/deploy/platforms/types.ts +112 -0
- package/src/deploy/platforms/vercel.ts +193 -0
- package/src/deploy/redirects.ts +30 -18
- package/src/deploy/robots.ts +3 -3
- package/src/deploy/rss.ts +2 -2
- package/src/deploy/sitemap.ts +2 -2
- package/src/deploy/vercel-negotiation.ts +27 -4
- package/src/eval/agents.ts +32 -1
- package/src/eval/findings.ts +19 -11
- package/src/eval/report.ts +10 -2
- package/src/markdown/external-links.ts +65 -0
- package/src/markdown/include.ts +45 -27
- package/src/markdown/index.ts +34 -9
- package/src/markdown/inline-code.ts +12 -6
- package/src/markdown/relative-links.ts +324 -0
- package/src/markdown/themes.ts +3 -3
- package/src/migrate/migrate.ts +149 -0
- package/src/openapi/parse.ts +64 -16
- package/src/openapi/proxy.ts +62 -10
- package/src/openapi/references.ts +147 -147
- package/src/openapi/render-mdx.ts +32 -10
- package/src/openapi/scalar.ts +15 -13
- package/src/openapi/sentence.ts +14 -0
- package/src/openapi/source.ts +37 -21
- package/src/openapi/spec-dependency-error.ts +15 -0
- package/src/reference/asyncapi.ts +83 -0
- package/src/reference/graphql.ts +89 -0
- package/src/reference/index.ts +40 -0
- package/src/reference/openapi.ts +83 -0
- package/src/reference/options.ts +201 -0
- package/src/reference/scalar.ts +136 -0
- package/src/reference/schema.ts +88 -0
- package/src/registry/eject.ts +97 -42
- package/src/search/adapters/algolia.ts +46 -0
- package/src/search/adapters/flexsearch.ts +29 -0
- package/src/search/adapters/index.ts +39 -0
- package/src/search/adapters/mixedbread.ts +39 -0
- package/src/search/adapters/orama-cloud.ts +51 -0
- package/src/search/adapters/orama.ts +24 -0
- package/src/search/adapters/pagefind.ts +27 -0
- package/src/search/adapters/registry.ts +131 -0
- package/src/search/adapters/types.ts +46 -0
- package/src/search/adapters/typesense.ts +57 -0
- package/src/search/build.ts +33 -7
- package/src/search/documents.ts +6 -0
- package/src/search/sync/algolia.ts +12 -11
- package/src/search/sync/index.ts +35 -20
- package/src/search/sync/orama-cloud.ts +12 -9
- package/src/search/sync/typesense.ts +15 -13
- package/src/sources/contentful.ts +63 -0
- package/src/sources/custom.ts +38 -0
- package/src/sources/filesystem.ts +51 -0
- package/src/sources/github-releases.ts +52 -0
- package/src/sources/index.ts +60 -0
- package/src/sources/mdx-remote.ts +76 -0
- package/src/sources/notion.ts +63 -0
- package/src/sources/obsidian.ts +38 -0
- package/src/sources/payload.ts +60 -0
- package/src/sources/registry.ts +182 -0
- package/src/sources/sanity.ts +66 -0
- package/src/sources/shared.ts +52 -0
- package/src/sources/strapi.ts +58 -0
- package/src/theme/entry.ts +47 -2
- package/src/translate/report.ts +40 -7
- package/src/upgrade/upgrade.ts +499 -0
- package/dist/cli/chunk-12dxjqk7.js.map +0 -10
- package/dist/cli/chunk-196vjxp9.js.map +0 -13
- package/dist/cli/chunk-2mzebbbz.js +0 -69
- package/dist/cli/chunk-2z47ypj8.js.map +0 -11
- package/dist/cli/chunk-30e87n55.js +0 -108
- package/dist/cli/chunk-30e87n55.js.map +0 -10
- package/dist/cli/chunk-450a7rcr.js +0 -185
- package/dist/cli/chunk-450a7rcr.js.map +0 -11
- package/dist/cli/chunk-5n7t497w.js.map +0 -40
- package/dist/cli/chunk-61j18dwk.js +0 -5342
- package/dist/cli/chunk-61j18dwk.js.map +0 -58
- package/dist/cli/chunk-88by27n5.js +0 -17
- package/dist/cli/chunk-88by27n5.js.map +0 -10
- package/dist/cli/chunk-8cd8tj54.js.map +0 -34
- package/dist/cli/chunk-aztttvb3.js +0 -381
- package/dist/cli/chunk-aztttvb3.js.map +0 -12
- package/dist/cli/chunk-cvky9gb2.js.map +0 -11
- package/dist/cli/chunk-ejjx8znq.js.map +0 -15
- package/dist/cli/chunk-fmceyezb.js +0 -1007
- package/dist/cli/chunk-fmceyezb.js.map +0 -13
- package/dist/cli/chunk-hdm2dkd2.js.map +0 -48
- package/dist/cli/chunk-hs3gbh8p.js.map +0 -10
- package/dist/cli/chunk-jbj4qhfw.js +0 -30
- package/dist/cli/chunk-jbj4qhfw.js.map +0 -10
- package/dist/cli/chunk-mqb2ka8m.js +0 -68
- package/dist/cli/chunk-mqb2ka8m.js.map +0 -10
- package/dist/cli/chunk-mt76t7dj.js.map +0 -11
- package/dist/cli/chunk-q4rae3bg.js +0 -60
- package/dist/cli/chunk-q4rae3bg.js.map +0 -10
- package/dist/cli/chunk-ra1v2nc2.js +0 -35
- package/dist/cli/chunk-ra1v2nc2.js.map +0 -10
- package/dist/cli/chunk-t3tj0dgr.js.map +0 -15
- package/dist/cli/chunk-tqa1s0k8.js +0 -69
- package/dist/cli/chunk-tqa1s0k8.js.map +0 -11
- package/dist/cli/chunk-vh9w1sgp.js +0 -73
- package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
- package/dist/cli/chunk-vkrsvbr5.js +0 -107
- package/dist/cli/chunk-vkrsvbr5.js.map +0 -11
- package/dist/cli/chunk-vrfp10qk.js +0 -81
- package/dist/cli/chunk-vrfp10qk.js.map +0 -10
- package/dist/cli/chunk-wjt80jps.js +0 -1049
- package/dist/cli/chunk-wjt80jps.js.map +0 -24
- package/docs/advanced/api-reference.mdx +0 -240
- package/docs/reference/cli.mdx +0 -197
- package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
- package/src/components/content/changelog-element.ts +0 -69
- package/src/search/providers.ts +0 -91
- /package/dist/cli/{chunk-3w7b2vcx.js.map → chunk-7ez8ny0t.js.map} +0 -0
- /package/dist/cli/{chunk-688e0dde.js.map → chunk-88cpgt6h.js.map} +0 -0
- /package/dist/cli/{chunk-exeeb35e.js.map → chunk-f7t03s3g.js.map} +0 -0
- /package/dist/cli/{chunk-ppfvdcd4.js.map → chunk-zxccj738.js.map} +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { ArchivedVersionConfig, ResolvedConfig, ResolvedI18nConfig, ResolvedVersionsConfig } from "./schema.ts";
|
|
2
|
+
import type { Diagnostic, PageRecord } from "./types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Version logic, centralized. Every seam that needs to reason about docs
|
|
5
|
+
* versions (content discovery, navigation, manifest, runtime generation, the
|
|
6
|
+
* catch-all) goes through these helpers so the routing rules live in exactly
|
|
7
|
+
* one place — the same contract `./i18n.ts` holds for locales.
|
|
8
|
+
*
|
|
9
|
+
* The current version is the empty string `""`: the latest docs live at the
|
|
10
|
+
* content root with unprefixed URLs, and only archived snapshots have a
|
|
11
|
+
* directory and a URL segment.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Top-level folders that look like a version (`v1`, `V2.0`) — used by the
|
|
15
|
+
* unconfigured-snapshot diagnostic and by `blume version` to keep such folders
|
|
16
|
+
* out of new snapshots.
|
|
17
|
+
*/
|
|
18
|
+
export declare const VERSION_LIKE: RegExp;
|
|
19
|
+
/** True when the project opts into versioning. */
|
|
20
|
+
export declare const versionsEnabled: (config: ResolvedConfig) => config is ResolvedConfig & {
|
|
21
|
+
versions: ResolvedVersionsConfig;
|
|
22
|
+
};
|
|
23
|
+
/** All archived version ids, in configured (switcher) order. */
|
|
24
|
+
export declare const archivedIds: (versions: ResolvedVersionsConfig) => string[];
|
|
25
|
+
/** Switcher label for a version: the current label for `""`, else per config. */
|
|
26
|
+
export declare const versionLabel: (id: string, versions: ResolvedVersionsConfig) => string;
|
|
27
|
+
/** The archived version config for an id (`undefined` for current/unknown). */
|
|
28
|
+
export declare const archivedVersion: (id: string, versions: ResolvedVersionsConfig) => ArchivedVersionConfig | undefined;
|
|
29
|
+
/** A resolved version (`""` for current) and the version-stripped remainder. */
|
|
30
|
+
export interface DetectedVersion {
|
|
31
|
+
version: string;
|
|
32
|
+
rest: string[];
|
|
33
|
+
}
|
|
34
|
+
/** {@link DetectedVersion} for a slash-joined source ref. */
|
|
35
|
+
export interface DetectedVersionRef {
|
|
36
|
+
version: string;
|
|
37
|
+
rest: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Detect a leading archived-version directory in a path's segments. The
|
|
41
|
+
* current version lives at the content root, so only archived ids are matched
|
|
42
|
+
* as a leading segment. Returns the resolved version (`""` for current) and
|
|
43
|
+
* the remaining (version-stripped) segments. Runs BEFORE locale detection —
|
|
44
|
+
* the snapshot directory is outermost on disk, so the locale parser must see
|
|
45
|
+
* a version-stripped path.
|
|
46
|
+
*/
|
|
47
|
+
export declare const detectVersion: (parts: string[], versions: ResolvedVersionsConfig) => DetectedVersion;
|
|
48
|
+
/**
|
|
49
|
+
* {@link detectVersion} over a slash-joined source ref (`v1.0/fr/x.mdx`):
|
|
50
|
+
* returns the version and the version-stripped ref for the locale parser and
|
|
51
|
+
* route mapping to consume.
|
|
52
|
+
*/
|
|
53
|
+
export declare const detectVersionRef: (ref: string, versions: ResolvedVersionsConfig) => DetectedVersionRef;
|
|
54
|
+
/**
|
|
55
|
+
* Prefix a version-agnostic logical route with its version: `/guides/x`
|
|
56
|
+
* becomes `/v1.0/guides/x`, `/` becomes `/v1.0`. The current version (`""`)
|
|
57
|
+
* is the identity.
|
|
58
|
+
*/
|
|
59
|
+
export declare const versionizeRoute: (logicalRoute: string, version: string) => string;
|
|
60
|
+
/**
|
|
61
|
+
* The localized root route of a version: `/`, `/fr`, `/v1.0`, or `/fr/v1.0`.
|
|
62
|
+
* The locale prefix stays outermost, matching how page routes compose
|
|
63
|
+
* (`localizeRoute(versionizeRoute(...))`).
|
|
64
|
+
*/
|
|
65
|
+
export declare const versionRoot: (version: string, locale?: string, i18n?: ResolvedI18nConfig) => string;
|
|
66
|
+
/**
|
|
67
|
+
* Warn about top-level content folders shaped like a version (`v1`, `v2.0`)
|
|
68
|
+
* that aren't declared in `versions.archived`. Without this they're silently
|
|
69
|
+
* treated as current-version content under a `/<folder>/…` route — usually a
|
|
70
|
+
* snapshot that wasn't registered in config.
|
|
71
|
+
*/
|
|
72
|
+
export declare const versionsDiagnostics: (pages: PageRecord[], versions: ResolvedVersionsConfig) => Diagnostic[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The schema js-yaml 4 loaded with by default: YAML 1.2 core scalars plus the
|
|
3
|
+
* `!!timestamp`, `!!merge`, `!!binary`, `!!omap`, `!!pairs`, and `!!set` tags.
|
|
4
|
+
* js-yaml 5 loads with the bare core schema instead, which turns
|
|
5
|
+
* `date: 2024-01-01` into a string and leaves `<<:` merge keys unresolved — a
|
|
6
|
+
* silent change to every page's front matter. Every Blume `load` call passes
|
|
7
|
+
* this schema so parsing stays identical across the upgrade.
|
|
8
|
+
*/
|
|
9
|
+
export declare const YAML_SCHEMA: import("js-yaml").Schema;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "../core/schema.ts";
|
|
2
|
+
import type { ProjectContext } from "../core/types.ts";
|
|
3
|
+
import type { ResolvedDeployment } from "./adapters/registry.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Where a build's output lands. Every static build and most server builds
|
|
6
|
+
* write to Astro's `outDir`; the Vercel adapter writes its Build Output tree
|
|
7
|
+
* beside it instead. Each platform declares its own (see `deploy/platforms`).
|
|
8
|
+
*/
|
|
9
|
+
export declare const deployOutputDir: (config: ResolvedConfig, context: ProjectContext) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Directory whose contents the deploy platform serves as static files. Build
|
|
12
|
+
* artifacts (robots.txt, sitemap.xml, llms.txt, …) must be written here to be
|
|
13
|
+
* served. A static build serves `dist/` wherever it lands; a server build
|
|
14
|
+
* serves what its platform declares — the Build Output tree's `static/` half
|
|
15
|
+
* on Vercel, Astro's `build.client` dir (`dist/client/`) on Node and
|
|
16
|
+
* Cloudflare, `dist/` on Netlify.
|
|
17
|
+
*/
|
|
18
|
+
export declare const deployStaticDir: (config: ResolvedConfig, context: ProjectContext) => string;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the platform applies a `_headers` file to the static assets it
|
|
21
|
+
* serves — true where Netlify or Cloudflare read one, including a Cloudflare
|
|
22
|
+
* **server** build (the Worker serves `dist/client` through its ASSETS
|
|
23
|
+
* binding, which honors `_headers` exactly as Pages does), and for a static
|
|
24
|
+
* build with no named host. Deliberately false where the file would be inert:
|
|
25
|
+
* Node's standalone server has its own static handler with no `_headers`
|
|
26
|
+
* support, and Vercel's headers arrive through the routing config instead.
|
|
27
|
+
* Reporting a header that is not applied is worse than omitting it.
|
|
28
|
+
*/
|
|
29
|
+
export declare const readsHeaderFiles: (deployment: ResolvedDeployment) => boolean;
|
|
30
|
+
/** Outcome of {@link surfaceAdapterOutput}, for logging. */
|
|
31
|
+
export type SurfaceResult = {
|
|
32
|
+
moved: false;
|
|
33
|
+
} | {
|
|
34
|
+
from: string;
|
|
35
|
+
moved: true;
|
|
36
|
+
to: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Move a server adapter's deploy bundle out of the hidden `.blume` runtime and
|
|
40
|
+
* up to the project root, where the deploy platform expects it. A no-op for
|
|
41
|
+
* static builds, for platforms whose bundle already lands where they look
|
|
42
|
+
* (`hiddenRuntime.surfacePath` is null), and when the expected output is
|
|
43
|
+
* absent.
|
|
44
|
+
*/
|
|
45
|
+
export declare const surfaceAdapterOutput: (config: ResolvedConfig, context: ProjectContext) => Promise<SurfaceResult>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DeployAdapter, DeployOptions } from "./types.ts";
|
|
2
|
+
/** The Astro adapter package a Cloudflare server build imports. */
|
|
3
|
+
export declare const CLOUDFLARE_ADAPTER_PACKAGE = "@astrojs/cloudflare";
|
|
4
|
+
/**
|
|
5
|
+
* Options for {@link cloudflare}: `output`, `site`, and `base`, plus any
|
|
6
|
+
* option of `@astrojs/cloudflare` forwarded verbatim (`platformProxy`,
|
|
7
|
+
* `routes`, `cloudflareModules`, …). Blume sets `prerenderEnvironment`,
|
|
8
|
+
* `imageService`, and `configPath` itself; an option you pass wins.
|
|
9
|
+
*/
|
|
10
|
+
export type CloudflareOptions = DeployOptions;
|
|
11
|
+
export type CloudflareAdapter = DeployAdapter<"cloudflare">;
|
|
12
|
+
export declare const cloudflareOptionsSchema: import("zod").ZodObject<{
|
|
13
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
14
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
15
|
+
static: "static";
|
|
16
|
+
server: "server";
|
|
17
|
+
}>>;
|
|
18
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
19
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
20
|
+
export declare const cloudflareAdapterSchema: import("zod").ZodObject<{
|
|
21
|
+
kind: import("zod").ZodLiteral<"cloudflare">;
|
|
22
|
+
options: import("zod").ZodObject<{
|
|
23
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
24
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
25
|
+
static: "static";
|
|
26
|
+
server: "server";
|
|
27
|
+
}>>;
|
|
28
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
29
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
30
|
+
requiredSecrets: import("zod").ZodArray<import("zod").ZodString>;
|
|
31
|
+
runtimeDeps: import("zod").ZodArray<import("zod").ZodString>;
|
|
32
|
+
}, import("zod/v4/core").$strict>;
|
|
33
|
+
/**
|
|
34
|
+
* Cloudflare Workers and Pages. A server build emits a Worker into
|
|
35
|
+
* `dist/server` (with a generated wrapper that answers `Accept:
|
|
36
|
+
* text/markdown`) and serves `dist/client` through the ASSETS binding.
|
|
37
|
+
* `@astrojs/cloudflare` is an optional peer: install it in the project
|
|
38
|
+
* (`npm install @astrojs/cloudflare`).
|
|
39
|
+
*/
|
|
40
|
+
export declare const cloudflare: (options?: CloudflareOptions) => CloudflareAdapter;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment adapters for `blume.config.ts`:
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defineConfig } from "blume";
|
|
6
|
+
* import { vercel } from "blume/deploy";
|
|
7
|
+
*
|
|
8
|
+
* export default defineConfig({
|
|
9
|
+
* deployment: vercel({ site: "https://docs.example.com" }),
|
|
10
|
+
* });
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Naming a host switches the build to server output on that host; leave
|
|
14
|
+
* `deployment` unset (or `{ site, base }`) for a static build anywhere. Each
|
|
15
|
+
* factory returns a plain descriptor (see `core/adapter.ts`) that the schema
|
|
16
|
+
* validates; the generated `astro.config.mjs` imports the real `@astrojs/*`
|
|
17
|
+
* adapter and passes the options through verbatim.
|
|
18
|
+
*/
|
|
19
|
+
export type { AdapterDescriptor, JsonValue } from "../../core/adapter.ts";
|
|
20
|
+
export { cloudflare } from "./cloudflare.ts";
|
|
21
|
+
export type { CloudflareAdapter, CloudflareOptions } from "./cloudflare.ts";
|
|
22
|
+
export { netlify } from "./netlify.ts";
|
|
23
|
+
export type { NetlifyAdapter, NetlifyOptions } from "./netlify.ts";
|
|
24
|
+
export { node } from "./node.ts";
|
|
25
|
+
export type { NodeAdapter, NodeOptions } from "./node.ts";
|
|
26
|
+
export type { AnyDeployAdapter, DeployAdapterKind, DeploymentInput, ResolvedDeployment, ResolvedDeployOptions, } from "./registry.ts";
|
|
27
|
+
export type { DeployAdapter, DeployNamedOptions, DeployOptions, DeployOutput, StaticDeployment, } from "./types.ts";
|
|
28
|
+
export { vercel } from "./vercel.ts";
|
|
29
|
+
export type { VercelAdapter, VercelOptions } from "./vercel.ts";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { DeployAdapter, DeployOptions } from "./types.ts";
|
|
2
|
+
/** The Astro adapter package a Netlify server build imports. */
|
|
3
|
+
export declare const NETLIFY_ADAPTER_PACKAGE = "@astrojs/netlify";
|
|
4
|
+
/**
|
|
5
|
+
* Options for {@link netlify}: `output`, `site`, and `base`, plus any option
|
|
6
|
+
* of `@astrojs/netlify` forwarded verbatim (`edgeMiddleware`, `imageCDN`,
|
|
7
|
+
* `cacheOnDemandPages`, …).
|
|
8
|
+
*/
|
|
9
|
+
export type NetlifyOptions = DeployOptions;
|
|
10
|
+
export type NetlifyAdapter = DeployAdapter<"netlify">;
|
|
11
|
+
export declare const netlifyOptionsSchema: import("zod").ZodObject<{
|
|
12
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
13
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
14
|
+
static: "static";
|
|
15
|
+
server: "server";
|
|
16
|
+
}>>;
|
|
17
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
18
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
19
|
+
export declare const netlifyAdapterSchema: import("zod").ZodObject<{
|
|
20
|
+
kind: import("zod").ZodLiteral<"netlify">;
|
|
21
|
+
options: import("zod").ZodObject<{
|
|
22
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
23
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
24
|
+
static: "static";
|
|
25
|
+
server: "server";
|
|
26
|
+
}>>;
|
|
27
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
28
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
29
|
+
requiredSecrets: import("zod").ZodArray<import("zod").ZodString>;
|
|
30
|
+
runtimeDeps: import("zod").ZodArray<import("zod").ZodString>;
|
|
31
|
+
}, import("zod/v4/core").$strict>;
|
|
32
|
+
/**
|
|
33
|
+
* Netlify. A server build runs on Netlify Functions from the Frameworks API
|
|
34
|
+
* tree the adapter writes to `.netlify/v1`. `@astrojs/netlify` is an optional
|
|
35
|
+
* peer: install it in the project (`npm install @astrojs/netlify`).
|
|
36
|
+
*/
|
|
37
|
+
export declare const netlify: (options?: NetlifyOptions) => NetlifyAdapter;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { DeployAdapter, DeployOptions } from "./types.ts";
|
|
2
|
+
/** The Astro adapter package a Node server build imports. */
|
|
3
|
+
export declare const NODE_ADAPTER_PACKAGE = "@astrojs/node";
|
|
4
|
+
/**
|
|
5
|
+
* Options for {@link node}: `output`, `site`, and `base`, plus any option of
|
|
6
|
+
* `@astrojs/node` forwarded verbatim (`mode`, `host`, `port`, …). Blume
|
|
7
|
+
* defaults `mode` to `"standalone"`; an option you pass wins.
|
|
8
|
+
*/
|
|
9
|
+
export type NodeOptions = DeployOptions;
|
|
10
|
+
export type NodeAdapter = DeployAdapter<"node">;
|
|
11
|
+
export declare const nodeOptionsSchema: import("zod").ZodObject<{
|
|
12
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
13
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
14
|
+
static: "static";
|
|
15
|
+
server: "server";
|
|
16
|
+
}>>;
|
|
17
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
18
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
19
|
+
export declare const nodeAdapterSchema: import("zod").ZodObject<{
|
|
20
|
+
kind: import("zod").ZodLiteral<"node">;
|
|
21
|
+
options: import("zod").ZodObject<{
|
|
22
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
23
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
24
|
+
static: "static";
|
|
25
|
+
server: "server";
|
|
26
|
+
}>>;
|
|
27
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
28
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
29
|
+
requiredSecrets: import("zod").ZodArray<import("zod").ZodString>;
|
|
30
|
+
runtimeDeps: import("zod").ZodArray<import("zod").ZodString>;
|
|
31
|
+
}, import("zod/v4/core").$strict>;
|
|
32
|
+
/**
|
|
33
|
+
* A self-hosted Node server (containers, VMs). The standalone server in
|
|
34
|
+
* `dist/server/entry.mjs` serves `dist/client` itself. `@astrojs/node` is one
|
|
35
|
+
* of Blume's own dependencies.
|
|
36
|
+
*/
|
|
37
|
+
export declare const node: (options?: NodeOptions) => NodeAdapter;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../../core/adapter.ts";
|
|
3
|
+
import type { CloudflareAdapter } from "./cloudflare.ts";
|
|
4
|
+
import type { NetlifyAdapter } from "./netlify.ts";
|
|
5
|
+
import type { NodeAdapter } from "./node.ts";
|
|
6
|
+
import type { DeployOutput, StaticDeployment } from "./types.ts";
|
|
7
|
+
import type { VercelAdapter } from "./vercel.ts";
|
|
8
|
+
/** Every descriptor a host adapter factory can return. */
|
|
9
|
+
export type AnyDeployAdapter = CloudflareAdapter | NetlifyAdapter | NodeAdapter | VercelAdapter;
|
|
10
|
+
/** Every adapter identity, including the resolved `static` default. */
|
|
11
|
+
export type DeployAdapterKind = "static" | AnyDeployAdapter["kind"];
|
|
12
|
+
/**
|
|
13
|
+
* A resolved deployment's options: `output` is always present (a host adapter
|
|
14
|
+
* defaults to `server`, the static form is `static`), and anything else the
|
|
15
|
+
* adapter was given rides along for the `@astrojs/*` constructor.
|
|
16
|
+
*/
|
|
17
|
+
export type ResolvedDeployOptions = {
|
|
18
|
+
base?: string;
|
|
19
|
+
output: DeployOutput;
|
|
20
|
+
site?: string;
|
|
21
|
+
} & {
|
|
22
|
+
[option: string]: JsonValue;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* What `config.deployment` resolves to: the descriptor the factory returned
|
|
26
|
+
* with `output` filled in, or the `static` descriptor for the plain form.
|
|
27
|
+
*/
|
|
28
|
+
export type ResolvedDeployment = AdapterDescriptor<DeployAdapterKind, ResolvedDeployOptions>;
|
|
29
|
+
/** What `blume.config.ts` accepts under `deployment`. */
|
|
30
|
+
export type DeploymentInput = AnyDeployAdapter | StaticDeployment;
|
|
31
|
+
/**
|
|
32
|
+
* Validates what a factory returned (or the plain static form) and resolves
|
|
33
|
+
* it to the canonical descriptor, re-derived through the factory so a
|
|
34
|
+
* descriptor that went through JSON carries the same metadata Blume ships.
|
|
35
|
+
* `static` is internal: `kind: "static"` is admitted but never needed.
|
|
36
|
+
*/
|
|
37
|
+
export declare const resolvedDeploymentSchema: z.ZodPipe<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
38
|
+
kind: z.ZodLiteral<"cloudflare">;
|
|
39
|
+
options: z.ZodObject<{
|
|
40
|
+
base: z.ZodOptional<z.ZodString>;
|
|
41
|
+
output: z.ZodOptional<z.ZodEnum<{
|
|
42
|
+
static: "static";
|
|
43
|
+
server: "server";
|
|
44
|
+
}>>;
|
|
45
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
46
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
47
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
48
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
49
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
50
|
+
kind: z.ZodLiteral<"netlify">;
|
|
51
|
+
options: z.ZodObject<{
|
|
52
|
+
base: z.ZodOptional<z.ZodString>;
|
|
53
|
+
output: z.ZodOptional<z.ZodEnum<{
|
|
54
|
+
static: "static";
|
|
55
|
+
server: "server";
|
|
56
|
+
}>>;
|
|
57
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
58
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
59
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
60
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
61
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
62
|
+
kind: z.ZodLiteral<"node">;
|
|
63
|
+
options: z.ZodObject<{
|
|
64
|
+
base: z.ZodOptional<z.ZodString>;
|
|
65
|
+
output: z.ZodOptional<z.ZodEnum<{
|
|
66
|
+
static: "static";
|
|
67
|
+
server: "server";
|
|
68
|
+
}>>;
|
|
69
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
70
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
71
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
72
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
73
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
74
|
+
kind: z.ZodLiteral<"vercel">;
|
|
75
|
+
options: z.ZodObject<{
|
|
76
|
+
base: z.ZodOptional<z.ZodString>;
|
|
77
|
+
output: z.ZodOptional<z.ZodEnum<{
|
|
78
|
+
static: "static";
|
|
79
|
+
server: "server";
|
|
80
|
+
}>>;
|
|
81
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
82
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
83
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
84
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
85
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
86
|
+
base: z.ZodOptional<z.ZodString>;
|
|
87
|
+
kind: z.ZodOptional<z.ZodLiteral<"static">>;
|
|
88
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
89
|
+
}, z.core.$strict>], "kind">, z.ZodTransform<ResolvedDeployment, {
|
|
90
|
+
kind: "cloudflare";
|
|
91
|
+
options: {
|
|
92
|
+
[x: string]: z.core.util.JSONType;
|
|
93
|
+
base?: string | undefined;
|
|
94
|
+
output?: "static" | "server" | undefined;
|
|
95
|
+
site?: string | undefined;
|
|
96
|
+
};
|
|
97
|
+
requiredSecrets: string[];
|
|
98
|
+
runtimeDeps: string[];
|
|
99
|
+
} | {
|
|
100
|
+
kind: "netlify";
|
|
101
|
+
options: {
|
|
102
|
+
[x: string]: z.core.util.JSONType;
|
|
103
|
+
base?: string | undefined;
|
|
104
|
+
output?: "static" | "server" | undefined;
|
|
105
|
+
site?: string | undefined;
|
|
106
|
+
};
|
|
107
|
+
requiredSecrets: string[];
|
|
108
|
+
runtimeDeps: string[];
|
|
109
|
+
} | {
|
|
110
|
+
kind: "node";
|
|
111
|
+
options: {
|
|
112
|
+
[x: string]: z.core.util.JSONType;
|
|
113
|
+
base?: string | undefined;
|
|
114
|
+
output?: "static" | "server" | undefined;
|
|
115
|
+
site?: string | undefined;
|
|
116
|
+
};
|
|
117
|
+
requiredSecrets: string[];
|
|
118
|
+
runtimeDeps: string[];
|
|
119
|
+
} | {
|
|
120
|
+
kind: "vercel";
|
|
121
|
+
options: {
|
|
122
|
+
[x: string]: z.core.util.JSONType;
|
|
123
|
+
base?: string | undefined;
|
|
124
|
+
output?: "static" | "server" | undefined;
|
|
125
|
+
site?: string | undefined;
|
|
126
|
+
};
|
|
127
|
+
requiredSecrets: string[];
|
|
128
|
+
runtimeDeps: string[];
|
|
129
|
+
} | {
|
|
130
|
+
base?: string | undefined;
|
|
131
|
+
kind?: "static" | undefined;
|
|
132
|
+
site?: string | undefined;
|
|
133
|
+
}>>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../../core/adapter.ts";
|
|
3
|
+
/** Build output mode: prerendered HTML only, or a server that can also answer requests. */
|
|
4
|
+
export type DeployOutput = "static" | "server";
|
|
5
|
+
/** The options every host adapter maps itself. */
|
|
6
|
+
export interface DeployNamedOptions {
|
|
7
|
+
/** Base path when the site is served from a subdirectory (`/docs`). */
|
|
8
|
+
base?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Build output mode. Defaults to `server`: naming a host adapter is how a
|
|
11
|
+
* site opts into server rendering. Pass `"static"` to keep a static build
|
|
12
|
+
* on that host, with its site detection and platform files.
|
|
13
|
+
*/
|
|
14
|
+
output?: DeployOutput;
|
|
15
|
+
/**
|
|
16
|
+
* Canonical site URL. Needed for absolute links, the sitemap, and OG images;
|
|
17
|
+
* detected from the platform's env at build time when unset.
|
|
18
|
+
*/
|
|
19
|
+
site?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for a host adapter: the named options plus anything else, forwarded
|
|
23
|
+
* verbatim to the underlying `@astrojs/*` adapter's constructor. JSON values
|
|
24
|
+
* only — the descriptor is inlined into the generated `astro.config.mjs`.
|
|
25
|
+
*/
|
|
26
|
+
export type DeployOptions = DeployNamedOptions & {
|
|
27
|
+
[option: string]: JsonValue;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The descriptor a host adapter factory returns and `blume.config.ts` carries
|
|
31
|
+
* under `deployment`: the shared {@link AdapterDescriptor} contract, with the
|
|
32
|
+
* options a host takes. Plain data, never an Astro integration — the generated
|
|
33
|
+
* config imports the real adapter package itself.
|
|
34
|
+
*/
|
|
35
|
+
export type DeployAdapter<Kind extends string, Options extends DeployOptions = DeployOptions> = AdapterDescriptor<Kind, Options>;
|
|
36
|
+
/**
|
|
37
|
+
* A static build for any host — the form `deployment` takes when no adapter is
|
|
38
|
+
* named: `{ site, base }`, or nothing at all. `kind` is the resolved
|
|
39
|
+
* discriminator; leave it unset.
|
|
40
|
+
*/
|
|
41
|
+
export interface StaticDeployment {
|
|
42
|
+
/** Base path when the site is served from a subdirectory (`/docs`). */
|
|
43
|
+
base?: string;
|
|
44
|
+
/** The resolved kind; never needed in a config. */
|
|
45
|
+
kind?: "static";
|
|
46
|
+
/**
|
|
47
|
+
* Canonical site URL. Needed for absolute links, the sitemap, and OG images;
|
|
48
|
+
* detected from the platform's env at build time when unset.
|
|
49
|
+
*/
|
|
50
|
+
site?: string;
|
|
51
|
+
}
|
|
52
|
+
/** The named options' schema; every host adapter extends it with `z.json()` passthrough. */
|
|
53
|
+
export declare const deployOptionsSchema: z.ZodObject<{
|
|
54
|
+
base: z.ZodOptional<z.ZodString>;
|
|
55
|
+
output: z.ZodOptional<z.ZodEnum<{
|
|
56
|
+
static: "static";
|
|
57
|
+
server: "server";
|
|
58
|
+
}>>;
|
|
59
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
60
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
61
|
+
/**
|
|
62
|
+
* The options Blume does not name — what reaches the `@astrojs/*` adapter's
|
|
63
|
+
* constructor verbatim.
|
|
64
|
+
*/
|
|
65
|
+
export declare const deployPassthrough: (options: DeployOptions) => Record<string, JsonValue>;
|
|
66
|
+
/**
|
|
67
|
+
* The runtime dependency a host adapter declares: its `@astrojs/*` package,
|
|
68
|
+
* which the generated `astro.config.mjs` imports for a server build and
|
|
69
|
+
* nothing imports for a static one. Unset `output` means server.
|
|
70
|
+
*/
|
|
71
|
+
export declare const serverRuntimeDeps: (options: DeployNamedOptions, adapterPackage: string) => string[];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { DeployAdapter, DeployOptions } from "./types.ts";
|
|
2
|
+
/** The Astro adapter package a Vercel server build imports. */
|
|
3
|
+
export declare const VERCEL_ADAPTER_PACKAGE = "@astrojs/vercel";
|
|
4
|
+
/**
|
|
5
|
+
* Options for {@link vercel}: `output`, `site`, and `base`, plus any option of
|
|
6
|
+
* `@astrojs/vercel` forwarded verbatim (`isr`, `maxDuration`, `imageService`,
|
|
7
|
+
* `webAnalytics`, …).
|
|
8
|
+
*/
|
|
9
|
+
export type VercelOptions = DeployOptions;
|
|
10
|
+
export type VercelAdapter = DeployAdapter<"vercel">;
|
|
11
|
+
export declare const vercelOptionsSchema: import("zod").ZodObject<{
|
|
12
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
13
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
14
|
+
static: "static";
|
|
15
|
+
server: "server";
|
|
16
|
+
}>>;
|
|
17
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
18
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
19
|
+
export declare const vercelAdapterSchema: import("zod").ZodObject<{
|
|
20
|
+
kind: import("zod").ZodLiteral<"vercel">;
|
|
21
|
+
options: import("zod").ZodObject<{
|
|
22
|
+
base: import("zod").ZodOptional<import("zod").ZodString>;
|
|
23
|
+
output: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
24
|
+
static: "static";
|
|
25
|
+
server: "server";
|
|
26
|
+
}>>;
|
|
27
|
+
site: import("zod").ZodOptional<import("zod").ZodURL>;
|
|
28
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodJSONSchema>>;
|
|
29
|
+
requiredSecrets: import("zod").ZodArray<import("zod").ZodString>;
|
|
30
|
+
runtimeDeps: import("zod").ZodArray<import("zod").ZodString>;
|
|
31
|
+
}, import("zod/v4/core").$strict>;
|
|
32
|
+
/**
|
|
33
|
+
* Vercel. A server build writes the Build Output tree to `.vercel/output`,
|
|
34
|
+
* audits the function bundle for imports the platform's dependency trace
|
|
35
|
+
* dropped, and wires `Accept: text/markdown` negotiation into the routing
|
|
36
|
+
* config. `@astrojs/vercel` is one of Blume's own dependencies.
|
|
37
|
+
*/
|
|
38
|
+
export declare const vercel: (options?: VercelOptions) => VercelAdapter;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { BlumeProject } from "../core/project-graph.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The deploy artifacts Blume layers onto Astro's build output: the search
|
|
4
|
+
* index (and hosted-provider sync), llms.txt, sitemap, robots, the
|
|
5
|
+
* agent-readability manifest, the `.well-known` discovery files, Agent
|
|
6
|
+
* Skills, and the platform `_redirects`/`_headers` files.
|
|
7
|
+
*
|
|
8
|
+
* Written from the integration's `astro:build:done` hook — Astro's channel
|
|
9
|
+
* for exactly this kind of post-build work — into the directory Astro
|
|
10
|
+
* reports as the client output (`dist/`, or `dist/client` for a server
|
|
11
|
+
* build). The Vercel adapter copies that directory into its Build Output
|
|
12
|
+
* static tree in a later hook, so the artifacts ride along; every other
|
|
13
|
+
* adapter serves it directly. Running inside the hook rather than after
|
|
14
|
+
* `astro build` returns means an ejected project keeps producing them.
|
|
15
|
+
*
|
|
16
|
+
* Every file yields to one the user ships in `public/` (Astro copied it into
|
|
17
|
+
* the output before this runs).
|
|
18
|
+
*/
|
|
19
|
+
/** The log surface the writers report through (Astro's integration logger). */
|
|
20
|
+
export interface ArtifactLogger {
|
|
21
|
+
info: (message: string) => void;
|
|
22
|
+
warn: (message: string) => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Emit a `_headers` file so Netlify / Cloudflare serve the raw AI-ready
|
|
26
|
+
* endpoints (`*.md`, `*.mdx`, `*.txt`) with an explicit `charset=utf-8`. Without
|
|
27
|
+
* it those hosts send `text/markdown` / `text/plain` with no charset and
|
|
28
|
+
* browsers fall back to Windows-1252, garbling any non-ASCII docs (#82).
|
|
29
|
+
*
|
|
30
|
+
* The same file carries the rest of the agent-discovery surface that only a
|
|
31
|
+
* response header can express: the homepage `Link` header (RFC 8288, see
|
|
32
|
+
* `ai/link-headers.ts`), and the registered media types for the extensionless
|
|
33
|
+
* well-known files — `application/linkset+json` for the API catalog, the
|
|
34
|
+
* signatures directory, and the Agent Skills archives. A static host serves
|
|
35
|
+
* those as `octet-stream` or nothing at all without a rule.
|
|
36
|
+
*
|
|
37
|
+
* A `_headers` shipped in `public/` wins, exactly like `_redirects` — the opt-out
|
|
38
|
+
* is checked at its source rather than in `dist`, because on Cloudflare the file
|
|
39
|
+
* in `dist` is not necessarily the user's: `@astrojs/cloudflare` writes its own
|
|
40
|
+
* `_headers` (an immutable `Cache-Control` rule for `/_astro/*`) during the
|
|
41
|
+
* build, before this runs. Testing `dist` therefore read an adapter-generated
|
|
42
|
+
* file as a user opt-out and skipped silently. When both exist, the adapter's
|
|
43
|
+
* rules are preserved and ours are appended.
|
|
44
|
+
*
|
|
45
|
+
* Gated on {@link readsHeaderFiles}, not on `output === "static"`. A **Cloudflare
|
|
46
|
+
* server** build serves `dist/client` through the Worker's ASSETS binding, and
|
|
47
|
+
* Workers static assets honor `_headers` from that directory — so the file
|
|
48
|
+
* applies there too, and skipping it left every Cloudflare server build with no
|
|
49
|
+
* `Link` header and no media type on its own discovery files. The charset half
|
|
50
|
+
* of this file *is* redundant on a server build, because the runtime endpoint
|
|
51
|
+
* sets Content-Type on the Response itself; the `Link` and well-known halves are
|
|
52
|
+
* not, and one conclusion about the first was applied to all three.
|
|
53
|
+
*
|
|
54
|
+
* Exported for the test suite, which exercises it in a subprocess like the
|
|
55
|
+
* command helpers.
|
|
56
|
+
*/
|
|
57
|
+
export declare const emitHeaderFiles: (project: BlumeProject, distDir: string, logger: ArtifactLogger) => Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Write every deploy artifact into `distDir`, the directory the platform
|
|
60
|
+
* serves as static files (see the module comment). A user's own `public/`
|
|
61
|
+
* file always wins. `indexSearch` is the Pagefind indexer, replaceable by
|
|
62
|
+
* tests: Pagefind's in-process service cannot be reopened once a build has
|
|
63
|
+
* closed it, so only one suite may run the real one.
|
|
64
|
+
*/
|
|
65
|
+
export declare const publishBuildArtifacts: (project: BlumeProject, distDir: string, logger: ArtifactLogger, indexSearch?: (outDir: string) => Promise<number>) => Promise<void>;
|