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,181 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { GraphqlSourceOptions, PlaygroundOptions } from "./options.ts";
|
|
4
|
+
/** Options for {@link graphql}. */
|
|
5
|
+
export interface GraphqlOptions {
|
|
6
|
+
/** Code-sample languages shown per operation. Defaults to `["curl", "js", "python"]`. */
|
|
7
|
+
codeSamples?: string[];
|
|
8
|
+
/**
|
|
9
|
+
* URL of the live GraphQL endpoint the playground and code samples target —
|
|
10
|
+
* a schema, unlike an OpenAPI document, names no server. Applies to every
|
|
11
|
+
* source; a per-source `endpoint` wins.
|
|
12
|
+
*/
|
|
13
|
+
endpoint?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The interactive "Try it" panel. On by default; `false` hides it. The
|
|
16
|
+
* object form sets `proxy`, the CORS escape hatch the Send button routes
|
|
17
|
+
* requests through: a proxy URL, or `true` for the built-in `/_api-proxy`
|
|
18
|
+
* endpoint (which needs server output: a host adapter such as `vercel()` in
|
|
19
|
+
* `deployment`).
|
|
20
|
+
*/
|
|
21
|
+
playground?: PlaygroundOptions;
|
|
22
|
+
/** Where the reference mounts. Defaults to `/graphql`. */
|
|
23
|
+
route?: string;
|
|
24
|
+
/** One or more schemas; each renders on its own route by default. */
|
|
25
|
+
sources?: GraphqlSourceOptions[];
|
|
26
|
+
/** Shorthand for a single source: `sources: [{ spec }]`. */
|
|
27
|
+
spec?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* No `expandSchemas` (GraphQL field tables have no nesting) — everything
|
|
31
|
+
* else, the playground normalization included, is the shared reference
|
|
32
|
+
* shape. There is no Scalar counterpart: the Scalar embed reads OpenAPI and
|
|
33
|
+
* AsyncAPI documents only.
|
|
34
|
+
*/
|
|
35
|
+
export declare const graphqlOptionsSchema: z.ZodPipe<z.ZodObject<{
|
|
36
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
37
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
38
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
39
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
40
|
+
label: z.ZodOptional<z.ZodString>;
|
|
41
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
42
|
+
route: z.ZodOptional<z.ZodString>;
|
|
43
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
44
|
+
spec: z.ZodString;
|
|
45
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
46
|
+
}, z.core.$strict>>>;
|
|
47
|
+
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
48
|
+
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
49
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
50
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
51
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
proxy: string | boolean;
|
|
54
|
+
}, boolean | {
|
|
55
|
+
enabled: boolean;
|
|
56
|
+
proxy: string | boolean;
|
|
57
|
+
}>>;
|
|
58
|
+
route: z.ZodDefault<z.ZodString>;
|
|
59
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
60
|
+
}, z.core.$strict>, z.ZodTransform<Omit<{
|
|
61
|
+
sources: {
|
|
62
|
+
includeInLlms: boolean;
|
|
63
|
+
includeInSearch: boolean;
|
|
64
|
+
noindex: boolean;
|
|
65
|
+
seoDescriptionSuffix: boolean;
|
|
66
|
+
spec: string;
|
|
67
|
+
label?: string | undefined;
|
|
68
|
+
route?: string | undefined;
|
|
69
|
+
endpoint?: string | undefined;
|
|
70
|
+
}[];
|
|
71
|
+
codeSamples: string[];
|
|
72
|
+
playground: {
|
|
73
|
+
enabled: boolean;
|
|
74
|
+
proxy: string | boolean;
|
|
75
|
+
};
|
|
76
|
+
route: string;
|
|
77
|
+
endpoint?: string | undefined;
|
|
78
|
+
spec?: string | undefined;
|
|
79
|
+
}, "spec">, {
|
|
80
|
+
sources: {
|
|
81
|
+
includeInLlms: boolean;
|
|
82
|
+
includeInSearch: boolean;
|
|
83
|
+
noindex: boolean;
|
|
84
|
+
seoDescriptionSuffix: boolean;
|
|
85
|
+
spec: string;
|
|
86
|
+
label?: string | undefined;
|
|
87
|
+
route?: string | undefined;
|
|
88
|
+
endpoint?: string | undefined;
|
|
89
|
+
}[];
|
|
90
|
+
codeSamples: string[];
|
|
91
|
+
playground: {
|
|
92
|
+
enabled: boolean;
|
|
93
|
+
proxy: string | boolean;
|
|
94
|
+
};
|
|
95
|
+
route: string;
|
|
96
|
+
endpoint?: string | undefined;
|
|
97
|
+
spec?: string | undefined;
|
|
98
|
+
}>>;
|
|
99
|
+
/** `graphql()` options with every default applied and `spec` folded into `sources`. */
|
|
100
|
+
export type ResolvedGraphqlOptions = z.output<typeof graphqlOptionsSchema>;
|
|
101
|
+
export type GraphqlAdapter = AdapterDescriptor<"graphql", GraphqlOptions>;
|
|
102
|
+
/** A `graphql()` descriptor as the config schema resolves it. */
|
|
103
|
+
export type ResolvedGraphqlAdapter = AdapterDescriptor<"graphql", ResolvedGraphqlOptions>;
|
|
104
|
+
export declare const graphqlAdapterSchema: z.ZodObject<{
|
|
105
|
+
kind: z.ZodLiteral<"graphql">;
|
|
106
|
+
options: z.ZodPipe<z.ZodObject<{
|
|
107
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
108
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
109
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
110
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
111
|
+
label: z.ZodOptional<z.ZodString>;
|
|
112
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
113
|
+
route: z.ZodOptional<z.ZodString>;
|
|
114
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
115
|
+
spec: z.ZodString;
|
|
116
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
117
|
+
}, z.core.$strict>>>;
|
|
118
|
+
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
119
|
+
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
120
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
121
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
122
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
123
|
+
enabled: boolean;
|
|
124
|
+
proxy: string | boolean;
|
|
125
|
+
}, boolean | {
|
|
126
|
+
enabled: boolean;
|
|
127
|
+
proxy: string | boolean;
|
|
128
|
+
}>>;
|
|
129
|
+
route: z.ZodDefault<z.ZodString>;
|
|
130
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
131
|
+
}, z.core.$strict>, z.ZodTransform<Omit<{
|
|
132
|
+
sources: {
|
|
133
|
+
includeInLlms: boolean;
|
|
134
|
+
includeInSearch: boolean;
|
|
135
|
+
noindex: boolean;
|
|
136
|
+
seoDescriptionSuffix: boolean;
|
|
137
|
+
spec: string;
|
|
138
|
+
label?: string | undefined;
|
|
139
|
+
route?: string | undefined;
|
|
140
|
+
endpoint?: string | undefined;
|
|
141
|
+
}[];
|
|
142
|
+
codeSamples: string[];
|
|
143
|
+
playground: {
|
|
144
|
+
enabled: boolean;
|
|
145
|
+
proxy: string | boolean;
|
|
146
|
+
};
|
|
147
|
+
route: string;
|
|
148
|
+
endpoint?: string | undefined;
|
|
149
|
+
spec?: string | undefined;
|
|
150
|
+
}, "spec">, {
|
|
151
|
+
sources: {
|
|
152
|
+
includeInLlms: boolean;
|
|
153
|
+
includeInSearch: boolean;
|
|
154
|
+
noindex: boolean;
|
|
155
|
+
seoDescriptionSuffix: boolean;
|
|
156
|
+
spec: string;
|
|
157
|
+
label?: string | undefined;
|
|
158
|
+
route?: string | undefined;
|
|
159
|
+
endpoint?: string | undefined;
|
|
160
|
+
}[];
|
|
161
|
+
codeSamples: string[];
|
|
162
|
+
playground: {
|
|
163
|
+
enabled: boolean;
|
|
164
|
+
proxy: string | boolean;
|
|
165
|
+
};
|
|
166
|
+
route: string;
|
|
167
|
+
endpoint?: string | undefined;
|
|
168
|
+
spec?: string | undefined;
|
|
169
|
+
}>>;
|
|
170
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
171
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
172
|
+
}, z.core.$strict>;
|
|
173
|
+
/**
|
|
174
|
+
* A GraphQL reference. Blume lowers the schema (SDL or introspection JSON) to
|
|
175
|
+
* one real page per root field — grouped as Queries/Mutations/Subscriptions —
|
|
176
|
+
* plus one page per named type (Objects, Input Objects, Enums, Interfaces,
|
|
177
|
+
* Unions, Scalars), all included in the sidebar, search, llms.txt, and OG.
|
|
178
|
+
* Always Blume-rendered: the Scalar embed reads OpenAPI and AsyncAPI
|
|
179
|
+
* documents only, so there is no `scalar()` counterpart.
|
|
180
|
+
*/
|
|
181
|
+
export declare const graphql: (options: GraphqlOptions) => GraphqlAdapter;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API reference adapters for `blume.config.ts`:
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defineConfig } from "blume";
|
|
6
|
+
* import { asyncapi, graphql, openapi, scalar } from "blume/reference";
|
|
7
|
+
*
|
|
8
|
+
* export default defineConfig({
|
|
9
|
+
* reference: [
|
|
10
|
+
* openapi({ spec: "./openapi.yaml" }),
|
|
11
|
+
* asyncapi({ spec: "./asyncapi.yaml" }),
|
|
12
|
+
* graphql({ spec: "./schema.graphql", endpoint: "https://api.example.com/graphql" }),
|
|
13
|
+
* scalar({ spec: "./legacy.yaml", route: "/legacy", theme: "purple" }),
|
|
14
|
+
* ],
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Each factory returns a plain descriptor (see `core/adapter.ts`) that the
|
|
19
|
+
* schema validates and the generated site reads as a literal; nothing here
|
|
20
|
+
* runs in the browser.
|
|
21
|
+
*/
|
|
22
|
+
export type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
23
|
+
export { asyncapi } from "./asyncapi.ts";
|
|
24
|
+
export type { AsyncApiAdapter, AsyncApiOptions } from "./asyncapi.ts";
|
|
25
|
+
export { graphql } from "./graphql.ts";
|
|
26
|
+
export type { GraphqlAdapter, GraphqlOptions } from "./graphql.ts";
|
|
27
|
+
export { openapi } from "./openapi.ts";
|
|
28
|
+
export type { OpenApiAdapter, OpenApiOptions } from "./openapi.ts";
|
|
29
|
+
export type { GraphqlSourceOptions, PlaygroundOptions, ReferenceSourceOptions, } from "./options.ts";
|
|
30
|
+
export { scalar } from "./scalar.ts";
|
|
31
|
+
export type { ScalarAdapter, ScalarOptions, ScalarSourceOptions, } from "./scalar.ts";
|
|
32
|
+
export type { ReferenceAdapter, ResolvedReferenceAdapter } from "./schema.ts";
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { PlaygroundOptions, ReferenceSourceOptions } from "./options.ts";
|
|
4
|
+
/** Options for {@link openapi}. */
|
|
5
|
+
export interface OpenApiOptions {
|
|
6
|
+
/** Code-sample languages shown per operation (Blume renderer). Defaults to `["curl", "js", "python"]`. */
|
|
7
|
+
codeSamples?: string[];
|
|
8
|
+
/** Start nested schema rows expanded rather than collapsed (Blume renderer). Defaults to `false`. */
|
|
9
|
+
expandSchemas?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The interactive "Try it" panel (Blume renderer). On by default; `false`
|
|
12
|
+
* hides it. The object form sets `proxy`, the CORS escape hatch the Send
|
|
13
|
+
* button routes requests through: a proxy URL, or `true` for the built-in
|
|
14
|
+
* `/_api-proxy` endpoint (which needs server output: a host adapter such as
|
|
15
|
+
* `vercel()` in `deployment`).
|
|
16
|
+
*/
|
|
17
|
+
playground?: PlaygroundOptions;
|
|
18
|
+
/** Where the reference mounts. Defaults to `/reference`. */
|
|
19
|
+
route?: string;
|
|
20
|
+
/** One or more specs; each renders on its own route by default. */
|
|
21
|
+
sources?: ReferenceSourceOptions[];
|
|
22
|
+
/** Shorthand for a single source: `sources: [{ spec }]`. */
|
|
23
|
+
spec?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const openapiOptionsSchema: z.ZodPipe<z.ZodObject<{
|
|
26
|
+
expandSchemas: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
28
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
30
|
+
label: z.ZodOptional<z.ZodString>;
|
|
31
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
32
|
+
route: z.ZodOptional<z.ZodString>;
|
|
33
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
34
|
+
spec: z.ZodString;
|
|
35
|
+
}, z.core.$strict>>>;
|
|
36
|
+
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
37
|
+
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
38
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
39
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
40
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
41
|
+
enabled: boolean;
|
|
42
|
+
proxy: string | boolean;
|
|
43
|
+
}, boolean | {
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
proxy: string | boolean;
|
|
46
|
+
}>>;
|
|
47
|
+
route: z.ZodDefault<z.ZodString>;
|
|
48
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}, z.core.$strict>, z.ZodTransform<Omit<{
|
|
50
|
+
expandSchemas: boolean;
|
|
51
|
+
sources: {
|
|
52
|
+
includeInLlms: boolean;
|
|
53
|
+
includeInSearch: boolean;
|
|
54
|
+
noindex: boolean;
|
|
55
|
+
seoDescriptionSuffix: boolean;
|
|
56
|
+
spec: string;
|
|
57
|
+
label?: string | undefined;
|
|
58
|
+
route?: string | undefined;
|
|
59
|
+
}[];
|
|
60
|
+
codeSamples: string[];
|
|
61
|
+
playground: {
|
|
62
|
+
enabled: boolean;
|
|
63
|
+
proxy: string | boolean;
|
|
64
|
+
};
|
|
65
|
+
route: string;
|
|
66
|
+
spec?: string | undefined;
|
|
67
|
+
}, "spec">, {
|
|
68
|
+
expandSchemas: boolean;
|
|
69
|
+
sources: {
|
|
70
|
+
includeInLlms: boolean;
|
|
71
|
+
includeInSearch: boolean;
|
|
72
|
+
noindex: boolean;
|
|
73
|
+
seoDescriptionSuffix: boolean;
|
|
74
|
+
spec: string;
|
|
75
|
+
label?: string | undefined;
|
|
76
|
+
route?: string | undefined;
|
|
77
|
+
}[];
|
|
78
|
+
codeSamples: string[];
|
|
79
|
+
playground: {
|
|
80
|
+
enabled: boolean;
|
|
81
|
+
proxy: string | boolean;
|
|
82
|
+
};
|
|
83
|
+
route: string;
|
|
84
|
+
spec?: string | undefined;
|
|
85
|
+
}>>;
|
|
86
|
+
/** `openapi()` options with every default applied and `spec` folded into `sources`. */
|
|
87
|
+
export type ResolvedOpenApiOptions = z.output<typeof openapiOptionsSchema>;
|
|
88
|
+
export type OpenApiAdapter = AdapterDescriptor<"openapi", OpenApiOptions>;
|
|
89
|
+
/** An `openapi()` descriptor as the config schema resolves it. */
|
|
90
|
+
export type ResolvedOpenApiAdapter = AdapterDescriptor<"openapi", ResolvedOpenApiOptions>;
|
|
91
|
+
export declare const openapiAdapterSchema: z.ZodObject<{
|
|
92
|
+
kind: z.ZodLiteral<"openapi">;
|
|
93
|
+
options: z.ZodPipe<z.ZodObject<{
|
|
94
|
+
expandSchemas: z.ZodDefault<z.ZodBoolean>;
|
|
95
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
96
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
97
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
98
|
+
label: z.ZodOptional<z.ZodString>;
|
|
99
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
100
|
+
route: z.ZodOptional<z.ZodString>;
|
|
101
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
102
|
+
spec: z.ZodString;
|
|
103
|
+
}, z.core.$strict>>>;
|
|
104
|
+
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
105
|
+
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
106
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
107
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
108
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
109
|
+
enabled: boolean;
|
|
110
|
+
proxy: string | boolean;
|
|
111
|
+
}, boolean | {
|
|
112
|
+
enabled: boolean;
|
|
113
|
+
proxy: string | boolean;
|
|
114
|
+
}>>;
|
|
115
|
+
route: z.ZodDefault<z.ZodString>;
|
|
116
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
117
|
+
}, z.core.$strict>, z.ZodTransform<Omit<{
|
|
118
|
+
expandSchemas: boolean;
|
|
119
|
+
sources: {
|
|
120
|
+
includeInLlms: boolean;
|
|
121
|
+
includeInSearch: boolean;
|
|
122
|
+
noindex: boolean;
|
|
123
|
+
seoDescriptionSuffix: boolean;
|
|
124
|
+
spec: string;
|
|
125
|
+
label?: string | undefined;
|
|
126
|
+
route?: string | undefined;
|
|
127
|
+
}[];
|
|
128
|
+
codeSamples: string[];
|
|
129
|
+
playground: {
|
|
130
|
+
enabled: boolean;
|
|
131
|
+
proxy: string | boolean;
|
|
132
|
+
};
|
|
133
|
+
route: string;
|
|
134
|
+
spec?: string | undefined;
|
|
135
|
+
}, "spec">, {
|
|
136
|
+
expandSchemas: boolean;
|
|
137
|
+
sources: {
|
|
138
|
+
includeInLlms: boolean;
|
|
139
|
+
includeInSearch: boolean;
|
|
140
|
+
noindex: boolean;
|
|
141
|
+
seoDescriptionSuffix: boolean;
|
|
142
|
+
spec: string;
|
|
143
|
+
label?: string | undefined;
|
|
144
|
+
route?: string | undefined;
|
|
145
|
+
}[];
|
|
146
|
+
codeSamples: string[];
|
|
147
|
+
playground: {
|
|
148
|
+
enabled: boolean;
|
|
149
|
+
proxy: string | boolean;
|
|
150
|
+
};
|
|
151
|
+
route: string;
|
|
152
|
+
spec?: string | undefined;
|
|
153
|
+
}>>;
|
|
154
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
155
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
156
|
+
}, z.core.$strict>;
|
|
157
|
+
/**
|
|
158
|
+
* An OpenAPI reference. Blume parses the spec with Scalar's parser and renders
|
|
159
|
+
* its own UI: one real page per operation, grouped by tag in the sidebar and
|
|
160
|
+
* included in site search, llms.txt, and OG. To embed the Scalar SPA instead
|
|
161
|
+
* (a single self-contained route that doesn't weave into the sidebar or
|
|
162
|
+
* search), list a `scalar()` adapter. Blume's renderer parses at generate
|
|
163
|
+
* time and needs no runtime dependency.
|
|
164
|
+
*/
|
|
165
|
+
export declare const openapi: (options: OpenApiOptions) => OpenApiAdapter;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* A single spec rendered by a reference. `spec` is a local path or an
|
|
4
|
+
* `http(s)` URL (an OpenAPI document for `openapi()`, an AsyncAPI document
|
|
5
|
+
* for `asyncapi()`, SDL or introspection JSON for `graphql()`).
|
|
6
|
+
*/
|
|
7
|
+
export declare const referenceSourceSchema: z.ZodObject<{
|
|
8
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
9
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
10
|
+
label: z.ZodOptional<z.ZodString>;
|
|
11
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
12
|
+
route: z.ZodOptional<z.ZodString>;
|
|
13
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
14
|
+
spec: z.ZodString;
|
|
15
|
+
}, z.core.$strict>;
|
|
16
|
+
/** One spec source, as `openapi()` and `asyncapi()` accept it. */
|
|
17
|
+
export interface ReferenceSourceOptions {
|
|
18
|
+
/** Include generated pages from this spec in llms.txt/llms-full.txt. Defaults to `true`. */
|
|
19
|
+
includeInLlms?: boolean;
|
|
20
|
+
/** Include generated pages from this spec in site search. Defaults to `true`. */
|
|
21
|
+
includeInSearch?: boolean;
|
|
22
|
+
/** Nav/section label for this source. */
|
|
23
|
+
label?: string;
|
|
24
|
+
/** Emit noindex metadata and omit generated pages from the sitemap. Defaults to `false`. */
|
|
25
|
+
noindex?: boolean;
|
|
26
|
+
/** Per-source route; defaults to the adapter's `route` (or a derived path). */
|
|
27
|
+
route?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Append the generated English "Reference for …" sentence to every
|
|
30
|
+
* operation page's meta description. Defaults to `true`; set `false` on a
|
|
31
|
+
* non-English site to keep the spec's own prose alone.
|
|
32
|
+
*/
|
|
33
|
+
seoDescriptionSuffix?: boolean;
|
|
34
|
+
/** Local path or `http(s)` URL to the spec. */
|
|
35
|
+
spec: string;
|
|
36
|
+
}
|
|
37
|
+
/** A spec source with every default applied. */
|
|
38
|
+
export type ResolvedReferenceSource = z.output<typeof referenceSourceSchema>;
|
|
39
|
+
/**
|
|
40
|
+
* A single GraphQL schema: the shared source shape plus `endpoint`, the live
|
|
41
|
+
* GraphQL API URL the playground and code samples target (a schema, unlike an
|
|
42
|
+
* OpenAPI document, names no server).
|
|
43
|
+
*/
|
|
44
|
+
export declare const graphqlSourceSchema: z.ZodObject<{
|
|
45
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
47
|
+
label: z.ZodOptional<z.ZodString>;
|
|
48
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
49
|
+
route: z.ZodOptional<z.ZodString>;
|
|
50
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
51
|
+
spec: z.ZodString;
|
|
52
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, z.core.$strict>;
|
|
54
|
+
/** One schema source, as `graphql()` accepts it. */
|
|
55
|
+
export interface GraphqlSourceOptions extends ReferenceSourceOptions {
|
|
56
|
+
/** URL of the live GraphQL endpoint (playground + code samples); wins over the adapter's `endpoint`. */
|
|
57
|
+
endpoint?: string;
|
|
58
|
+
}
|
|
59
|
+
/** A GraphQL schema source with every default applied. */
|
|
60
|
+
export type ResolvedGraphqlSource = z.output<typeof graphqlSourceSchema>;
|
|
61
|
+
/**
|
|
62
|
+
* The interactive "Try it" panel on operation pages (Blume renderer). On by
|
|
63
|
+
* default; `false` hides it. The object form keeps it on and sets `proxy`,
|
|
64
|
+
* the CORS escape hatch the Send button routes requests through: a proxy URL,
|
|
65
|
+
* or `true` for the built-in `/_api-proxy` endpoint (which needs server
|
|
66
|
+
* output: a host adapter such as `vercel()` in `deployment`). Booleans
|
|
67
|
+
* normalize to the object shape so consumers read `{ enabled, proxy }`
|
|
68
|
+
* directly. `proxy` applies to the HTTP-posting playgrounds (OpenAPI, GraphQL)
|
|
69
|
+
* — an event composer's WebSocket connect is direct. One schema for every
|
|
70
|
+
* reference kind, so the normalization can never drift between them.
|
|
71
|
+
*/
|
|
72
|
+
export declare const playgroundSchema: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
73
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
74
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
75
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
proxy: string | boolean;
|
|
78
|
+
}, boolean | {
|
|
79
|
+
enabled: boolean;
|
|
80
|
+
proxy: string | boolean;
|
|
81
|
+
}>>;
|
|
82
|
+
/** The `playground` option as a factory accepts it. */
|
|
83
|
+
export type PlaygroundOptions = boolean | {
|
|
84
|
+
/** Render the panel. Defaults to `true`. */
|
|
85
|
+
enabled?: boolean;
|
|
86
|
+
/** CORS proxy: a URL, or `true` for the built-in `/_api-proxy` route. Defaults to `false`. */
|
|
87
|
+
proxy?: boolean | string;
|
|
88
|
+
};
|
|
89
|
+
/** The playground with its booleans normalized: `{ enabled, proxy }`. */
|
|
90
|
+
export type ResolvedPlayground = z.output<typeof playgroundSchema>;
|
|
91
|
+
/**
|
|
92
|
+
* The message a config still passing `renderer` to `openapi()`/`asyncapi()`
|
|
93
|
+
* gets: Scalar is its own adapter now, so the option has no home.
|
|
94
|
+
*/
|
|
95
|
+
export declare const RENDERER_REMOVED_HINT = "`renderer` was removed: the Scalar embed is its own adapter. Replace `openapi({ spec, renderer: \"scalar\", theme })` with a separate `scalar({ spec, theme })` entry in `reference`, imported from \"blume/reference\" \u2014 `route`, `sources`, `label`, and `noindex` carry over, and the native display options (`codeSamples`, `expandSchemas`, `playground`) don't apply to the embed.";
|
|
96
|
+
/**
|
|
97
|
+
* Error params for the `openapi()`/`asyncapi()` option objects: a leftover
|
|
98
|
+
* `renderer` key names its replacement instead of Zod's bare "Unrecognized
|
|
99
|
+
* key"; any other unknown key keeps the default message, beside the hint.
|
|
100
|
+
*/
|
|
101
|
+
export declare const rendererRemovedHint: {
|
|
102
|
+
error: (issue: z.core.$ZodRawIssue) => string | undefined;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* The options every kind shares, with that kind's defaults for the mount
|
|
106
|
+
* route and code-sample set. `spec` is the single-source shorthand; the kind
|
|
107
|
+
* schema folds it into `sources` with {@link liftSpec}.
|
|
108
|
+
*/
|
|
109
|
+
export declare const sharedOptions: (defaults: {
|
|
110
|
+
codeSamples: string[];
|
|
111
|
+
route: string;
|
|
112
|
+
}) => {
|
|
113
|
+
/** Code-sample languages/tools shown per operation (Blume renderer). */
|
|
114
|
+
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
115
|
+
/** The "Try it" panel; see {@link playgroundSchema}. */
|
|
116
|
+
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
117
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
118
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
119
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
120
|
+
enabled: boolean;
|
|
121
|
+
proxy: string | boolean;
|
|
122
|
+
}, boolean | {
|
|
123
|
+
enabled: boolean;
|
|
124
|
+
proxy: string | boolean;
|
|
125
|
+
}>>;
|
|
126
|
+
/** Where the reference mounts. */
|
|
127
|
+
route: z.ZodDefault<z.ZodString>;
|
|
128
|
+
/** Shorthand for a single source: `sources: [{ spec }]`. */
|
|
129
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Resolve the `spec` shorthand into `sources` so downstream code reads one
|
|
133
|
+
* field: the shorthand becomes the first source (with the source defaults
|
|
134
|
+
* applied through the source schema itself, so the two can never drift) and
|
|
135
|
+
* the `spec` key is dropped. An adapter with neither renders nothing, which
|
|
136
|
+
* is a config mistake rather than a choice — `refine` it away with
|
|
137
|
+
* {@link hasSources}.
|
|
138
|
+
*/
|
|
139
|
+
export declare const liftSpec: <Source extends {
|
|
140
|
+
spec: string;
|
|
141
|
+
}>(sourceSchema: z.ZodType<Source, {
|
|
142
|
+
spec: string;
|
|
143
|
+
}>) => <Options extends {
|
|
144
|
+
sources: Source[];
|
|
145
|
+
spec?: string;
|
|
146
|
+
}>({ spec, ...options }: Options) => Omit<Options, "spec">;
|
|
147
|
+
/** Whether an adapter has anything to render; pairs with {@link missingSourcesIssue}. */
|
|
148
|
+
export declare const hasSources: (options: {
|
|
149
|
+
sources: {
|
|
150
|
+
spec: string;
|
|
151
|
+
}[];
|
|
152
|
+
}) => boolean;
|
|
153
|
+
/** The refinement issue for a source-less adapter, naming its factory. */
|
|
154
|
+
export declare const missingSourcesIssue: (factory: string) => {
|
|
155
|
+
message: string;
|
|
156
|
+
path: string[];
|
|
157
|
+
};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
/**
|
|
4
|
+
* What the generated Scalar page imports. Declared on every `scalar()`
|
|
5
|
+
* descriptor so the generated project lists it, which is what lets Astro's
|
|
6
|
+
* framework-package crawl bundle the embed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SCALAR_RUNTIME_DEPS: readonly string[];
|
|
9
|
+
/**
|
|
10
|
+
* A single document rendered by a `scalar()` reference. Scalar reads OpenAPI
|
|
11
|
+
* and AsyncAPI documents and detects which it was given, so there is one
|
|
12
|
+
* source shape for both. The embed sits outside Blume's search and llms.txt,
|
|
13
|
+
* so of the native per-source controls only `noindex` applies here.
|
|
14
|
+
*/
|
|
15
|
+
export declare const scalarSourceSchema: z.ZodObject<{
|
|
16
|
+
label: z.ZodOptional<z.ZodString>;
|
|
17
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
18
|
+
route: z.ZodOptional<z.ZodString>;
|
|
19
|
+
spec: z.ZodString;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
/** One document source, as `scalar()` accepts it. */
|
|
22
|
+
export interface ScalarSourceOptions {
|
|
23
|
+
/** Nav/section label for this source. */
|
|
24
|
+
label?: string;
|
|
25
|
+
/** Emit noindex metadata and omit the page from the sitemap. Defaults to `false`. */
|
|
26
|
+
noindex?: boolean;
|
|
27
|
+
/** Per-source route; defaults to the adapter's `route` (or a derived path). */
|
|
28
|
+
route?: string;
|
|
29
|
+
/** Local path or `http(s)` URL to the OpenAPI or AsyncAPI document. */
|
|
30
|
+
spec: string;
|
|
31
|
+
}
|
|
32
|
+
/** A source with every default applied. */
|
|
33
|
+
export type ResolvedScalarSource = z.output<typeof scalarSourceSchema>;
|
|
34
|
+
/**
|
|
35
|
+
* `scalar()` options with every default applied and `spec` folded into
|
|
36
|
+
* `sources`; every key beyond the named ones is forwarded Scalar config.
|
|
37
|
+
*/
|
|
38
|
+
export type ResolvedScalarOptions = {
|
|
39
|
+
route: string;
|
|
40
|
+
sources: ResolvedScalarSource[];
|
|
41
|
+
theme?: string;
|
|
42
|
+
} & {
|
|
43
|
+
[option: string]: JsonValue;
|
|
44
|
+
};
|
|
45
|
+
/** The options {@link scalar} maps itself. */
|
|
46
|
+
export interface ScalarNamedOptions {
|
|
47
|
+
/** Where the reference mounts. Defaults to `/reference`. */
|
|
48
|
+
route?: string;
|
|
49
|
+
/** One or more documents; each renders on its own route by default. */
|
|
50
|
+
sources?: ScalarSourceOptions[];
|
|
51
|
+
/** Shorthand for a single source: `sources: [{ spec }]`. */
|
|
52
|
+
spec?: string;
|
|
53
|
+
/** A Scalar theme name (`purple`, `moon`, …). Unset keeps Scalar's default theme with Blume's accent and radius layered on top. */
|
|
54
|
+
theme?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Options for {@link scalar}: the source, route, and `theme` Blume maps, plus
|
|
58
|
+
* any other [Scalar configuration](https://github.com/scalar/scalar/blob/main/documentation/configuration.md)
|
|
59
|
+
* key, forwarded verbatim to the embedded `<ScalarComponent>` (`localization`,
|
|
60
|
+
* `agent`, `hideTestRequestButton`, `orderSchemaPropertiesBy`, …). Blume
|
|
61
|
+
* doesn't mirror Scalar's config surface, so this is a full escape hatch: a
|
|
62
|
+
* forwarded key wins over Blume's own derived spec/theme config. JSON values
|
|
63
|
+
* only — the configuration is inlined into the generated page. `sources` is
|
|
64
|
+
* Blume's (one page per document); Scalar's own multi-document `sources`
|
|
65
|
+
* can't be forwarded.
|
|
66
|
+
*/
|
|
67
|
+
export type ScalarOptions = ScalarNamedOptions & {
|
|
68
|
+
[option: string]: JsonValue;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* `spec` is the single-source shorthand and folds into `sources` at parse
|
|
72
|
+
* (through the source schema, so the two can never drift); every key beyond
|
|
73
|
+
* the named ones is Scalar configuration and passes through untouched.
|
|
74
|
+
*/
|
|
75
|
+
export declare const scalarOptionsSchema: z.ZodPipe<z.ZodObject<{
|
|
76
|
+
route: z.ZodDefault<z.ZodString>;
|
|
77
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
78
|
+
label: z.ZodOptional<z.ZodString>;
|
|
79
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
80
|
+
route: z.ZodOptional<z.ZodString>;
|
|
81
|
+
spec: z.ZodString;
|
|
82
|
+
}, z.core.$strict>>>;
|
|
83
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
84
|
+
theme: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, z.core.$catchall<z.ZodJSONSchema>>, z.ZodTransform<ResolvedScalarOptions, {
|
|
86
|
+
[x: string]: z.core.util.JSONType;
|
|
87
|
+
route: string;
|
|
88
|
+
sources: {
|
|
89
|
+
noindex: boolean;
|
|
90
|
+
spec: string;
|
|
91
|
+
label?: string | undefined;
|
|
92
|
+
route?: string | undefined;
|
|
93
|
+
}[];
|
|
94
|
+
spec?: string | undefined;
|
|
95
|
+
theme?: string | undefined;
|
|
96
|
+
}>>;
|
|
97
|
+
export type ScalarAdapter = AdapterDescriptor<"scalar", ScalarOptions>;
|
|
98
|
+
/** A `scalar()` descriptor as the config schema resolves it. */
|
|
99
|
+
export type ResolvedScalarAdapter = AdapterDescriptor<"scalar", ResolvedScalarOptions>;
|
|
100
|
+
export declare const scalarAdapterSchema: z.ZodObject<{
|
|
101
|
+
kind: z.ZodLiteral<"scalar">;
|
|
102
|
+
options: z.ZodPipe<z.ZodObject<{
|
|
103
|
+
route: z.ZodDefault<z.ZodString>;
|
|
104
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
105
|
+
label: z.ZodOptional<z.ZodString>;
|
|
106
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
107
|
+
route: z.ZodOptional<z.ZodString>;
|
|
108
|
+
spec: z.ZodString;
|
|
109
|
+
}, z.core.$strict>>>;
|
|
110
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
111
|
+
theme: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, z.core.$catchall<z.ZodJSONSchema>>, z.ZodTransform<ResolvedScalarOptions, {
|
|
113
|
+
[x: string]: z.core.util.JSONType;
|
|
114
|
+
route: string;
|
|
115
|
+
sources: {
|
|
116
|
+
noindex: boolean;
|
|
117
|
+
spec: string;
|
|
118
|
+
label?: string | undefined;
|
|
119
|
+
route?: string | undefined;
|
|
120
|
+
}[];
|
|
121
|
+
spec?: string | undefined;
|
|
122
|
+
theme?: string | undefined;
|
|
123
|
+
}>>;
|
|
124
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
125
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
126
|
+
}, z.core.$strict>;
|
|
127
|
+
/**
|
|
128
|
+
* An API reference rendered by [Scalar](https://scalar.com)'s self-contained
|
|
129
|
+
* UI — its own sidebar, search, theme, and request client on a single route —
|
|
130
|
+
* instead of Blume's native operation pages. Takes an OpenAPI or AsyncAPI
|
|
131
|
+
* document (Scalar detects which); a GraphQL schema has no Scalar embed.
|
|
132
|
+
* Blume's per-page controls don't apply: the embed doesn't weave into the
|
|
133
|
+
* sidebar, search, or llms.txt, and it brings its own request client in place
|
|
134
|
+
* of the Try it playground.
|
|
135
|
+
*/
|
|
136
|
+
export declare const scalar: (options: ScalarOptions) => ScalarAdapter;
|