blume 1.7.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +217 -0
  3. package/README.md +34 -21
  4. package/dist/cli/chunk-11j0384y.js +148 -0
  5. package/dist/cli/chunk-11j0384y.js.map +10 -0
  6. package/dist/cli/{chunk-rqy0s5wh.js → chunk-1w8dp3qb.js} +17 -16
  7. package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-1w8dp3qb.js.map} +3 -3
  8. package/dist/cli/chunk-2q1dwty4.js +75 -0
  9. package/dist/cli/chunk-2q1dwty4.js.map +11 -0
  10. package/dist/cli/chunk-41za066z.js +122 -0
  11. package/dist/cli/chunk-41za066z.js.map +11 -0
  12. package/dist/cli/chunk-5a2z0198.js +133 -0
  13. package/dist/cli/chunk-5a2z0198.js.map +10 -0
  14. package/dist/cli/{chunk-5g0w1e2c.js → chunk-6k8vp3ta.js} +25 -13
  15. package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-6k8vp3ta.js.map} +4 -4
  16. package/dist/cli/{chunk-5qk08vmp.js → chunk-79njf86q.js} +133 -54
  17. package/dist/cli/chunk-79njf86q.js.map +11 -0
  18. package/dist/cli/{chunk-e7f42gdj.js → chunk-7ez8ny0t.js} +2 -2
  19. package/dist/cli/{chunk-nn13znc2.js → chunk-88cpgt6h.js} +1 -1
  20. package/dist/cli/chunk-a9kptbw5.js +361 -0
  21. package/dist/cli/chunk-a9kptbw5.js.map +14 -0
  22. package/dist/cli/chunk-abh8yjkn.js +31 -0
  23. package/dist/cli/chunk-abh8yjkn.js.map +10 -0
  24. package/dist/cli/chunk-b5aj94ah.js +91 -0
  25. package/dist/cli/chunk-b5aj94ah.js.map +10 -0
  26. package/dist/cli/{chunk-b27xqwn9.js → chunk-bctazmbk.js} +9 -5
  27. package/dist/cli/chunk-bctazmbk.js.map +10 -0
  28. package/dist/cli/chunk-beat36xx.js +279 -0
  29. package/dist/cli/chunk-beat36xx.js.map +10 -0
  30. package/dist/cli/chunk-bnbmcwfb.js +145 -0
  31. package/dist/cli/chunk-bnbmcwfb.js.map +11 -0
  32. package/dist/cli/{chunk-0xjyb285.js → chunk-bw22s759.js} +15 -5
  33. package/dist/cli/{chunk-0xjyb285.js.map → chunk-bw22s759.js.map} +4 -4
  34. package/dist/cli/chunk-by2290sx.js +39 -0
  35. package/dist/cli/chunk-by2290sx.js.map +10 -0
  36. package/dist/cli/chunk-d1tadaw7.js +79 -0
  37. package/dist/cli/chunk-d1tadaw7.js.map +10 -0
  38. package/dist/cli/{chunk-ahnw3kxw.js → chunk-d80hr03s.js} +24 -19
  39. package/dist/cli/chunk-d80hr03s.js.map +15 -0
  40. package/dist/cli/chunk-ernrthtr.js +97 -0
  41. package/dist/cli/chunk-ernrthtr.js.map +10 -0
  42. package/dist/cli/chunk-f2972sbt.js +374 -0
  43. package/dist/cli/chunk-f2972sbt.js.map +10 -0
  44. package/dist/cli/{chunk-vacwm2hv.js → chunk-f7t03s3g.js} +2 -2
  45. package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
  46. package/dist/cli/chunk-fa25z98p.js.map +11 -0
  47. package/dist/cli/{chunk-cjtn640a.js → chunk-fh5hj5jt.js} +43 -20
  48. package/dist/cli/chunk-fh5hj5jt.js.map +10 -0
  49. package/dist/cli/{chunk-yg63d42r.js → chunk-j8mw0za6.js} +86 -57
  50. package/dist/cli/chunk-j8mw0za6.js.map +35 -0
  51. package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
  52. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  53. package/dist/cli/{chunk-ps4m1xh4.js → chunk-mnqj32sj.js} +505 -542
  54. package/dist/cli/chunk-mnqj32sj.js.map +12 -0
  55. package/dist/cli/{chunk-8cjtbafj.js → chunk-mwt1k8n7.js} +100 -374
  56. package/dist/cli/chunk-mwt1k8n7.js.map +10 -0
  57. package/dist/cli/chunk-nk3ts2xk.js +51 -0
  58. package/dist/cli/chunk-nk3ts2xk.js.map +10 -0
  59. package/dist/cli/{chunk-3r45185y.js → chunk-pat2zzwc.js} +9 -11
  60. package/dist/cli/{chunk-3r45185y.js.map → chunk-pat2zzwc.js.map} +2 -2
  61. package/dist/cli/chunk-pnnvybbk.js +176 -0
  62. package/dist/cli/chunk-pnnvybbk.js.map +11 -0
  63. package/dist/cli/{chunk-4x36ddpw.js → chunk-sqn5t4q0.js} +81 -87
  64. package/dist/cli/chunk-sqn5t4q0.js.map +10 -0
  65. package/dist/cli/{chunk-bvwwhd84.js → chunk-tzne8qfq.js} +15 -15
  66. package/dist/cli/{chunk-bvwwhd84.js.map → chunk-tzne8qfq.js.map} +1 -1
  67. package/dist/cli/chunk-xaz13gwg.js +12449 -0
  68. package/dist/cli/chunk-xaz13gwg.js.map +182 -0
  69. package/dist/cli/chunk-y3e45rc8.js +102 -0
  70. package/dist/cli/chunk-y3e45rc8.js.map +10 -0
  71. package/dist/cli/chunk-z01ze5c1.js +261 -0
  72. package/dist/cli/chunk-z01ze5c1.js.map +10 -0
  73. package/dist/cli/{chunk-k79xp7av.js → chunk-z1f5arsg.js} +219 -689
  74. package/dist/cli/chunk-z1f5arsg.js.map +36 -0
  75. package/dist/cli/{chunk-1jefwnfs.js → chunk-zg2gtj10.js} +1076 -2592
  76. package/dist/cli/chunk-zg2gtj10.js.map +35 -0
  77. package/dist/cli/{chunk-dwgcp5sm.js → chunk-zxccj738.js} +1 -1
  78. package/dist/cli/index.js +214 -57
  79. package/dist/cli/index.js.map +8 -7
  80. package/dist/types/ai/agent-readability.d.ts +52 -0
  81. package/dist/types/ai/ai-catalog.d.ts +42 -0
  82. package/dist/types/ai/api/paths.d.ts +17 -0
  83. package/dist/types/ai/api-catalog.d.ts +18 -0
  84. package/dist/types/ai/ask.d.ts +368 -0
  85. package/dist/types/ai/changelog-markdown.d.ts +2 -0
  86. package/dist/types/ai/component-markdown.d.ts +2 -2
  87. package/dist/types/ai/index.d.ts +24 -0
  88. package/dist/types/ai/link-headers.d.ts +24 -0
  89. package/dist/types/ai/llms.d.ts +25 -0
  90. package/dist/types/ai/markdown.d.ts +45 -0
  91. package/dist/types/ai/mcp/discovery.d.ts +68 -0
  92. package/dist/types/ai/mcp/tools.d.ts +16 -0
  93. package/dist/types/ai/openapi-components.d.ts +43 -0
  94. package/dist/types/ai/relative-links.d.ts +26 -0
  95. package/dist/types/ai/serializers.d.ts +15 -0
  96. package/dist/types/ai/skills.d.ts +42 -0
  97. package/dist/types/ai/tar.d.ts +25 -0
  98. package/dist/types/ai/visibility.d.ts +17 -0
  99. package/dist/types/ai/web-bot-auth.d.ts +16 -0
  100. package/dist/types/analytics/adobe.d.ts +35 -0
  101. package/dist/types/analytics/amplitude.d.ts +50 -0
  102. package/dist/types/analytics/clarity.d.ts +31 -0
  103. package/dist/types/analytics/clearbit.d.ts +29 -0
  104. package/dist/types/analytics/cloudflare.d.ts +41 -0
  105. package/dist/types/analytics/fathom.d.ts +41 -0
  106. package/dist/types/analytics/google-analytics.d.ts +44 -0
  107. package/dist/types/analytics/google-tag-manager.d.ts +40 -0
  108. package/dist/types/analytics/head.d.ts +30 -0
  109. package/dist/types/analytics/heap.d.ts +40 -0
  110. package/dist/types/analytics/hightouch.d.ts +44 -0
  111. package/dist/types/analytics/hotjar.d.ts +33 -0
  112. package/dist/types/analytics/index.d.ts +61 -0
  113. package/dist/types/analytics/inline.d.ts +17 -0
  114. package/dist/types/analytics/logrocket.d.ts +44 -0
  115. package/dist/types/analytics/mixpanel.d.ts +67 -0
  116. package/dist/types/analytics/pirsch.d.ts +42 -0
  117. package/dist/types/analytics/plausible.d.ts +56 -0
  118. package/dist/types/analytics/posthog.d.ts +45 -0
  119. package/dist/types/analytics/schema.d.ts +320 -0
  120. package/dist/types/analytics/script.d.ts +46 -0
  121. package/dist/types/analytics/segment.d.ts +50 -0
  122. package/dist/types/analytics/vercel.d.ts +48 -0
  123. package/dist/types/astro/integration.d.ts +76 -0
  124. package/dist/types/astro/markdown-negotiation.d.ts +23 -0
  125. package/dist/types/astro/module-types.d.ts +14 -0
  126. package/dist/types/astro/pages.d.ts +44 -0
  127. package/dist/types/cli/env.d.ts +12 -0
  128. package/dist/types/cli/init/scaffold.d.ts +154 -0
  129. package/dist/types/components/layout/nav-utils.d.ts +11 -0
  130. package/dist/types/core/adapter.d.ts +47 -0
  131. package/dist/types/core/api-name.d.ts +7 -0
  132. package/dist/types/core/changelog-index.d.ts +13 -0
  133. package/dist/types/core/config-input.d.ts +186 -515
  134. package/dist/types/core/config.d.ts +60 -34
  135. package/dist/types/core/content-assets.d.ts +76 -0
  136. package/dist/types/core/custom-pages.d.ts +33 -0
  137. package/dist/types/core/data.d.ts +27 -12
  138. package/dist/types/core/define-components.d.ts +12 -9
  139. package/dist/types/core/deployment-env.d.ts +6 -11
  140. package/dist/types/core/frontmatter.d.ts +10 -0
  141. package/dist/types/core/graph.d.ts +18 -0
  142. package/dist/types/core/heading-markers.d.ts +54 -0
  143. package/dist/types/core/i18n-ui.d.ts +6 -2
  144. package/dist/types/core/i18n.d.ts +87 -0
  145. package/dist/types/core/includes.d.ts +138 -0
  146. package/dist/types/core/last-modified.d.ts +47 -0
  147. package/dist/types/core/links.d.ts +95 -0
  148. package/dist/types/core/locale-links.d.ts +60 -0
  149. package/dist/types/core/manifest.d.ts +17 -0
  150. package/dist/types/core/meta.d.ts +38 -0
  151. package/dist/types/core/nav-diagnostics.d.ts +26 -0
  152. package/dist/types/core/navigation.d.ts +6 -0
  153. package/dist/types/core/node-require.d.ts +19 -0
  154. package/dist/types/core/package-json.d.ts +13 -0
  155. package/dist/types/core/probe.d.ts +42 -0
  156. package/dist/types/core/project-graph.d.ts +51 -0
  157. package/dist/types/core/project.d.ts +2 -0
  158. package/dist/types/core/safe-href.d.ts +2 -0
  159. package/dist/types/core/safe-links.d.ts +26 -0
  160. package/dist/types/core/schema.d.ts +2282 -452
  161. package/dist/types/core/site-url.d.ts +16 -0
  162. package/dist/types/core/sources/assets.d.ts +36 -0
  163. package/dist/types/core/sources/cache.d.ts +37 -0
  164. package/dist/types/core/sources/collection.d.ts +28 -0
  165. package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
  166. package/dist/types/core/sources/contentful.d.ts +40 -0
  167. package/dist/types/core/sources/filesystem.d.ts +24 -0
  168. package/dist/types/core/sources/github-releases.d.ts +31 -0
  169. package/dist/types/core/sources/json.d.ts +30 -0
  170. package/dist/types/core/sources/lexical.d.ts +19 -0
  171. package/dist/types/core/sources/lower.d.ts +75 -0
  172. package/dist/types/core/sources/mdx-remote.d.ts +28 -0
  173. package/dist/types/core/sources/normalize.d.ts +147 -0
  174. package/dist/types/core/sources/notion.d.ts +131 -0
  175. package/dist/types/core/sources/obsidian.d.ts +46 -0
  176. package/dist/types/core/sources/payload.d.ts +39 -0
  177. package/dist/types/core/sources/portable-text.d.ts +42 -0
  178. package/dist/types/core/sources/read.d.ts +23 -0
  179. package/dist/types/core/sources/remote.d.ts +74 -0
  180. package/dist/types/core/sources/resolve.d.ts +19 -0
  181. package/dist/types/core/sources/sanity.d.ts +43 -0
  182. package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
  183. package/dist/types/core/sources/strapi.d.ts +33 -0
  184. package/dist/types/core/sources/types.d.ts +7 -0
  185. package/dist/types/core/sources/watch.d.ts +45 -0
  186. package/dist/types/core/text-width.d.ts +11 -0
  187. package/dist/types/core/types.d.ts +15 -1
  188. package/dist/types/core/unrecognized-keys.d.ts +7 -0
  189. package/dist/types/core/versions.d.ts +72 -0
  190. package/dist/types/core/yaml.d.ts +9 -0
  191. package/dist/types/deploy/adapter-output.d.ts +45 -0
  192. package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
  193. package/dist/types/deploy/adapters/index.d.ts +29 -0
  194. package/dist/types/deploy/adapters/netlify.d.ts +37 -0
  195. package/dist/types/deploy/adapters/node.d.ts +37 -0
  196. package/dist/types/deploy/adapters/registry.d.ts +133 -0
  197. package/dist/types/deploy/adapters/types.d.ts +71 -0
  198. package/dist/types/deploy/adapters/vercel.d.ts +38 -0
  199. package/dist/types/deploy/artifacts.d.ts +65 -0
  200. package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
  201. package/dist/types/deploy/function-bundle.d.ts +80 -0
  202. package/dist/types/deploy/headers.d.ts +50 -0
  203. package/dist/types/deploy/node-headers.d.ts +42 -0
  204. package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
  205. package/dist/types/deploy/platforms/index.d.ts +18 -0
  206. package/dist/types/deploy/platforms/netlify.d.ts +13 -0
  207. package/dist/types/deploy/platforms/node.d.ts +11 -0
  208. package/dist/types/deploy/platforms/paths.d.ts +27 -0
  209. package/dist/types/deploy/platforms/static.d.ts +10 -0
  210. package/dist/types/deploy/platforms/types.d.ts +104 -0
  211. package/dist/types/deploy/platforms/vercel.d.ts +32 -0
  212. package/dist/types/deploy/redirects.d.ts +53 -0
  213. package/dist/types/deploy/robots.d.ts +8 -0
  214. package/dist/types/deploy/rss.d.ts +31 -0
  215. package/dist/types/deploy/sitemap.d.ts +21 -0
  216. package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
  217. package/dist/types/markdown/code-title.d.ts +32 -0
  218. package/dist/types/markdown/fence-meta.d.ts +23 -0
  219. package/dist/types/markdown/themes.d.ts +3 -3
  220. package/dist/types/openapi/asyncapi.d.ts +129 -0
  221. package/dist/types/openapi/graphql-build.d.ts +8 -0
  222. package/dist/types/openapi/graphql.d.ts +122 -0
  223. package/dist/types/openapi/model.d.ts +158 -0
  224. package/dist/types/openapi/parse.d.ts +57 -0
  225. package/dist/types/openapi/references.d.ts +37 -25
  226. package/dist/types/openapi/render-mdx.d.ts +33 -0
  227. package/dist/types/openapi/sentence.d.ts +7 -0
  228. package/dist/types/openapi/signature.d.ts +10 -0
  229. package/dist/types/openapi/source.d.ts +22 -0
  230. package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
  231. package/dist/types/reference/asyncapi.d.ts +166 -0
  232. package/dist/types/reference/graphql.d.ts +181 -0
  233. package/dist/types/reference/index.d.ts +32 -0
  234. package/dist/types/reference/openapi.d.ts +165 -0
  235. package/dist/types/reference/options.d.ts +157 -0
  236. package/dist/types/reference/scalar.d.ts +136 -0
  237. package/dist/types/reference/schema.d.ts +630 -0
  238. package/dist/types/search/adapters/algolia.d.ts +32 -0
  239. package/dist/types/search/adapters/flexsearch.d.ts +12 -0
  240. package/dist/types/search/adapters/index.d.ts +31 -0
  241. package/dist/types/search/adapters/mixedbread.d.ts +22 -0
  242. package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
  243. package/dist/types/search/adapters/orama.d.ts +13 -0
  244. package/dist/types/search/adapters/pagefind.d.ts +12 -0
  245. package/dist/types/search/adapters/registry.d.ts +228 -0
  246. package/dist/types/search/adapters/types.d.ts +34 -0
  247. package/dist/types/search/adapters/typesense.d.ts +42 -0
  248. package/dist/types/search/build.d.ts +23 -0
  249. package/dist/types/search/documents.d.ts +90 -0
  250. package/dist/types/search/facets.d.ts +3 -0
  251. package/dist/types/search/sync/algolia.d.ts +14 -0
  252. package/dist/types/search/sync/index.d.ts +14 -0
  253. package/dist/types/search/sync/orama-cloud.d.ts +10 -0
  254. package/dist/types/search/sync/typesense.d.ts +14 -0
  255. package/dist/types/sources/contentful.d.ts +68 -0
  256. package/dist/types/sources/custom.d.ts +20 -0
  257. package/dist/types/sources/filesystem.d.ts +42 -0
  258. package/dist/types/sources/github-releases.d.ts +46 -0
  259. package/dist/types/sources/index.d.ts +48 -0
  260. package/dist/types/sources/mdx-remote.d.ts +63 -0
  261. package/dist/types/sources/notion.d.ts +65 -0
  262. package/dist/types/sources/obsidian.d.ts +34 -0
  263. package/dist/types/sources/payload.d.ts +68 -0
  264. package/dist/types/sources/registry.d.ts +1414 -0
  265. package/dist/types/sources/sanity.d.ts +69 -0
  266. package/dist/types/sources/shared.d.ts +46 -0
  267. package/dist/types/sources/strapi.d.ts +66 -0
  268. package/dist/types/theme/icon-kind.d.ts +11 -0
  269. package/dist/types/theme/icons.d.ts +20 -0
  270. package/docs/01-quickstart.mdx +18 -18
  271. package/docs/02-deployment.mdx +50 -26
  272. package/docs/03-upgrading.mdx +351 -0
  273. package/docs/04-migrating.mdx +58 -0
  274. package/docs/08-faq.mdx +3 -3
  275. package/docs/advanced/blog.mdx +13 -6
  276. package/docs/advanced/changelog.mdx +23 -35
  277. package/docs/advanced/custom-pages.mdx +20 -8
  278. package/docs/advanced/meta.ts +1 -8
  279. package/docs/advanced/skills.mdx +8 -0
  280. package/docs/cli/audit.mdx +646 -0
  281. package/docs/cli/doctor.mdx +29 -0
  282. package/docs/{reference/eval.mdx → cli/evals.mdx} +9 -8
  283. package/docs/cli/index.mdx +105 -0
  284. package/docs/cli/meta.ts +7 -0
  285. package/docs/{reference → cli}/translate.mdx +1 -1
  286. package/docs/cli/validate.mdx +41 -0
  287. package/docs/cli/version.mdx +40 -0
  288. package/docs/configuration/analytics.mdx +350 -59
  289. package/docs/configuration/ask-ai.mdx +162 -61
  290. package/docs/configuration/customization.mdx +15 -9
  291. package/docs/configuration/index.mdx +50 -31
  292. package/docs/configuration/search.mdx +75 -54
  293. package/docs/configuration/theming.mdx +24 -15
  294. package/docs/content/components.mdx +21 -5
  295. package/docs/{reference → content}/frontmatter.mdx +35 -1
  296. package/docs/content/i18n.mdx +8 -6
  297. package/docs/content/includes.mdx +2 -4
  298. package/docs/content/index.mdx +1 -1
  299. package/docs/content/islands.mdx +10 -5
  300. package/docs/content/meta.mdx +1 -1
  301. package/docs/content/meta.ts +1 -0
  302. package/docs/content/navigation.mdx +9 -7
  303. package/docs/content/sources.mdx +145 -50
  304. package/docs/content/syntax.mdx +16 -12
  305. package/docs/content/versioning.mdx +3 -3
  306. package/docs/discoverability/agent-discovery.mdx +11 -11
  307. package/docs/discoverability/index.mdx +4 -4
  308. package/docs/discoverability/json-api.mdx +4 -4
  309. package/docs/discoverability/llms-txt.mdx +6 -6
  310. package/docs/discoverability/markdown.mdx +4 -4
  311. package/docs/discoverability/mcp.mdx +11 -11
  312. package/docs/discoverability/sitemap-and-robots.mdx +3 -3
  313. package/docs/index.mdx +2 -2
  314. package/docs/references/asyncapi.mdx +59 -0
  315. package/docs/{advanced → references}/graphql.mdx +45 -32
  316. package/docs/{reference → references}/meta.ts +2 -2
  317. package/docs/references/openapi.mdx +171 -0
  318. package/docs/references/scalar.mdx +64 -0
  319. package/package.json +42 -8
  320. package/skills/blume/SKILL.md +21 -8
  321. package/skills/blume-migrate/SKILL.md +22 -21
  322. package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
  323. package/skills/blume-migrate/references/docusaurus.md +5 -4
  324. package/skills/blume-migrate/references/fumadocs.md +4 -4
  325. package/skills/blume-migrate/references/mintlify.md +23 -8
  326. package/skills/blume-migrate/references/monorepo.md +6 -6
  327. package/skills/blume-migrate/references/starlight.md +4 -4
  328. package/src/ai/agent-readability.ts +21 -22
  329. package/src/ai/ai-catalog.ts +50 -32
  330. package/src/ai/api/handlers.ts +46 -11
  331. package/src/ai/api-catalog.ts +8 -8
  332. package/src/ai/ask-data.ts +1 -1
  333. package/src/ai/ask.ts +624 -100
  334. package/src/ai/changelog-markdown.ts +91 -0
  335. package/src/ai/component-markdown.ts +328 -12
  336. package/src/ai/index.ts +45 -0
  337. package/src/ai/link-headers.ts +7 -6
  338. package/src/ai/llms.ts +20 -15
  339. package/src/ai/markdown.ts +35 -5
  340. package/src/ai/mcp/data.ts +9 -5
  341. package/src/ai/openapi-components.ts +4 -1
  342. package/src/ai/relative-links.ts +170 -0
  343. package/src/ai/serializers.ts +2 -2
  344. package/src/ai/skills.ts +1 -1
  345. package/src/ai/web-bot-auth.ts +2 -2
  346. package/src/analytics/adobe.ts +46 -0
  347. package/src/analytics/amplitude.ts +79 -0
  348. package/src/analytics/clarity.ts +46 -0
  349. package/src/analytics/clearbit.ts +47 -0
  350. package/src/analytics/cloudflare.ts +67 -0
  351. package/src/analytics/fathom.ts +64 -0
  352. package/src/analytics/google-analytics.ts +84 -0
  353. package/src/analytics/google-tag-manager.ts +61 -0
  354. package/src/analytics/head.ts +130 -0
  355. package/src/analytics/heap.ts +65 -0
  356. package/src/analytics/hightouch.ts +77 -0
  357. package/src/analytics/hotjar.ts +47 -0
  358. package/src/analytics/index.ts +71 -0
  359. package/src/analytics/inline.ts +21 -0
  360. package/src/analytics/logrocket.ts +71 -0
  361. package/src/analytics/mixpanel.ts +92 -0
  362. package/src/analytics/pirsch.ts +66 -0
  363. package/src/analytics/plausible.ts +83 -0
  364. package/src/analytics/posthog.ts +78 -0
  365. package/src/analytics/schema.ts +60 -0
  366. package/src/analytics/script.ts +60 -0
  367. package/src/analytics/segment.ts +85 -0
  368. package/src/analytics/vercel.ts +50 -0
  369. package/src/astro/adapter-root.ts +7 -9
  370. package/src/astro/component-slots.ts +131 -91
  371. package/src/astro/generate.ts +112 -345
  372. package/src/astro/integration.ts +2 -6
  373. package/src/astro/pages.ts +13 -101
  374. package/src/astro/render-deps.ts +379 -0
  375. package/src/astro/runtime-deps.ts +201 -0
  376. package/src/astro/templates.ts +554 -541
  377. package/src/audit/agent.ts +24 -0
  378. package/src/audit/catalog.ts +2 -2
  379. package/src/audit/checks/assets.ts +2 -2
  380. package/src/audit/checks/dns-aid.ts +1 -1
  381. package/src/audit/checks/duplicates.ts +3 -1
  382. package/src/audit/checks/i18n.ts +1 -1
  383. package/src/audit/checks/indexability.ts +7 -7
  384. package/src/audit/checks/links.ts +2 -2
  385. package/src/audit/checks/llms.ts +6 -6
  386. package/src/audit/checks/network.ts +3 -3
  387. package/src/audit/checks/og-image.ts +2 -2
  388. package/src/audit/checks/robots.ts +1 -1
  389. package/src/audit/checks/sitemap.ts +2 -2
  390. package/src/audit/checks/social.ts +1 -1
  391. package/src/audit/run.ts +4 -3
  392. package/src/audit/terms.ts +31 -0
  393. package/src/audit/url.ts +13 -13
  394. package/src/cli/command-meta.ts +10 -0
  395. package/src/cli/commands/audit.ts +39 -20
  396. package/src/cli/commands/build.ts +71 -316
  397. package/src/cli/commands/check.ts +1 -0
  398. package/src/cli/commands/dev.ts +40 -1
  399. package/src/cli/commands/doctor.ts +90 -14
  400. package/src/cli/commands/eject.ts +44 -7
  401. package/src/cli/commands/eval.ts +2 -2
  402. package/src/cli/commands/init.ts +161 -41
  403. package/src/cli/commands/migrate.ts +121 -0
  404. package/src/cli/commands/preview.ts +7 -1
  405. package/src/cli/commands/translate.ts +2 -2
  406. package/src/cli/commands/upgrade.ts +141 -0
  407. package/src/cli/commands/version.ts +57 -44
  408. package/src/cli/eject-scripts.ts +121 -6
  409. package/src/cli/index.ts +11 -1
  410. package/src/cli/init/install.ts +70 -0
  411. package/src/cli/init/questions.ts +7 -0
  412. package/src/cli/init/scaffold.ts +459 -75
  413. package/src/cli/lazy-command.ts +37 -1
  414. package/src/cli/prepare.ts +40 -6
  415. package/src/cli/required-secrets.ts +38 -11
  416. package/src/cli/unknown-flags.ts +266 -0
  417. package/src/cli/yarn-pnp.ts +52 -0
  418. package/src/components/content/AccordionItem.astro +7 -1
  419. package/src/components/content/Card.astro +4 -3
  420. package/src/components/content/ColorItem.astro +22 -4
  421. package/src/components/content/GithubInfo.astro +2 -2
  422. package/src/components/content/Prompt.astro +25 -25
  423. package/src/components/content/Tabs.astro +3 -1
  424. package/src/components/content/Tile.astro +2 -3
  425. package/src/components/content/Tooltip.astro +57 -9
  426. package/src/components/content/content-strings.ts +34 -0
  427. package/src/components/content/diff.ts +1 -1
  428. package/src/components/content/mermaid-element.ts +13 -2
  429. package/src/components/content/prompt-markdown.ts +292 -0
  430. package/src/components/content/tooltip-id.ts +41 -0
  431. package/src/components/islands/hooks.ts +25 -2
  432. package/src/components/layout/Analytics.astro +21 -79
  433. package/src/components/layout/Banner.astro +3 -1
  434. package/src/components/layout/DiscoveryLinks.astro +69 -0
  435. package/src/components/layout/Header.astro +83 -20
  436. package/src/components/layout/LanguageSwitcher.astro +4 -1
  437. package/src/components/layout/Logo.astro +23 -2
  438. package/src/components/layout/NavSelector.astro +13 -2
  439. package/src/components/layout/NavTree.astro +12 -3
  440. package/src/components/layout/NavTreeScript.astro +17 -3
  441. package/src/components/layout/PageActions.astro +3 -3
  442. package/src/components/layout/PageFeedback.astro +11 -1
  443. package/src/components/layout/PageLayout.astro +52 -5
  444. package/src/components/layout/ReferenceLayout.astro +21 -12
  445. package/src/components/layout/RootLayout.astro +69 -66
  446. package/src/components/layout/Search.astro +30 -6
  447. package/src/components/layout/WebMcp.astro +1 -1
  448. package/src/components/layout/analytics-client.ts +72 -15
  449. package/src/components/layout/drawer-inert.ts +113 -15
  450. package/src/components/layout/dropdown-clamp.ts +105 -0
  451. package/src/components/layout/head-scripts.ts +15 -6
  452. package/src/components/layout/nav-utils.ts +17 -0
  453. package/src/components/layout/search/algolia.ts +8 -8
  454. package/src/components/layout/search/orama-cloud.ts +9 -7
  455. package/src/components/layout/search/typesense.ts +11 -17
  456. package/src/components/openapi/MessageComposer.astro +2 -2
  457. package/src/components/openapi/Playground.astro +2 -2
  458. package/src/components/openapi/playground-client.ts +79 -10
  459. package/src/core/changelog-index.ts +24 -0
  460. package/src/core/component-overrides.ts +399 -154
  461. package/src/core/config-input.ts +188 -553
  462. package/src/core/config.ts +130 -41
  463. package/src/core/custom-pages.ts +105 -0
  464. package/src/core/data.ts +31 -12
  465. package/src/core/define-components.ts +12 -9
  466. package/src/core/deployment-env.ts +18 -74
  467. package/src/core/diagnostics.ts +14 -7
  468. package/src/core/graph.ts +69 -25
  469. package/src/core/i18n-ui.ts +6 -2
  470. package/src/core/i18n.ts +17 -0
  471. package/src/core/includes.ts +156 -38
  472. package/src/core/last-modified.ts +6 -11
  473. package/src/core/links.ts +166 -2
  474. package/src/core/manifest.ts +10 -3
  475. package/src/core/navigation.ts +115 -16
  476. package/src/core/new-tab.ts +35 -0
  477. package/src/core/node-require.ts +21 -0
  478. package/src/core/project-graph.ts +42 -26
  479. package/src/core/project.ts +9 -4
  480. package/src/core/request-body.ts +61 -0
  481. package/src/core/safe-href.ts +28 -0
  482. package/src/core/safe-links.ts +68 -0
  483. package/src/core/schema.ts +517 -739
  484. package/src/core/server-features.ts +8 -9
  485. package/src/core/sources/assets.ts +47 -11
  486. package/src/core/sources/collection.ts +67 -0
  487. package/src/core/sources/contentful-rich-text.ts +285 -0
  488. package/src/core/sources/contentful.ts +173 -0
  489. package/src/core/sources/github-releases.ts +51 -1
  490. package/src/core/sources/json.ts +71 -0
  491. package/src/core/sources/lexical.ts +195 -0
  492. package/src/core/sources/lower.ts +226 -0
  493. package/src/core/sources/normalize.ts +52 -2
  494. package/src/core/sources/notion.ts +39 -28
  495. package/src/core/sources/payload.ts +135 -0
  496. package/src/core/sources/portable-text.ts +11 -16
  497. package/src/core/sources/remote.ts +226 -0
  498. package/src/core/sources/resolve.ts +104 -166
  499. package/src/core/sources/sanity.ts +16 -49
  500. package/src/core/sources/strapi-blocks.ts +124 -0
  501. package/src/core/sources/strapi.ts +191 -0
  502. package/src/core/sources/types.ts +12 -1
  503. package/src/core/types.ts +15 -1
  504. package/src/core/ui-packs/ar.ts +6 -2
  505. package/src/core/ui-packs/bg.ts +6 -2
  506. package/src/core/ui-packs/bn.ts +6 -2
  507. package/src/core/ui-packs/ca.ts +3 -1
  508. package/src/core/ui-packs/cs.ts +6 -2
  509. package/src/core/ui-packs/da.ts +6 -2
  510. package/src/core/ui-packs/de.ts +6 -2
  511. package/src/core/ui-packs/el.ts +3 -1
  512. package/src/core/ui-packs/es.ts +3 -1
  513. package/src/core/ui-packs/fa.ts +6 -2
  514. package/src/core/ui-packs/fi.ts +6 -2
  515. package/src/core/ui-packs/fr.ts +3 -1
  516. package/src/core/ui-packs/he.ts +6 -2
  517. package/src/core/ui-packs/hi.ts +6 -2
  518. package/src/core/ui-packs/hr.ts +6 -2
  519. package/src/core/ui-packs/hu.ts +6 -2
  520. package/src/core/ui-packs/id.ts +6 -2
  521. package/src/core/ui-packs/it.ts +3 -1
  522. package/src/core/ui-packs/ja.ts +3 -1
  523. package/src/core/ui-packs/ko.ts +3 -1
  524. package/src/core/ui-packs/nl.ts +6 -2
  525. package/src/core/ui-packs/no.ts +6 -2
  526. package/src/core/ui-packs/pl.ts +6 -2
  527. package/src/core/ui-packs/pt-br.ts +3 -1
  528. package/src/core/ui-packs/pt.ts +3 -1
  529. package/src/core/ui-packs/ro.ts +6 -2
  530. package/src/core/ui-packs/ru.ts +6 -2
  531. package/src/core/ui-packs/sk.ts +6 -2
  532. package/src/core/ui-packs/sr.ts +6 -2
  533. package/src/core/ui-packs/sv.ts +6 -2
  534. package/src/core/ui-packs/th.ts +3 -1
  535. package/src/core/ui-packs/tr.ts +6 -2
  536. package/src/core/ui-packs/uk.ts +6 -2
  537. package/src/core/ui-packs/vi.ts +3 -1
  538. package/src/core/ui-packs/zh-tw.ts +3 -1
  539. package/src/core/ui-packs/zh.ts +3 -1
  540. package/src/core/unrecognized-keys.ts +10 -0
  541. package/src/core/version-cut.ts +116 -8
  542. package/src/deploy/adapter-output.ts +57 -97
  543. package/src/deploy/adapters/cloudflare.ts +39 -0
  544. package/src/deploy/adapters/index.ts +41 -0
  545. package/src/deploy/adapters/netlify.ts +34 -0
  546. package/src/deploy/adapters/node.ts +34 -0
  547. package/src/deploy/adapters/registry.ts +127 -0
  548. package/src/deploy/adapters/types.ts +92 -0
  549. package/src/deploy/adapters/vercel.ts +35 -0
  550. package/src/deploy/artifacts.ts +55 -27
  551. package/src/deploy/cloudflare-negotiation.ts +179 -100
  552. package/src/deploy/function-bundle.ts +18 -3
  553. package/src/deploy/headers.ts +124 -23
  554. package/src/deploy/node-headers.ts +198 -0
  555. package/src/deploy/platforms/cloudflare.ts +312 -0
  556. package/src/deploy/platforms/index.ts +67 -0
  557. package/src/deploy/platforms/netlify.ts +52 -0
  558. package/src/deploy/platforms/node.ts +40 -0
  559. package/src/deploy/platforms/paths.ts +42 -0
  560. package/src/deploy/platforms/static.ts +29 -0
  561. package/src/deploy/platforms/types.ts +112 -0
  562. package/src/deploy/platforms/vercel.ts +193 -0
  563. package/src/deploy/redirects.ts +30 -18
  564. package/src/deploy/robots.ts +3 -3
  565. package/src/deploy/rss.ts +2 -2
  566. package/src/deploy/sitemap.ts +2 -2
  567. package/src/deploy/vercel-negotiation.ts +2 -2
  568. package/src/eval/agents.ts +32 -1
  569. package/src/eval/findings.ts +19 -11
  570. package/src/eval/report.ts +10 -2
  571. package/src/markdown/external-links.ts +65 -0
  572. package/src/markdown/include.ts +45 -27
  573. package/src/markdown/index.ts +34 -9
  574. package/src/markdown/inline-code.ts +12 -6
  575. package/src/markdown/relative-links.ts +324 -0
  576. package/src/markdown/themes.ts +3 -3
  577. package/src/migrate/migrate.ts +149 -0
  578. package/src/openapi/parse.ts +64 -16
  579. package/src/openapi/proxy.ts +62 -10
  580. package/src/openapi/references.ts +147 -147
  581. package/src/openapi/render-mdx.ts +32 -10
  582. package/src/openapi/scalar.ts +15 -13
  583. package/src/openapi/sentence.ts +14 -0
  584. package/src/openapi/source.ts +37 -21
  585. package/src/openapi/spec-dependency-error.ts +15 -0
  586. package/src/reference/asyncapi.ts +83 -0
  587. package/src/reference/graphql.ts +89 -0
  588. package/src/reference/index.ts +40 -0
  589. package/src/reference/openapi.ts +83 -0
  590. package/src/reference/options.ts +201 -0
  591. package/src/reference/scalar.ts +136 -0
  592. package/src/reference/schema.ts +88 -0
  593. package/src/registry/eject.ts +97 -42
  594. package/src/search/adapters/algolia.ts +46 -0
  595. package/src/search/adapters/flexsearch.ts +29 -0
  596. package/src/search/adapters/index.ts +39 -0
  597. package/src/search/adapters/mixedbread.ts +39 -0
  598. package/src/search/adapters/orama-cloud.ts +51 -0
  599. package/src/search/adapters/orama.ts +24 -0
  600. package/src/search/adapters/pagefind.ts +27 -0
  601. package/src/search/adapters/registry.ts +131 -0
  602. package/src/search/adapters/types.ts +46 -0
  603. package/src/search/adapters/typesense.ts +57 -0
  604. package/src/search/build.ts +8 -4
  605. package/src/search/documents.ts +6 -0
  606. package/src/search/sync/algolia.ts +12 -11
  607. package/src/search/sync/index.ts +35 -20
  608. package/src/search/sync/orama-cloud.ts +12 -9
  609. package/src/search/sync/typesense.ts +15 -13
  610. package/src/sources/contentful.ts +63 -0
  611. package/src/sources/custom.ts +38 -0
  612. package/src/sources/filesystem.ts +51 -0
  613. package/src/sources/github-releases.ts +52 -0
  614. package/src/sources/index.ts +60 -0
  615. package/src/sources/mdx-remote.ts +76 -0
  616. package/src/sources/notion.ts +63 -0
  617. package/src/sources/obsidian.ts +38 -0
  618. package/src/sources/payload.ts +60 -0
  619. package/src/sources/registry.ts +182 -0
  620. package/src/sources/sanity.ts +66 -0
  621. package/src/sources/shared.ts +52 -0
  622. package/src/sources/strapi.ts +58 -0
  623. package/src/theme/entry.ts +24 -2
  624. package/src/translate/report.ts +40 -7
  625. package/src/upgrade/upgrade.ts +499 -0
  626. package/dist/cli/chunk-0qymqwzz.js +0 -164
  627. package/dist/cli/chunk-0qymqwzz.js.map +0 -15
  628. package/dist/cli/chunk-1jefwnfs.js.map +0 -48
  629. package/dist/cli/chunk-2mzebbbz.js +0 -69
  630. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  631. package/dist/cli/chunk-4x36ddpw.js.map +0 -11
  632. package/dist/cli/chunk-5093q3n7.js +0 -68
  633. package/dist/cli/chunk-5093q3n7.js.map +0 -10
  634. package/dist/cli/chunk-5qk08vmp.js.map +0 -11
  635. package/dist/cli/chunk-7s8hm3b6.js +0 -5347
  636. package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
  637. package/dist/cli/chunk-8cjtbafj.js.map +0 -13
  638. package/dist/cli/chunk-97r59kpr.js +0 -381
  639. package/dist/cli/chunk-97r59kpr.js.map +0 -12
  640. package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
  641. package/dist/cli/chunk-b27xqwn9.js.map +0 -10
  642. package/dist/cli/chunk-bf6bt1xt.js +0 -185
  643. package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
  644. package/dist/cli/chunk-cjtn640a.js.map +0 -10
  645. package/dist/cli/chunk-ct47dqpx.js.map +0 -11
  646. package/dist/cli/chunk-esphfr8p.js +0 -107
  647. package/dist/cli/chunk-esphfr8p.js.map +0 -11
  648. package/dist/cli/chunk-ex56aa81.js +0 -1016
  649. package/dist/cli/chunk-ex56aa81.js.map +0 -13
  650. package/dist/cli/chunk-garjf5z9.js +0 -30
  651. package/dist/cli/chunk-garjf5z9.js.map +0 -10
  652. package/dist/cli/chunk-js7saxwm.js +0 -1045
  653. package/dist/cli/chunk-js7saxwm.js.map +0 -22
  654. package/dist/cli/chunk-k79xp7av.js.map +0 -39
  655. package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
  656. package/dist/cli/chunk-q4rae3bg.js +0 -60
  657. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  658. package/dist/cli/chunk-rz9jmfhz.js +0 -108
  659. package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
  660. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  661. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  662. package/dist/cli/chunk-vrfp10qk.js +0 -81
  663. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  664. package/dist/cli/chunk-yg63d42r.js.map +0 -34
  665. package/docs/advanced/api-reference.mdx +0 -240
  666. package/docs/reference/cli.mdx +0 -197
  667. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  668. package/src/components/content/changelog-element.ts +0 -69
  669. package/src/search/providers.ts +0 -91
  670. /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-7ez8ny0t.js.map} +0 -0
  671. /package/dist/cli/{chunk-nn13znc2.js.map → chunk-88cpgt6h.js.map} +0 -0
  672. /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-f7t03s3g.js.map} +0 -0
  673. /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-zxccj738.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 API reference blocks into concrete routes,
