blume 1.7.3 → 2.0.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 +19 -0
- package/CHANGELOG.md +245 -0
- package/README.md +34 -21
- package/dist/cli/{chunk-vacwm2hv.js → chunk-27g6wdth.js} +2 -2
- package/dist/cli/{chunk-ps4m1xh4.js → chunk-2hn4b8z7.js} +513 -550
- package/dist/cli/chunk-2hn4b8z7.js.map +12 -0
- package/dist/cli/chunk-5shv93fd.js +39 -0
- package/dist/cli/chunk-5shv93fd.js.map +10 -0
- package/dist/cli/chunk-6crbhc3x.js +361 -0
- package/dist/cli/chunk-6crbhc3x.js.map +14 -0
- package/dist/cli/{chunk-8cjtbafj.js → chunk-6hsn950k.js} +109 -383
- package/dist/cli/chunk-6hsn950k.js.map +10 -0
- package/dist/cli/chunk-6vm74dry.js +148 -0
- package/dist/cli/chunk-6vm74dry.js.map +10 -0
- package/dist/cli/{chunk-yg63d42r.js → chunk-79jhk4py.js} +87 -58
- package/dist/cli/chunk-79jhk4py.js.map +35 -0
- package/dist/cli/chunk-82bbrxdn.js +51 -0
- package/dist/cli/chunk-82bbrxdn.js.map +10 -0
- package/dist/cli/chunk-abh8yjkn.js +31 -0
- package/dist/cli/chunk-abh8yjkn.js.map +10 -0
- package/dist/cli/chunk-ah61y8py.js +75 -0
- package/dist/cli/chunk-ah61y8py.js.map +11 -0
- package/dist/cli/{chunk-dwgcp5sm.js → chunk-ce574jw2.js} +1 -1
- package/dist/cli/chunk-ch6g3ar0.js +102 -0
- package/dist/cli/chunk-ch6g3ar0.js.map +10 -0
- package/dist/cli/chunk-dh8cwk36.js +279 -0
- package/dist/cli/chunk-dh8cwk36.js.map +10 -0
- package/dist/cli/{chunk-rqy0s5wh.js → chunk-epjnccmv.js} +17 -16
- package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-epjnccmv.js.map} +3 -3
- package/dist/cli/chunk-f2z5v128.js +97 -0
- package/dist/cli/chunk-f2z5v128.js.map +10 -0
- package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
- package/dist/cli/chunk-fa25z98p.js.map +11 -0
- package/dist/cli/{chunk-1jefwnfs.js → chunk-fs23ddbb.js} +1076 -2592
- package/dist/cli/chunk-fs23ddbb.js.map +35 -0
- package/dist/cli/{chunk-e7f42gdj.js → chunk-fxypxtvm.js} +2 -2
- package/dist/cli/{chunk-bvwwhd84.js → chunk-fz5wtpmh.js} +15 -15
- package/dist/cli/{chunk-bvwwhd84.js.map → chunk-fz5wtpmh.js.map} +1 -1
- package/dist/cli/chunk-hdpx1tax.js +91 -0
- package/dist/cli/chunk-hdpx1tax.js.map +10 -0
- package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
- package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
- package/dist/cli/{chunk-ahnw3kxw.js → chunk-jwyddg7y.js} +27 -22
- package/dist/cli/chunk-jwyddg7y.js.map +15 -0
- package/dist/cli/{chunk-cjtn640a.js → chunk-kdp5q7ke.js} +43 -20
- package/dist/cli/chunk-kdp5q7ke.js.map +10 -0
- package/dist/cli/{chunk-5g0w1e2c.js → chunk-kpf8rrjc.js} +28 -16
- package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-kpf8rrjc.js.map} +4 -4
- package/dist/cli/chunk-m3vmjgmq.js +133 -0
- package/dist/cli/chunk-m3vmjgmq.js.map +10 -0
- package/dist/cli/{chunk-b27xqwn9.js → chunk-mb2919y2.js} +9 -5
- package/dist/cli/chunk-mb2919y2.js.map +10 -0
- package/dist/cli/{chunk-5qk08vmp.js → chunk-q5163e60.js} +133 -54
- package/dist/cli/chunk-q5163e60.js.map +11 -0
- package/dist/cli/chunk-qkqwkpte.js +12437 -0
- package/dist/cli/chunk-qkqwkpte.js.map +182 -0
- package/dist/cli/{chunk-4x36ddpw.js → chunk-qs4q5p4e.js} +81 -87
- package/dist/cli/chunk-qs4q5p4e.js.map +10 -0
- package/dist/cli/{chunk-0xjyb285.js → chunk-qwsrynx5.js} +15 -5
- package/dist/cli/{chunk-0xjyb285.js.map → chunk-qwsrynx5.js.map} +4 -4
- package/dist/cli/chunk-s1p84fyh.js +261 -0
- package/dist/cli/chunk-s1p84fyh.js.map +10 -0
- package/dist/cli/chunk-s6jhgk0q.js +176 -0
- package/dist/cli/chunk-s6jhgk0q.js.map +11 -0
- package/dist/cli/chunk-vtk4a6dg.js +374 -0
- package/dist/cli/chunk-vtk4a6dg.js.map +10 -0
- package/dist/cli/{chunk-k79xp7av.js → chunk-wgm7m9qk.js} +230 -700
- package/dist/cli/chunk-wgm7m9qk.js.map +36 -0
- package/dist/cli/chunk-wm7js3j9.js +145 -0
- package/dist/cli/chunk-wm7js3j9.js.map +11 -0
- package/dist/cli/chunk-yt5n7ppj.js +79 -0
- package/dist/cli/chunk-yt5n7ppj.js.map +10 -0
- package/dist/cli/{chunk-3r45185y.js → chunk-yw7dm696.js} +9 -11
- package/dist/cli/{chunk-3r45185y.js.map → chunk-yw7dm696.js.map} +3 -3
- package/dist/cli/{chunk-nn13znc2.js → chunk-zxcczpyx.js} +1 -1
- package/dist/cli/chunk-zxh4d9vy.js +122 -0
- package/dist/cli/chunk-zxh4d9vy.js.map +11 -0
- 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-context.d.ts +7 -7
- 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 +197 -526
- package/dist/types/core/config.d.ts +61 -35
- 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 +30 -15
- 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 +12 -10
- 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 +2284 -454
- 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 +15 -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/orama-index.d.ts +1 -1
- 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 +52 -28
- package/docs/03-upgrading.mdx +364 -0
- package/docs/04-migrating.mdx +58 -0
- package/docs/08-faq.mdx +5 -5
- package/docs/advanced/blog.mdx +13 -6
- package/docs/advanced/changelog.mdx +23 -35
- package/docs/advanced/custom-pages.mdx +22 -10
- 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} +12 -11
- package/docs/cli/index.mdx +105 -0
- package/docs/cli/meta.ts +7 -0
- package/docs/{reference → cli}/translate.mdx +9 -9
- package/docs/cli/validate.mdx +41 -0
- package/docs/cli/version.mdx +40 -0
- package/docs/configuration/analytics.mdx +350 -59
- package/docs/configuration/assistant.mdx +357 -0
- package/docs/configuration/customization.mdx +16 -10
- package/docs/configuration/index.mdx +50 -31
- package/docs/configuration/meta.ts +1 -1
- package/docs/configuration/search.mdx +76 -55
- package/docs/configuration/theming.mdx +24 -15
- package/docs/content/components.mdx +21 -5
- package/docs/{reference → content}/frontmatter.mdx +35 -1
- package/docs/content/i18n.mdx +9 -7
- package/docs/content/includes.mdx +2 -4
- package/docs/content/index.mdx +1 -1
- package/docs/content/islands.mdx +11 -6
- package/docs/content/meta.mdx +1 -1
- package/docs/content/meta.ts +1 -0
- package/docs/content/navigation.mdx +9 -7
- package/docs/content/sources.mdx +145 -50
- package/docs/content/syntax.mdx +16 -12
- package/docs/content/versioning.mdx +3 -3
- package/docs/discoverability/agent-discovery.mdx +12 -12
- package/docs/discoverability/index.mdx +4 -4
- 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 +4 -4
- 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 +23 -10
- 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 +25 -26
- package/src/ai/ai-catalog.ts +50 -32
- package/src/ai/api/handlers.ts +46 -11
- package/src/ai/api/paths.ts +1 -1
- package/src/ai/api-catalog.ts +8 -8
- package/src/ai/ask-context.ts +7 -7
- package/src/ai/ask-data.ts +3 -3
- package/src/ai/ask.ts +637 -100
- package/src/ai/changelog-markdown.ts +91 -0
- package/src/ai/component-markdown.ts +328 -12
- package/src/ai/cors.ts +3 -3
- package/src/ai/index.ts +45 -0
- package/src/ai/link-headers.ts +7 -6
- package/src/ai/llms.ts +20 -15
- package/src/ai/markdown.ts +35 -5
- package/src/ai/mcp/data.ts +9 -5
- package/src/ai/openapi-components.ts +5 -2
- package/src/ai/relative-links.ts +170 -0
- package/src/ai/serializers.ts +3 -3
- package/src/ai/skills.ts +1 -1
- package/src/ai/visibility.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 +129 -361
- package/src/astro/integration.ts +2 -6
- package/src/astro/module-types.ts +1 -1
- 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 +575 -562
- 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/blume-modules.d.ts +2 -2
- package/src/cli/command-meta.ts +10 -0
- package/src/cli/commands/audit.ts +40 -21
- package/src/cli/commands/build.ts +71 -316
- package/src/cli/commands/check.ts +1 -0
- package/src/cli/commands/dev.ts +40 -1
- package/src/cli/commands/doctor.ts +92 -14
- package/src/cli/commands/eject.ts +44 -7
- package/src/cli/commands/eval.ts +5 -5
- 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 +5 -5
- 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 +39 -12
- 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/copy-feedback.ts +1 -1
- package/src/components/islands/{AskAI.astro → Assistant.astro} +10 -10
- package/src/components/islands/{ask-ai.tsx → assistant.tsx} +23 -23
- package/src/components/islands/hooks.ts +36 -11
- 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 +93 -30
- 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 +58 -11
- package/src/components/layout/Pagination.astro +7 -7
- package/src/components/layout/ReferenceLayout.astro +22 -13
- package/src/components/layout/RootLayout.astro +75 -72
- package/src/components/layout/Search.astro +43 -19
- package/src/components/layout/WebMcp.astro +1 -1
- package/src/components/layout/analytics-client.ts +73 -16
- 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/description.ts +2 -2
- package/src/components/openapi/playground-client.ts +79 -10
- package/src/core/changelog-index.ts +24 -0
- package/src/core/code-fences.ts +1 -1
- package/src/core/component-overrides.ts +399 -154
- package/src/core/config-input.ts +201 -566
- package/src/core/config.ts +131 -42
- package/src/core/custom-pages.ts +105 -0
- package/src/core/data.ts +34 -15
- 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 +41 -11
- 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 +115 -16
- 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 +528 -745
- package/src/core/server-features.ts +10 -11
- 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 +15 -1
- package/src/core/ui-packs/ar.ts +10 -7
- package/src/core/ui-packs/bg.ts +10 -7
- package/src/core/ui-packs/bn.ts +10 -7
- package/src/core/ui-packs/ca.ts +7 -6
- package/src/core/ui-packs/cs.ts +10 -7
- package/src/core/ui-packs/da.ts +10 -7
- package/src/core/ui-packs/de.ts +10 -7
- package/src/core/ui-packs/el.ts +7 -6
- package/src/core/ui-packs/es.ts +7 -6
- package/src/core/ui-packs/fa.ts +10 -7
- package/src/core/ui-packs/fi.ts +10 -7
- package/src/core/ui-packs/fr.ts +7 -6
- package/src/core/ui-packs/he.ts +10 -7
- package/src/core/ui-packs/hi.ts +10 -7
- package/src/core/ui-packs/hr.ts +10 -7
- package/src/core/ui-packs/hu.ts +10 -7
- package/src/core/ui-packs/id.ts +10 -7
- package/src/core/ui-packs/it.ts +7 -6
- package/src/core/ui-packs/ja.ts +7 -6
- package/src/core/ui-packs/ko.ts +7 -6
- package/src/core/ui-packs/nl.ts +10 -7
- package/src/core/ui-packs/no.ts +10 -7
- package/src/core/ui-packs/pl.ts +10 -7
- package/src/core/ui-packs/pt-br.ts +7 -6
- package/src/core/ui-packs/pt.ts +7 -6
- package/src/core/ui-packs/ro.ts +10 -7
- package/src/core/ui-packs/ru.ts +10 -7
- package/src/core/ui-packs/sk.ts +10 -7
- package/src/core/ui-packs/sr.ts +10 -7
- package/src/core/ui-packs/sv.ts +10 -7
- package/src/core/ui-packs/th.ts +7 -6
- package/src/core/ui-packs/tr.ts +10 -7
- package/src/core/ui-packs/uk.ts +10 -7
- package/src/core/ui-packs/vi.ts +7 -6
- package/src/core/ui-packs/zh-tw.ts +7 -6
- package/src/core/ui-packs/zh.ts +7 -6
- 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 +55 -27
- package/src/deploy/cloudflare-negotiation.ts +179 -100
- package/src/deploy/function-bundle.ts +18 -3
- package/src/deploy/headers.ts +124 -23
- 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 +2 -2
- 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 +109 -53
- 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 +8 -4
- package/src/search/documents.ts +8 -2
- package/src/search/orama-index.ts +1 -1
- 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 +24 -2
- package/src/translate/report.ts +40 -7
- package/src/upgrade/upgrade.ts +499 -0
- package/dist/cli/chunk-0qymqwzz.js +0 -164
- package/dist/cli/chunk-0qymqwzz.js.map +0 -15
- package/dist/cli/chunk-1jefwnfs.js.map +0 -48
- package/dist/cli/chunk-2mzebbbz.js +0 -69
- package/dist/cli/chunk-2z47ypj8.js.map +0 -11
- package/dist/cli/chunk-4x36ddpw.js.map +0 -11
- package/dist/cli/chunk-5093q3n7.js +0 -68
- package/dist/cli/chunk-5093q3n7.js.map +0 -10
- package/dist/cli/chunk-5qk08vmp.js.map +0 -11
- package/dist/cli/chunk-7s8hm3b6.js +0 -5347
- package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
- package/dist/cli/chunk-8cjtbafj.js.map +0 -13
- package/dist/cli/chunk-97r59kpr.js +0 -381
- package/dist/cli/chunk-97r59kpr.js.map +0 -12
- package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
- package/dist/cli/chunk-b27xqwn9.js.map +0 -10
- package/dist/cli/chunk-bf6bt1xt.js +0 -185
- package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
- package/dist/cli/chunk-cjtn640a.js.map +0 -10
- package/dist/cli/chunk-ct47dqpx.js.map +0 -11
- package/dist/cli/chunk-esphfr8p.js +0 -107
- package/dist/cli/chunk-esphfr8p.js.map +0 -11
- package/dist/cli/chunk-ex56aa81.js +0 -1016
- package/dist/cli/chunk-ex56aa81.js.map +0 -13
- package/dist/cli/chunk-garjf5z9.js +0 -30
- package/dist/cli/chunk-garjf5z9.js.map +0 -10
- package/dist/cli/chunk-js7saxwm.js +0 -1045
- package/dist/cli/chunk-js7saxwm.js.map +0 -22
- package/dist/cli/chunk-k79xp7av.js.map +0 -39
- package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
- package/dist/cli/chunk-q4rae3bg.js +0 -60
- package/dist/cli/chunk-q4rae3bg.js.map +0 -10
- package/dist/cli/chunk-rz9jmfhz.js +0 -108
- package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
- package/dist/cli/chunk-vh9w1sgp.js +0 -73
- package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
- package/dist/cli/chunk-vrfp10qk.js +0 -81
- package/dist/cli/chunk-vrfp10qk.js.map +0 -10
- package/dist/cli/chunk-yg63d42r.js.map +0 -34
- package/docs/advanced/api-reference.mdx +0 -240
- package/docs/configuration/ask-ai.mdx +0 -256
- 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-vacwm2hv.js.map → chunk-27g6wdth.js.map} +0 -0
- /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-ce574jw2.js.map} +0 -0
- /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-fxypxtvm.js.map} +0 -0
- /package/dist/cli/{chunk-nn13znc2.js.map → chunk-zxcczpyx.js.map} +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** Segment's CDN, where `segment()` loads analytics.js from when `cdn` is unset. */
|
|
5
|
+
export declare const SEGMENT_DEFAULT_CDN = "https://cdn.segment.com";
|
|
6
|
+
/** The options {@link segment} maps itself. */
|
|
7
|
+
export interface SegmentNamedOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Origin of a custom domain that proxies Segment's CDN, e.g.
|
|
10
|
+
* `https://cdn.example.com`. Defaults to Segment's own.
|
|
11
|
+
*/
|
|
12
|
+
cdn?: string;
|
|
13
|
+
/** Write key of the JavaScript source. */
|
|
14
|
+
key: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Options for {@link segment}: the named options plus any other
|
|
18
|
+
* `analytics.load` option, forwarded verbatim (`integrations`, …). JSON
|
|
19
|
+
* values only.
|
|
20
|
+
*/
|
|
21
|
+
export type SegmentOptions = SegmentNamedOptions & {
|
|
22
|
+
[option: string]: JsonValue;
|
|
23
|
+
};
|
|
24
|
+
export declare const segmentOptionsSchema: z.ZodObject<{
|
|
25
|
+
cdn: z.ZodOptional<z.ZodString>;
|
|
26
|
+
key: z.ZodString;
|
|
27
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
28
|
+
export type SegmentAdapter = AdapterDescriptor<"segment", SegmentOptions>;
|
|
29
|
+
export declare const segmentAdapterSchema: z.ZodObject<{
|
|
30
|
+
kind: z.ZodLiteral<"segment">;
|
|
31
|
+
options: z.ZodObject<{
|
|
32
|
+
cdn: z.ZodOptional<z.ZodString>;
|
|
33
|
+
key: z.ZodString;
|
|
34
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
35
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
36
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
37
|
+
}, z.core.$strict>;
|
|
38
|
+
/**
|
|
39
|
+
* Segment (Twilio Segment) analytics.js. The write key is meant for the
|
|
40
|
+
* browser — it identifies the source the SDK reports to.
|
|
41
|
+
*/
|
|
42
|
+
export declare const segment: (options: SegmentOptions) => SegmentAdapter;
|
|
43
|
+
/**
|
|
44
|
+
* The install snippet, with `key` mapped to the write key, `cdn` mapped to
|
|
45
|
+
* the script origin (and `analytics._cdn`, so the library fetches its
|
|
46
|
+
* integrations from the same place), and everything else forwarded as the
|
|
47
|
+
* load options; the object is left off when there is nothing to pass, as the
|
|
48
|
+
* snippet prints it.
|
|
49
|
+
*/
|
|
50
|
+
export declare const segmentHead: (options: SegmentOptions) => HeadScript[];
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
/** The props of `@vercel/analytics/astro` that {@link vercel} documents. */
|
|
4
|
+
export interface VercelNamedOptions {
|
|
5
|
+
/** Log every event to the console. Defaults to the component's own rule (on outside production). */
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
/** Force the script's environment instead of letting it detect one. */
|
|
8
|
+
mode?: "auto" | "development" | "production";
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Options for {@link vercel}: the documented props plus any other prop of the
|
|
12
|
+
* official component, forwarded verbatim (`endpoint`, `scriptSrc`, `dsn`, …).
|
|
13
|
+
* JSON values only; `beforeSend` is a function and can't travel through
|
|
14
|
+
* config — assign `window.webAnalyticsBeforeSend` from a `script()` adapter
|
|
15
|
+
* listed before `vercel()` instead.
|
|
16
|
+
*/
|
|
17
|
+
export type VercelOptions = VercelNamedOptions & {
|
|
18
|
+
[option: string]: JsonValue;
|
|
19
|
+
};
|
|
20
|
+
export declare const vercelOptionsSchema: z.ZodObject<{
|
|
21
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
23
|
+
auto: "auto";
|
|
24
|
+
development: "development";
|
|
25
|
+
production: "production";
|
|
26
|
+
}>>;
|
|
27
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
28
|
+
export type VercelAdapter = AdapterDescriptor<"vercel", VercelOptions>;
|
|
29
|
+
export declare const vercelAdapterSchema: z.ZodObject<{
|
|
30
|
+
kind: z.ZodLiteral<"vercel">;
|
|
31
|
+
options: z.ZodObject<{
|
|
32
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
auto: "auto";
|
|
35
|
+
development: "development";
|
|
36
|
+
production: "production";
|
|
37
|
+
}>>;
|
|
38
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
39
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
40
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
41
|
+
}, z.core.$strict>;
|
|
42
|
+
/**
|
|
43
|
+
* Vercel Web Analytics, rendered through the official Astro component, which
|
|
44
|
+
* injects the first-party script Vercel serves at `/_vercel/insights` once Web
|
|
45
|
+
* Analytics is enabled for the project. Needs no keys. `@vercel/analytics` is
|
|
46
|
+
* one of Blume's own dependencies, so the adapter declares no runtime dep.
|
|
47
|
+
*/
|
|
48
|
+
export declare const vercel: (options?: VercelOptions) => VercelAdapter;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { AstroIntegration } from "astro";
|
|
2
|
+
import type { CustomPageRoute } from "../core/custom-pages.ts";
|
|
3
|
+
import type { BlumeProject } from "../core/project-graph.ts";
|
|
4
|
+
import type { Diagnostic } from "../core/types.ts";
|
|
5
|
+
/**
|
|
6
|
+
* Hand the scanned project to the integration ahead of `build()`, so its
|
|
7
|
+
* `astro:build:done` hook can write the deploy artifacts without scanning
|
|
8
|
+
* again. `blume build` publishes it for a real build and nothing for an
|
|
9
|
+
* isolated verify build, which produces no artifacts. `null` withdraws it.
|
|
10
|
+
*/
|
|
11
|
+
export declare const publishBuildProject: (project: BlumeProject | null) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Publish the dev negotiation inputs for the running server: the content
|
|
14
|
+
* routes with a Markdown variant and the homepage `Link` header. Called by
|
|
15
|
+
* `generateRuntime` on every pass, so the middleware follows a route rename
|
|
16
|
+
* without the generated config changing. `null` withdraws a publication, so
|
|
17
|
+
* the middleware falls back to the options baked into the integration call
|
|
18
|
+
* (an ejected project has no CLI to publish).
|
|
19
|
+
*/
|
|
20
|
+
export declare const publishDevNegotiation: (negotiation: {
|
|
21
|
+
contentRoutes: readonly string[];
|
|
22
|
+
homeLinkHeader?: string;
|
|
23
|
+
} | null) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Re-run Astro's content-layer loaders against the live dev server. Returns
|
|
26
|
+
* `false` when no server has registered one — before the first
|
|
27
|
+
* `astro:server:setup`, or outside `blume dev` — so the caller can fall back.
|
|
28
|
+
* A route-set change (a page added, removed, or a folder renamed) is what
|
|
29
|
+
* needs this: Astro's glob watcher misses directory renames, and its in-place
|
|
30
|
+
* config restart never re-globs, so without a re-sync `getEntry` reads a
|
|
31
|
+
* stale store and the moved page 404s.
|
|
32
|
+
*/
|
|
33
|
+
export declare const refreshBlumeContent: () => Promise<boolean>;
|
|
34
|
+
/**
|
|
35
|
+
* Surface Blume's own diagnostics (config/frontmatter/content errors) in the
|
|
36
|
+
* Vite/Astro browser error overlay during `blume dev`, so they don't hide in the
|
|
37
|
+
* terminal. A no-op when there are no errors or the dev server isn't up. The
|
|
38
|
+
* overlay clears itself on the next successful HMR update.
|
|
39
|
+
*/
|
|
40
|
+
export declare const showBlumeErrorOverlay: (diagnostics: Diagnostic[]) => void;
|
|
41
|
+
/** A user page mounted into the generated runtime. */
|
|
42
|
+
export type BlumePageRoute = CustomPageRoute;
|
|
43
|
+
export interface BlumeIntegrationOptions {
|
|
44
|
+
pages: BlumePageRoute[];
|
|
45
|
+
/**
|
|
46
|
+
* Page routes that have a raw-Markdown variant (the content manifest). The
|
|
47
|
+
* hidden runtime leaves this out: the CLI publishes the live set through
|
|
48
|
+
* `publishDevNegotiation` on every regeneration, so a route change never
|
|
49
|
+
* rewrites the generated config. An ejected project, which has no CLI,
|
|
50
|
+
* bakes it in here.
|
|
51
|
+
*/
|
|
52
|
+
contentRoutes?: string[];
|
|
53
|
+
/**
|
|
54
|
+
* Homepage `Link` header value for agent discovery (see
|
|
55
|
+
* `ai/link-headers.ts`); the dev-server counterpart of the `_headers` /
|
|
56
|
+
* Vercel-config emission, so `curl -I` against `blume dev` shows what the
|
|
57
|
+
* deployed site will send. Published the same way as `contentRoutes`.
|
|
58
|
+
*/
|
|
59
|
+
homeLinkHeader?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Blume project root to scan on `astro:build:done` for the deploy artifacts
|
|
62
|
+
* (search index, llms.txt, sitemap, …) when no CLI has published the
|
|
63
|
+
* project — an ejected app running plain `astro build`. Relative to the
|
|
64
|
+
* Astro root. The hidden runtime leaves it unset: `blume build` publishes
|
|
65
|
+
* its already-scanned project instead.
|
|
66
|
+
*/
|
|
67
|
+
buildArtifactsRoot?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Blume's Astro integration. Mounts user-authored pages from `pages/` into the
|
|
71
|
+
* generated runtime via `injectRoute`, keeping each file in its original
|
|
72
|
+
* location so relative imports and `getStaticPaths` keep working; declares
|
|
73
|
+
* the `blume:*` virtual modules' types through `injectTypes`; and teaches the
|
|
74
|
+
* dev server to honor `Accept: text/markdown`.
|
|
75
|
+
*/
|
|
76
|
+
export declare const blumeIntegration: (options: BlumeIntegrationOptions) => AstroIntegration;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP content negotiation for the raw-Markdown variants. The `<route>.md`
|
|
3
|
+
* endpoints already serve a page's source verbatim; these helpers let the dev
|
|
4
|
+
* server honor `Accept: text/markdown` by transparently rewriting a page
|
|
5
|
+
* request to its `.md` variant.
|
|
6
|
+
*
|
|
7
|
+
* The Cloudflare negotiation Worker embeds a plain-JavaScript copy of these
|
|
8
|
+
* helpers (`deploy/cloudflare-negotiation.ts` — its deploy bundle is uploaded
|
|
9
|
+
* unbundled, so it cannot import this module); when editing here, mirror the
|
|
10
|
+
* change there. Parity is enforced by `test/cloudflare-negotiation.test.ts`.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Whether the client explicitly prefers Markdown over HTML. Browsers never send
|
|
14
|
+
* `text/markdown`, so an ordinary page request (`text/html` or the catch-all wildcard) is false.
|
|
15
|
+
*/
|
|
16
|
+
export declare const prefersMarkdown: (accept: string | null | undefined) => boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Map a page request URL to its `.md` variant, or `null` when the requested
|
|
19
|
+
* path is not a known content route (Vite/Astro internals, assets, API routes,
|
|
20
|
+
* landing pages, and user `.astro` pages all fall through). `routes` is the set
|
|
21
|
+
* of page paths that have a raw-Markdown variant.
|
|
22
|
+
*/
|
|
23
|
+
export declare const markdownVariantUrl: (rawUrl: string | null | undefined, routes: ReadonlySet<string>, base?: string) => string | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ambient declarations for the `blume:*` virtual modules the generated pages
|
|
3
|
+
* and Blume's own layouts import. The integration hands them to Astro through
|
|
4
|
+
* `injectTypes` on `astro:config:done`, so they land under
|
|
5
|
+
* `.astro/integrations/blume/` and are referenced from Astro's generated
|
|
6
|
+
* `types.d.ts` — the same channel `astro:content` and `astro:env` use — rather
|
|
7
|
+
* than a hand-written `src/env.d.ts` the generator and eject each had to
|
|
8
|
+
* write. Every project that mounts the integration gets the types with it.
|
|
9
|
+
*
|
|
10
|
+
* `examplesModule` is the path of the generated `examples.ts` relative to the
|
|
11
|
+
* declaration file: the `blume:examples` map is typed from that module's
|
|
12
|
+
* literal export so `<Component path>` lookups stay typed per project.
|
|
13
|
+
*/
|
|
14
|
+
export declare const runtimeModuleDeclarations: (examplesModule: string) => string;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { BlumeProject } from "../core/project-graph.ts";
|
|
2
|
+
import type { BlumePageRoute } from "./integration.ts";
|
|
3
|
+
export { customStaticRoutes, discoverPages, discoverPagesSync, } from "../core/custom-pages.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Whether the project already owns `route` — through a custom `.astro` page
|
|
6
|
+
* (injected, so matched on `pattern`) or a content page (matched on `route`).
|
|
7
|
+
* Used to skip a generated default page (e.g. `/404`, `/changelog`) so a
|
|
8
|
+
* user-authored page overrides it without a route collision.
|
|
9
|
+
*/
|
|
10
|
+
export declare const routeIsTaken: (pages: {
|
|
11
|
+
pattern: string;
|
|
12
|
+
}[], contentPages: {
|
|
13
|
+
route: string;
|
|
14
|
+
}[], route: string) => boolean;
|
|
15
|
+
/** A custom-page route that should get a generated OG card. */
|
|
16
|
+
export interface OgCustomRoute {
|
|
17
|
+
/** `og/<slug>.png` path segment; `index` for the site root. */
|
|
18
|
+
slug: string;
|
|
19
|
+
/** Card headline. */
|
|
20
|
+
title: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether the generated `/changelog` index route exists for this project —
|
|
24
|
+
* `generate.ts` (which writes the page) and the sitemap/link validator all
|
|
25
|
+
* share this check: there are visible `type: changelog` entries — or a
|
|
26
|
+
* release-backed changelog source, whose route must resolve even when a fetch
|
|
27
|
+
* fails — and no user content or custom page already owns `/changelog`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const hasGeneratedChangelog: (project: BlumeProject, userPages: {
|
|
30
|
+
pattern: string;
|
|
31
|
+
}[]) => boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Pick the custom-page routes that should get a generated Open Graph card, with
|
|
34
|
+
* the card's slug and text. OG is otherwise content-route only, so a custom page
|
|
35
|
+
* — most importantly the landing `/`, the most-shared URL — would have no card.
|
|
36
|
+
*
|
|
37
|
+
* Dynamic (`[param]`) routes and private segments (`_partials`, `.well-known`)
|
|
38
|
+
* are skipped: they aren't shareable pages. A `titles` entry (`seo.og.titles`,
|
|
39
|
+
* keyed by route) names a card outright — the only way to say "CLI" when the
|
|
40
|
+
* segment humanizes to "Cli". Otherwise the home is titled with the site title
|
|
41
|
+
* and a deeper page from its last path segment. The card's brand lockup,
|
|
42
|
+
* description, and footer come from the resolved config at render time.
|
|
43
|
+
*/
|
|
44
|
+
export declare const customOgRoutes: (pages: BlumePageRoute[], siteTitle: string, titles?: Record<string, string>) => OgCustomRoute[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load `.env`/`.env.local`, cascading from `startDir` up to the repository root
|
|
3
|
+
* (the first ancestor containing a `.git`) or the filesystem root. The ordered
|
|
4
|
+
* path list is handed to dotenv, whose `config` is first-wins, never clobbers
|
|
5
|
+
* existing `process.env` values, and treats unreadable files as best-effort —
|
|
6
|
+
* so shell/CI overrides are never lost, `.env.local` layers over `.env`, and a
|
|
7
|
+
* bad file never aborts a build. dotenv is also the parser Vite runs over
|
|
8
|
+
* these files at build time, so a value means the same thing to the pre-boot
|
|
9
|
+
* content scan and the built site — including multi-line double-quoted values
|
|
10
|
+
* (PEM keys), which a line-based parser silently truncates.
|
|
11
|
+
*/
|
|
12
|
+
export declare const loadEnvFiles: (startDir: string) => void;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
export declare const TEMPLATES: readonly ["docs", "api", "sdk", "changelog"];
|
|
2
|
+
export type Template = (typeof TEMPLATES)[number];
|
|
3
|
+
export declare const PACKAGE_MANAGERS: readonly ["npm", "pnpm", "yarn", "bun"];
|
|
4
|
+
export type PackageManager = (typeof PACKAGE_MANAGERS)[number];
|
|
5
|
+
/** The content-source kinds `init` can scaffold a config block for. */
|
|
6
|
+
export declare const SOURCE_KINDS: readonly ["filesystem", "obsidian", "github-releases", "notion", "sanity", "contentful", "payload", "strapi", "mdx-remote"];
|
|
7
|
+
export type SourceKind = (typeof SOURCE_KINDS)[number];
|
|
8
|
+
/** Everything the scaffolder needs, whether prompted or derived from flags. */
|
|
9
|
+
export interface InitAnswers {
|
|
10
|
+
contentDir: string;
|
|
11
|
+
/** Target directory as the user gave it (`.` = current directory). */
|
|
12
|
+
directory: string;
|
|
13
|
+
packageManager: PackageManager;
|
|
14
|
+
sources: SourceKind[];
|
|
15
|
+
template: Template;
|
|
16
|
+
title: string;
|
|
17
|
+
}
|
|
18
|
+
/** One file the scaffold plan will write; `path` is absolute. */
|
|
19
|
+
export interface ScaffoldFile {
|
|
20
|
+
content: string;
|
|
21
|
+
path: string;
|
|
22
|
+
}
|
|
23
|
+
/** Log sink for scaffold output — satisfied by both consola and clack's `log`. */
|
|
24
|
+
export interface ScaffoldLog {
|
|
25
|
+
info: (message: string) => void;
|
|
26
|
+
success: (message: string) => void;
|
|
27
|
+
}
|
|
28
|
+
export declare const STARTERS: {
|
|
29
|
+
api: {
|
|
30
|
+
configExtra: string;
|
|
31
|
+
configImports: string[];
|
|
32
|
+
files: (dir: string) => {
|
|
33
|
+
content: string;
|
|
34
|
+
path: string;
|
|
35
|
+
}[];
|
|
36
|
+
};
|
|
37
|
+
changelog: {
|
|
38
|
+
configExtra: string;
|
|
39
|
+
configImports: never[];
|
|
40
|
+
files: (dir: string) => {
|
|
41
|
+
content: string;
|
|
42
|
+
path: string;
|
|
43
|
+
}[];
|
|
44
|
+
};
|
|
45
|
+
docs: {
|
|
46
|
+
configExtra: string;
|
|
47
|
+
configImports: never[];
|
|
48
|
+
files: (dir: string) => {
|
|
49
|
+
content: string;
|
|
50
|
+
path: string;
|
|
51
|
+
}[];
|
|
52
|
+
};
|
|
53
|
+
sdk: {
|
|
54
|
+
configExtra: string;
|
|
55
|
+
configImports: never[];
|
|
56
|
+
files: (dir: string) => {
|
|
57
|
+
content: string;
|
|
58
|
+
path: string;
|
|
59
|
+
}[];
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Add, install, and dev commands to print for the chosen package manager, plus the
|
|
64
|
+
* prefix that runs a locally installed bin (`exec`, e.g. `npx blume eject`) —
|
|
65
|
+
* dependency bins aren't on PATH, so a bare `blume …` hint would not run.
|
|
66
|
+
*/
|
|
67
|
+
export declare const commandsFor: (pm: PackageManager) => {
|
|
68
|
+
add: string;
|
|
69
|
+
build: string;
|
|
70
|
+
dev: string;
|
|
71
|
+
exec: string;
|
|
72
|
+
install: string;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Derive the package manager from an npm user-agent string (the first
|
|
76
|
+
* `name/version` token of `npm_config_user_agent`), falling back to npm.
|
|
77
|
+
* Right for `init`, where the project doesn't exist yet and the invoking
|
|
78
|
+
* runner is the only signal.
|
|
79
|
+
*/
|
|
80
|
+
export declare const detectPackageManager: (userAgent?: string) => PackageManager;
|
|
81
|
+
/**
|
|
82
|
+
* Detect an existing project's package manager from its lockfile /
|
|
83
|
+
* `packageManager` field (package-manager-detector), falling back to the
|
|
84
|
+
* user agent. Right for `eject`: the CLI is often run directly (`npx blume
|
|
85
|
+
* eject`, a bare `blume eject`), where `npm_config_user_agent` is absent or
|
|
86
|
+
* names the runner rather than the project's manager, and the old
|
|
87
|
+
* user-agent-only detection silently printed npm hints for a pnpm project.
|
|
88
|
+
*/
|
|
89
|
+
export declare const detectProjectPackageManager: (root: string) => Promise<PackageManager>;
|
|
90
|
+
/**
|
|
91
|
+
* The content dir is joined into every scaffolded file path, so an absolute or
|
|
92
|
+
* `../`-escaping value would write outside the project. Returns an error
|
|
93
|
+
* message, or `undefined` when the dir is safe.
|
|
94
|
+
*/
|
|
95
|
+
export declare const validateContentDir: (root: string, dir: string) => string | undefined;
|
|
96
|
+
/** Turn a directory name into a display title: `my-docs` → `My Docs`. */
|
|
97
|
+
export declare const titleize: (raw: string) => string;
|
|
98
|
+
/** The full `blume.config.ts` text for the chosen answers. */
|
|
99
|
+
export declare const buildConfig: (answers: InitAnswers) => string;
|
|
100
|
+
/**
|
|
101
|
+
* The major version of the Yarn that ran `init`, read off the npm user agent
|
|
102
|
+
* (`yarn/4.5.1 npm/? node/v22…`), or undefined when something else ran it.
|
|
103
|
+
*/
|
|
104
|
+
export declare const yarnMajor: (userAgent?: string) => number | undefined;
|
|
105
|
+
/** Environment `buildPlan` and `workspaceNote` read, injectable for tests. */
|
|
106
|
+
export interface PlanEnvironment {
|
|
107
|
+
/** `npm_config_user_agent` of the process that ran `init`. */
|
|
108
|
+
userAgent?: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* What the project still needs from a workspace it joins, when `init` left
|
|
112
|
+
* that workspace's config alone: pnpm's approval for esbuild's build script
|
|
113
|
+
* (pnpm 10 and later fail the install without it), or Yarn Berry's
|
|
114
|
+
* `node_modules` linker. Undefined when the workspace already has it, or the
|
|
115
|
+
* project doesn't sit in one.
|
|
116
|
+
*/
|
|
117
|
+
export declare const workspaceNote: (root: string, answers: InitAnswers, env?: PlanEnvironment) => string | undefined;
|
|
118
|
+
/** Every file `init` should write for the given answers, package.json first. */
|
|
119
|
+
export declare const buildPlan: (root: string, answers: InitAnswers, env?: PlanEnvironment) => ScaffoldFile[];
|
|
120
|
+
/**
|
|
121
|
+
* Write the plan's files, skipping any that already exist. Reports whether a
|
|
122
|
+
* `package.json` was newly created (it decides whether `init` installs).
|
|
123
|
+
*/
|
|
124
|
+
export declare const applyPlan: (files: ScaffoldFile[], log: ScaffoldLog) => Promise<{
|
|
125
|
+
createdPackage: boolean;
|
|
126
|
+
}>;
|
|
127
|
+
/** What an existing package.json — one `init` left alone — already wires up. */
|
|
128
|
+
export interface ExistingPackage {
|
|
129
|
+
/**
|
|
130
|
+
* Whether `blume` is installed where the project resolves it: its own
|
|
131
|
+
* `node_modules`, or an ancestor's in a hoisted workspace. Listing it isn't
|
|
132
|
+
* enough — a rerun of `init --no-install` lists it without installing it.
|
|
133
|
+
*/
|
|
134
|
+
blumeInstalled: boolean;
|
|
135
|
+
/** Every package it lists in `dependencies` or `devDependencies`. */
|
|
136
|
+
dependencies: string[];
|
|
137
|
+
/** Whether its `dev` script runs Blume. */
|
|
138
|
+
devRunsBlume: boolean;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Read the package.json `init` didn't write. An unreadable or malformed one
|
|
142
|
+
* reads as wiring nothing up, so the next steps list everything to add.
|
|
143
|
+
*/
|
|
144
|
+
export declare const readExistingPackage: (root: string) => Promise<ExistingPackage>;
|
|
145
|
+
/**
|
|
146
|
+
* The next-steps message: `cd` hint, the install command when `init` did not
|
|
147
|
+
* run it itself, the dev command, and token setup. With an `existing`
|
|
148
|
+
* package.json — which `init` never edits — it first adds whatever of `blume`
|
|
149
|
+
* and the sources' SDKs isn't listed yet (or installs, when everything is
|
|
150
|
+
* listed but `blume` was never installed), then starts the dev server through
|
|
151
|
+
* the package runner unless its `dev` script already runs Blume. A `note` —
|
|
152
|
+
* what a workspace the project joins still needs — closes the message.
|
|
153
|
+
*/
|
|
154
|
+
export declare const nextSteps: (answers: InitAnswers, needsInstall: boolean, existing?: ExistingPackage, note?: string) => string;
|
|
@@ -10,6 +10,17 @@ export interface Crumb {
|
|
|
10
10
|
label: string;
|
|
11
11
|
route?: string;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Whether a group's header row reads as the current page. A routed group links
|
|
15
|
+
* to its folder's index page; when that index is also listed as one of the
|
|
16
|
+
* group's own rows (kept under a different label), the row is the more
|
|
17
|
+
* specific indicator, so the header stays quiet rather than lighting up beside
|
|
18
|
+
* it. With the index row hidden the header is the only link and takes the
|
|
19
|
+
* highlight.
|
|
20
|
+
*/
|
|
21
|
+
export declare const isGroupRowCurrent: (group: Extract<NavNode, {
|
|
22
|
+
kind: "group";
|
|
23
|
+
}>, currentRoute: string) => boolean;
|
|
13
24
|
/** Flatten the sidebar tree into ordered internal page links. */
|
|
14
25
|
export declare const flattenPages: (nodes: NavNode[]) => FlatPage[];
|
|
15
26
|
/** Find the breadcrumb trail (group ancestors + page) for a route. */
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* The serializable descriptor an integration factory returns — `posthog({ key })`,
|
|
4
|
+
* `vercel()`, `script({ src })` and their siblings. A descriptor is plain data:
|
|
5
|
+
* the CLI evaluates `blume.config.ts` once, validates what came back, and
|
|
6
|
+
* writes it into the generated project's data snapshot as a JSON literal. That
|
|
7
|
+
* is where the runtime reads it — nothing generated imports the config at
|
|
8
|
+
* request time — so a descriptor can't carry functions, class instances, or
|
|
9
|
+
* anything else JSON drops.
|
|
10
|
+
*
|
|
11
|
+
* Every consumer reads the descriptor instead of switching on a provider name:
|
|
12
|
+
* the head emitter and `blume doctor` branch on `kind`, the generated
|
|
13
|
+
* `.blume/package.json` declares `runtimeDeps`, and the secrets check warns
|
|
14
|
+
* when an entry of `requiredSecrets` is unset.
|
|
15
|
+
*
|
|
16
|
+
* An adapter's verbatim option passthrough is typed as {@link JsonValue} and
|
|
17
|
+
* validated with `z.json()`, so a function, `undefined`, a bigint, or a
|
|
18
|
+
* non-finite number fails config validation with a path instead of vanishing
|
|
19
|
+
* (or throwing) when the snapshot is serialized.
|
|
20
|
+
*/
|
|
21
|
+
export interface AdapterDescriptor<Kind extends string, Options> {
|
|
22
|
+
/** Which integration this is. */
|
|
23
|
+
kind: Kind;
|
|
24
|
+
/** The options the factory was called with, verbatim. */
|
|
25
|
+
options: Options;
|
|
26
|
+
/** Env vars the integration reads at runtime; `blume dev`/`build` warn when one is unset. */
|
|
27
|
+
requiredSecrets: string[];
|
|
28
|
+
/** Extra packages the generated `.blume/package.json` must declare. */
|
|
29
|
+
runtimeDeps: string[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A value JSON can carry unchanged — what an adapter's passthrough options are
|
|
33
|
+
* typed as. Structurally identical to what `z.json()` accepts.
|
|
34
|
+
*/
|
|
35
|
+
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
36
|
+
[key: string]: JsonValue;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The schema for one descriptor `kind`, validating its `options` with the
|
|
40
|
+
* adapter's own option schema. Members of a `z.discriminatedUnion("kind", …)`.
|
|
41
|
+
*/
|
|
42
|
+
export declare const adapterDescriptorSchema: <Kind extends string, Options extends z.ZodType>(kind: Kind, options: Options) => z.ZodObject<{
|
|
43
|
+
kind: z.ZodLiteral<Kind>;
|
|
44
|
+
options: Options;
|
|
45
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
46
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
47
|
+
}, z.core.$strict>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `name` as the phrase "the ___" in generated prose — the spec title or
|
|
3
|
+
* reference label, followed by ` API` unless it already says so. Keeps
|
|
4
|
+
* "Petstore" reading as "Petstore API" without turning "Petstore API" into
|
|
5
|
+
* "Petstore API API".
|
|
6
|
+
*/
|
|
7
|
+
export declare const apiNamePhrase: (name: string) => string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "./schema.ts";
|
|
2
|
+
import type { PageRecord } from "./types.ts";
|
|
3
|
+
/** Where the changelog timeline index is served. */
|
|
4
|
+
export declare const CHANGELOG_INDEX_ROUTE = "/changelog";
|
|
5
|
+
/**
|
|
6
|
+
* Whether the site serves a changelog index at {@link CHANGELOG_INDEX_ROUTE}:
|
|
7
|
+
* there are visible `type: changelog` entries, or a release-backed source
|
|
8
|
+
* (whose index must resolve even when a fetch fails). Blume generates the
|
|
9
|
+
* timeline there unless a custom or content page already owns the route —
|
|
10
|
+
* either way the route is servable, which is what navigation needs to point a
|
|
11
|
+
* `/changelog` tab at the index rather than its newest entry.
|
|
12
|
+
*/
|
|
13
|
+
export declare const hasChangelogIndex: (pages: Pick<PageRecord, "contentType" | "meta">[], config: ResolvedConfig) => boolean;
|