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,158 @@
|
|
|
1
|
+
import type { Document, OperationObject } from "@scalar/openapi-types/3.1";
|
|
2
|
+
import type { AsyncApiAction, AsyncApiDocument } from "./asyncapi.ts";
|
|
3
|
+
import type { GraphqlDocument, GraphqlMember } from "./graphql.ts";
|
|
4
|
+
import type { ReferenceKind } from "./references.ts";
|
|
5
|
+
export { slugify } from "./references.ts";
|
|
6
|
+
/**
|
|
7
|
+
* Blume's own API reference model, shared by both spec kinds. OpenAPI specs
|
|
8
|
+
* are parsed and upgraded to 3.1, AsyncAPI specs normalized to 3.x (see
|
|
9
|
+
* `parse.ts`), with internal `$ref`s left intact — the document stays
|
|
10
|
+
* JSON-serializable (a fully dereferenced graph can be circular), and the schema
|
|
11
|
+
* components resolve refs against `document.components.schemas` at render time.
|
|
12
|
+
* Each operation is flattened into an {@link ApiOperationRef} with a real,
|
|
13
|
+
* per-operation route so it becomes a first-class Blume page.
|
|
14
|
+
*/
|
|
15
|
+
/** A normalized OpenAPI 3.1 document, internal `$ref`s intact. */
|
|
16
|
+
export type ApiDocument = Document;
|
|
17
|
+
/** The HTTP methods an OpenAPI path item may declare, in spec order. */
|
|
18
|
+
export declare const HTTP_METHODS: readonly ["get", "put", "post", "delete", "options", "head", "patch", "trace"];
|
|
19
|
+
export type HttpMethod = (typeof HTTP_METHODS)[number];
|
|
20
|
+
/** A stable, URL-safe key for an operation: its `operationId`, else method+path. */
|
|
21
|
+
export declare const operationKey: (method: string, path: string, operationId?: string) => string;
|
|
22
|
+
/** One operation, flattened out of its document and mapped to a route. */
|
|
23
|
+
export interface ApiOperationRef {
|
|
24
|
+
/** Stable key, unique within a spec; matches the MDX `<Operation id>`. */
|
|
25
|
+
key: string;
|
|
26
|
+
/**
|
|
27
|
+
* HTTP method (OpenAPI), `send`/`receive` action (AsyncAPI), or the member
|
|
28
|
+
* kind — a root-field operation kind or a named-type kind (GraphQL).
|
|
29
|
+
*/
|
|
30
|
+
method: HttpMethod | AsyncApiAction | GraphqlMember;
|
|
31
|
+
/**
|
|
32
|
+
* Templated path, e.g. `/pets/{id}` — the channel address (AsyncAPI), or
|
|
33
|
+
* the root field / type name (GraphQL).
|
|
34
|
+
*/
|
|
35
|
+
path: string;
|
|
36
|
+
/** Full site route for this operation's page, e.g. `/reference/pet/add-pet`. */
|
|
37
|
+
route: string;
|
|
38
|
+
/** Display tag name (first tag; `Operations` or the channel address when untagged). */
|
|
39
|
+
tag: string;
|
|
40
|
+
tagSlug: string;
|
|
41
|
+
summary: string;
|
|
42
|
+
description: string;
|
|
43
|
+
/** The `operationId` (OpenAPI) or the `operations` map key (AsyncAPI). */
|
|
44
|
+
operationId?: string;
|
|
45
|
+
deprecated: boolean;
|
|
46
|
+
/** The channel the operation acts on (AsyncAPI only). */
|
|
47
|
+
channelId?: string;
|
|
48
|
+
}
|
|
49
|
+
/** A tag/section, in first-seen order. */
|
|
50
|
+
export interface ApiTagRef {
|
|
51
|
+
slug: string;
|
|
52
|
+
name: string;
|
|
53
|
+
description: string;
|
|
54
|
+
}
|
|
55
|
+
/** Everything the runtime needs for one spec, serialized into `blume:openapi`. */
|
|
56
|
+
export interface ApiSpecData {
|
|
57
|
+
/** Which front-end parsed the spec (and which components render it). */
|
|
58
|
+
kind: ReferenceKind;
|
|
59
|
+
/** Unique token used as the `<Operation source>` and the data-module key. */
|
|
60
|
+
slug: string;
|
|
61
|
+
/** Base route the spec's operations hang off, e.g. `/reference`. */
|
|
62
|
+
route: string;
|
|
63
|
+
label: string;
|
|
64
|
+
title: string;
|
|
65
|
+
version: string;
|
|
66
|
+
description: string;
|
|
67
|
+
document: ApiDocument | AsyncApiDocument | GraphqlDocument;
|
|
68
|
+
/**
|
|
69
|
+
* URL of the live GraphQL endpoint the playground and code samples target
|
|
70
|
+
* (GraphQL only; OpenAPI documents carry their servers in the document).
|
|
71
|
+
*/
|
|
72
|
+
endpoint?: string;
|
|
73
|
+
/** Operations keyed by {@link ApiOperationRef.key}. */
|
|
74
|
+
operations: Record<string, ApiOperationRef>;
|
|
75
|
+
tags: ApiTagRef[];
|
|
76
|
+
/** Code-sample languages to render per operation. */
|
|
77
|
+
codeSamples: string[];
|
|
78
|
+
/** Whether nested schema rows start expanded. */
|
|
79
|
+
expandSchemas: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* The "Try it" playground: whether operation pages render it, and the
|
|
82
|
+
* resolved proxy the Send button targets — `false` for direct requests, a
|
|
83
|
+
* URL string otherwise (the built-in `/_api-proxy` route already carries
|
|
84
|
+
* the site `basePath`).
|
|
85
|
+
*/
|
|
86
|
+
playground: {
|
|
87
|
+
enabled: boolean;
|
|
88
|
+
proxy: string | false;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/** The generated `blume:openapi` module: specs keyed by {@link ApiSpecData.slug}. */
|
|
92
|
+
export type OpenApiData = Record<string, ApiSpecData>;
|
|
93
|
+
/**
|
|
94
|
+
* The spec a `<Operation source>` / `<ApiOverview source>` names, or nothing.
|
|
95
|
+
* `blume:openapi` crosses a JSON boundary as a plain object, so a lookup must
|
|
96
|
+
* be an own-property one: `source="toString"` would otherwise resolve to the
|
|
97
|
+
* inherited function, which is truthy and carries no `operations`, and every
|
|
98
|
+
* consumer would throw where it means to decline. Shared by the components
|
|
99
|
+
* and the agent-surface serializers so they miss the same way.
|
|
100
|
+
*/
|
|
101
|
+
export declare const specOf: (specs: OpenApiData, source: string) => ApiSpecData | undefined;
|
|
102
|
+
/** The operation an `<Operation id>` names within its spec, or nothing. */
|
|
103
|
+
export declare const operationOf: (spec: ApiSpecData, id: string) => ApiOperationRef | undefined;
|
|
104
|
+
/** The addresses an API overview lists, and what to call them. */
|
|
105
|
+
export interface SpecAddresses {
|
|
106
|
+
/** `Base URL` (OpenAPI), `Servers` (AsyncAPI) or `Endpoint` (GraphQL). */
|
|
107
|
+
label: string;
|
|
108
|
+
addresses: string[];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Where the API lives, flattened into one list for the overview page. OpenAPI
|
|
112
|
+
* declares `servers` as an array of URLs; AsyncAPI as a named map of
|
|
113
|
+
* host/protocol/pathname; a GraphQL schema names no server, so its configured
|
|
114
|
+
* live endpoint stands in.
|
|
115
|
+
*/
|
|
116
|
+
export declare const specAddresses: (spec: ApiSpecData) => SpecAddresses;
|
|
117
|
+
/**
|
|
118
|
+
* Assign each distinct tag name a unique slug. `slugify` can collapse
|
|
119
|
+
* different names onto one value — any two punctuation-only tags (`!!!`,
|
|
120
|
+
* `???`) both fall through to the `operations` fallback — and a shared slug
|
|
121
|
+
* silently merges the tags' routes, sidebar groups, and overview sections.
|
|
122
|
+
* Collisions gain `-2`, `-3`, … in first-seen order. Shared with the AsyncAPI
|
|
123
|
+
* extractor (`asyncapi.ts`), whose untagged fallback groups are channel
|
|
124
|
+
* addresses.
|
|
125
|
+
*/
|
|
126
|
+
export declare const tagSlugger: () => ((name: string) => string);
|
|
127
|
+
/** An operation before the collector assigns its unique key and route. */
|
|
128
|
+
type CollectedOperation = Omit<ApiOperationRef, "route" | "tagSlug">;
|
|
129
|
+
/** The flattened output both extractors produce. */
|
|
130
|
+
export interface CollectedOperations {
|
|
131
|
+
operations: ApiOperationRef[];
|
|
132
|
+
tags: ApiTagRef[];
|
|
133
|
+
}
|
|
134
|
+
/** The collector handle: feed operations in, read the flattened output out. */
|
|
135
|
+
export interface OperationCollector {
|
|
136
|
+
add: (entry: CollectedOperation) => void;
|
|
137
|
+
finish: () => CollectedOperations;
|
|
138
|
+
}
|
|
139
|
+
/** {@link CollectedOperations} plus anything the extractor had to skip. */
|
|
140
|
+
export interface ExtractedOperations extends CollectedOperations {
|
|
141
|
+
warnings: string[];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The collector behind both extractors (OpenAPI here, AsyncAPI in
|
|
145
|
+
* `asyncapi.ts`): first-seen tag ordering, key de-duplication (a repeated key
|
|
146
|
+
* gains its method/action as a suffix), and the shared route template — so
|
|
147
|
+
* URL shape and slug rules can never drift between the two spec kinds.
|
|
148
|
+
*/
|
|
149
|
+
export declare const operationCollector: (baseRoute: string, tagMeta: ReadonlyMap<string, string>) => OperationCollector;
|
|
150
|
+
/**
|
|
151
|
+
* Flatten a 3.1 document into a route-mapped operation list and its ordered
|
|
152
|
+
* tags. Operations inherit the first tag they declare; keys are de-duplicated so
|
|
153
|
+
* a repeated `operationId` still yields distinct routes. `warnings` reports
|
|
154
|
+
* anything skipped (a `$ref` path item), so missing operations aren't silent.
|
|
155
|
+
*/
|
|
156
|
+
export declare const extractOperations: (document: ApiDocument, baseRoute: string) => ExtractedOperations;
|
|
157
|
+
/** Resolve the operation object for a ref out of its (OpenAPI) document. */
|
|
158
|
+
export declare const operationObject: (spec: ApiSpecData, ref: ApiOperationRef) => OperationObject | undefined;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { AsyncApiDocument } from "./asyncapi.ts";
|
|
2
|
+
import type { GraphqlDocument } from "./graphql.ts";
|
|
3
|
+
import type { ApiDocument } from "./model.ts";
|
|
4
|
+
export interface ParsedSpec {
|
|
5
|
+
document: ApiDocument;
|
|
6
|
+
warnings: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The spec was read successfully but its contents aren't an OpenAPI document
|
|
10
|
+
* (an empty file, or YAML that parses to a scalar or list — say, a README
|
|
11
|
+
* pointed at by mistake). Kept distinct from read/fetch failures so callers
|
|
12
|
+
* can suggest fixing the file instead of checking reachability.
|
|
13
|
+
*/
|
|
14
|
+
export declare class InvalidSpecError extends Error {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
|
17
|
+
/** Where and whether to cache a remote spec's text between runs. */
|
|
18
|
+
export interface SpecFetchOptions {
|
|
19
|
+
/** Dir for a last-good on-disk copy of a remote spec (offline fallback). */
|
|
20
|
+
cacheDir?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Re-fetch even when a cached copy exists. Builds/sync refresh; dev is
|
|
23
|
+
* cache-first for fast, offline-tolerant restarts (see `SourceContext`).
|
|
24
|
+
*/
|
|
25
|
+
refresh?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare const parseSpec: (spec: string, root: string, options?: SpecFetchOptions) => Promise<ParsedSpec>;
|
|
28
|
+
export interface ParsedAsyncApiSpec {
|
|
29
|
+
document: AsyncApiDocument;
|
|
30
|
+
warnings: string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Read and normalize a spec to an AsyncAPI 3.x document — the AsyncAPI mirror
|
|
34
|
+
* of {@link parseSpec}. 1.x/2.x documents are lifted to 3.0 with the official
|
|
35
|
+
* `@asyncapi/converter` (channels + operations with `send`/`receive` actions),
|
|
36
|
+
* so the extractor and components only ever handle one shape; `$ref`s stay
|
|
37
|
+
* intact, matching the OpenAPI path. Error semantics match `parseSpec`: an
|
|
38
|
+
* unreadable spec throws, a readable non-AsyncAPI document throws
|
|
39
|
+
* {@link InvalidSpecError}, a pre-3.0 document without the converter installed
|
|
40
|
+
* throws {@link SpecDependencyError}, and callers lower all three into source
|
|
41
|
+
* diagnostics.
|
|
42
|
+
*/
|
|
43
|
+
export declare const parseAsyncApiSpec: (spec: string, root: string, options?: SpecFetchOptions) => Promise<ParsedAsyncApiSpec>;
|
|
44
|
+
export interface ParsedGraphqlSpec {
|
|
45
|
+
document: GraphqlDocument;
|
|
46
|
+
warnings: string[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Read and lower a GraphQL schema — SDL text or an introspection JSON result —
|
|
50
|
+
* to the serializable document the reference renders from; the GraphQL mirror
|
|
51
|
+
* of {@link parseSpec}. Error semantics match the other kinds: an unreadable
|
|
52
|
+
* spec throws the read/fetch error, while readable-but-invalid schema text
|
|
53
|
+
* (SDL syntax errors, validation failures, JSON that isn't an introspection
|
|
54
|
+
* result) throws {@link InvalidSpecError} so callers suggest fixing the file
|
|
55
|
+
* rather than checking reachability.
|
|
56
|
+
*/
|
|
57
|
+
export declare const parseGraphqlSpec: (spec: string, root: string, options?: SpecFetchOptions) => Promise<ParsedGraphqlSpec>;
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import type { ResolvedConfig } from "../core/schema.ts";
|
|
2
|
+
import type { ScalarOptions } from "../reference/scalar.ts";
|
|
3
|
+
import type { ResolvedReferenceAdapter } from "../reference/schema.ts";
|
|
2
4
|
export { normalizeRoute } from "../core/base-path.ts";
|
|
3
5
|
/**
|
|
4
|
-
* Pure resolution of the configured
|
|
5
|
-
*
|
|
6
|
+
* Pure resolution of the configured `reference` adapters into concrete routes
|
|
7
|
+
* and labels — no file IO, so the content source, the
|
|
6
8
|
* nav-target validation, the Scalar page generator, and the `blume:openapi`
|
|
7
9
|
* data module all share one source of truth. Kept free of any Astro/template
|
|
8
10
|
* imports so `core` can depend on it without a cycle.
|
|
9
11
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Which adapter a reference came from. `openapi`, `asyncapi`, and `graphql`
|
|
14
|
+
* are rendered by Blume into real pages; `scalar` is the embedded Scalar SPA
|
|
15
|
+
* on a single route.
|
|
16
|
+
*/
|
|
17
|
+
export type ReferenceKind = ResolvedReferenceAdapter["kind"];
|
|
18
|
+
/** The kinds Blume renders into pages itself — everything but the Scalar embed. */
|
|
19
|
+
export type BlumeReferenceKind = Exclude<ReferenceKind, "scalar">;
|
|
20
|
+
/** Per-adapter display options for the Blume renderer. */
|
|
14
21
|
export interface ReferenceDisplay {
|
|
15
22
|
/** Code-sample languages shown per operation. */
|
|
16
23
|
codeSamples: string[];
|
|
@@ -26,10 +33,9 @@ export interface ReferenceDisplay {
|
|
|
26
33
|
proxy: string | boolean;
|
|
27
34
|
};
|
|
28
35
|
}
|
|
29
|
-
/** A spec source resolved to a concrete route
|
|
36
|
+
/** A spec source resolved to a concrete route and label. */
|
|
30
37
|
export interface ReferenceSource {
|
|
31
38
|
kind: ReferenceKind;
|
|
32
|
-
renderer: ReferenceRenderer;
|
|
33
39
|
/** Unique token derived from the route; the `<Operation source>` / data key. */
|
|
34
40
|
slug: string;
|
|
35
41
|
/** Normalized route the reference mounts at, e.g. `/reference`. */
|
|
@@ -59,14 +65,12 @@ export interface ReferenceSource {
|
|
|
59
65
|
* (GraphQL only — a schema, unlike an OpenAPI document, names no server).
|
|
60
66
|
*/
|
|
61
67
|
endpoint?: string;
|
|
62
|
-
/** Per-block Scalar theme name override, if any (Scalar renderer only). */
|
|
63
|
-
theme?: string;
|
|
64
68
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
69
|
+
* The `scalar()` adapter's own options (`scalar` kind only): `theme` plus
|
|
70
|
+
* any Scalar config forwarded verbatim to `<ScalarComponent>`, which takes
|
|
71
|
+
* precedence over Blume's derived spec/theme config.
|
|
68
72
|
*/
|
|
69
|
-
scalar?:
|
|
73
|
+
scalar?: ScalarOptions;
|
|
70
74
|
/** Display options carried through to the Blume renderer. */
|
|
71
75
|
display: ReferenceDisplay;
|
|
72
76
|
/**
|
|
@@ -75,6 +79,10 @@ export interface ReferenceSource {
|
|
|
75
79
|
*/
|
|
76
80
|
collisions?: string[];
|
|
77
81
|
}
|
|
82
|
+
/** A reference Blume renders itself: one the content pipeline stages pages for. */
|
|
83
|
+
export type BlumeReferenceSource = ReferenceSource & {
|
|
84
|
+
kind: BlumeReferenceKind;
|
|
85
|
+
};
|
|
78
86
|
/**
|
|
79
87
|
* Lowercase, hyphen-separated slug: `Add a Pet!` -> `add-a-pet`. Unicode
|
|
80
88
|
* letters are kept (`Größe` -> `größe`), NFC-normalized so canonically
|
|
@@ -84,33 +92,37 @@ export interface ReferenceSource {
|
|
|
84
92
|
*/
|
|
85
93
|
export declare const slugify: (text: string) => string;
|
|
86
94
|
/**
|
|
87
|
-
* Resolve every
|
|
88
|
-
*
|
|
95
|
+
* Resolve every configured reference, in `reference` order: Blume's own pages
|
|
96
|
+
* for `openapi()`, `asyncapi()`, and `graphql()`, and one embedded Scalar page
|
|
97
|
+
* per `scalar()` source.
|
|
89
98
|
*/
|
|
90
99
|
export declare const resolveReferences: (config: ResolvedConfig) => ReferenceSource[];
|
|
91
100
|
/**
|
|
92
|
-
* Mounted route for every reference, regardless of
|
|
101
|
+
* Mounted route for every reference, regardless of kind. References no
|
|
93
102
|
* longer add a header tab automatically — authors point a `navigation.tabs`
|
|
94
103
|
* entry at one of these routes to surface it (and, for Blume-rendered specs, to
|
|
95
104
|
* scope its operations sidebar). These routes are whitelisted as valid nav
|
|
96
105
|
* targets so such a tab doesn't read as a broken link.
|
|
97
106
|
*/
|
|
98
107
|
export declare const referenceRoutes: (config: ResolvedConfig) => string[];
|
|
99
|
-
/** Blume-rendered references (
|
|
100
|
-
export declare const blumeReferences: (config: ResolvedConfig) =>
|
|
101
|
-
/** Whether any reference is Scalar-rendered (gates the
|
|
108
|
+
/** Blume-rendered references (every kind but Scalar), deduped by route (first wins). */
|
|
109
|
+
export declare const blumeReferences: (config: ResolvedConfig) => BlumeReferenceSource[];
|
|
110
|
+
/** Whether any reference is Scalar-rendered (gates the Scalar pages). */
|
|
102
111
|
export declare const hasScalarReferences: (config: ResolvedConfig) => boolean;
|
|
103
112
|
/**
|
|
104
|
-
* The
|
|
113
|
+
* The Blume-rendered references whose enabled playground opted into the
|
|
105
114
|
* built-in CORS proxy with `proxy: true`. A proxy URL string points at an
|
|
106
115
|
* external service, and `false` sends requests directly — neither routes
|
|
107
|
-
* through the endpoint.
|
|
108
|
-
*
|
|
116
|
+
* through the endpoint. AsyncAPI never does: an event composer's WebSocket
|
|
117
|
+
* connect is direct, so its `proxy` has nothing to forward. Drawn from the
|
|
118
|
+
* deduped set so the slugs match the `blume:openapi` data keys; the
|
|
119
|
+
* generator's per-spec allowlist diagnostics key on this, so it shares one
|
|
120
|
+
* definition with {@link needsPlaygroundProxy}.
|
|
109
121
|
*/
|
|
110
|
-
export declare const
|
|
122
|
+
export declare const builtinProxyReferences: (config: ResolvedConfig) => BlumeReferenceSource[];
|
|
111
123
|
/**
|
|
112
124
|
* Whether the built-in playground CORS proxy endpoint (`/_api-proxy`) must be
|
|
113
|
-
* generated: some
|
|
125
|
+
* generated: some Blume-rendered reference's playground opted into it with
|
|
114
126
|
* `proxy: true`. Shared by the server feature gate and the generator so the
|
|
115
127
|
* two can never disagree.
|
|
116
128
|
*/
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ApiOperationRef, ApiSpecData } from "./model.ts";
|
|
2
|
+
import type { ReferenceSource } from "./references.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Frontmatter emitted for one operation or overview page. Boolean flags are
|
|
5
|
+
* assigned only when set, so absent keys stay absent in the staged MDX.
|
|
6
|
+
*/
|
|
7
|
+
export interface RenderedPageData {
|
|
8
|
+
ai?: {
|
|
9
|
+
exclude: boolean;
|
|
10
|
+
};
|
|
11
|
+
deprecated?: boolean;
|
|
12
|
+
search?: {
|
|
13
|
+
exclude?: boolean;
|
|
14
|
+
tags?: string[];
|
|
15
|
+
};
|
|
16
|
+
seo: {
|
|
17
|
+
description: string;
|
|
18
|
+
noindex?: boolean;
|
|
19
|
+
};
|
|
20
|
+
sidebar: {
|
|
21
|
+
badge?: string;
|
|
22
|
+
label: string;
|
|
23
|
+
};
|
|
24
|
+
title: string;
|
|
25
|
+
type?: string;
|
|
26
|
+
}
|
|
27
|
+
/** Frontmatter + body for one operation or overview page. */
|
|
28
|
+
export interface RenderedPage {
|
|
29
|
+
data: RenderedPageData;
|
|
30
|
+
body: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const operationMdx: (spec: ApiSpecData, operation: ApiOperationRef, reference?: Pick<ReferenceSource, "includeInLlms" | "includeInSearch" | "noindex" | "seoDescriptionSuffix">) => RenderedPage;
|
|
33
|
+
export declare const overviewMdx: (spec: ApiSpecData, reference?: Pick<ReferenceSource, "includeInLlms" | "includeInSearch" | "noindex">) => RenderedPage;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Close a fragment of spec prose as a sentence. OpenAPI `summary` values are
|
|
3
|
+
* usually title-like ("Get a flag", no period), so prose that runs straight
|
|
4
|
+
* into the next generated sentence ("Get a flag Reference for …") needs one.
|
|
5
|
+
* Empty text stays empty.
|
|
6
|
+
*/
|
|
7
|
+
export declare const asSentence: (text: string) => string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ApiOperationRef, ApiSpecData } from "./model.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The one-line name of what an operation page documents, in the notation of
|
|
4
|
+
* its spec kind: `GET /pets/{id}` for an HTTP endpoint, `SEND user/signup`
|
|
5
|
+
* for an AsyncAPI channel action, `query pets` or `type Pet` for a GraphQL
|
|
6
|
+
* member. The page titles an untitled operation with it and the agent
|
|
7
|
+
* surfaces (`<route>.md`, llms-full.txt, MCP `get_page`) downlevel
|
|
8
|
+
* `<Operation>` to it, so the two can never disagree about the endpoint.
|
|
9
|
+
*/
|
|
10
|
+
export declare const operationSignature: (spec: Pick<ApiSpecData, "kind">, operation: Pick<ApiOperationRef, "method" | "path">) => string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ContentSource, SourceContext } from "../core/sources/types.ts";
|
|
2
|
+
import type { OpenApiData } from "./model.ts";
|
|
3
|
+
import type { BlumeReferenceSource } from "./references.ts";
|
|
4
|
+
/**
|
|
5
|
+
* The staged content source behind Blume's own API reference renderer (OpenAPI
|
|
6
|
+
* and AsyncAPI alike). Each configured spec is parsed once here, then lowered
|
|
7
|
+
* into one MDX page per operation plus an overview page — so operations become
|
|
8
|
+
* first-class Blume pages (real routes, sidebar, search, i18n, OG) and the
|
|
9
|
+
* parsed documents are handed to the generated `blume:openapi` module for the
|
|
10
|
+
* UI components to render. The source keeps its historical `openapi` name for
|
|
11
|
+
* both kinds — downstream consumers (`agents.llmsTxt.openapi`, the llms noindex
|
|
12
|
+
* exemption) key on it as "the generated API reference source".
|
|
13
|
+
*/
|
|
14
|
+
/** A content source that also exposes the specs it parsed during `load()`. */
|
|
15
|
+
export interface OpenApiContentSource extends ContentSource {
|
|
16
|
+
readonly kind: "openapi-source";
|
|
17
|
+
/** Parsed spec data, populated by `load()`; `{}` before the first load. */
|
|
18
|
+
openApiData: () => OpenApiData;
|
|
19
|
+
}
|
|
20
|
+
/** Narrow a content source to the OpenAPI source (to read its parsed specs). */
|
|
21
|
+
export declare const isOpenApiSource: (source: ContentSource) => source is OpenApiContentSource;
|
|
22
|
+
export declare const openApiSource: (references: BlumeReferenceSource[], ctx: SourceContext) => OpenApiContentSource;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading a spec needs an optional package the project hasn't installed (the
|
|
3
|
+
* AsyncAPI converter, for a pre-3.0 document). Carries its own suggestion —
|
|
4
|
+
* the install command — because neither of the other spec failures fits: the
|
|
5
|
+
* file is fine and so is the network.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SpecDependencyError extends Error {
|
|
8
|
+
readonly suggestion: string;
|
|
9
|
+
constructor(message: string, suggestion: string);
|
|
10
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
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 asyncapi}. */
|
|
5
|
+
export interface AsyncApiOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Code-sample tools shown per operation (Blume renderer). Defaults to every
|
|
8
|
+
* tool appropriate to the operation's protocol binding.
|
|
9
|
+
*/
|
|
10
|
+
codeSamples?: string[];
|
|
11
|
+
/** Start nested schema rows expanded rather than collapsed (Blume renderer). Defaults to `false`. */
|
|
12
|
+
expandSchemas?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The "Try it" message composer (Blume renderer). On by default; `false`
|
|
15
|
+
* hides it. `proxy` is accepted for parity but doesn't apply to event
|
|
16
|
+
* operations — a WebSocket connect goes straight from the browser.
|
|
17
|
+
*/
|
|
18
|
+
playground?: PlaygroundOptions;
|
|
19
|
+
/** Where the reference mounts. Defaults to `/events`. */
|
|
20
|
+
route?: string;
|
|
21
|
+
/** One or more specs; each renders on its own route by default. */
|
|
22
|
+
sources?: ReferenceSourceOptions[];
|
|
23
|
+
/** Shorthand for a single source: `sources: [{ spec }]`. */
|
|
24
|
+
spec?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const asyncapiOptionsSchema: z.ZodPipe<z.ZodObject<{
|
|
27
|
+
expandSchemas: z.ZodDefault<z.ZodBoolean>;
|
|
28
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
29
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
30
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
31
|
+
label: z.ZodOptional<z.ZodString>;
|
|
32
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
33
|
+
route: z.ZodOptional<z.ZodString>;
|
|
34
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
35
|
+
spec: z.ZodString;
|
|
36
|
+
}, z.core.$strict>>>;
|
|
37
|
+
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
38
|
+
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
39
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
40
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
41
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
42
|
+
enabled: boolean;
|
|
43
|
+
proxy: string | boolean;
|
|
44
|
+
}, boolean | {
|
|
45
|
+
enabled: boolean;
|
|
46
|
+
proxy: string | boolean;
|
|
47
|
+
}>>;
|
|
48
|
+
route: z.ZodDefault<z.ZodString>;
|
|
49
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
50
|
+
}, z.core.$strict>, z.ZodTransform<Omit<{
|
|
51
|
+
expandSchemas: boolean;
|
|
52
|
+
sources: {
|
|
53
|
+
includeInLlms: boolean;
|
|
54
|
+
includeInSearch: boolean;
|
|
55
|
+
noindex: boolean;
|
|
56
|
+
seoDescriptionSuffix: boolean;
|
|
57
|
+
spec: string;
|
|
58
|
+
label?: string | undefined;
|
|
59
|
+
route?: string | undefined;
|
|
60
|
+
}[];
|
|
61
|
+
codeSamples: string[];
|
|
62
|
+
playground: {
|
|
63
|
+
enabled: boolean;
|
|
64
|
+
proxy: string | boolean;
|
|
65
|
+
};
|
|
66
|
+
route: string;
|
|
67
|
+
spec?: string | undefined;
|
|
68
|
+
}, "spec">, {
|
|
69
|
+
expandSchemas: boolean;
|
|
70
|
+
sources: {
|
|
71
|
+
includeInLlms: boolean;
|
|
72
|
+
includeInSearch: boolean;
|
|
73
|
+
noindex: boolean;
|
|
74
|
+
seoDescriptionSuffix: boolean;
|
|
75
|
+
spec: string;
|
|
76
|
+
label?: string | undefined;
|
|
77
|
+
route?: string | undefined;
|
|
78
|
+
}[];
|
|
79
|
+
codeSamples: string[];
|
|
80
|
+
playground: {
|
|
81
|
+
enabled: boolean;
|
|
82
|
+
proxy: string | boolean;
|
|
83
|
+
};
|
|
84
|
+
route: string;
|
|
85
|
+
spec?: string | undefined;
|
|
86
|
+
}>>;
|
|
87
|
+
/** `asyncapi()` options with every default applied and `spec` folded into `sources`. */
|
|
88
|
+
export type ResolvedAsyncApiOptions = z.output<typeof asyncapiOptionsSchema>;
|
|
89
|
+
export type AsyncApiAdapter = AdapterDescriptor<"asyncapi", AsyncApiOptions>;
|
|
90
|
+
/** An `asyncapi()` descriptor as the config schema resolves it. */
|
|
91
|
+
export type ResolvedAsyncApiAdapter = AdapterDescriptor<"asyncapi", ResolvedAsyncApiOptions>;
|
|
92
|
+
export declare const asyncapiAdapterSchema: z.ZodObject<{
|
|
93
|
+
kind: z.ZodLiteral<"asyncapi">;
|
|
94
|
+
options: z.ZodPipe<z.ZodObject<{
|
|
95
|
+
expandSchemas: z.ZodDefault<z.ZodBoolean>;
|
|
96
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
97
|
+
includeInLlms: z.ZodDefault<z.ZodBoolean>;
|
|
98
|
+
includeInSearch: z.ZodDefault<z.ZodBoolean>;
|
|
99
|
+
label: z.ZodOptional<z.ZodString>;
|
|
100
|
+
noindex: z.ZodDefault<z.ZodBoolean>;
|
|
101
|
+
route: z.ZodOptional<z.ZodString>;
|
|
102
|
+
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
103
|
+
spec: z.ZodString;
|
|
104
|
+
}, z.core.$strict>>>;
|
|
105
|
+
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
106
|
+
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
107
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
108
|
+
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
109
|
+
}, z.core.$strict>]>>, z.ZodTransform<{
|
|
110
|
+
enabled: boolean;
|
|
111
|
+
proxy: string | boolean;
|
|
112
|
+
}, boolean | {
|
|
113
|
+
enabled: boolean;
|
|
114
|
+
proxy: string | boolean;
|
|
115
|
+
}>>;
|
|
116
|
+
route: z.ZodDefault<z.ZodString>;
|
|
117
|
+
spec: z.ZodOptional<z.ZodString>;
|
|
118
|
+
}, z.core.$strict>, z.ZodTransform<Omit<{
|
|
119
|
+
expandSchemas: boolean;
|
|
120
|
+
sources: {
|
|
121
|
+
includeInLlms: boolean;
|
|
122
|
+
includeInSearch: boolean;
|
|
123
|
+
noindex: boolean;
|
|
124
|
+
seoDescriptionSuffix: boolean;
|
|
125
|
+
spec: string;
|
|
126
|
+
label?: string | undefined;
|
|
127
|
+
route?: string | undefined;
|
|
128
|
+
}[];
|
|
129
|
+
codeSamples: string[];
|
|
130
|
+
playground: {
|
|
131
|
+
enabled: boolean;
|
|
132
|
+
proxy: string | boolean;
|
|
133
|
+
};
|
|
134
|
+
route: string;
|
|
135
|
+
spec?: string | undefined;
|
|
136
|
+
}, "spec">, {
|
|
137
|
+
expandSchemas: boolean;
|
|
138
|
+
sources: {
|
|
139
|
+
includeInLlms: boolean;
|
|
140
|
+
includeInSearch: boolean;
|
|
141
|
+
noindex: boolean;
|
|
142
|
+
seoDescriptionSuffix: boolean;
|
|
143
|
+
spec: string;
|
|
144
|
+
label?: string | undefined;
|
|
145
|
+
route?: string | undefined;
|
|
146
|
+
}[];
|
|
147
|
+
codeSamples: string[];
|
|
148
|
+
playground: {
|
|
149
|
+
enabled: boolean;
|
|
150
|
+
proxy: string | boolean;
|
|
151
|
+
};
|
|
152
|
+
route: string;
|
|
153
|
+
spec?: string | undefined;
|
|
154
|
+
}>>;
|
|
155
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
156
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
157
|
+
}, z.core.$strict>;
|
|
158
|
+
/**
|
|
159
|
+
* An AsyncAPI reference. Blume normalizes the spec to AsyncAPI 3.x and renders
|
|
160
|
+
* its own UI — one real page per operation, in the sidebar, search, llms.txt,
|
|
161
|
+
* and OG; a `scalar()` adapter is the embedded-SPA alternative. Only the
|
|
162
|
+
* defaults differ from `openapi()`: the reference mounts at `/events`, and
|
|
163
|
+
* empty `codeSamples` means every tool the operation's protocol binding
|
|
164
|
+
* suggests.
|
|
165
|
+
*/
|
|
166
|
+
export declare const asyncapi: (options: AsyncApiOptions) => AsyncApiAdapter;
|