blume 2.0.3 → 2.1.1
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 +1 -0
- package/CHANGELOG.md +142 -0
- package/README.md +1 -1
- package/dist/cli/{chunk-5f86nr5m.js → chunk-073rdvgb.js} +21 -48
- package/dist/cli/{chunk-5f86nr5m.js.map → chunk-073rdvgb.js.map} +4 -5
- package/dist/cli/{chunk-ga0pf4aj.js → chunk-0n9xkp3d.js} +12 -3
- package/dist/cli/{chunk-ga0pf4aj.js.map → chunk-0n9xkp3d.js.map} +3 -3
- package/dist/cli/chunk-150jk7km.js +52 -0
- package/dist/cli/chunk-150jk7km.js.map +10 -0
- package/dist/cli/{chunk-9t7a85s3.js → chunk-313vnn40.js} +30 -19
- package/dist/cli/chunk-313vnn40.js.map +10 -0
- package/dist/cli/{chunk-tkacnehg.js → chunk-3v3ffbrj.js} +2 -2
- package/dist/cli/{chunk-q58y5e6a.js → chunk-3x6x3pph.js} +46 -24
- package/dist/cli/chunk-3x6x3pph.js.map +10 -0
- package/dist/cli/{chunk-1d7ve1dm.js → chunk-42t4jxdx.js} +37 -5
- package/dist/cli/chunk-42t4jxdx.js.map +12 -0
- package/dist/cli/{chunk-8ktnccpt.js → chunk-54ztw1nj.js} +21 -2
- package/dist/cli/chunk-54ztw1nj.js.map +10 -0
- package/dist/cli/{chunk-hm3vjy5s.js → chunk-5vjtgs6e.js} +28 -10
- package/dist/cli/{chunk-hm3vjy5s.js.map → chunk-5vjtgs6e.js.map} +4 -4
- package/dist/cli/chunk-66w9j7p6.js +322 -0
- package/dist/cli/chunk-66w9j7p6.js.map +14 -0
- package/dist/cli/{chunk-2hsdwb9n.js → chunk-7ppf1rva.js} +34 -18
- package/dist/cli/chunk-7ppf1rva.js.map +10 -0
- package/dist/cli/{chunk-r9rcc4w7.js → chunk-8y2kmjv8.js} +7 -7
- package/dist/cli/{chunk-r20tn01b.js → chunk-c1y538kd.js} +8 -2
- package/dist/cli/{chunk-r20tn01b.js.map → chunk-c1y538kd.js.map} +3 -3
- package/dist/cli/{chunk-2eytanqx.js → chunk-c887fj0s.js} +2 -2
- package/dist/cli/{chunk-p3v96n38.js → chunk-cfyg47zg.js} +16 -6
- package/dist/cli/chunk-cfyg47zg.js.map +10 -0
- package/dist/cli/chunk-cm89scdv.js +443 -0
- package/dist/cli/chunk-cm89scdv.js.map +11 -0
- package/dist/cli/{chunk-akbpwfxc.js → chunk-dzwehpy7.js} +2 -2
- package/dist/cli/{chunk-wrr3j9w9.js → chunk-e6atmn4h.js} +299 -72
- package/dist/cli/chunk-e6atmn4h.js.map +36 -0
- package/dist/cli/{chunk-tzmab476.js → chunk-e8xw9qkh.js} +8 -6
- package/dist/cli/{chunk-tzmab476.js.map → chunk-e8xw9qkh.js.map} +3 -3
- package/dist/cli/{chunk-6dsbexzp.js → chunk-e9q7a2ak.js} +17 -15
- package/dist/cli/{chunk-6dsbexzp.js.map → chunk-e9q7a2ak.js.map} +2 -2
- package/dist/cli/{chunk-pv29h0wf.js → chunk-ehweg4fr.js} +5155 -1249
- package/dist/cli/chunk-ehweg4fr.js.map +218 -0
- package/dist/cli/{chunk-c8chx29p.js → chunk-ep6nd0rn.js} +390 -318
- package/dist/cli/chunk-ep6nd0rn.js.map +36 -0
- package/dist/cli/{chunk-p73c0m7w.js → chunk-fdrkhpjy.js} +18 -15
- package/dist/cli/{chunk-p73c0m7w.js.map → chunk-fdrkhpjy.js.map} +3 -3
- package/dist/cli/{chunk-2z928egk.js → chunk-ft9vfys6.js} +5 -5
- package/dist/cli/{chunk-5m5nmvyq.js → chunk-gb420vvz.js} +316 -79
- package/dist/cli/chunk-gb420vvz.js.map +17 -0
- package/dist/cli/{chunk-vg9r4eb9.js → chunk-hebn0tpx.js} +86 -13
- package/dist/cli/chunk-hebn0tpx.js.map +14 -0
- package/dist/cli/{chunk-35d4wj9f.js → chunk-htrwgabr.js} +41 -23
- package/dist/cli/chunk-htrwgabr.js.map +15 -0
- package/dist/cli/{chunk-g4hq16wv.js → chunk-hx3xqnk9.js} +16 -14
- package/dist/cli/{chunk-g4hq16wv.js.map → chunk-hx3xqnk9.js.map} +2 -2
- package/dist/cli/chunk-j134vrp2.js +65 -0
- package/dist/cli/chunk-j134vrp2.js.map +10 -0
- package/dist/cli/{chunk-a58773jm.js → chunk-kma9f6sf.js} +2 -2
- package/dist/cli/chunk-kwrg63tm.js +31 -0
- package/dist/cli/chunk-kwrg63tm.js.map +10 -0
- package/dist/cli/{chunk-ey84smr6.js → chunk-mrcccgnh.js} +6 -6
- package/dist/cli/{chunk-ey84smr6.js.map → chunk-mrcccgnh.js.map} +1 -1
- package/dist/cli/{chunk-yfyb25rh.js → chunk-n0v7m8ry.js} +24 -8
- package/dist/cli/chunk-n0v7m8ry.js.map +14 -0
- package/dist/cli/{chunk-j85vccga.js → chunk-ncj7w596.js} +576 -367
- package/dist/cli/chunk-ncj7w596.js.map +35 -0
- package/dist/cli/{chunk-5xvm6tfj.js → chunk-nq1d20w2.js} +17 -15
- package/dist/cli/{chunk-5xvm6tfj.js.map → chunk-nq1d20w2.js.map} +2 -2
- package/dist/cli/{chunk-pehfxfta.js → chunk-nrns10mj.js} +6 -98
- package/dist/cli/chunk-nrns10mj.js.map +10 -0
- package/dist/cli/{chunk-crgn1q09.js → chunk-sds923fa.js} +4 -4
- package/dist/cli/chunk-t2m5j4pr.js +104 -0
- package/dist/cli/chunk-t2m5j4pr.js.map +11 -0
- package/dist/cli/{chunk-acanzt5p.js → chunk-tdqhyxfz.js} +6 -6
- package/dist/cli/chunk-tphac74f.js +126 -0
- package/dist/cli/chunk-tphac74f.js.map +11 -0
- package/dist/cli/chunk-w1r4vase.js +18 -0
- package/dist/cli/chunk-w1r4vase.js.map +10 -0
- package/dist/cli/{chunk-3em5wd2y.js → chunk-zccbjcj0.js} +4 -3
- package/dist/cli/{chunk-3em5wd2y.js.map → chunk-zccbjcj0.js.map} +2 -2
- package/dist/cli/index.js +31 -20
- package/dist/cli/index.js.map +5 -5
- package/dist/types/ai/agent-surface.d.ts +8 -7
- package/dist/types/ai/ai-catalog.d.ts +7 -0
- package/dist/types/ai/ask-context.d.ts +26 -0
- package/dist/types/ai/ask.d.ts +271 -58
- package/dist/types/ai/component-markdown.d.ts +2 -0
- package/dist/types/ai/index.d.ts +2 -2
- package/dist/types/ai/openapi-components.d.ts +4 -1
- package/dist/types/ai/site-skill.d.ts +26 -0
- package/dist/types/ai/skills.d.ts +16 -0
- package/dist/types/astro/integration.d.ts +9 -0
- package/dist/types/astro/markdown-negotiation.d.ts +3 -0
- package/dist/types/astro/pages.d.ts +10 -0
- package/dist/types/captcha/hcaptcha.d.ts +27 -0
- package/dist/types/captcha/index.d.ts +28 -0
- package/dist/types/captcha/schema.d.ts +29 -0
- package/dist/types/captcha/turnstile.d.ts +28 -0
- package/dist/types/cli/init/scaffold.d.ts +1 -1
- package/dist/types/components/content/api-field.d.ts +62 -0
- package/dist/types/components/content/api-page.d.ts +100 -0
- package/dist/types/components/layout/nav-utils.d.ts +26 -0
- package/dist/types/components/openapi/code-samples.d.ts +29 -0
- package/dist/types/components/openapi/helpers.d.ts +158 -0
- package/dist/types/components/openapi/security.d.ts +95 -0
- package/dist/types/components/openapi/snippets.d.ts +60 -0
- package/dist/types/consent/ethyca.d.ts +48 -0
- package/dist/types/consent/index.d.ts +37 -0
- package/dist/types/consent/native.d.ts +28 -0
- package/dist/types/consent/osano.d.ts +42 -0
- package/dist/types/consent/schema.d.ts +110 -0
- package/dist/types/core/changelog-index.d.ts +8 -0
- package/dist/types/core/config-input.d.ts +217 -23
- package/dist/types/core/data.d.ts +53 -4
- package/dist/types/core/footer.d.ts +8 -0
- package/dist/types/core/i18n-ui.d.ts +88 -0
- package/dist/types/core/includes.d.ts +8 -2
- package/dist/types/core/links.d.ts +8 -0
- package/dist/types/core/localizable.d.ts +7 -0
- package/dist/types/core/page-modes.d.ts +29 -0
- package/dist/types/core/probe.d.ts +2 -0
- package/dist/types/core/project-graph.d.ts +6 -0
- package/dist/types/core/redirect-patterns.d.ts +152 -0
- package/dist/types/core/related.d.ts +40 -0
- package/dist/types/core/schema.d.ts +670 -56
- package/dist/types/core/sources/cache.d.ts +3 -0
- package/dist/types/core/sources/contentful-rich-text.d.ts +11 -2
- package/dist/types/core/sources/contentful.d.ts +17 -1
- package/dist/types/core/sources/lexical.d.ts +5 -0
- package/dist/types/core/sources/normalize.d.ts +20 -1
- package/dist/types/core/sources/read.d.ts +5 -0
- package/dist/types/core/sources/remote.d.ts +37 -10
- package/dist/types/core/sources/sanity.d.ts +1 -1
- package/dist/types/core/types.d.ts +18 -1
- package/dist/types/core/variables.d.ts +42 -0
- package/dist/types/deploy/adapter-output.d.ts +2 -1
- package/dist/types/deploy/adapters/cloudflare.d.ts +7 -5
- package/dist/types/deploy/adapters/node.d.ts +58 -23
- package/dist/types/deploy/adapters/registry.d.ts +10 -0
- package/dist/types/deploy/adapters/types.d.ts +3 -2
- package/dist/types/deploy/node-headers.d.ts +13 -2
- package/dist/types/deploy/platforms/cloudflare.d.ts +15 -7
- package/dist/types/deploy/platforms/netlify.d.ts +7 -0
- package/dist/types/deploy/platforms/node.d.ts +3 -1
- package/dist/types/deploy/platforms/types.d.ts +18 -7
- package/dist/types/deploy/platforms/vercel.d.ts +26 -1
- package/dist/types/deploy/redirects.d.ts +55 -11
- package/dist/types/deploy/sitemap.d.ts +2 -1
- package/dist/types/deploy/vercel-negotiation.d.ts +51 -21
- package/dist/types/markdown/code-title.d.ts +17 -0
- package/dist/types/markdown/features.d.ts +3 -2
- package/dist/types/narration/build.d.ts +70 -0
- package/dist/types/narration/provider.d.ts +26 -0
- package/dist/types/narration/script.d.ts +154 -0
- package/dist/types/openapi/checks.d.ts +27 -0
- package/dist/types/openapi/graphql.d.ts +6 -0
- package/dist/types/openapi/model.d.ts +27 -10
- package/dist/types/openapi/overlay.d.ts +54 -0
- package/dist/types/openapi/parse.d.ts +16 -0
- package/dist/types/openapi/references.d.ts +30 -4
- package/dist/types/ratelimit/cloudflare.d.ts +39 -0
- package/dist/types/ratelimit/index.d.ts +27 -0
- package/dist/types/ratelimit/memory.d.ts +36 -0
- package/dist/types/ratelimit/schema.d.ts +119 -0
- package/dist/types/ratelimit/upstash.d.ts +46 -0
- package/dist/types/ratelimit/wrangler.d.ts +23 -0
- package/dist/types/reference/asyncapi.d.ts +10 -10
- package/dist/types/reference/graphql.d.ts +89 -11
- package/dist/types/reference/index.d.ts +1 -1
- package/dist/types/reference/openapi.d.ts +33 -12
- package/dist/types/reference/options.d.ts +82 -6
- package/dist/types/reference/scalar.d.ts +13 -0
- package/dist/types/reference/schema.d.ts +144 -36
- package/dist/types/search/adapters/registry.d.ts +3 -0
- package/dist/types/search/adapters/typesense.d.ts +14 -4
- package/dist/types/search/build.d.ts +3 -1
- package/dist/types/search/documents.d.ts +12 -1
- package/dist/types/search/orama-index.d.ts +13 -9
- package/dist/types/search/sync/algolia.d.ts +5 -2
- package/dist/types/search/sync/index.d.ts +3 -1
- package/dist/types/search/sync/typesense.d.ts +11 -7
- package/dist/types/seo/metatags.d.ts +20 -0
- package/dist/types/sources/contentful.d.ts +16 -0
- package/dist/types/sources/github-releases.d.ts +8 -1
- package/dist/types/sources/payload.d.ts +2 -0
- package/dist/types/sources/registry.d.ts +54 -0
- package/dist/types/sources/shared.d.ts +3 -0
- package/dist/types/sources/strapi.d.ts +2 -0
- package/docs/01-quickstart.mdx +4 -2
- package/docs/02-deployment.mdx +71 -17
- package/docs/03-upgrading.mdx +4 -4
- package/docs/04-migrating.mdx +1 -1
- package/docs/advanced/changelog.mdx +13 -2
- package/docs/advanced/skills.mdx +15 -1
- package/docs/cli/audit.mdx +51 -8
- package/docs/cli/doctor.mdx +5 -1
- package/docs/cli/evals.mdx +4 -4
- package/docs/cli/index.mdx +1 -0
- package/docs/cli/translate.mdx +1 -0
- package/docs/cli/validate.mdx +4 -3
- package/docs/configuration/analytics.mdx +3 -1
- package/docs/configuration/assistant.mdx +194 -38
- package/docs/configuration/consent.mdx +100 -0
- package/docs/configuration/customization.mdx +8 -6
- package/docs/configuration/export.mdx +5 -3
- package/docs/configuration/index.mdx +64 -5
- package/docs/configuration/meta.ts +3 -0
- package/docs/configuration/narration.mdx +119 -0
- package/docs/configuration/rate-limiting.mdx +90 -0
- package/docs/configuration/search.mdx +63 -12
- package/docs/configuration/theming.mdx +3 -1
- package/docs/content/components.mdx +108 -2
- package/docs/content/frontmatter.mdx +80 -2
- package/docs/content/i18n.mdx +39 -4
- package/docs/content/includes.mdx +16 -0
- package/docs/content/meta.mdx +1 -0
- package/docs/content/meta.ts +1 -0
- package/docs/content/navigation.mdx +32 -10
- package/docs/content/sources/contentful.mdx +35 -0
- package/docs/content/sources/custom.mdx +43 -0
- package/docs/content/sources/github-releases.mdx +39 -0
- package/docs/content/sources/index.mdx +91 -0
- package/docs/content/sources/meta.ts +16 -0
- package/docs/content/sources/notion.mdx +32 -0
- package/docs/content/sources/obsidian.mdx +37 -0
- package/docs/content/sources/payload.mdx +31 -0
- package/docs/content/sources/remote-mdx.mdx +44 -0
- package/docs/content/sources/sanity.mdx +29 -0
- package/docs/content/sources/strapi.mdx +32 -0
- package/docs/content/syntax.mdx +69 -4
- package/docs/content/variables.mdx +41 -0
- package/docs/discoverability/agent-discovery.mdx +29 -2
- package/docs/discoverability/index.mdx +2 -2
- package/docs/discoverability/json-api.mdx +2 -0
- package/docs/discoverability/llms-txt.mdx +2 -2
- package/docs/discoverability/markdown.mdx +3 -1
- package/docs/discoverability/mcp.mdx +4 -0
- package/docs/discoverability/metadata.mdx +17 -0
- package/docs/discoverability/sitemap-and-robots.mdx +1 -1
- package/docs/references/api-pages.mdx +74 -0
- package/docs/references/asyncapi.mdx +4 -2
- package/docs/references/graphql.mdx +14 -2
- package/docs/references/meta.ts +1 -1
- package/docs/references/openapi.mdx +148 -7
- package/docs/references/scalar.mdx +3 -1
- package/package.json +43 -8
- package/skills/blume/SKILL.md +3 -0
- package/skills/blume-migrate/SKILL.md +6 -6
- package/skills/blume-migrate/references/docusaurus.md +7 -7
- package/skills/blume-migrate/references/fumadocs.md +17 -13
- package/skills/blume-migrate/references/mintlify.md +37 -19
- package/skills/blume-migrate/references/nextra.md +10 -7
- package/skills/blume-migrate/references/starlight.md +11 -8
- package/skills/blume-migrate/scripts/mintlify-codemod.mjs +60 -14
- package/skills/blume-write-skill/SKILL.md +82 -0
- package/src/ai/agent-readability.ts +2 -1
- package/src/ai/agent-surface.ts +9 -7
- package/src/ai/ai-catalog.ts +6 -3
- package/src/ai/ask-context.ts +103 -20
- package/src/ai/ask-data.ts +6 -0
- package/src/ai/ask-limits.ts +13 -0
- package/src/ai/ask-tools.ts +142 -0
- package/src/ai/ask.ts +354 -76
- package/src/ai/changelog-markdown.ts +11 -6
- package/src/ai/component-markdown.ts +76 -1
- package/src/ai/cors.ts +14 -3
- package/src/ai/index.ts +12 -0
- package/src/ai/llms.ts +6 -2
- package/src/ai/markdown.ts +2 -1
- package/src/ai/mcp/data.ts +6 -0
- package/src/ai/mcp/query.ts +14 -6
- package/src/ai/openapi-components.ts +36 -6
- package/src/ai/relative-links.ts +4 -38
- package/src/ai/site-skill.ts +274 -0
- package/src/ai/skills.ts +35 -2
- package/src/ai/write-skill.ts +97 -0
- package/src/astro/generate.ts +210 -66
- package/src/astro/index.ts +1 -0
- package/src/astro/integration.ts +42 -4
- package/src/astro/markdown-negotiation.ts +3 -0
- package/src/astro/module-types.ts +9 -1
- package/src/astro/pages.ts +23 -0
- package/src/astro/templates.ts +406 -108
- package/src/astro/variables.ts +31 -0
- package/src/audit/catalog.ts +38 -3
- package/src/audit/checks/contrast.ts +183 -0
- package/src/audit/checks/i18n.ts +2 -3
- package/src/audit/checks/indexability.ts +2 -3
- package/src/audit/checks/links.ts +19 -13
- package/src/audit/checks/network.ts +110 -6
- package/src/audit/checks/redirects.ts +6 -4
- package/src/audit/checks/robots.ts +58 -2
- package/src/audit/checks/sitemap.ts +2 -3
- package/src/audit/redirects.ts +46 -15
- package/src/audit/run.ts +5 -0
- package/src/audit/types.ts +4 -1
- package/src/audit/url.ts +14 -5
- package/src/blume-modules.d.ts +12 -1
- package/src/captcha/client.ts +152 -0
- package/src/captcha/hcaptcha.ts +36 -0
- package/src/captcha/index.ts +28 -0
- package/src/captcha/schema.ts +32 -0
- package/src/captcha/turnstile.ts +38 -0
- package/src/captcha/verify.ts +71 -0
- package/src/cli/args.ts +51 -0
- package/src/cli/build-failure.ts +23 -0
- package/src/cli/command-meta.ts +5 -0
- package/src/cli/commands/audit.ts +10 -1
- package/src/cli/commands/dev.ts +18 -2
- package/src/cli/commands/doctor.ts +67 -28
- package/src/cli/commands/eval.ts +36 -4
- package/src/cli/commands/init.ts +6 -4
- package/src/cli/commands/skill.ts +96 -0
- package/src/cli/commands/validate.ts +10 -1
- package/src/cli/index.ts +5 -0
- package/src/cli/init/scaffold.ts +3 -3
- package/src/cli/prepare.ts +6 -3
- package/src/cli/required-secrets.ts +72 -30
- package/src/components/BlumePage.astro +2 -0
- package/src/components/content/ApiEndpoint.astro +18 -0
- package/src/components/content/ApiField.astro +79 -0
- package/src/components/content/ApiPlayground.astro +66 -0
- package/src/components/content/ApiRail.astro +19 -0
- package/src/components/content/Color.astro +1 -0
- package/src/components/content/FileTree.astro +1 -0
- package/src/components/content/GithubInfo.astro +1 -0
- package/src/components/content/Panel.astro +1 -0
- package/src/components/content/ParamField.astro +25 -0
- package/src/components/content/RequestExample.astro +17 -0
- package/src/components/content/ResponseExample.astro +17 -0
- package/src/components/content/ResponseField.astro +32 -0
- package/src/components/content/Step.astro +1 -0
- package/src/components/content/Tile.astro +1 -0
- package/src/components/content/Tooltip.astro +1 -0
- package/src/components/content/Tree.astro +1 -0
- package/src/components/content/TypeTable.astro +4 -1
- package/src/components/content/View.astro +21 -0
- package/src/components/content/ViewSwitcher.astro +168 -0
- package/src/components/content/api-field.ts +103 -0
- package/src/components/content/api-page.ts +248 -0
- package/src/components/content/mermaid-element.ts +15 -1
- package/src/components/content/view-switcher.ts +71 -0
- package/src/components/index.ts +2 -0
- package/src/components/islands/Assistant.astro +10 -1
- package/src/components/islands/assistant.tsx +104 -14
- package/src/components/islands/code-question.ts +62 -0
- package/src/components/islands/hooks.ts +136 -21
- package/src/components/islands/support-link.ts +68 -0
- package/src/components/layout/Analytics.astro +11 -2
- package/src/components/layout/Banner.astro +14 -10
- package/src/components/layout/Breadcrumbs.astro +6 -2
- package/src/components/layout/ConsentBanner.astro +62 -0
- package/src/components/layout/ConsentHead.astro +38 -0
- package/src/components/layout/Directory.astro +94 -0
- package/src/components/layout/DrawerSwitchers.astro +51 -0
- package/src/components/layout/Empty.astro +2 -2
- package/src/components/layout/Header.astro +122 -80
- package/src/components/layout/LanguageSwitcher.astro +48 -15
- package/src/components/layout/NarrationPlayer.astro +1085 -0
- package/src/components/layout/NavSelector.astro +33 -7
- package/src/components/layout/PageActions.astro +139 -24
- package/src/components/layout/PageFeedback.astro +54 -49
- package/src/components/layout/PageLayout.astro +71 -3
- package/src/components/layout/ReferenceLayout.astro +17 -6
- package/src/components/layout/RelatedPages.astro +42 -0
- package/src/components/layout/RootLayout.astro +318 -47
- package/src/components/layout/Search.astro +47 -19
- package/src/components/layout/SiteFooter.astro +124 -0
- package/src/components/layout/SiteMetatags.astro +16 -0
- package/src/components/layout/TableOfContents.astro +24 -17
- package/src/components/layout/consent/native.ts +79 -0
- package/src/components/layout/consent/types.ts +37 -0
- package/src/components/layout/footer-links.ts +53 -0
- package/src/components/layout/footer-socials.ts +87 -0
- package/src/components/layout/head-scripts.ts +6 -1
- package/src/components/layout/locale-redirect.ts +107 -0
- package/src/components/layout/nav-utils.ts +83 -0
- package/src/components/layout/page-feedback.ts +96 -0
- package/src/components/layout/search/algolia.ts +10 -1
- package/src/components/layout/search/analytics.ts +126 -0
- package/src/components/layout/search/endpoint.ts +48 -5
- package/src/components/layout/search/flexsearch.ts +17 -5
- package/src/components/layout/search/orama-cloud.ts +26 -14
- package/src/components/layout/search/pagefind.ts +114 -5
- package/src/components/layout/search/types.ts +32 -0
- package/src/components/layout/search/typesense.ts +19 -3
- package/src/components/openapi/AsyncApiOperation.astro +14 -7
- package/src/components/openapi/Authorization.astro +10 -0
- package/src/components/openapi/GraphqlOperation.astro +5 -0
- package/src/components/openapi/Operation.astro +184 -13
- package/src/components/openapi/ParametersTable.astro +8 -4
- package/src/components/openapi/Playground.astro +7 -1
- package/src/components/openapi/RequestBody.astro +24 -5
- package/src/components/openapi/RequestPanel.astro +59 -7
- package/src/components/openapi/Responses.astro +7 -4
- package/src/components/openapi/SchemaTable.astro +15 -3
- package/src/components/openapi/async-snippets.ts +65 -9
- package/src/components/openapi/async.ts +123 -29
- package/src/components/openapi/code-samples.ts +97 -0
- package/src/components/openapi/graphql-helpers.ts +35 -12
- package/src/components/openapi/helpers.ts +36 -2
- package/src/components/openapi/message-model.ts +54 -11
- package/src/components/openapi/message.ts +14 -4
- package/src/components/openapi/operation-model.ts +16 -7
- package/src/components/openapi/playground-client.ts +24 -5
- package/src/components/openapi/playground-schema.ts +1 -1
- package/src/components/openapi/schema-tree.ts +44 -14
- package/src/components/openapi/security.ts +16 -3
- package/src/components/openapi/snippets.ts +873 -10
- package/src/components/openapi/validate-json.ts +4 -3
- package/src/components/props.ts +6 -0
- package/src/consent/client.ts +95 -0
- package/src/consent/clients.ts +19 -0
- package/src/consent/ethyca.ts +71 -0
- package/src/consent/head.ts +24 -0
- package/src/consent/index.ts +37 -0
- package/src/consent/init.ts +29 -0
- package/src/consent/native.ts +36 -0
- package/src/consent/osano.ts +59 -0
- package/src/consent/schema.ts +30 -0
- package/src/core/builtin-tags.ts +5 -0
- package/src/core/changelog-index.ts +31 -1
- package/src/core/client-address.ts +19 -0
- package/src/core/component-diagnostics.ts +53 -0
- package/src/core/component-overrides.ts +32 -0
- package/src/core/config-input.ts +225 -23
- package/src/core/data.ts +46 -4
- package/src/core/diagnostics.ts +8 -2
- package/src/core/footer.ts +26 -0
- package/src/core/graph.ts +39 -36
- package/src/core/i18n-ui.ts +84 -2
- package/src/core/includes.ts +21 -4
- package/src/core/links.ts +63 -19
- package/src/core/localizable.ts +26 -0
- package/src/core/navigation.ts +43 -12
- package/src/core/page-modes.ts +56 -0
- package/src/core/probe.ts +26 -6
- package/src/core/project-graph.ts +163 -16
- package/src/core/redirect-patterns.ts +520 -0
- package/src/core/related.ts +131 -0
- package/src/core/schema.ts +339 -66
- package/src/core/sources/cache.ts +6 -0
- package/src/core/sources/contentful-rich-text.ts +29 -6
- package/src/core/sources/contentful.ts +135 -25
- package/src/core/sources/filesystem.ts +26 -4
- package/src/core/sources/github-releases.ts +12 -1
- package/src/core/sources/lexical.ts +15 -10
- package/src/core/sources/mdx-remote.ts +62 -10
- package/src/core/sources/normalize.ts +228 -41
- package/src/core/sources/notion.ts +7 -1
- package/src/core/sources/obsidian.ts +16 -3
- package/src/core/sources/payload.ts +38 -15
- package/src/core/sources/read.ts +8 -3
- package/src/core/sources/remote.ts +72 -15
- package/src/core/sources/resolve.ts +11 -1
- package/src/core/sources/sanity.ts +43 -25
- package/src/core/sources/strapi.ts +2 -2
- package/src/core/types.ts +19 -1
- package/src/core/ui-packs/ar.ts +44 -0
- package/src/core/ui-packs/bg.ts +46 -0
- package/src/core/ui-packs/bn.ts +44 -0
- package/src/core/ui-packs/ca.ts +47 -0
- package/src/core/ui-packs/cs.ts +45 -0
- package/src/core/ui-packs/da.ts +46 -0
- package/src/core/ui-packs/de.ts +47 -0
- package/src/core/ui-packs/el.ts +46 -0
- package/src/core/ui-packs/es.ts +47 -0
- package/src/core/ui-packs/fa.ts +46 -0
- package/src/core/ui-packs/fi.ts +46 -0
- package/src/core/ui-packs/fr.ts +47 -0
- package/src/core/ui-packs/he.ts +44 -0
- package/src/core/ui-packs/hi.ts +45 -0
- package/src/core/ui-packs/hr.ts +46 -0
- package/src/core/ui-packs/hu.ts +45 -0
- package/src/core/ui-packs/id.ts +46 -0
- package/src/core/ui-packs/it.ts +46 -0
- package/src/core/ui-packs/ja.ts +46 -0
- package/src/core/ui-packs/ko.ts +45 -0
- package/src/core/ui-packs/nl.ts +47 -0
- package/src/core/ui-packs/no.ts +45 -0
- package/src/core/ui-packs/pl.ts +46 -0
- package/src/core/ui-packs/pt-br.ts +47 -0
- package/src/core/ui-packs/pt.ts +46 -0
- package/src/core/ui-packs/ro.ts +46 -0
- package/src/core/ui-packs/ru.ts +46 -0
- package/src/core/ui-packs/sk.ts +45 -0
- package/src/core/ui-packs/sr.ts +46 -0
- package/src/core/ui-packs/sv.ts +45 -0
- package/src/core/ui-packs/th.ts +44 -0
- package/src/core/ui-packs/tr.ts +46 -0
- package/src/core/ui-packs/uk.ts +46 -0
- package/src/core/ui-packs/vi.ts +46 -0
- package/src/core/ui-packs/zh-tw.ts +44 -0
- package/src/core/ui-packs/zh.ts +44 -0
- package/src/core/variables.ts +103 -0
- package/src/deploy/adapter-output.ts +7 -2
- package/src/deploy/adapters/cloudflare.ts +7 -5
- package/src/deploy/adapters/node.ts +47 -9
- package/src/deploy/adapters/types.ts +7 -3
- package/src/deploy/artifacts.ts +79 -9
- package/src/deploy/cloudflare-negotiation.ts +35 -5
- package/src/deploy/headers.ts +2 -1
- package/src/deploy/node-headers.ts +63 -9
- package/src/deploy/platforms/cloudflare.ts +45 -9
- package/src/deploy/platforms/netlify.ts +35 -2
- package/src/deploy/platforms/node.ts +12 -2
- package/src/deploy/platforms/types.ts +21 -7
- package/src/deploy/platforms/vercel.ts +149 -17
- package/src/deploy/redirects.ts +151 -24
- package/src/deploy/rss.ts +3 -1
- package/src/deploy/sitemap.ts +39 -5
- package/src/deploy/vercel-negotiation.ts +326 -102
- package/src/eval/agents.ts +18 -1
- package/src/eval/prompts.ts +6 -3
- package/src/eval/report.ts +34 -13
- package/src/eval/run.ts +5 -0
- package/src/markdown/api-rail.ts +259 -0
- package/src/markdown/code-title.ts +35 -9
- package/src/markdown/features.ts +3 -2
- package/src/markdown/fence-meta.ts +2 -0
- package/src/markdown/include.ts +11 -1
- package/src/markdown/index.ts +28 -5
- package/src/markdown/math.ts +4 -4
- package/src/markdown/relative-links.ts +3 -2
- package/src/markdown/variables.ts +56 -0
- package/src/markdown/views.ts +82 -0
- package/src/narration/build.ts +412 -0
- package/src/narration/player.ts +249 -0
- package/src/narration/provider.ts +29 -0
- package/src/narration/script.ts +592 -0
- package/src/og/card.ts +7 -6
- package/src/openapi/checks.ts +273 -0
- package/src/openapi/graphql-build.ts +21 -0
- package/src/openapi/graphql.ts +11 -0
- package/src/openapi/model.ts +72 -27
- package/src/openapi/overlay.ts +256 -0
- package/src/openapi/parse.ts +182 -4
- package/src/openapi/references.ts +64 -8
- package/src/openapi/render-mdx.ts +5 -1
- package/src/openapi/scalar.ts +40 -6
- package/src/openapi/source.ts +40 -15
- package/src/ratelimit/cloudflare.ts +54 -0
- package/src/ratelimit/index.ts +30 -0
- package/src/ratelimit/memory.ts +45 -0
- package/src/ratelimit/runtime.ts +247 -0
- package/src/ratelimit/schema.ts +28 -0
- package/src/ratelimit/upstash.ts +60 -0
- package/src/ratelimit/wrangler.ts +70 -0
- package/src/reference/asyncapi.ts +2 -2
- package/src/reference/graphql.ts +20 -3
- package/src/reference/index.ts +1 -0
- package/src/reference/openapi.ts +21 -7
- package/src/reference/options.ts +80 -8
- package/src/reference/scalar.ts +33 -8
- package/src/registry/eject.ts +23 -5
- package/src/registry/registry.ts +7 -0
- package/src/search/adapters/locale-scope.ts +30 -0
- package/src/search/adapters/typesense.ts +14 -4
- package/src/search/build.ts +21 -3
- package/src/search/documents.ts +26 -2
- package/src/search/orama-index.ts +191 -34
- package/src/search/pagefind-ranking.ts +39 -0
- package/src/search/source-pages.ts +29 -0
- package/src/search/sync/algolia.ts +111 -10
- package/src/search/sync/index.ts +52 -13
- package/src/search/sync/orama-cloud.ts +3 -0
- package/src/search/sync/typesense.ts +76 -26
- package/src/seo/metatags.ts +67 -0
- package/src/sources/contentful.ts +12 -0
- package/src/sources/github-releases.ts +7 -1
- package/src/sources/shared.ts +3 -0
- package/src/theme/chrome-icons.ts +1 -0
- package/src/theme/color.ts +500 -0
- package/src/theme/entry.ts +85 -6
- package/src/theme/palette.ts +121 -45
- package/src/translate/prompts.ts +1 -0
- package/src/translate/validate.ts +31 -3
- package/src/upgrade/upgrade.ts +4 -171
- package/dist/cli/chunk-1d7ve1dm.js.map +0 -12
- package/dist/cli/chunk-2hsdwb9n.js.map +0 -10
- package/dist/cli/chunk-35d4wj9f.js.map +0 -15
- package/dist/cli/chunk-364znk6q.js +0 -75
- package/dist/cli/chunk-364znk6q.js.map +0 -11
- package/dist/cli/chunk-5m5nmvyq.js.map +0 -13
- package/dist/cli/chunk-8ktnccpt.js.map +0 -10
- package/dist/cli/chunk-9t7a85s3.js.map +0 -10
- package/dist/cli/chunk-b07cmahc.js +0 -145
- package/dist/cli/chunk-b07cmahc.js.map +0 -11
- package/dist/cli/chunk-c8chx29p.js.map +0 -36
- package/dist/cli/chunk-e04dxsz1.js +0 -39
- package/dist/cli/chunk-e04dxsz1.js.map +0 -10
- package/dist/cli/chunk-j85vccga.js.map +0 -36
- package/dist/cli/chunk-p3v96n38.js.map +0 -10
- package/dist/cli/chunk-pehfxfta.js.map +0 -10
- package/dist/cli/chunk-pv29h0wf.js.map +0 -190
- package/dist/cli/chunk-q58y5e6a.js.map +0 -10
- package/dist/cli/chunk-vg9r4eb9.js.map +0 -14
- package/dist/cli/chunk-wrr3j9w9.js.map +0 -35
- package/dist/cli/chunk-yfyb25rh.js.map +0 -14
- package/docs/content/sources.mdx +0 -334
- /package/dist/cli/{chunk-tkacnehg.js.map → chunk-3v3ffbrj.js.map} +0 -0
- /package/dist/cli/{chunk-r9rcc4w7.js.map → chunk-8y2kmjv8.js.map} +0 -0
- /package/dist/cli/{chunk-2eytanqx.js.map → chunk-c887fj0s.js.map} +0 -0
- /package/dist/cli/{chunk-akbpwfxc.js.map → chunk-dzwehpy7.js.map} +0 -0
- /package/dist/cli/{chunk-2z928egk.js.map → chunk-ft9vfys6.js.map} +0 -0
- /package/dist/cli/{chunk-a58773jm.js.map → chunk-kma9f6sf.js.map} +0 -0
- /package/dist/cli/{chunk-crgn1q09.js.map → chunk-sds923fa.js.map} +0 -0
- /package/dist/cli/{chunk-acanzt5p.js.map → chunk-tdqhyxfz.js.map} +0 -0
|
@@ -33,5 +33,8 @@ export declare const snapshotCache: (cacheDir: string) => SnapshotCache;
|
|
|
33
33
|
* snapshot exists, serve it without fetching (cache-first dev). On fetch failure,
|
|
34
34
|
* serve the last-known-good snapshot with a warning so a CMS/network outage
|
|
35
35
|
* doesn't fail the build; if there is no snapshot either, surface a hard error.
|
|
36
|
+
* A `BlumeError` from the source (a missing SDK or token, checked before any
|
|
37
|
+
* request, or a misconfiguration) already names its cause, so without a
|
|
38
|
+
* snapshot it surfaces as itself rather than as a fetch failure.
|
|
36
39
|
*/
|
|
37
40
|
export declare const loadWithCache: (name: string, cache: SnapshotCache, fetchEntries: () => Promise<SourceEntry[]>, refresh?: boolean) => Promise<SourceLoadResult>;
|
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Contentful rich text → Markdown. Covers the block, inline, and mark types
|
|
3
3
|
* the Rich Text editor emits; embedded entries fall through to a serializer
|
|
4
|
-
* keyed by content type or are noted in a comment
|
|
4
|
+
* keyed by content type or are noted in a comment, and a link to an entry
|
|
5
|
+
* points at its page when the source says it has one. Links to assets and
|
|
5
6
|
* entries arrive unresolved from the Delivery API (`data.target` is a
|
|
6
7
|
* `sys` link), so the source hands in resolvers over the response's
|
|
7
8
|
* `includes`; a document the SDK already resolved (with `fields` inline)
|
|
8
9
|
* lowers the same way.
|
|
9
10
|
*/
|
|
10
11
|
import type { JsonObject } from "./json.ts";
|
|
11
|
-
/** An asset's file as a Markdown image needs it. */
|
|
12
|
+
/** An asset's file as a Markdown image or link needs it. */
|
|
12
13
|
export interface ContentfulAsset {
|
|
14
|
+
/** The file's MIME type; an asset that isn't an image renders as a link. */
|
|
15
|
+
contentType?: string;
|
|
13
16
|
description?: string;
|
|
17
|
+
fileName?: string;
|
|
14
18
|
title?: string;
|
|
15
19
|
url: string;
|
|
16
20
|
}
|
|
17
21
|
export interface ContentfulRichTextOptions {
|
|
22
|
+
/**
|
|
23
|
+
* The route of a linked entry's page; an entry hyperlink to an entry with
|
|
24
|
+
* none keeps only its text.
|
|
25
|
+
*/
|
|
26
|
+
entryHref?: (entry: JsonObject) => string | undefined;
|
|
18
27
|
/** Resolve an asset link (`data.target.sys.id`) to its file. */
|
|
19
28
|
resolveAsset?: (id: string) => ContentfulAsset | null;
|
|
20
29
|
/** Resolve an entry link to the entry (`sys` plus `fields`). */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ResolvedI18nConfig, ResolvedVersionsConfig } from "../schema.ts";
|
|
1
2
|
import type { JsonObject } from "./json.ts";
|
|
2
3
|
import type { RemoteFieldMap } from "./remote.ts";
|
|
3
4
|
import type { ContentSource, SourceContext } from "./types.ts";
|
|
@@ -8,10 +9,24 @@ export interface ContentfulSourceOptions {
|
|
|
8
9
|
space: string;
|
|
9
10
|
/** Environment id; default `master`. */
|
|
10
11
|
environment?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Delivery API host name; default `cdn.contentful.com`. A space with EU
|
|
14
|
+
* data residency reads from `cdn.eu.contentful.com`.
|
|
15
|
+
*/
|
|
16
|
+
host?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Preview API host name for `--preview`; default `preview.contentful.com`
|
|
19
|
+
* (`preview.eu.contentful.com` for EU data residency).
|
|
20
|
+
*/
|
|
21
|
+
previewHost?: string;
|
|
11
22
|
/** The content type id whose entries become pages. */
|
|
12
23
|
contentType: string;
|
|
13
24
|
/** Locale code to fetch; omit for the space's default locale. */
|
|
14
25
|
locale?: string;
|
|
26
|
+
/** The project's i18n config, which places an entry's route by its slug. */
|
|
27
|
+
i18n?: ResolvedI18nConfig;
|
|
28
|
+
/** The project's versions config, which places an entry's route by its slug. */
|
|
29
|
+
versions?: ResolvedVersionsConfig;
|
|
15
30
|
/**
|
|
16
31
|
* Field ids mapping an entry onto Blume meta + body. Paths resolve against
|
|
17
32
|
* the entry's `fields`, with `sys` reachable as `sys.<key>`. Defaults:
|
|
@@ -35,6 +50,7 @@ export interface ContentfulSourceOptions {
|
|
|
35
50
|
* Contentful content source. Pages through the Delivery API (the Preview API
|
|
36
51
|
* under `--preview`), maps each entry's fields to frontmatter, and lowers its
|
|
37
52
|
* rich text body to Markdown with the page's `includes` resolving asset and
|
|
38
|
-
* entry links.
|
|
53
|
+
* entry links. An entry hyperlink to another of the source's entries links
|
|
54
|
+
* to that entry's page.
|
|
39
55
|
*/
|
|
40
56
|
export declare const contentfulSource: (options: ContentfulSourceOptions, ctx?: SourceContext) => ContentSource;
|
|
@@ -9,6 +9,11 @@ import type { JsonObject } from "./json.ts";
|
|
|
9
9
|
export interface LexicalOptions {
|
|
10
10
|
/** The CMS origin a relative upload URL (`/media/x.png`) resolves against. */
|
|
11
11
|
baseUrl?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Called with the label of each node left out as a comment (a block with
|
|
14
|
+
* no serializer, a node type with no Markdown), so the source can warn.
|
|
15
|
+
*/
|
|
16
|
+
onUnsupported?: (what: string) => void;
|
|
12
17
|
/** Serializers for `block`/`inlineBlock` nodes, keyed by `fields.blockType`. */
|
|
13
18
|
serializers?: Record<string, (fields: JsonObject) => string>;
|
|
14
19
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { YAMLException } from "js-yaml";
|
|
1
2
|
import type { ResolvedI18nConfig } from "../schema.ts";
|
|
2
|
-
import type { Diagnostic, Heading, PageLink, PageRecord } from "../types.ts";
|
|
3
|
+
import type { Diagnostic, ExampleUse, Heading, PageLink, PageRecord } from "../types.ts";
|
|
3
4
|
import type { NormalizeContext, SourceEntry } from "./types.ts";
|
|
4
5
|
/**
|
|
5
6
|
* Slugify a content/route slug (Sanity, Notion, frontmatter `slug`). Heading
|
|
@@ -30,6 +31,16 @@ export declare const slugifyPath: (text: string) => string;
|
|
|
30
31
|
* reports this instead of publishing a route that can never render.
|
|
31
32
|
*/
|
|
32
33
|
export declare const unloadablePathDiagnostic: (path: string, file: string) => Diagnostic | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* The error for a content file whose front matter isn't valid YAML — most
|
|
36
|
+
* often an unquoted value holding `: `, which YAML reads as a nested mapping.
|
|
37
|
+
* Thrown out of a source's scan, it would fail every command with
|
|
38
|
+
* BLUME_INTERNAL; a source leaves the file out and reports this instead, like
|
|
39
|
+
* a page whose front matter fails the schema. js-yaml counts lines from the
|
|
40
|
+
* text after the opening `---`, which starts with the rest of that fence
|
|
41
|
+
* line, so its 0-based line is already the file's line minus one.
|
|
42
|
+
*/
|
|
43
|
+
export declare const frontmatterYamlDiagnostic: (error: YAMLException, file: string) => Diagnostic;
|
|
33
44
|
export declare const HTML_COMMENT: RegExp;
|
|
34
45
|
export declare const INLINE_CODE: RegExp;
|
|
35
46
|
/** A heading whose trailing `{#id}` marker is unescaped — see `BARE_CURLY_MARKER`. */
|
|
@@ -37,6 +48,8 @@ export interface CurlyMarker {
|
|
|
37
48
|
id: string;
|
|
38
49
|
/** 1-based line of the heading (a setext heading's first text line) in the body. */
|
|
39
50
|
line: number;
|
|
51
|
+
/** The braces as written (`{#id}`, `{ #id }`, `{: #id }`). */
|
|
52
|
+
marker: string;
|
|
40
53
|
}
|
|
41
54
|
/** Where a heading's text ends in the scanned text, for appending a marker. */
|
|
42
55
|
export interface HeadingSite {
|
|
@@ -74,6 +87,12 @@ export declare const MD_IMAGE: RegExp;
|
|
|
74
87
|
/** Column (0-based, within `matched`) where a link/image match's target starts. */
|
|
75
88
|
export declare const targetOffsetIn: (matched: string, target: string, title: string | undefined) => number;
|
|
76
89
|
export declare const extractLinks: (body: string, lineOffset?: number) => PageLink[];
|
|
90
|
+
/**
|
|
91
|
+
* Every `<Component path>` in an `.mdx` body, with the 1-based position of its
|
|
92
|
+
* value; lines are shifted by `lineOffset`, as {@link extractLinks} does. Code
|
|
93
|
+
* blocks and inline code are skipped.
|
|
94
|
+
*/
|
|
95
|
+
export declare const extractExampleUses: (body: string, lineOffset?: number) => ExampleUse[];
|
|
77
96
|
export declare const extractComponentTags: (body: string) => string[];
|
|
78
97
|
/**
|
|
79
98
|
* Height of the frontmatter block stripped from `raw` to produce `body` (0
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { PageRecord } from "../types.ts";
|
|
2
|
+
import type { ContentVariables } from "../variables.ts";
|
|
2
3
|
import type { ContentSource } from "./types.ts";
|
|
3
4
|
/** The subset of a scanned project the entry reader needs. */
|
|
4
5
|
export interface EntryReadContext {
|
|
6
|
+
/** The site's content variables, substituted into what's read. */
|
|
7
|
+
config?: {
|
|
8
|
+
variables?: ContentVariables;
|
|
9
|
+
};
|
|
5
10
|
/** The instantiated sources, keyed for `read()` lookups. */
|
|
6
11
|
sources?: ContentSource[];
|
|
7
12
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { BlumeError } from "../diagnostics.ts";
|
|
2
|
+
import type { Diagnostic } from "../types.ts";
|
|
1
3
|
import type { JsonObject, JsonValue } from "./json.ts";
|
|
2
4
|
import type { ContentSource, SourceContext, SourceEntry } from "./types.ts";
|
|
3
5
|
/** What every REST-backed CMS source needs to be a staged, cached source. */
|
|
@@ -9,8 +11,13 @@ export interface RemoteSourceOptions {
|
|
|
9
11
|
* offline warning.
|
|
10
12
|
*/
|
|
11
13
|
assertConfigured?: () => void;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Pull every entry from the API; called on refresh and on each poll.
|
|
16
|
+
* `warn` reports a problem with the content itself (an embed the API
|
|
17
|
+
* couldn't resolve, a node with no Markdown), which the load returns
|
|
18
|
+
* beside the entries; a load served from the snapshot repeats none.
|
|
19
|
+
*/
|
|
20
|
+
fetchEntries: (warn: (diagnostic: Diagnostic) => void) => Promise<SourceEntry[]>;
|
|
14
21
|
name: string;
|
|
15
22
|
/** Opt-in dev polling interval (seconds); omit to freeze for the session. */
|
|
16
23
|
pollInterval?: number;
|
|
@@ -29,6 +36,9 @@ export declare const remoteSource: (options: RemoteSourceOptions, ctx?: SourceCo
|
|
|
29
36
|
export interface RemoteFrontmatter {
|
|
30
37
|
description?: string;
|
|
31
38
|
draft?: boolean;
|
|
39
|
+
sidebar?: {
|
|
40
|
+
order: number;
|
|
41
|
+
};
|
|
32
42
|
title?: string;
|
|
33
43
|
}
|
|
34
44
|
/**
|
|
@@ -37,6 +47,13 @@ export interface RemoteFrontmatter {
|
|
|
37
47
|
* `writesMdx`).
|
|
38
48
|
*/
|
|
39
49
|
export declare const stagedEntry: (slug: string, data: RemoteFrontmatter, markdown: string, lastModified: string | undefined, format?: "md" | "mdx") => SourceEntry;
|
|
50
|
+
/**
|
|
51
|
+
* The error a source throws before its first request when the token its API
|
|
52
|
+
* always requires is unset (Notion, Contentful's Delivery API). Sent without
|
|
53
|
+
* one, the request could only fail, and the build would report the API's
|
|
54
|
+
* wording as a fetch failure instead of the variable to set.
|
|
55
|
+
*/
|
|
56
|
+
export declare const missingSecretError: (name: string, env: string) => BlumeError;
|
|
40
57
|
/** How a source calls its CMS: the API's auth headers and an injectable fetch. */
|
|
41
58
|
export interface RestClient {
|
|
42
59
|
/** Injected for tests; defaults to the global `fetch`. */
|
|
@@ -67,18 +84,28 @@ export interface RemoteFieldMap {
|
|
|
67
84
|
description?: string;
|
|
68
85
|
/** Field holding the last-modified ISO date. */
|
|
69
86
|
lastModified?: string;
|
|
87
|
+
/** Field holding the sidebar order (a number); no default. */
|
|
88
|
+
order?: string;
|
|
70
89
|
/** Field holding the route slug. */
|
|
71
90
|
slug?: string;
|
|
72
91
|
/** Field holding the page title. */
|
|
73
92
|
title?: string;
|
|
74
93
|
}
|
|
94
|
+
/** A field map with its defaults filled in; `order` is read only when set. */
|
|
95
|
+
export type RemoteFields = Required<Omit<RemoteFieldMap, "order">> & Pick<RemoteFieldMap, "order">;
|
|
96
|
+
/**
|
|
97
|
+
* The slug a document's staged entry is named by. It falls back to the
|
|
98
|
+
* document's id when the slug field is missing or slugifies to nothing (pure
|
|
99
|
+
* punctuation), so distinct documents never collapse onto one
|
|
100
|
+
* `untitled.md`; a slashed slug keeps its segments.
|
|
101
|
+
*/
|
|
102
|
+
export declare const documentSlug: (doc: JsonObject, slugField: string, id: string) => string;
|
|
75
103
|
/**
|
|
76
|
-
* Map a document to a staged entry
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
* when `lowersToMdx` (the source has serializers, see `writesMdx`).
|
|
104
|
+
* Map a document to a staged entry named by its {@link documentSlug}. A
|
|
105
|
+
* number in the `order` field, when one is mapped, becomes the page's
|
|
106
|
+
* sidebar order. A string body is Markdown and passes through as `.md`, its
|
|
107
|
+
* unsafe links reduced to their labels; any other shape goes to the CMS's
|
|
108
|
+
* lowerer, and is written as `.mdx` when `lowersToMdx` (the source has
|
|
109
|
+
* serializers, see `writesMdx`).
|
|
83
110
|
*/
|
|
84
|
-
export declare const documentEntry: (doc: JsonObject, fields:
|
|
111
|
+
export declare const documentEntry: (doc: JsonObject, fields: RemoteFields, id: string, lower: (body: JsonValue) => string, draft?: boolean, lowersToMdx?: boolean) => SourceEntry;
|
|
@@ -12,7 +12,7 @@ export interface SanityFieldMap {
|
|
|
12
12
|
description?: string;
|
|
13
13
|
/** Route slug (dot path); default `slug.current`. */
|
|
14
14
|
slug?: string;
|
|
15
|
-
/** Portable Text
|
|
15
|
+
/** Body field, Portable Text or a Markdown string; default `body`. */
|
|
16
16
|
body?: string;
|
|
17
17
|
/** Last-modified ISO date; default `_updatedAt`. */
|
|
18
18
|
lastModified?: string;
|
|
@@ -51,6 +51,10 @@ export interface PageLink {
|
|
|
51
51
|
* only those go through the image pipeline; a plain link to the same path
|
|
52
52
|
* resolves as a site route. */
|
|
53
53
|
image?: boolean;
|
|
54
|
+
/** Set when the target is a lowercase `<a href>`, which ships as written:
|
|
55
|
+
* the Markdown pipeline neither resolves its relative path file-style nor
|
|
56
|
+
* mounts the base path on it, so it's checked the way a browser reads it. */
|
|
57
|
+
raw?: boolean;
|
|
54
58
|
/** 1-based line number in the source file. */
|
|
55
59
|
line: number;
|
|
56
60
|
/** 1-based column of the target within the line. */
|
|
@@ -60,6 +64,17 @@ export interface PageLink {
|
|
|
60
64
|
* here so authors fix the partial, not the page that spliced it. */
|
|
61
65
|
file?: string;
|
|
62
66
|
}
|
|
67
|
+
/** A `<Component path="…">` in a page, located like a {@link PageLink}. */
|
|
68
|
+
export interface ExampleUse {
|
|
69
|
+
/** The example's key as written: its path under `examples/`, sans extension. */
|
|
70
|
+
path: string;
|
|
71
|
+
/** 1-based line number in the source file. */
|
|
72
|
+
line: number;
|
|
73
|
+
/** 1-based column of the `path` value within the line. */
|
|
74
|
+
column: number;
|
|
75
|
+
/** Absolute path of the included partial it was written in, if not the page. */
|
|
76
|
+
file?: string;
|
|
77
|
+
}
|
|
63
78
|
/**
|
|
64
79
|
* Resolved project paths. Computed once per CLI invocation and threaded
|
|
65
80
|
* through the core pipeline.
|
|
@@ -185,6 +200,8 @@ export interface PageRecord {
|
|
|
185
200
|
links: PageLink[];
|
|
186
201
|
/** Capitalized JSX component tags used in the body (`.mdx` only). */
|
|
187
202
|
componentsUsed?: string[];
|
|
203
|
+
/** The string `path` of each `<Component>` example in the body (`.mdx` only). */
|
|
204
|
+
examplesUsed?: ExampleUse[];
|
|
188
205
|
/** Resolved "last updated" ISO date, when the feature is enabled. */
|
|
189
206
|
lastModified?: string;
|
|
190
207
|
/** Absolute paths of files this page `<include>`s, transitively. Drives the
|
|
@@ -297,7 +314,7 @@ export interface Navigation {
|
|
|
297
314
|
cta?: HeaderAction | null;
|
|
298
315
|
/** Pinned links shown above the sidebar sections, unscoped by tab. */
|
|
299
316
|
featured: FeaturedLink[];
|
|
300
|
-
/** Repo URL for the
|
|
317
|
+
/** Repo URL for the footer's GitHub link, or null when hidden (`navigation.repo`). */
|
|
301
318
|
repoUrl?: string | null;
|
|
302
319
|
/**
|
|
303
320
|
* Where the header's brand link points in this locale: `logo.href` moved
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content variables: `variables: { version: "2.1.0" }` in `blume.config.ts`
|
|
3
|
+
* makes `{{version}}` in a page read `2.1.0` wherever it appears in the body,
|
|
4
|
+
* code and links included. The syntax is Mintlify's, so migrated pages keep
|
|
5
|
+
* working.
|
|
6
|
+
*
|
|
7
|
+
* Substitution is textual, before any parsing, so a page's HTML, its search
|
|
8
|
+
* entry, its `.md` mirror, and `llms-full.txt` all agree: the MDX pipeline
|
|
9
|
+
* substitutes in a Vite transform ahead of the compiler (an MDX parser would
|
|
10
|
+
* read `{{version}}` as a JavaScript expression), the Markdown pipeline in a
|
|
11
|
+
* plugin over the parsed text, includes as their files are read, and the raw
|
|
12
|
+
* readers through {@link substituteVariables}. Only defined names are
|
|
13
|
+
* replaced; an undefined one in prose is a build error
|
|
14
|
+
* (`BLUME_UNDEFINED_VARIABLE`), and inside code it is left alone, since
|
|
15
|
+
* templating examples (`{{name}}` in a Handlebars snippet) are common there.
|
|
16
|
+
*/
|
|
17
|
+
/** The variables a site defines, name to value. */
|
|
18
|
+
export type ContentVariables = Readonly<Record<string, string>>;
|
|
19
|
+
/** A variable name: letters, digits, `_`, and `-` (Mintlify's `api-url`). */
|
|
20
|
+
export declare const VARIABLE_NAME: RegExp;
|
|
21
|
+
/** Whether a site defines any variables, so the rest can be skipped. */
|
|
22
|
+
export declare const hasVariables: (variables?: ContentVariables) => variables is ContentVariables;
|
|
23
|
+
/** `text` with every reference to a defined variable replaced by its value. */
|
|
24
|
+
export declare const substituteVariables: (text: string, variables?: ContentVariables) => string;
|
|
25
|
+
/**
|
|
26
|
+
* {@link substituteVariables} over a page's raw source, leaving its front
|
|
27
|
+
* matter as written: the rendered page reads its title and description from
|
|
28
|
+
* the unsubstituted front matter, so the other surfaces must too.
|
|
29
|
+
*/
|
|
30
|
+
export declare const substituteVariablesInBody: (source: string, variables?: ContentVariables) => string;
|
|
31
|
+
/** An undefined variable referenced in prose, with its 1-based line. */
|
|
32
|
+
export interface UndefinedVariable {
|
|
33
|
+
line: number;
|
|
34
|
+
name: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The undefined variables `text` references outside code: fenced blocks and
|
|
38
|
+
* inline code spans are skipped, so a templating example never fails a
|
|
39
|
+
* build. Empty when the site defines no variables at all, so a page that
|
|
40
|
+
* shows `{{…}}` literally keeps working until the site opts in.
|
|
41
|
+
*/
|
|
42
|
+
export declare const undefinedVariables: (text: string, variables?: ContentVariables) => UndefinedVariable[];
|
|
@@ -13,7 +13,8 @@ export declare const deployOutputDir: (config: ResolvedConfig, context: ProjectC
|
|
|
13
13
|
* served. A static build serves `dist/` wherever it lands; a server build
|
|
14
14
|
* serves what its platform declares — the Build Output tree's `static/` half
|
|
15
15
|
* on Vercel, Astro's `build.client` dir (`dist/client/`) on Node and
|
|
16
|
-
* Cloudflare, `dist/` on Netlify.
|
|
16
|
+
* Cloudflare, `dist/` on Netlify. On Vercel and Cloudflare that's its
|
|
17
|
+
* `<base>/` directory under `deployment.base`, where the files land.
|
|
17
18
|
*/
|
|
18
19
|
export declare const deployStaticDir: (config: ResolvedConfig, context: ProjectContext) => string;
|
|
19
20
|
/**
|
|
@@ -31,10 +31,12 @@ export declare const cloudflareAdapterSchema: import("zod").ZodObject<{
|
|
|
31
31
|
runtimeDeps: import("zod").ZodArray<import("zod").ZodString>;
|
|
32
32
|
}, import("zod/v4/core").$strict>;
|
|
33
33
|
/**
|
|
34
|
-
* Cloudflare
|
|
35
|
-
* `dist/server` (with a
|
|
36
|
-
* text/markdown`) and serves
|
|
37
|
-
*
|
|
38
|
-
* (`
|
|
34
|
+
* Cloudflare. A server build targets Workers only (`@astrojs/cloudflare`
|
|
35
|
+
* dropped Pages in v13): it emits a Worker into `dist/server` (with a
|
|
36
|
+
* generated wrapper that answers `Accept: text/markdown`) and serves
|
|
37
|
+
* `dist/client` through the ASSETS binding. A static build
|
|
38
|
+
* (`output: "static"`) never loads the adapter, and its `dist/` deploys to
|
|
39
|
+
* Pages or to Workers static assets. `@astrojs/cloudflare` is an optional
|
|
40
|
+
* peer: install it in the project (`npm install @astrojs/cloudflare`).
|
|
39
41
|
*/
|
|
40
42
|
export declare const cloudflare: (options?: CloudflareOptions) => CloudflareAdapter;
|
|
@@ -1,37 +1,72 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
import type { DeployAdapter, DeployOptions } from "./types.ts";
|
|
2
3
|
/** The Astro adapter package a Node server build imports. */
|
|
3
4
|
export declare const NODE_ADAPTER_PACKAGE = "@astrojs/node";
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* defaults `mode` to `"standalone"`; an option you pass wins. `host` and
|
|
8
|
-
* `port` are forwarded too, but `@astrojs/node` replaces both with Astro's
|
|
9
|
-
* own server settings, so the standalone server listens on `localhost:4321`
|
|
10
|
-
* unless the `HOST` and `PORT` environment variables are set when it starts.
|
|
6
|
+
* A host the server trusts forwarded headers for, in Astro's
|
|
7
|
+
* `security.allowedDomains` shape: each field set must match.
|
|
11
8
|
*/
|
|
12
|
-
export type
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
export type NodeAllowedDomain = {
|
|
10
|
+
/** The host, like `docs.example.com`; `*.example.com` matches subdomains. */
|
|
11
|
+
hostname?: string;
|
|
12
|
+
/** The port, as a string. */
|
|
13
|
+
port?: string;
|
|
14
|
+
/** The scheme, like `https`. */
|
|
15
|
+
protocol?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Options for {@link node}: `output`, `site`, `base`, and `allowedDomains`,
|
|
19
|
+
* plus any option of `@astrojs/node` forwarded verbatim (`mode`,
|
|
20
|
+
* `staticHeaders`, …). Blume defaults `mode` to `"standalone"`; an option you
|
|
21
|
+
* pass wins. `host` and `port` are forwarded too, but `@astrojs/node`
|
|
22
|
+
* replaces both with Astro's own server settings, so the standalone server
|
|
23
|
+
* listens on `localhost:4321` unless the `HOST` and `PORT` environment
|
|
24
|
+
* variables are set when it starts.
|
|
25
|
+
*/
|
|
26
|
+
export type NodeOptions = DeployOptions & {
|
|
27
|
+
/**
|
|
28
|
+
* The hosts a reverse proxy in front of the server answers for, set as
|
|
29
|
+
* Astro's `security.allowedDomains`. A request whose `Host` (or
|
|
30
|
+
* `X-Forwarded-Host`) matches one is trusted to name the reader in
|
|
31
|
+
* `X-Forwarded-For`, which the rate limit counts by; otherwise every
|
|
32
|
+
* reader counts as the proxy's address. Only list them when a proxy sets
|
|
33
|
+
* that header on every request, since a reader could otherwise send their
|
|
34
|
+
* own.
|
|
35
|
+
*/
|
|
36
|
+
allowedDomains?: NodeAllowedDomain[];
|
|
37
|
+
};
|
|
38
|
+
export type NodeAdapter = DeployAdapter<"node", NodeOptions>;
|
|
39
|
+
export declare const nodeOptionsSchema: z.ZodObject<{
|
|
40
|
+
base: z.ZodOptional<z.ZodString>;
|
|
41
|
+
output: z.ZodOptional<z.ZodEnum<{
|
|
17
42
|
static: "static";
|
|
18
43
|
server: "server";
|
|
19
44
|
}>>;
|
|
20
|
-
site:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
45
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
46
|
+
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
47
|
+
hostname: z.ZodOptional<z.ZodString>;
|
|
48
|
+
port: z.ZodOptional<z.ZodString>;
|
|
49
|
+
protocol: z.ZodOptional<z.ZodString>;
|
|
50
|
+
}, z.core.$strict>>>;
|
|
51
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
52
|
+
export declare const nodeAdapterSchema: z.ZodObject<{
|
|
53
|
+
kind: z.ZodLiteral<"node">;
|
|
54
|
+
options: z.ZodObject<{
|
|
55
|
+
base: z.ZodOptional<z.ZodString>;
|
|
56
|
+
output: z.ZodOptional<z.ZodEnum<{
|
|
27
57
|
static: "static";
|
|
28
58
|
server: "server";
|
|
29
59
|
}>>;
|
|
30
|
-
site:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
60
|
+
site: z.ZodOptional<z.ZodURL>;
|
|
61
|
+
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
62
|
+
hostname: z.ZodOptional<z.ZodString>;
|
|
63
|
+
port: z.ZodOptional<z.ZodString>;
|
|
64
|
+
protocol: z.ZodOptional<z.ZodString>;
|
|
65
|
+
}, z.core.$strict>>>;
|
|
66
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
67
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
68
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
69
|
+
}, z.core.$strict>;
|
|
35
70
|
/**
|
|
36
71
|
* A self-hosted Node server (containers, VMs). The standalone server in
|
|
37
72
|
* `dist/server/entry.mjs` serves `dist/client` itself. `@astrojs/node` is one
|
|
@@ -67,6 +67,11 @@ export declare const resolvedDeploymentSchema: z.ZodPipe<z.ZodDiscriminatedUnion
|
|
|
67
67
|
server: "server";
|
|
68
68
|
}>>;
|
|
69
69
|
site: z.ZodOptional<z.ZodURL>;
|
|
70
|
+
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
71
|
+
hostname: z.ZodOptional<z.ZodString>;
|
|
72
|
+
port: z.ZodOptional<z.ZodString>;
|
|
73
|
+
protocol: z.ZodOptional<z.ZodString>;
|
|
74
|
+
}, z.core.$strict>>>;
|
|
70
75
|
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
71
76
|
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
72
77
|
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
@@ -113,6 +118,11 @@ export declare const resolvedDeploymentSchema: z.ZodPipe<z.ZodDiscriminatedUnion
|
|
|
113
118
|
base?: string | undefined;
|
|
114
119
|
output?: "static" | "server" | undefined;
|
|
115
120
|
site?: string | undefined;
|
|
121
|
+
allowedDomains?: {
|
|
122
|
+
hostname?: string | undefined;
|
|
123
|
+
port?: string | undefined;
|
|
124
|
+
protocol?: string | undefined;
|
|
125
|
+
}[] | undefined;
|
|
116
126
|
};
|
|
117
127
|
requiredSecrets: string[];
|
|
118
128
|
runtimeDeps: string[];
|
|
@@ -67,9 +67,10 @@ export declare const deployOptionsSchema: z.ZodObject<{
|
|
|
67
67
|
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
68
68
|
/**
|
|
69
69
|
* The options Blume does not name — what reaches the `@astrojs/*` adapter's
|
|
70
|
-
* constructor verbatim.
|
|
70
|
+
* constructor verbatim. `configOptions` are the ones a host adapter names
|
|
71
|
+
* itself, for the Astro config rather than the constructor.
|
|
71
72
|
*/
|
|
72
|
-
export declare const deployPassthrough: (options: DeployOptions) => Record<string, JsonValue>;
|
|
73
|
+
export declare const deployPassthrough: (options: DeployOptions, configOptions?: readonly string[]) => Record<string, JsonValue>;
|
|
73
74
|
/**
|
|
74
75
|
* The runtime dependency a host adapter declares: its `@astrojs/*` package,
|
|
75
76
|
* which the generated `astro.config.mjs` imports for a server build and
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BlumeProject } from "../core/project-graph.ts";
|
|
2
|
+
import type { CompiledRedirect } from "../core/redirect-patterns.ts";
|
|
2
3
|
import type { ResolvedConfig } from "../core/schema.ts";
|
|
3
4
|
import type { BuildLog } from "./platforms/types.ts";
|
|
4
5
|
/**
|
|
@@ -34,19 +35,29 @@ export declare const nodeHeaderRules: (config: ResolvedConfig) => NodeHeaderRule
|
|
|
34
35
|
*/
|
|
35
36
|
export type NodeRedirects = Record<string, [string, number]>;
|
|
36
37
|
/**
|
|
37
|
-
* The configured redirects, based the way the host matches them (see
|
|
38
|
+
* The configured exact redirects, based the way the host matches them (see
|
|
38
39
|
* `platformRedirects`) and keyed for the wrapper's lookup, the `Location`
|
|
39
40
|
* percent-encoded as Astro sends it. A redirect at a content route's own path
|
|
40
41
|
* is left out: the prerendered page owns that URL, and the static handler
|
|
41
|
-
* serves it before Astro's redirect ever could.
|
|
42
|
+
* serves it before Astro's redirect ever could. Patterns are compiled apart
|
|
43
|
+
* ({@link nodePatternRedirects}).
|
|
42
44
|
*/
|
|
43
45
|
export declare const nodeRedirects: (project: BlumeProject) => NodeRedirects;
|
|
46
|
+
/**
|
|
47
|
+
* The configured pattern redirects (`/beta/:slug*`), based the way the host
|
|
48
|
+
* matches them and compiled for the wrapper, which tries them in order after
|
|
49
|
+
* the exact ones. None can match a page: the scan rejects a pattern that
|
|
50
|
+
* does (`BLUME_REDIRECT_MATCHES_PAGE`).
|
|
51
|
+
*/
|
|
52
|
+
export declare const nodePatternRedirects: (project: BlumeProject) => CompiledRedirect[];
|
|
44
53
|
/** What the wrapper needs beyond the header rules. */
|
|
45
54
|
export interface NodeEntryOptions {
|
|
46
55
|
/** `deployment.base`, normalized (`""` at the root). */
|
|
47
56
|
base?: string;
|
|
48
57
|
/** The configured redirects, from {@link nodeRedirects}. */
|
|
49
58
|
redirects?: NodeRedirects;
|
|
59
|
+
/** The configured pattern redirects, from {@link nodePatternRedirects}. */
|
|
60
|
+
patternRedirects?: CompiledRedirect[];
|
|
50
61
|
}
|
|
51
62
|
/**
|
|
52
63
|
* The entry that replaces Astro's: it answers a configured redirect with its
|
|
@@ -29,12 +29,20 @@ export declare const emitCloudflareDeployConfig: (context: ProjectContext) => Pr
|
|
|
29
29
|
*/
|
|
30
30
|
export declare const nameCloudflareWorker: (project: BlumeProject, log: BuildLog) => Promise<void>;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
*
|
|
32
|
+
* Declare the Workers rate limiting binding `rateLimit: cloudflare()` counts
|
|
33
|
+
* with in the built Worker's config, which `wrangler deploy` reads.
|
|
34
|
+
*/
|
|
35
|
+
export declare const bindCloudflareRateLimit: (project: BlumeProject, log: BuildLog) => Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Cloudflare. A server build targets Workers only (`@astrojs/cloudflare`
|
|
38
|
+
* dropped Pages in v13): it emits the Worker into `dist/server` and serves
|
|
39
|
+
* `dist/client` through the ASSETS binding, which honors `_headers` from that
|
|
40
|
+
* directory exactly as Pages does — so the file applies to both output modes
|
|
41
|
+
* here. A static build never loads the adapter; its `dist/` deploys to Pages,
|
|
42
|
+
* whose build environment `env` detects, or to Workers static assets (Workers
|
|
43
|
+
* Builds exposes no site URL to detect). Without a configured driver the
|
|
44
|
+
* adapter force-enables KV-backed sessions and declares a `SESSION` binding
|
|
45
|
+
* that `wrangler deploy` then demands a namespace for, even though Blume
|
|
46
|
+
* never reads `Astro.session`; `session: false` opts the project out.
|
|
39
47
|
*/
|
|
40
48
|
export declare const cloudflarePlatform: DeployPlatform;
|
|
@@ -26,6 +26,13 @@ export declare const NETLIFY_CONFIG_FILE: string;
|
|
|
26
26
|
* as static files, so the prerendered endpoint's own headers never ship.
|
|
27
27
|
*/
|
|
28
28
|
export declare const emitNetlifyHeaders: (project: BlumeProject, log: BuildLog) => Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Carry the pattern redirects (`/beta/:slug*`) into a server build, as
|
|
31
|
+
* `redirects` in the Frameworks API config: Astro's `redirects` carry only
|
|
32
|
+
* the exact ones, since it can't prerender a pattern's pages, so the adapter
|
|
33
|
+
* never writes these. Netlify appends them after any rules of the user's own.
|
|
34
|
+
*/
|
|
35
|
+
export declare const emitNetlifyPatternRedirects: (project: BlumeProject) => Promise<void>;
|
|
29
36
|
/**
|
|
30
37
|
* Netlify. A server build runs on Netlify Functions from the Frameworks API
|
|
31
38
|
* tree the adapter writes to `.netlify/v1`, relative to the Astro root —
|
|
@@ -7,6 +7,8 @@ import type { DeployPlatform } from "./types.ts";
|
|
|
7
7
|
* discovery files and downloaded SVGs need instead, and answers the
|
|
8
8
|
* configured redirects with their exact status, which Astro's own handler
|
|
9
9
|
* would default to 301 or 308. No platform env to detect: the site URL has to
|
|
10
|
-
* be configured.
|
|
10
|
+
* be configured. `allowedDomains` becomes Astro's `security.allowedDomains`,
|
|
11
|
+
* which a server behind a reverse proxy needs before Astro reads the reader's
|
|
12
|
+
* address from `X-Forwarded-For`.
|
|
11
13
|
*/
|
|
12
14
|
export declare const nodePlatform: DeployPlatform;
|