5
- * labels, and a renderer choice — no file IO, so the content source, the
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
- export type ReferenceKind = "openapi" | "asyncapi" | "graphql";
11
- /** Who renders a reference: Blume's own UI, or the embedded Scalar SPA. */
12
- export type ReferenceRenderer = "blume" | "scalar";
13
- /** Per-block display options for the Blume renderer. */
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, label, and renderer. */
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
- * Arbitrary Scalar config forwarded to `<ScalarComponent>` (Scalar renderer
66
- * only). Takes precedence over Blume's derived spec/theme config. Typed off
67
- * the config schema so the two can never drift.
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?: ResolvedConfig["openapi"]["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 enabled reference. Both blocks honor their `renderer` —
88
- * Blume's own UI by default, with the embedded Scalar SPA as the opt-out.
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 renderer. References no
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 (both kinds), deduped by route (first wins). */
100
- export declare const blumeReferences: (config: ResolvedConfig) => ReferenceSource[];
101
- /** Whether any reference is Scalar-rendered (gates the `@scalar/astro` dep + pages). */
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 reference kinds whose enabled, Blume-rendered playground opted into 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. The generator's per-spec allowlist diagnostics key on
108
- * this, so it shares one definition with {@link needsPlaygroundProxy}.
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 builtinProxyKinds: (config: ResolvedConfig) => ReferenceKind[];
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 enabled Blume-rendered block's playground opted into it with
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;