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.
Files changed (690) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +245 -0
  3. package/README.md +34 -21
  4. package/dist/cli/{chunk-vacwm2hv.js → chunk-27g6wdth.js} +2 -2
  5. package/dist/cli/{chunk-ps4m1xh4.js → chunk-2hn4b8z7.js} +513 -550
  6. package/dist/cli/chunk-2hn4b8z7.js.map +12 -0
  7. package/dist/cli/chunk-5shv93fd.js +39 -0
  8. package/dist/cli/chunk-5shv93fd.js.map +10 -0
  9. package/dist/cli/chunk-6crbhc3x.js +361 -0
  10. package/dist/cli/chunk-6crbhc3x.js.map +14 -0
  11. package/dist/cli/{chunk-8cjtbafj.js → chunk-6hsn950k.js} +109 -383
  12. package/dist/cli/chunk-6hsn950k.js.map +10 -0
  13. package/dist/cli/chunk-6vm74dry.js +148 -0
  14. package/dist/cli/chunk-6vm74dry.js.map +10 -0
  15. package/dist/cli/{chunk-yg63d42r.js → chunk-79jhk4py.js} +87 -58
  16. package/dist/cli/chunk-79jhk4py.js.map +35 -0
  17. package/dist/cli/chunk-82bbrxdn.js +51 -0
  18. package/dist/cli/chunk-82bbrxdn.js.map +10 -0
  19. package/dist/cli/chunk-abh8yjkn.js +31 -0
  20. package/dist/cli/chunk-abh8yjkn.js.map +10 -0
  21. package/dist/cli/chunk-ah61y8py.js +75 -0
  22. package/dist/cli/chunk-ah61y8py.js.map +11 -0
  23. package/dist/cli/{chunk-dwgcp5sm.js → chunk-ce574jw2.js} +1 -1
  24. package/dist/cli/chunk-ch6g3ar0.js +102 -0
  25. package/dist/cli/chunk-ch6g3ar0.js.map +10 -0
  26. package/dist/cli/chunk-dh8cwk36.js +279 -0
  27. package/dist/cli/chunk-dh8cwk36.js.map +10 -0
  28. package/dist/cli/{chunk-rqy0s5wh.js → chunk-epjnccmv.js} +17 -16
  29. package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-epjnccmv.js.map} +3 -3
  30. package/dist/cli/chunk-f2z5v128.js +97 -0
  31. package/dist/cli/chunk-f2z5v128.js.map +10 -0
  32. package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
  33. package/dist/cli/chunk-fa25z98p.js.map +11 -0
  34. package/dist/cli/{chunk-1jefwnfs.js → chunk-fs23ddbb.js} +1076 -2592
  35. package/dist/cli/chunk-fs23ddbb.js.map +35 -0
  36. package/dist/cli/{chunk-e7f42gdj.js → chunk-fxypxtvm.js} +2 -2
  37. package/dist/cli/{chunk-bvwwhd84.js → chunk-fz5wtpmh.js} +15 -15
  38. package/dist/cli/{chunk-bvwwhd84.js.map → chunk-fz5wtpmh.js.map} +1 -1
  39. package/dist/cli/chunk-hdpx1tax.js +91 -0
  40. package/dist/cli/chunk-hdpx1tax.js.map +10 -0
  41. package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
  42. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  43. package/dist/cli/{chunk-ahnw3kxw.js → chunk-jwyddg7y.js} +27 -22
  44. package/dist/cli/chunk-jwyddg7y.js.map +15 -0
  45. package/dist/cli/{chunk-cjtn640a.js → chunk-kdp5q7ke.js} +43 -20
  46. package/dist/cli/chunk-kdp5q7ke.js.map +10 -0
  47. package/dist/cli/{chunk-5g0w1e2c.js → chunk-kpf8rrjc.js} +28 -16
  48. package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-kpf8rrjc.js.map} +4 -4
  49. package/dist/cli/chunk-m3vmjgmq.js +133 -0
  50. package/dist/cli/chunk-m3vmjgmq.js.map +10 -0
  51. package/dist/cli/{chunk-b27xqwn9.js → chunk-mb2919y2.js} +9 -5
  52. package/dist/cli/chunk-mb2919y2.js.map +10 -0
  53. package/dist/cli/{chunk-5qk08vmp.js → chunk-q5163e60.js} +133 -54
  54. package/dist/cli/chunk-q5163e60.js.map +11 -0
  55. package/dist/cli/chunk-qkqwkpte.js +12437 -0
  56. package/dist/cli/chunk-qkqwkpte.js.map +182 -0
  57. package/dist/cli/{chunk-4x36ddpw.js → chunk-qs4q5p4e.js} +81 -87
  58. package/dist/cli/chunk-qs4q5p4e.js.map +10 -0
  59. package/dist/cli/{chunk-0xjyb285.js → chunk-qwsrynx5.js} +15 -5
  60. package/dist/cli/{chunk-0xjyb285.js.map → chunk-qwsrynx5.js.map} +4 -4
  61. package/dist/cli/chunk-s1p84fyh.js +261 -0
  62. package/dist/cli/chunk-s1p84fyh.js.map +10 -0
  63. package/dist/cli/chunk-s6jhgk0q.js +176 -0
  64. package/dist/cli/chunk-s6jhgk0q.js.map +11 -0
  65. package/dist/cli/chunk-vtk4a6dg.js +374 -0
  66. package/dist/cli/chunk-vtk4a6dg.js.map +10 -0
  67. package/dist/cli/{chunk-k79xp7av.js → chunk-wgm7m9qk.js} +230 -700
  68. package/dist/cli/chunk-wgm7m9qk.js.map +36 -0
  69. package/dist/cli/chunk-wm7js3j9.js +145 -0
  70. package/dist/cli/chunk-wm7js3j9.js.map +11 -0
  71. package/dist/cli/chunk-yt5n7ppj.js +79 -0
  72. package/dist/cli/chunk-yt5n7ppj.js.map +10 -0
  73. package/dist/cli/{chunk-3r45185y.js → chunk-yw7dm696.js} +9 -11
  74. package/dist/cli/{chunk-3r45185y.js.map → chunk-yw7dm696.js.map} +3 -3
  75. package/dist/cli/{chunk-nn13znc2.js → chunk-zxcczpyx.js} +1 -1
  76. package/dist/cli/chunk-zxh4d9vy.js +122 -0
  77. package/dist/cli/chunk-zxh4d9vy.js.map +11 -0
  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-context.d.ts +7 -7
  85. package/dist/types/ai/ask.d.ts +368 -0
  86. package/dist/types/ai/changelog-markdown.d.ts +2 -0
  87. package/dist/types/ai/component-markdown.d.ts +2 -2
  88. package/dist/types/ai/index.d.ts +24 -0
  89. package/dist/types/ai/link-headers.d.ts +24 -0
  90. package/dist/types/ai/llms.d.ts +25 -0
  91. package/dist/types/ai/markdown.d.ts +45 -0
  92. package/dist/types/ai/mcp/discovery.d.ts +68 -0
  93. package/dist/types/ai/mcp/tools.d.ts +16 -0
  94. package/dist/types/ai/openapi-components.d.ts +43 -0
  95. package/dist/types/ai/relative-links.d.ts +26 -0
  96. package/dist/types/ai/serializers.d.ts +15 -0
  97. package/dist/types/ai/skills.d.ts +42 -0
  98. package/dist/types/ai/tar.d.ts +25 -0
  99. package/dist/types/ai/visibility.d.ts +17 -0
  100. package/dist/types/ai/web-bot-auth.d.ts +16 -0
  101. package/dist/types/analytics/adobe.d.ts +35 -0
  102. package/dist/types/analytics/amplitude.d.ts +50 -0
  103. package/dist/types/analytics/clarity.d.ts +31 -0
  104. package/dist/types/analytics/clearbit.d.ts +29 -0
  105. package/dist/types/analytics/cloudflare.d.ts +41 -0
  106. package/dist/types/analytics/fathom.d.ts +41 -0
  107. package/dist/types/analytics/google-analytics.d.ts +44 -0
  108. package/dist/types/analytics/google-tag-manager.d.ts +40 -0
  109. package/dist/types/analytics/head.d.ts +30 -0
  110. package/dist/types/analytics/heap.d.ts +40 -0
  111. package/dist/types/analytics/hightouch.d.ts +44 -0
  112. package/dist/types/analytics/hotjar.d.ts +33 -0
  113. package/dist/types/analytics/index.d.ts +61 -0
  114. package/dist/types/analytics/inline.d.ts +17 -0
  115. package/dist/types/analytics/logrocket.d.ts +44 -0
  116. package/dist/types/analytics/mixpanel.d.ts +67 -0
  117. package/dist/types/analytics/pirsch.d.ts +42 -0
  118. package/dist/types/analytics/plausible.d.ts +56 -0
  119. package/dist/types/analytics/posthog.d.ts +45 -0
  120. package/dist/types/analytics/schema.d.ts +320 -0
  121. package/dist/types/analytics/script.d.ts +46 -0
  122. package/dist/types/analytics/segment.d.ts +50 -0
  123. package/dist/types/analytics/vercel.d.ts +48 -0
  124. package/dist/types/astro/integration.d.ts +76 -0
  125. package/dist/types/astro/markdown-negotiation.d.ts +23 -0
  126. package/dist/types/astro/module-types.d.ts +14 -0
  127. package/dist/types/astro/pages.d.ts +44 -0
  128. package/dist/types/cli/env.d.ts +12 -0
  129. package/dist/types/cli/init/scaffold.d.ts +154 -0
  130. package/dist/types/components/layout/nav-utils.d.ts +11 -0
  131. package/dist/types/core/adapter.d.ts +47 -0
  132. package/dist/types/core/api-name.d.ts +7 -0
  133. package/dist/types/core/changelog-index.d.ts +13 -0
  134. package/dist/types/core/config-input.d.ts +197 -526
  135. package/dist/types/core/config.d.ts +61 -35
  136. package/dist/types/core/content-assets.d.ts +76 -0
  137. package/dist/types/core/custom-pages.d.ts +33 -0
  138. package/dist/types/core/data.d.ts +30 -15
  139. package/dist/types/core/define-components.d.ts +12 -9
  140. package/dist/types/core/deployment-env.d.ts +6 -11
  141. package/dist/types/core/frontmatter.d.ts +10 -0
  142. package/dist/types/core/graph.d.ts +18 -0
  143. package/dist/types/core/heading-markers.d.ts +54 -0
  144. package/dist/types/core/i18n-ui.d.ts +12 -10
  145. package/dist/types/core/i18n.d.ts +87 -0
  146. package/dist/types/core/includes.d.ts +138 -0
  147. package/dist/types/core/last-modified.d.ts +47 -0
  148. package/dist/types/core/links.d.ts +95 -0
  149. package/dist/types/core/locale-links.d.ts +60 -0
  150. package/dist/types/core/manifest.d.ts +17 -0
  151. package/dist/types/core/meta.d.ts +38 -0
  152. package/dist/types/core/nav-diagnostics.d.ts +26 -0
  153. package/dist/types/core/navigation.d.ts +6 -0
  154. package/dist/types/core/node-require.d.ts +19 -0
  155. package/dist/types/core/package-json.d.ts +13 -0
  156. package/dist/types/core/probe.d.ts +42 -0
  157. package/dist/types/core/project-graph.d.ts +51 -0
  158. package/dist/types/core/project.d.ts +2 -0
  159. package/dist/types/core/safe-href.d.ts +2 -0
  160. package/dist/types/core/safe-links.d.ts +26 -0
  161. package/dist/types/core/schema.d.ts +2284 -454
  162. package/dist/types/core/site-url.d.ts +16 -0
  163. package/dist/types/core/sources/assets.d.ts +36 -0
  164. package/dist/types/core/sources/cache.d.ts +37 -0
  165. package/dist/types/core/sources/collection.d.ts +28 -0
  166. package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
  167. package/dist/types/core/sources/contentful.d.ts +40 -0
  168. package/dist/types/core/sources/filesystem.d.ts +24 -0
  169. package/dist/types/core/sources/github-releases.d.ts +31 -0
  170. package/dist/types/core/sources/json.d.ts +30 -0
  171. package/dist/types/core/sources/lexical.d.ts +19 -0
  172. package/dist/types/core/sources/lower.d.ts +75 -0
  173. package/dist/types/core/sources/mdx-remote.d.ts +28 -0
  174. package/dist/types/core/sources/normalize.d.ts +147 -0
  175. package/dist/types/core/sources/notion.d.ts +131 -0
  176. package/dist/types/core/sources/obsidian.d.ts +46 -0
  177. package/dist/types/core/sources/payload.d.ts +39 -0
  178. package/dist/types/core/sources/portable-text.d.ts +42 -0
  179. package/dist/types/core/sources/read.d.ts +23 -0
  180. package/dist/types/core/sources/remote.d.ts +74 -0
  181. package/dist/types/core/sources/resolve.d.ts +19 -0
  182. package/dist/types/core/sources/sanity.d.ts +43 -0
  183. package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
  184. package/dist/types/core/sources/strapi.d.ts +33 -0
  185. package/dist/types/core/sources/types.d.ts +7 -0
  186. package/dist/types/core/sources/watch.d.ts +45 -0
  187. package/dist/types/core/text-width.d.ts +11 -0
  188. package/dist/types/core/types.d.ts +15 -1
  189. package/dist/types/core/unrecognized-keys.d.ts +7 -0
  190. package/dist/types/core/versions.d.ts +72 -0
  191. package/dist/types/core/yaml.d.ts +9 -0
  192. package/dist/types/deploy/adapter-output.d.ts +45 -0
  193. package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
  194. package/dist/types/deploy/adapters/index.d.ts +29 -0
  195. package/dist/types/deploy/adapters/netlify.d.ts +37 -0
  196. package/dist/types/deploy/adapters/node.d.ts +37 -0
  197. package/dist/types/deploy/adapters/registry.d.ts +133 -0
  198. package/dist/types/deploy/adapters/types.d.ts +71 -0
  199. package/dist/types/deploy/adapters/vercel.d.ts +38 -0
  200. package/dist/types/deploy/artifacts.d.ts +65 -0
  201. package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
  202. package/dist/types/deploy/function-bundle.d.ts +80 -0
  203. package/dist/types/deploy/headers.d.ts +50 -0
  204. package/dist/types/deploy/node-headers.d.ts +42 -0
  205. package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
  206. package/dist/types/deploy/platforms/index.d.ts +18 -0
  207. package/dist/types/deploy/platforms/netlify.d.ts +13 -0
  208. package/dist/types/deploy/platforms/node.d.ts +11 -0
  209. package/dist/types/deploy/platforms/paths.d.ts +27 -0
  210. package/dist/types/deploy/platforms/static.d.ts +10 -0
  211. package/dist/types/deploy/platforms/types.d.ts +104 -0
  212. package/dist/types/deploy/platforms/vercel.d.ts +32 -0
  213. package/dist/types/deploy/redirects.d.ts +53 -0
  214. package/dist/types/deploy/robots.d.ts +8 -0
  215. package/dist/types/deploy/rss.d.ts +31 -0
  216. package/dist/types/deploy/sitemap.d.ts +21 -0
  217. package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
  218. package/dist/types/markdown/code-title.d.ts +32 -0
  219. package/dist/types/markdown/fence-meta.d.ts +23 -0
  220. package/dist/types/markdown/themes.d.ts +3 -3
  221. package/dist/types/openapi/asyncapi.d.ts +129 -0
  222. package/dist/types/openapi/graphql-build.d.ts +8 -0
  223. package/dist/types/openapi/graphql.d.ts +122 -0
  224. package/dist/types/openapi/model.d.ts +158 -0
  225. package/dist/types/openapi/parse.d.ts +57 -0
  226. package/dist/types/openapi/references.d.ts +37 -25
  227. package/dist/types/openapi/render-mdx.d.ts +33 -0
  228. package/dist/types/openapi/sentence.d.ts +7 -0
  229. package/dist/types/openapi/signature.d.ts +10 -0
  230. package/dist/types/openapi/source.d.ts +22 -0
  231. package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
  232. package/dist/types/reference/asyncapi.d.ts +166 -0
  233. package/dist/types/reference/graphql.d.ts +181 -0
  234. package/dist/types/reference/index.d.ts +32 -0
  235. package/dist/types/reference/openapi.d.ts +165 -0
  236. package/dist/types/reference/options.d.ts +157 -0
  237. package/dist/types/reference/scalar.d.ts +136 -0
  238. package/dist/types/reference/schema.d.ts +630 -0
  239. package/dist/types/search/adapters/algolia.d.ts +32 -0
  240. package/dist/types/search/adapters/flexsearch.d.ts +12 -0
  241. package/dist/types/search/adapters/index.d.ts +31 -0
  242. package/dist/types/search/adapters/mixedbread.d.ts +22 -0
  243. package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
  244. package/dist/types/search/adapters/orama.d.ts +13 -0
  245. package/dist/types/search/adapters/pagefind.d.ts +12 -0
  246. package/dist/types/search/adapters/registry.d.ts +228 -0
  247. package/dist/types/search/adapters/types.d.ts +34 -0
  248. package/dist/types/search/adapters/typesense.d.ts +42 -0
  249. package/dist/types/search/build.d.ts +23 -0
  250. package/dist/types/search/documents.d.ts +90 -0
  251. package/dist/types/search/facets.d.ts +3 -0
  252. package/dist/types/search/orama-index.d.ts +1 -1
  253. package/dist/types/search/sync/algolia.d.ts +14 -0
  254. package/dist/types/search/sync/index.d.ts +14 -0
  255. package/dist/types/search/sync/orama-cloud.d.ts +10 -0
  256. package/dist/types/search/sync/typesense.d.ts +14 -0
  257. package/dist/types/sources/contentful.d.ts +68 -0
  258. package/dist/types/sources/custom.d.ts +20 -0
  259. package/dist/types/sources/filesystem.d.ts +42 -0
  260. package/dist/types/sources/github-releases.d.ts +46 -0
  261. package/dist/types/sources/index.d.ts +48 -0
  262. package/dist/types/sources/mdx-remote.d.ts +63 -0
  263. package/dist/types/sources/notion.d.ts +65 -0
  264. package/dist/types/sources/obsidian.d.ts +34 -0
  265. package/dist/types/sources/payload.d.ts +68 -0
  266. package/dist/types/sources/registry.d.ts +1414 -0
  267. package/dist/types/sources/sanity.d.ts +69 -0
  268. package/dist/types/sources/shared.d.ts +46 -0
  269. package/dist/types/sources/strapi.d.ts +66 -0
  270. package/dist/types/theme/icon-kind.d.ts +11 -0
  271. package/dist/types/theme/icons.d.ts +20 -0
  272. package/docs/01-quickstart.mdx +18 -18
  273. package/docs/02-deployment.mdx +52 -28
  274. package/docs/03-upgrading.mdx +364 -0
  275. package/docs/04-migrating.mdx +58 -0
  276. package/docs/08-faq.mdx +5 -5
  277. package/docs/advanced/blog.mdx +13 -6
  278. package/docs/advanced/changelog.mdx +23 -35
  279. package/docs/advanced/custom-pages.mdx +22 -10
  280. package/docs/advanced/meta.ts +1 -8
  281. package/docs/advanced/skills.mdx +8 -0
  282. package/docs/cli/audit.mdx +646 -0
  283. package/docs/cli/doctor.mdx +29 -0
  284. package/docs/{reference/eval.mdx → cli/evals.mdx} +12 -11
  285. package/docs/cli/index.mdx +105 -0
  286. package/docs/cli/meta.ts +7 -0
  287. package/docs/{reference → cli}/translate.mdx +9 -9
  288. package/docs/cli/validate.mdx +41 -0
  289. package/docs/cli/version.mdx +40 -0
  290. package/docs/configuration/analytics.mdx +350 -59
  291. package/docs/configuration/assistant.mdx +357 -0
  292. package/docs/configuration/customization.mdx +16 -10
  293. package/docs/configuration/index.mdx +50 -31
  294. package/docs/configuration/meta.ts +1 -1
  295. package/docs/configuration/search.mdx +76 -55
  296. package/docs/configuration/theming.mdx +24 -15
  297. package/docs/content/components.mdx +21 -5
  298. package/docs/{reference → content}/frontmatter.mdx +35 -1
  299. package/docs/content/i18n.mdx +9 -7
  300. package/docs/content/includes.mdx +2 -4
  301. package/docs/content/index.mdx +1 -1
  302. package/docs/content/islands.mdx +11 -6
  303. package/docs/content/meta.mdx +1 -1
  304. package/docs/content/meta.ts +1 -0
  305. package/docs/content/navigation.mdx +9 -7
  306. package/docs/content/sources.mdx +145 -50
  307. package/docs/content/syntax.mdx +16 -12
  308. package/docs/content/versioning.mdx +3 -3
  309. package/docs/discoverability/agent-discovery.mdx +12 -12
  310. package/docs/discoverability/index.mdx +4 -4
  311. package/docs/discoverability/json-api.mdx +4 -4
  312. package/docs/discoverability/llms-txt.mdx +6 -6
  313. package/docs/discoverability/markdown.mdx +4 -4
  314. package/docs/discoverability/mcp.mdx +11 -11
  315. package/docs/discoverability/sitemap-and-robots.mdx +3 -3
  316. package/docs/index.mdx +4 -4
  317. package/docs/references/asyncapi.mdx +59 -0
  318. package/docs/{advanced → references}/graphql.mdx +45 -32
  319. package/docs/{reference → references}/meta.ts +2 -2
  320. package/docs/references/openapi.mdx +171 -0
  321. package/docs/references/scalar.mdx +64 -0
  322. package/package.json +42 -8
  323. package/skills/blume/SKILL.md +23 -10
  324. package/skills/blume-migrate/SKILL.md +22 -21
  325. package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
  326. package/skills/blume-migrate/references/docusaurus.md +5 -4
  327. package/skills/blume-migrate/references/fumadocs.md +4 -4
  328. package/skills/blume-migrate/references/mintlify.md +23 -8
  329. package/skills/blume-migrate/references/monorepo.md +6 -6
  330. package/skills/blume-migrate/references/starlight.md +4 -4
  331. package/src/ai/agent-readability.ts +25 -26
  332. package/src/ai/ai-catalog.ts +50 -32
  333. package/src/ai/api/handlers.ts +46 -11
  334. package/src/ai/api/paths.ts +1 -1
  335. package/src/ai/api-catalog.ts +8 -8
  336. package/src/ai/ask-context.ts +7 -7
  337. package/src/ai/ask-data.ts +3 -3
  338. package/src/ai/ask.ts +637 -100
  339. package/src/ai/changelog-markdown.ts +91 -0
  340. package/src/ai/component-markdown.ts +328 -12
  341. package/src/ai/cors.ts +3 -3
  342. package/src/ai/index.ts +45 -0
  343. package/src/ai/link-headers.ts +7 -6
  344. package/src/ai/llms.ts +20 -15
  345. package/src/ai/markdown.ts +35 -5
  346. package/src/ai/mcp/data.ts +9 -5
  347. package/src/ai/openapi-components.ts +5 -2
  348. package/src/ai/relative-links.ts +170 -0
  349. package/src/ai/serializers.ts +3 -3
  350. package/src/ai/skills.ts +1 -1
  351. package/src/ai/visibility.ts +1 -1
  352. package/src/ai/web-bot-auth.ts +2 -2
  353. package/src/analytics/adobe.ts +46 -0
  354. package/src/analytics/amplitude.ts +79 -0
  355. package/src/analytics/clarity.ts +46 -0
  356. package/src/analytics/clearbit.ts +47 -0
  357. package/src/analytics/cloudflare.ts +67 -0
  358. package/src/analytics/fathom.ts +64 -0
  359. package/src/analytics/google-analytics.ts +84 -0
  360. package/src/analytics/google-tag-manager.ts +61 -0
  361. package/src/analytics/head.ts +130 -0
  362. package/src/analytics/heap.ts +65 -0
  363. package/src/analytics/hightouch.ts +77 -0
  364. package/src/analytics/hotjar.ts +47 -0
  365. package/src/analytics/index.ts +71 -0
  366. package/src/analytics/inline.ts +21 -0
  367. package/src/analytics/logrocket.ts +71 -0
  368. package/src/analytics/mixpanel.ts +92 -0
  369. package/src/analytics/pirsch.ts +66 -0
  370. package/src/analytics/plausible.ts +83 -0
  371. package/src/analytics/posthog.ts +78 -0
  372. package/src/analytics/schema.ts +60 -0
  373. package/src/analytics/script.ts +60 -0
  374. package/src/analytics/segment.ts +85 -0
  375. package/src/analytics/vercel.ts +50 -0
  376. package/src/astro/adapter-root.ts +7 -9
  377. package/src/astro/component-slots.ts +131 -91
  378. package/src/astro/generate.ts +129 -361
  379. package/src/astro/integration.ts +2 -6
  380. package/src/astro/module-types.ts +1 -1
  381. package/src/astro/pages.ts +13 -101
  382. package/src/astro/render-deps.ts +379 -0
  383. package/src/astro/runtime-deps.ts +201 -0
  384. package/src/astro/templates.ts +575 -562
  385. package/src/audit/agent.ts +24 -0
  386. package/src/audit/catalog.ts +2 -2
  387. package/src/audit/checks/assets.ts +2 -2
  388. package/src/audit/checks/dns-aid.ts +1 -1
  389. package/src/audit/checks/duplicates.ts +3 -1
  390. package/src/audit/checks/i18n.ts +1 -1
  391. package/src/audit/checks/indexability.ts +7 -7
  392. package/src/audit/checks/links.ts +2 -2
  393. package/src/audit/checks/llms.ts +6 -6
  394. package/src/audit/checks/network.ts +3 -3
  395. package/src/audit/checks/og-image.ts +2 -2
  396. package/src/audit/checks/robots.ts +1 -1
  397. package/src/audit/checks/sitemap.ts +2 -2
  398. package/src/audit/checks/social.ts +1 -1
  399. package/src/audit/run.ts +4 -3
  400. package/src/audit/terms.ts +31 -0
  401. package/src/audit/url.ts +13 -13
  402. package/src/blume-modules.d.ts +2 -2
  403. package/src/cli/command-meta.ts +10 -0
  404. package/src/cli/commands/audit.ts +40 -21
  405. package/src/cli/commands/build.ts +71 -316
  406. package/src/cli/commands/check.ts +1 -0
  407. package/src/cli/commands/dev.ts +40 -1
  408. package/src/cli/commands/doctor.ts +92 -14
  409. package/src/cli/commands/eject.ts +44 -7
  410. package/src/cli/commands/eval.ts +5 -5
  411. package/src/cli/commands/init.ts +161 -41
  412. package/src/cli/commands/migrate.ts +121 -0
  413. package/src/cli/commands/preview.ts +7 -1
  414. package/src/cli/commands/translate.ts +5 -5
  415. package/src/cli/commands/upgrade.ts +141 -0
  416. package/src/cli/commands/version.ts +57 -44
  417. package/src/cli/eject-scripts.ts +121 -6
  418. package/src/cli/index.ts +11 -1
  419. package/src/cli/init/install.ts +70 -0
  420. package/src/cli/init/questions.ts +7 -0
  421. package/src/cli/init/scaffold.ts +459 -75
  422. package/src/cli/lazy-command.ts +37 -1
  423. package/src/cli/prepare.ts +40 -6
  424. package/src/cli/required-secrets.ts +39 -12
  425. package/src/cli/unknown-flags.ts +266 -0
  426. package/src/cli/yarn-pnp.ts +52 -0
  427. package/src/components/content/AccordionItem.astro +7 -1
  428. package/src/components/content/Card.astro +4 -3
  429. package/src/components/content/ColorItem.astro +22 -4
  430. package/src/components/content/GithubInfo.astro +2 -2
  431. package/src/components/content/Prompt.astro +25 -25
  432. package/src/components/content/Tabs.astro +3 -1
  433. package/src/components/content/Tile.astro +2 -3
  434. package/src/components/content/Tooltip.astro +57 -9
  435. package/src/components/content/content-strings.ts +34 -0
  436. package/src/components/content/diff.ts +1 -1
  437. package/src/components/content/mermaid-element.ts +13 -2
  438. package/src/components/content/prompt-markdown.ts +292 -0
  439. package/src/components/content/tooltip-id.ts +41 -0
  440. package/src/components/copy-feedback.ts +1 -1
  441. package/src/components/islands/{AskAI.astro → Assistant.astro} +10 -10
  442. package/src/components/islands/{ask-ai.tsx → assistant.tsx} +23 -23
  443. package/src/components/islands/hooks.ts +36 -11
  444. package/src/components/layout/Analytics.astro +21 -79
  445. package/src/components/layout/Banner.astro +3 -1
  446. package/src/components/layout/DiscoveryLinks.astro +69 -0
  447. package/src/components/layout/Header.astro +93 -30
  448. package/src/components/layout/LanguageSwitcher.astro +4 -1
  449. package/src/components/layout/Logo.astro +23 -2
  450. package/src/components/layout/NavSelector.astro +13 -2
  451. package/src/components/layout/NavTree.astro +12 -3
  452. package/src/components/layout/NavTreeScript.astro +17 -3
  453. package/src/components/layout/PageActions.astro +3 -3
  454. package/src/components/layout/PageFeedback.astro +11 -1
  455. package/src/components/layout/PageLayout.astro +58 -11
  456. package/src/components/layout/Pagination.astro +7 -7
  457. package/src/components/layout/ReferenceLayout.astro +22 -13
  458. package/src/components/layout/RootLayout.astro +75 -72
  459. package/src/components/layout/Search.astro +43 -19
  460. package/src/components/layout/WebMcp.astro +1 -1
  461. package/src/components/layout/analytics-client.ts +73 -16
  462. package/src/components/layout/drawer-inert.ts +113 -15
  463. package/src/components/layout/dropdown-clamp.ts +105 -0
  464. package/src/components/layout/head-scripts.ts +15 -6
  465. package/src/components/layout/nav-utils.ts +17 -0
  466. package/src/components/layout/search/algolia.ts +8 -8
  467. package/src/components/layout/search/orama-cloud.ts +9 -7
  468. package/src/components/layout/search/typesense.ts +11 -17
  469. package/src/components/openapi/MessageComposer.astro +2 -2
  470. package/src/components/openapi/Playground.astro +2 -2
  471. package/src/components/openapi/description.ts +2 -2
  472. package/src/components/openapi/playground-client.ts +79 -10
  473. package/src/core/changelog-index.ts +24 -0
  474. package/src/core/code-fences.ts +1 -1
  475. package/src/core/component-overrides.ts +399 -154
  476. package/src/core/config-input.ts +201 -566
  477. package/src/core/config.ts +131 -42
  478. package/src/core/custom-pages.ts +105 -0
  479. package/src/core/data.ts +34 -15
  480. package/src/core/define-components.ts +12 -9
  481. package/src/core/deployment-env.ts +18 -74
  482. package/src/core/diagnostics.ts +14 -7
  483. package/src/core/graph.ts +69 -25
  484. package/src/core/i18n-ui.ts +41 -11
  485. package/src/core/i18n.ts +17 -0
  486. package/src/core/includes.ts +156 -38
  487. package/src/core/last-modified.ts +6 -11
  488. package/src/core/links.ts +166 -2
  489. package/src/core/manifest.ts +10 -3
  490. package/src/core/navigation.ts +115 -16
  491. package/src/core/new-tab.ts +35 -0
  492. package/src/core/node-require.ts +21 -0
  493. package/src/core/project-graph.ts +42 -26
  494. package/src/core/project.ts +9 -4
  495. package/src/core/request-body.ts +61 -0
  496. package/src/core/safe-href.ts +28 -0
  497. package/src/core/safe-links.ts +68 -0
  498. package/src/core/schema.ts +528 -745
  499. package/src/core/server-features.ts +10 -11
  500. package/src/core/sources/assets.ts +47 -11
  501. package/src/core/sources/collection.ts +67 -0
  502. package/src/core/sources/contentful-rich-text.ts +285 -0
  503. package/src/core/sources/contentful.ts +173 -0
  504. package/src/core/sources/github-releases.ts +51 -1
  505. package/src/core/sources/json.ts +71 -0
  506. package/src/core/sources/lexical.ts +195 -0
  507. package/src/core/sources/lower.ts +226 -0
  508. package/src/core/sources/normalize.ts +52 -2
  509. package/src/core/sources/notion.ts +39 -28
  510. package/src/core/sources/payload.ts +135 -0
  511. package/src/core/sources/portable-text.ts +11 -16
  512. package/src/core/sources/remote.ts +226 -0
  513. package/src/core/sources/resolve.ts +104 -166
  514. package/src/core/sources/sanity.ts +16 -49
  515. package/src/core/sources/strapi-blocks.ts +124 -0
  516. package/src/core/sources/strapi.ts +191 -0
  517. package/src/core/sources/types.ts +12 -1
  518. package/src/core/types.ts +15 -1
  519. package/src/core/ui-packs/ar.ts +10 -7
  520. package/src/core/ui-packs/bg.ts +10 -7
  521. package/src/core/ui-packs/bn.ts +10 -7
  522. package/src/core/ui-packs/ca.ts +7 -6
  523. package/src/core/ui-packs/cs.ts +10 -7
  524. package/src/core/ui-packs/da.ts +10 -7
  525. package/src/core/ui-packs/de.ts +10 -7
  526. package/src/core/ui-packs/el.ts +7 -6
  527. package/src/core/ui-packs/es.ts +7 -6
  528. package/src/core/ui-packs/fa.ts +10 -7
  529. package/src/core/ui-packs/fi.ts +10 -7
  530. package/src/core/ui-packs/fr.ts +7 -6
  531. package/src/core/ui-packs/he.ts +10 -7
  532. package/src/core/ui-packs/hi.ts +10 -7
  533. package/src/core/ui-packs/hr.ts +10 -7
  534. package/src/core/ui-packs/hu.ts +10 -7
  535. package/src/core/ui-packs/id.ts +10 -7
  536. package/src/core/ui-packs/it.ts +7 -6
  537. package/src/core/ui-packs/ja.ts +7 -6
  538. package/src/core/ui-packs/ko.ts +7 -6
  539. package/src/core/ui-packs/nl.ts +10 -7
  540. package/src/core/ui-packs/no.ts +10 -7
  541. package/src/core/ui-packs/pl.ts +10 -7
  542. package/src/core/ui-packs/pt-br.ts +7 -6
  543. package/src/core/ui-packs/pt.ts +7 -6
  544. package/src/core/ui-packs/ro.ts +10 -7
  545. package/src/core/ui-packs/ru.ts +10 -7
  546. package/src/core/ui-packs/sk.ts +10 -7
  547. package/src/core/ui-packs/sr.ts +10 -7
  548. package/src/core/ui-packs/sv.ts +10 -7
  549. package/src/core/ui-packs/th.ts +7 -6
  550. package/src/core/ui-packs/tr.ts +10 -7
  551. package/src/core/ui-packs/uk.ts +10 -7
  552. package/src/core/ui-packs/vi.ts +7 -6
  553. package/src/core/ui-packs/zh-tw.ts +7 -6
  554. package/src/core/ui-packs/zh.ts +7 -6
  555. package/src/core/unrecognized-keys.ts +10 -0
  556. package/src/core/version-cut.ts +116 -8
  557. package/src/deploy/adapter-output.ts +57 -97
  558. package/src/deploy/adapters/cloudflare.ts +39 -0
  559. package/src/deploy/adapters/index.ts +41 -0
  560. package/src/deploy/adapters/netlify.ts +34 -0
  561. package/src/deploy/adapters/node.ts +34 -0
  562. package/src/deploy/adapters/registry.ts +127 -0
  563. package/src/deploy/adapters/types.ts +92 -0
  564. package/src/deploy/adapters/vercel.ts +35 -0
  565. package/src/deploy/artifacts.ts +55 -27
  566. package/src/deploy/cloudflare-negotiation.ts +179 -100
  567. package/src/deploy/function-bundle.ts +18 -3
  568. package/src/deploy/headers.ts +124 -23
  569. package/src/deploy/node-headers.ts +198 -0
  570. package/src/deploy/platforms/cloudflare.ts +312 -0
  571. package/src/deploy/platforms/index.ts +67 -0
  572. package/src/deploy/platforms/netlify.ts +52 -0
  573. package/src/deploy/platforms/node.ts +40 -0
  574. package/src/deploy/platforms/paths.ts +42 -0
  575. package/src/deploy/platforms/static.ts +29 -0
  576. package/src/deploy/platforms/types.ts +112 -0
  577. package/src/deploy/platforms/vercel.ts +193 -0
  578. package/src/deploy/redirects.ts +30 -18
  579. package/src/deploy/robots.ts +3 -3
  580. package/src/deploy/rss.ts +2 -2
  581. package/src/deploy/sitemap.ts +2 -2
  582. package/src/deploy/vercel-negotiation.ts +2 -2
  583. package/src/eval/agents.ts +32 -1
  584. package/src/eval/findings.ts +19 -11
  585. package/src/eval/report.ts +10 -2
  586. package/src/markdown/external-links.ts +65 -0
  587. package/src/markdown/include.ts +45 -27
  588. package/src/markdown/index.ts +34 -9
  589. package/src/markdown/inline-code.ts +12 -6
  590. package/src/markdown/relative-links.ts +324 -0
  591. package/src/markdown/themes.ts +3 -3
  592. package/src/migrate/migrate.ts +149 -0
  593. package/src/openapi/parse.ts +64 -16
  594. package/src/openapi/proxy.ts +62 -10
  595. package/src/openapi/references.ts +147 -147
  596. package/src/openapi/render-mdx.ts +32 -10
  597. package/src/openapi/scalar.ts +15 -13
  598. package/src/openapi/sentence.ts +14 -0
  599. package/src/openapi/source.ts +37 -21
  600. package/src/openapi/spec-dependency-error.ts +15 -0
  601. package/src/reference/asyncapi.ts +83 -0
  602. package/src/reference/graphql.ts +89 -0
  603. package/src/reference/index.ts +40 -0
  604. package/src/reference/openapi.ts +83 -0
  605. package/src/reference/options.ts +201 -0
  606. package/src/reference/scalar.ts +136 -0
  607. package/src/reference/schema.ts +88 -0
  608. package/src/registry/eject.ts +109 -53
  609. package/src/search/adapters/algolia.ts +46 -0
  610. package/src/search/adapters/flexsearch.ts +29 -0
  611. package/src/search/adapters/index.ts +39 -0
  612. package/src/search/adapters/mixedbread.ts +39 -0
  613. package/src/search/adapters/orama-cloud.ts +51 -0
  614. package/src/search/adapters/orama.ts +24 -0
  615. package/src/search/adapters/pagefind.ts +27 -0
  616. package/src/search/adapters/registry.ts +131 -0
  617. package/src/search/adapters/types.ts +46 -0
  618. package/src/search/adapters/typesense.ts +57 -0
  619. package/src/search/build.ts +8 -4
  620. package/src/search/documents.ts +8 -2
  621. package/src/search/orama-index.ts +1 -1
  622. package/src/search/sync/algolia.ts +12 -11
  623. package/src/search/sync/index.ts +35 -20
  624. package/src/search/sync/orama-cloud.ts +12 -9
  625. package/src/search/sync/typesense.ts +15 -13
  626. package/src/sources/contentful.ts +63 -0
  627. package/src/sources/custom.ts +38 -0
  628. package/src/sources/filesystem.ts +51 -0
  629. package/src/sources/github-releases.ts +52 -0
  630. package/src/sources/index.ts +60 -0
  631. package/src/sources/mdx-remote.ts +76 -0
  632. package/src/sources/notion.ts +63 -0
  633. package/src/sources/obsidian.ts +38 -0
  634. package/src/sources/payload.ts +60 -0
  635. package/src/sources/registry.ts +182 -0
  636. package/src/sources/sanity.ts +66 -0
  637. package/src/sources/shared.ts +52 -0
  638. package/src/sources/strapi.ts +58 -0
  639. package/src/theme/entry.ts +24 -2
  640. package/src/translate/report.ts +40 -7
  641. package/src/upgrade/upgrade.ts +499 -0
  642. package/dist/cli/chunk-0qymqwzz.js +0 -164
  643. package/dist/cli/chunk-0qymqwzz.js.map +0 -15
  644. package/dist/cli/chunk-1jefwnfs.js.map +0 -48
  645. package/dist/cli/chunk-2mzebbbz.js +0 -69
  646. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  647. package/dist/cli/chunk-4x36ddpw.js.map +0 -11
  648. package/dist/cli/chunk-5093q3n7.js +0 -68
  649. package/dist/cli/chunk-5093q3n7.js.map +0 -10
  650. package/dist/cli/chunk-5qk08vmp.js.map +0 -11
  651. package/dist/cli/chunk-7s8hm3b6.js +0 -5347
  652. package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
  653. package/dist/cli/chunk-8cjtbafj.js.map +0 -13
  654. package/dist/cli/chunk-97r59kpr.js +0 -381
  655. package/dist/cli/chunk-97r59kpr.js.map +0 -12
  656. package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
  657. package/dist/cli/chunk-b27xqwn9.js.map +0 -10
  658. package/dist/cli/chunk-bf6bt1xt.js +0 -185
  659. package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
  660. package/dist/cli/chunk-cjtn640a.js.map +0 -10
  661. package/dist/cli/chunk-ct47dqpx.js.map +0 -11
  662. package/dist/cli/chunk-esphfr8p.js +0 -107
  663. package/dist/cli/chunk-esphfr8p.js.map +0 -11
  664. package/dist/cli/chunk-ex56aa81.js +0 -1016
  665. package/dist/cli/chunk-ex56aa81.js.map +0 -13
  666. package/dist/cli/chunk-garjf5z9.js +0 -30
  667. package/dist/cli/chunk-garjf5z9.js.map +0 -10
  668. package/dist/cli/chunk-js7saxwm.js +0 -1045
  669. package/dist/cli/chunk-js7saxwm.js.map +0 -22
  670. package/dist/cli/chunk-k79xp7av.js.map +0 -39
  671. package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
  672. package/dist/cli/chunk-q4rae3bg.js +0 -60
  673. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  674. package/dist/cli/chunk-rz9jmfhz.js +0 -108
  675. package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
  676. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  677. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  678. package/dist/cli/chunk-vrfp10qk.js +0 -81
  679. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  680. package/dist/cli/chunk-yg63d42r.js.map +0 -34
  681. package/docs/advanced/api-reference.mdx +0 -240
  682. package/docs/configuration/ask-ai.mdx +0 -256
  683. package/docs/reference/cli.mdx +0 -197
  684. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  685. package/src/components/content/changelog-element.ts +0 -69
  686. package/src/search/providers.ts +0 -91
  687. /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-27g6wdth.js.map} +0 -0
  688. /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-ce574jw2.js.map} +0 -0
  689. /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-fxypxtvm.js.map} +0 -0
  690. /package/dist/cli/{chunk-nn13znc2.js.map → chunk-zxcczpyx.js.map} +0 -0
@@ -0,0 +1,181 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { GraphqlSourceOptions, PlaygroundOptions } from "./options.ts";
4
+ /** Options for {@link graphql}. */
5
+ export interface GraphqlOptions {
6
+ /** Code-sample languages shown per operation. Defaults to `["curl", "js", "python"]`. */
7
+ codeSamples?: string[];
8
+ /**
9
+ * URL of the live GraphQL endpoint the playground and code samples target —
10
+ * a schema, unlike an OpenAPI document, names no server. Applies to every
11
+ * source; a per-source `endpoint` wins.
12
+ */
13
+ endpoint?: string;
14
+ /**
15
+ * The interactive "Try it" panel. On by default; `false` hides it. The
16
+ * object form sets `proxy`, the CORS escape hatch the Send button routes
17
+ * requests through: a proxy URL, or `true` for the built-in `/_api-proxy`
18
+ * endpoint (which needs server output: a host adapter such as `vercel()` in
19
+ * `deployment`).
20
+ */
21
+ playground?: PlaygroundOptions;
22
+ /** Where the reference mounts. Defaults to `/graphql`. */
23
+ route?: string;
24
+ /** One or more schemas; each renders on its own route by default. */
25
+ sources?: GraphqlSourceOptions[];
26
+ /** Shorthand for a single source: `sources: [{ spec }]`. */
27
+ spec?: string;
28
+ }
29
+ /**
30
+ * No `expandSchemas` (GraphQL field tables have no nesting) — everything
31
+ * else, the playground normalization included, is the shared reference
32
+ * shape. There is no Scalar counterpart: the Scalar embed reads OpenAPI and
33
+ * AsyncAPI documents only.
34
+ */
35
+ export declare const graphqlOptionsSchema: z.ZodPipe<z.ZodObject<{
36
+ endpoint: z.ZodOptional<z.ZodString>;
37
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
38
+ includeInLlms: z.ZodDefault<z.ZodBoolean>;
39
+ includeInSearch: z.ZodDefault<z.ZodBoolean>;
40
+ label: z.ZodOptional<z.ZodString>;
41
+ noindex: z.ZodDefault<z.ZodBoolean>;
42
+ route: z.ZodOptional<z.ZodString>;
43
+ seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
44
+ spec: z.ZodString;
45
+ endpoint: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strict>>>;
47
+ codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
48
+ playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
49
+ enabled: z.ZodDefault<z.ZodBoolean>;
50
+ proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
51
+ }, z.core.$strict>]>>, z.ZodTransform<{
52
+ enabled: boolean;
53
+ proxy: string | boolean;
54
+ }, boolean | {
55
+ enabled: boolean;
56
+ proxy: string | boolean;
57
+ }>>;
58
+ route: z.ZodDefault<z.ZodString>;
59
+ spec: z.ZodOptional<z.ZodString>;
60
+ }, z.core.$strict>, z.ZodTransform<Omit<{
61
+ sources: {
62
+ includeInLlms: boolean;
63
+ includeInSearch: boolean;
64
+ noindex: boolean;
65
+ seoDescriptionSuffix: boolean;
66
+ spec: string;
67
+ label?: string | undefined;
68
+ route?: string | undefined;
69
+ endpoint?: string | undefined;
70
+ }[];
71
+ codeSamples: string[];
72
+ playground: {
73
+ enabled: boolean;
74
+ proxy: string | boolean;
75
+ };
76
+ route: string;
77
+ endpoint?: string | undefined;
78
+ spec?: string | undefined;
79
+ }, "spec">, {
80
+ sources: {
81
+ includeInLlms: boolean;
82
+ includeInSearch: boolean;
83
+ noindex: boolean;
84
+ seoDescriptionSuffix: boolean;
85
+ spec: string;
86
+ label?: string | undefined;
87
+ route?: string | undefined;
88
+ endpoint?: string | undefined;
89
+ }[];
90
+ codeSamples: string[];
91
+ playground: {
92
+ enabled: boolean;
93
+ proxy: string | boolean;
94
+ };
95
+ route: string;
96
+ endpoint?: string | undefined;
97
+ spec?: string | undefined;
98
+ }>>;
99
+ /** `graphql()` options with every default applied and `spec` folded into `sources`. */
100
+ export type ResolvedGraphqlOptions = z.output<typeof graphqlOptionsSchema>;
101
+ export type GraphqlAdapter = AdapterDescriptor<"graphql", GraphqlOptions>;
102
+ /** A `graphql()` descriptor as the config schema resolves it. */
103
+ export type ResolvedGraphqlAdapter = AdapterDescriptor<"graphql", ResolvedGraphqlOptions>;
104
+ export declare const graphqlAdapterSchema: z.ZodObject<{
105
+ kind: z.ZodLiteral<"graphql">;
106
+ options: z.ZodPipe<z.ZodObject<{
107
+ endpoint: z.ZodOptional<z.ZodString>;
108
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
109
+ includeInLlms: z.ZodDefault<z.ZodBoolean>;
110
+ includeInSearch: z.ZodDefault<z.ZodBoolean>;
111
+ label: z.ZodOptional<z.ZodString>;
112
+ noindex: z.ZodDefault<z.ZodBoolean>;
113
+ route: z.ZodOptional<z.ZodString>;
114
+ seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
115
+ spec: z.ZodString;
116
+ endpoint: z.ZodOptional<z.ZodString>;
117
+ }, z.core.$strict>>>;
118
+ codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
119
+ playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
120
+ enabled: z.ZodDefault<z.ZodBoolean>;
121
+ proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
122
+ }, z.core.$strict>]>>, z.ZodTransform<{
123
+ enabled: boolean;
124
+ proxy: string | boolean;
125
+ }, boolean | {
126
+ enabled: boolean;
127
+ proxy: string | boolean;
128
+ }>>;
129
+ route: z.ZodDefault<z.ZodString>;
130
+ spec: z.ZodOptional<z.ZodString>;
131
+ }, z.core.$strict>, z.ZodTransform<Omit<{
132
+ sources: {
133
+ includeInLlms: boolean;
134
+ includeInSearch: boolean;
135
+ noindex: boolean;
136
+ seoDescriptionSuffix: boolean;
137
+ spec: string;
138
+ label?: string | undefined;
139
+ route?: string | undefined;
140
+ endpoint?: string | undefined;
141
+ }[];
142
+ codeSamples: string[];
143
+ playground: {
144
+ enabled: boolean;
145
+ proxy: string | boolean;
146
+ };
147
+ route: string;
148
+ endpoint?: string | undefined;
149
+ spec?: string | undefined;
150
+ }, "spec">, {
151
+ sources: {
152
+ includeInLlms: boolean;
153
+ includeInSearch: boolean;
154
+ noindex: boolean;
155
+ seoDescriptionSuffix: boolean;
156
+ spec: string;
157
+ label?: string | undefined;
158
+ route?: string | undefined;
159
+ endpoint?: string | undefined;
160
+ }[];
161
+ codeSamples: string[];
162
+ playground: {
163
+ enabled: boolean;
164
+ proxy: string | boolean;
165
+ };
166
+ route: string;
167
+ endpoint?: string | undefined;
168
+ spec?: string | undefined;
169
+ }>>;
170
+ requiredSecrets: z.ZodArray<z.ZodString>;
171
+ runtimeDeps: z.ZodArray<z.ZodString>;
172
+ }, z.core.$strict>;
173
+ /**
174
+ * A GraphQL reference. Blume lowers the schema (SDL or introspection JSON) to
175
+ * one real page per root field — grouped as Queries/Mutations/Subscriptions —
176
+ * plus one page per named type (Objects, Input Objects, Enums, Interfaces,
177
+ * Unions, Scalars), all included in the sidebar, search, llms.txt, and OG.
178
+ * Always Blume-rendered: the Scalar embed reads OpenAPI and AsyncAPI
179
+ * documents only, so there is no `scalar()` counterpart.
180
+ */
181
+ export declare const graphql: (options: GraphqlOptions) => GraphqlAdapter;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * API reference adapters for `blume.config.ts`:
3
+ *
4
+ * ```ts
5
+ * import { defineConfig } from "blume";
6
+ * import { asyncapi, graphql, openapi, scalar } from "blume/reference";
7
+ *
8
+ * export default defineConfig({
9
+ * reference: [
10
+ * openapi({ spec: "./openapi.yaml" }),
11
+ * asyncapi({ spec: "./asyncapi.yaml" }),
12
+ * graphql({ spec: "./schema.graphql", endpoint: "https://api.example.com/graphql" }),
13
+ * scalar({ spec: "./legacy.yaml", route: "/legacy", theme: "purple" }),
14
+ * ],
15
+ * });
16
+ * ```
17
+ *
18
+ * Each factory returns a plain descriptor (see `core/adapter.ts`) that the
19
+ * schema validates and the generated site reads as a literal; nothing here
20
+ * runs in the browser.
21
+ */
22
+ export type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
23
+ export { asyncapi } from "./asyncapi.ts";
24
+ export type { AsyncApiAdapter, AsyncApiOptions } from "./asyncapi.ts";
25
+ export { graphql } from "./graphql.ts";
26
+ export type { GraphqlAdapter, GraphqlOptions } from "./graphql.ts";
27
+ export { openapi } from "./openapi.ts";
28
+ export type { OpenApiAdapter, OpenApiOptions } from "./openapi.ts";
29
+ export type { GraphqlSourceOptions, PlaygroundOptions, ReferenceSourceOptions, } from "./options.ts";
30
+ export { scalar } from "./scalar.ts";
31
+ export type { ScalarAdapter, ScalarOptions, ScalarSourceOptions, } from "./scalar.ts";
32
+ export type { ReferenceAdapter, ResolvedReferenceAdapter } from "./schema.ts";
@@ -0,0 +1,165 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { PlaygroundOptions, ReferenceSourceOptions } from "./options.ts";
4
+ /** Options for {@link openapi}. */
5
+ export interface OpenApiOptions {
6
+ /** Code-sample languages shown per operation (Blume renderer). Defaults to `["curl", "js", "python"]`. */
7
+ codeSamples?: string[];
8
+ /** Start nested schema rows expanded rather than collapsed (Blume renderer). Defaults to `false`. */
9
+ expandSchemas?: boolean;
10
+ /**
11
+ * The interactive "Try it" panel (Blume renderer). On by default; `false`
12
+ * hides it. The object form sets `proxy`, the CORS escape hatch the Send
13
+ * button routes requests through: a proxy URL, or `true` for the built-in
14
+ * `/_api-proxy` endpoint (which needs server output: a host adapter such as
15
+ * `vercel()` in `deployment`).
16
+ */
17
+ playground?: PlaygroundOptions;
18
+ /** Where the reference mounts. Defaults to `/reference`. */
19
+ route?: string;
20
+ /** One or more specs; each renders on its own route by default. */
21
+ sources?: ReferenceSourceOptions[];
22
+ /** Shorthand for a single source: `sources: [{ spec }]`. */
23
+ spec?: string;
24
+ }
25
+ export declare const openapiOptionsSchema: z.ZodPipe<z.ZodObject<{
26
+ expandSchemas: z.ZodDefault<z.ZodBoolean>;
27
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
28
+ includeInLlms: z.ZodDefault<z.ZodBoolean>;
29
+ includeInSearch: z.ZodDefault<z.ZodBoolean>;
30
+ label: z.ZodOptional<z.ZodString>;
31
+ noindex: z.ZodDefault<z.ZodBoolean>;
32
+ route: z.ZodOptional<z.ZodString>;
33
+ seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
34
+ spec: z.ZodString;
35
+ }, z.core.$strict>>>;
36
+ codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
37
+ playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
38
+ enabled: z.ZodDefault<z.ZodBoolean>;
39
+ proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
40
+ }, z.core.$strict>]>>, z.ZodTransform<{
41
+ enabled: boolean;
42
+ proxy: string | boolean;
43
+ }, boolean | {
44
+ enabled: boolean;
45
+ proxy: string | boolean;
46
+ }>>;
47
+ route: z.ZodDefault<z.ZodString>;
48
+ spec: z.ZodOptional<z.ZodString>;
49
+ }, z.core.$strict>, z.ZodTransform<Omit<{
50
+ expandSchemas: boolean;
51
+ sources: {
52
+ includeInLlms: boolean;
53
+ includeInSearch: boolean;
54
+ noindex: boolean;
55
+ seoDescriptionSuffix: boolean;
56
+ spec: string;
57
+ label?: string | undefined;
58
+ route?: string | undefined;
59
+ }[];
60
+ codeSamples: string[];
61
+ playground: {
62
+ enabled: boolean;
63
+ proxy: string | boolean;
64
+ };
65
+ route: string;
66
+ spec?: string | undefined;
67
+ }, "spec">, {
68
+ expandSchemas: boolean;
69
+ sources: {
70
+ includeInLlms: boolean;
71
+ includeInSearch: boolean;
72
+ noindex: boolean;
73
+ seoDescriptionSuffix: boolean;
74
+ spec: string;
75
+ label?: string | undefined;
76
+ route?: string | undefined;
77
+ }[];
78
+ codeSamples: string[];
79
+ playground: {
80
+ enabled: boolean;
81
+ proxy: string | boolean;
82
+ };
83
+ route: string;
84
+ spec?: string | undefined;
85
+ }>>;
86
+ /** `openapi()` options with every default applied and `spec` folded into `sources`. */
87
+ export type ResolvedOpenApiOptions = z.output<typeof openapiOptionsSchema>;
88
+ export type OpenApiAdapter = AdapterDescriptor<"openapi", OpenApiOptions>;
89
+ /** An `openapi()` descriptor as the config schema resolves it. */
90
+ export type ResolvedOpenApiAdapter = AdapterDescriptor<"openapi", ResolvedOpenApiOptions>;
91
+ export declare const openapiAdapterSchema: z.ZodObject<{
92
+ kind: z.ZodLiteral<"openapi">;
93
+ options: z.ZodPipe<z.ZodObject<{
94
+ expandSchemas: z.ZodDefault<z.ZodBoolean>;
95
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
96
+ includeInLlms: z.ZodDefault<z.ZodBoolean>;
97
+ includeInSearch: z.ZodDefault<z.ZodBoolean>;
98
+ label: z.ZodOptional<z.ZodString>;
99
+ noindex: z.ZodDefault<z.ZodBoolean>;
100
+ route: z.ZodOptional<z.ZodString>;
101
+ seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
102
+ spec: z.ZodString;
103
+ }, z.core.$strict>>>;
104
+ codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
105
+ playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
106
+ enabled: z.ZodDefault<z.ZodBoolean>;
107
+ proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
108
+ }, z.core.$strict>]>>, z.ZodTransform<{
109
+ enabled: boolean;
110
+ proxy: string | boolean;
111
+ }, boolean | {
112
+ enabled: boolean;
113
+ proxy: string | boolean;
114
+ }>>;
115
+ route: z.ZodDefault<z.ZodString>;
116
+ spec: z.ZodOptional<z.ZodString>;
117
+ }, z.core.$strict>, z.ZodTransform<Omit<{
118
+ expandSchemas: boolean;
119
+ sources: {
120
+ includeInLlms: boolean;
121
+ includeInSearch: boolean;
122
+ noindex: boolean;
123
+ seoDescriptionSuffix: boolean;
124
+ spec: string;
125
+ label?: string | undefined;
126
+ route?: string | undefined;
127
+ }[];
128
+ codeSamples: string[];
129
+ playground: {
130
+ enabled: boolean;
131
+ proxy: string | boolean;
132
+ };
133
+ route: string;
134
+ spec?: string | undefined;
135
+ }, "spec">, {
136
+ expandSchemas: boolean;
137
+ sources: {
138
+ includeInLlms: boolean;
139
+ includeInSearch: boolean;
140
+ noindex: boolean;
141
+ seoDescriptionSuffix: boolean;
142
+ spec: string;
143
+ label?: string | undefined;
144
+ route?: string | undefined;
145
+ }[];
146
+ codeSamples: string[];
147
+ playground: {
148
+ enabled: boolean;
149
+ proxy: string | boolean;
150
+ };
151
+ route: string;
152
+ spec?: string | undefined;
153
+ }>>;
154
+ requiredSecrets: z.ZodArray<z.ZodString>;
155
+ runtimeDeps: z.ZodArray<z.ZodString>;
156
+ }, z.core.$strict>;
157
+ /**
158
+ * An OpenAPI reference. Blume parses the spec with Scalar's parser and renders
159
+ * its own UI: one real page per operation, grouped by tag in the sidebar and
160
+ * included in site search, llms.txt, and OG. To embed the Scalar SPA instead
161
+ * (a single self-contained route that doesn't weave into the sidebar or
162
+ * search), list a `scalar()` adapter. Blume's renderer parses at generate
163
+ * time and needs no runtime dependency.
164
+ */
165
+ export declare const openapi: (options: OpenApiOptions) => OpenApiAdapter;
@@ -0,0 +1,157 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * A single spec rendered by a reference. `spec` is a local path or an
4
+ * `http(s)` URL (an OpenAPI document for `openapi()`, an AsyncAPI document
5
+ * for `asyncapi()`, SDL or introspection JSON for `graphql()`).
6
+ */
7
+ export declare const referenceSourceSchema: z.ZodObject<{
8
+ includeInLlms: z.ZodDefault<z.ZodBoolean>;
9
+ includeInSearch: z.ZodDefault<z.ZodBoolean>;
10
+ label: z.ZodOptional<z.ZodString>;
11
+ noindex: z.ZodDefault<z.ZodBoolean>;
12
+ route: z.ZodOptional<z.ZodString>;
13
+ seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
14
+ spec: z.ZodString;
15
+ }, z.core.$strict>;
16
+ /** One spec source, as `openapi()` and `asyncapi()` accept it. */
17
+ export interface ReferenceSourceOptions {
18
+ /** Include generated pages from this spec in llms.txt/llms-full.txt. Defaults to `true`. */
19
+ includeInLlms?: boolean;
20
+ /** Include generated pages from this spec in site search. Defaults to `true`. */
21
+ includeInSearch?: boolean;
22
+ /** Nav/section label for this source. */
23
+ label?: string;
24
+ /** Emit noindex metadata and omit generated pages from the sitemap. Defaults to `false`. */
25
+ noindex?: boolean;
26
+ /** Per-source route; defaults to the adapter's `route` (or a derived path). */
27
+ route?: string;
28
+ /**
29
+ * Append the generated English "Reference for …" sentence to every
30
+ * operation page's meta description. Defaults to `true`; set `false` on a
31
+ * non-English site to keep the spec's own prose alone.
32
+ */
33
+ seoDescriptionSuffix?: boolean;
34
+ /** Local path or `http(s)` URL to the spec. */
35
+ spec: string;
36
+ }
37
+ /** A spec source with every default applied. */
38
+ export type ResolvedReferenceSource = z.output<typeof referenceSourceSchema>;
39
+ /**
40
+ * A single GraphQL schema: the shared source shape plus `endpoint`, the live
41
+ * GraphQL API URL the playground and code samples target (a schema, unlike an
42
+ * OpenAPI document, names no server).
43
+ */
44
+ export declare const graphqlSourceSchema: z.ZodObject<{
45
+ includeInLlms: z.ZodDefault<z.ZodBoolean>;
46
+ includeInSearch: z.ZodDefault<z.ZodBoolean>;
47
+ label: z.ZodOptional<z.ZodString>;
48
+ noindex: z.ZodDefault<z.ZodBoolean>;
49
+ route: z.ZodOptional<z.ZodString>;
50
+ seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
51
+ spec: z.ZodString;
52
+ endpoint: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strict>;
54
+ /** One schema source, as `graphql()` accepts it. */
55
+ export interface GraphqlSourceOptions extends ReferenceSourceOptions {
56
+ /** URL of the live GraphQL endpoint (playground + code samples); wins over the adapter's `endpoint`. */
57
+ endpoint?: string;
58
+ }
59
+ /** A GraphQL schema source with every default applied. */
60
+ export type ResolvedGraphqlSource = z.output<typeof graphqlSourceSchema>;
61
+ /**
62
+ * The interactive "Try it" panel on operation pages (Blume renderer). On by
63
+ * default; `false` hides it. The object form keeps it on and sets `proxy`,
64
+ * the CORS escape hatch the Send button routes requests through: a proxy URL,
65
+ * or `true` for the built-in `/_api-proxy` endpoint (which needs server
66
+ * output: a host adapter such as `vercel()` in `deployment`). Booleans
67
+ * normalize to the object shape so consumers read `{ enabled, proxy }`
68
+ * directly. `proxy` applies to the HTTP-posting playgrounds (OpenAPI, GraphQL)
69
+ * — an event composer's WebSocket connect is direct. One schema for every
70
+ * reference kind, so the normalization can never drift between them.
71
+ */
72
+ export declare const playgroundSchema: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
73
+ enabled: z.ZodDefault<z.ZodBoolean>;
74
+ proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
75
+ }, z.core.$strict>]>>, z.ZodTransform<{
76
+ enabled: boolean;
77
+ proxy: string | boolean;
78
+ }, boolean | {
79
+ enabled: boolean;
80
+ proxy: string | boolean;
81
+ }>>;
82
+ /** The `playground` option as a factory accepts it. */
83
+ export type PlaygroundOptions = boolean | {
84
+ /** Render the panel. Defaults to `true`. */
85
+ enabled?: boolean;
86
+ /** CORS proxy: a URL, or `true` for the built-in `/_api-proxy` route. Defaults to `false`. */
87
+ proxy?: boolean | string;
88
+ };
89
+ /** The playground with its booleans normalized: `{ enabled, proxy }`. */
90
+ export type ResolvedPlayground = z.output<typeof playgroundSchema>;
91
+ /**
92
+ * The message a config still passing `renderer` to `openapi()`/`asyncapi()`
93
+ * gets: Scalar is its own adapter now, so the option has no home.
94
+ */
95
+ export declare const RENDERER_REMOVED_HINT = "`renderer` was removed: the Scalar embed is its own adapter. Replace `openapi({ spec, renderer: \"scalar\", theme })` with a separate `scalar({ spec, theme })` entry in `reference`, imported from \"blume/reference\" \u2014 `route`, `sources`, `label`, and `noindex` carry over, and the native display options (`codeSamples`, `expandSchemas`, `playground`) don't apply to the embed.";
96
+ /**
97
+ * Error params for the `openapi()`/`asyncapi()` option objects: a leftover
98
+ * `renderer` key names its replacement instead of Zod's bare "Unrecognized
99
+ * key"; any other unknown key keeps the default message, beside the hint.
100
+ */
101
+ export declare const rendererRemovedHint: {
102
+ error: (issue: z.core.$ZodRawIssue) => string | undefined;
103
+ };
104
+ /**
105
+ * The options every kind shares, with that kind's defaults for the mount
106
+ * route and code-sample set. `spec` is the single-source shorthand; the kind
107
+ * schema folds it into `sources` with {@link liftSpec}.
108
+ */
109
+ export declare const sharedOptions: (defaults: {
110
+ codeSamples: string[];
111
+ route: string;
112
+ }) => {
113
+ /** Code-sample languages/tools shown per operation (Blume renderer). */
114
+ codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
115
+ /** The "Try it" panel; see {@link playgroundSchema}. */
116
+ playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
117
+ enabled: z.ZodDefault<z.ZodBoolean>;
118
+ proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
119
+ }, z.core.$strict>]>>, z.ZodTransform<{
120
+ enabled: boolean;
121
+ proxy: string | boolean;
122
+ }, boolean | {
123
+ enabled: boolean;
124
+ proxy: string | boolean;
125
+ }>>;
126
+ /** Where the reference mounts. */
127
+ route: z.ZodDefault<z.ZodString>;
128
+ /** Shorthand for a single source: `sources: [{ spec }]`. */
129
+ spec: z.ZodOptional<z.ZodString>;
130
+ };
131
+ /**
132
+ * Resolve the `spec` shorthand into `sources` so downstream code reads one
133
+ * field: the shorthand becomes the first source (with the source defaults
134
+ * applied through the source schema itself, so the two can never drift) and
135
+ * the `spec` key is dropped. An adapter with neither renders nothing, which
136
+ * is a config mistake rather than a choice — `refine` it away with
137
+ * {@link hasSources}.
138
+ */
139
+ export declare const liftSpec: <Source extends {
140
+ spec: string;
141
+ }>(sourceSchema: z.ZodType<Source, {
142
+ spec: string;
143
+ }>) => <Options extends {
144
+ sources: Source[];
145
+ spec?: string;
146
+ }>({ spec, ...options }: Options) => Omit<Options, "spec">;
147
+ /** Whether an adapter has anything to render; pairs with {@link missingSourcesIssue}. */
148
+ export declare const hasSources: (options: {
149
+ sources: {
150
+ spec: string;
151
+ }[];
152
+ }) => boolean;
153
+ /** The refinement issue for a source-less adapter, naming its factory. */
154
+ export declare const missingSourcesIssue: (factory: string) => {
155
+ message: string;
156
+ path: string[];
157
+ };
@@ -0,0 +1,136 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ /**
4
+ * What the generated Scalar page imports. Declared on every `scalar()`
5
+ * descriptor so the generated project lists it, which is what lets Astro's
6
+ * framework-package crawl bundle the embed.
7
+ */
8
+ export declare const SCALAR_RUNTIME_DEPS: readonly string[];
9
+ /**
10
+ * A single document rendered by a `scalar()` reference. Scalar reads OpenAPI
11
+ * and AsyncAPI documents and detects which it was given, so there is one
12
+ * source shape for both. The embed sits outside Blume's search and llms.txt,
13
+ * so of the native per-source controls only `noindex` applies here.
14
+ */
15
+ export declare const scalarSourceSchema: z.ZodObject<{
16
+ label: z.ZodOptional<z.ZodString>;
17
+ noindex: z.ZodDefault<z.ZodBoolean>;
18
+ route: z.ZodOptional<z.ZodString>;
19
+ spec: z.ZodString;
20
+ }, z.core.$strict>;
21
+ /** One document source, as `scalar()` accepts it. */
22
+ export interface ScalarSourceOptions {
23
+ /** Nav/section label for this source. */
24
+ label?: string;
25
+ /** Emit noindex metadata and omit the page from the sitemap. Defaults to `false`. */
26
+ noindex?: boolean;
27
+ /** Per-source route; defaults to the adapter's `route` (or a derived path). */
28
+ route?: string;
29
+ /** Local path or `http(s)` URL to the OpenAPI or AsyncAPI document. */
30
+ spec: string;
31
+ }
32
+ /** A source with every default applied. */
33
+ export type ResolvedScalarSource = z.output<typeof scalarSourceSchema>;
34
+ /**
35
+ * `scalar()` options with every default applied and `spec` folded into
36
+ * `sources`; every key beyond the named ones is forwarded Scalar config.
37
+ */
38
+ export type ResolvedScalarOptions = {
39
+ route: string;
40
+ sources: ResolvedScalarSource[];
41
+ theme?: string;
42
+ } & {
43
+ [option: string]: JsonValue;
44
+ };
45
+ /** The options {@link scalar} maps itself. */
46
+ export interface ScalarNamedOptions {
47
+ /** Where the reference mounts. Defaults to `/reference`. */
48
+ route?: string;
49
+ /** One or more documents; each renders on its own route by default. */
50
+ sources?: ScalarSourceOptions[];
51
+ /** Shorthand for a single source: `sources: [{ spec }]`. */
52
+ spec?: string;
53
+ /** A Scalar theme name (`purple`, `moon`, …). Unset keeps Scalar's default theme with Blume's accent and radius layered on top. */
54
+ theme?: string;
55
+ }
56
+ /**
57
+ * Options for {@link scalar}: the source, route, and `theme` Blume maps, plus
58
+ * any other [Scalar configuration](https://github.com/scalar/scalar/blob/main/documentation/configuration.md)
59
+ * key, forwarded verbatim to the embedded `<ScalarComponent>` (`localization`,
60
+ * `agent`, `hideTestRequestButton`, `orderSchemaPropertiesBy`, …). Blume
61
+ * doesn't mirror Scalar's config surface, so this is a full escape hatch: a
62
+ * forwarded key wins over Blume's own derived spec/theme config. JSON values
63
+ * only — the configuration is inlined into the generated page. `sources` is
64
+ * Blume's (one page per document); Scalar's own multi-document `sources`
65
+ * can't be forwarded.
66
+ */
67
+ export type ScalarOptions = ScalarNamedOptions & {
68
+ [option: string]: JsonValue;
69
+ };
70
+ /**
71
+ * `spec` is the single-source shorthand and folds into `sources` at parse
72
+ * (through the source schema, so the two can never drift); every key beyond
73
+ * the named ones is Scalar configuration and passes through untouched.
74
+ */
75
+ export declare const scalarOptionsSchema: z.ZodPipe<z.ZodObject<{
76
+ route: z.ZodDefault<z.ZodString>;
77
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
78
+ label: z.ZodOptional<z.ZodString>;
79
+ noindex: z.ZodDefault<z.ZodBoolean>;
80
+ route: z.ZodOptional<z.ZodString>;
81
+ spec: z.ZodString;
82
+ }, z.core.$strict>>>;
83
+ spec: z.ZodOptional<z.ZodString>;
84
+ theme: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$catchall<z.ZodJSONSchema>>, z.ZodTransform<ResolvedScalarOptions, {
86
+ [x: string]: z.core.util.JSONType;
87
+ route: string;
88
+ sources: {
89
+ noindex: boolean;
90
+ spec: string;
91
+ label?: string | undefined;
92
+ route?: string | undefined;
93
+ }[];
94
+ spec?: string | undefined;
95
+ theme?: string | undefined;
96
+ }>>;
97
+ export type ScalarAdapter = AdapterDescriptor<"scalar", ScalarOptions>;
98
+ /** A `scalar()` descriptor as the config schema resolves it. */
99
+ export type ResolvedScalarAdapter = AdapterDescriptor<"scalar", ResolvedScalarOptions>;
100
+ export declare const scalarAdapterSchema: z.ZodObject<{
101
+ kind: z.ZodLiteral<"scalar">;
102
+ options: z.ZodPipe<z.ZodObject<{
103
+ route: z.ZodDefault<z.ZodString>;
104
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
105
+ label: z.ZodOptional<z.ZodString>;
106
+ noindex: z.ZodDefault<z.ZodBoolean>;
107
+ route: z.ZodOptional<z.ZodString>;
108
+ spec: z.ZodString;
109
+ }, z.core.$strict>>>;
110
+ spec: z.ZodOptional<z.ZodString>;
111
+ theme: z.ZodOptional<z.ZodString>;
112
+ }, z.core.$catchall<z.ZodJSONSchema>>, z.ZodTransform<ResolvedScalarOptions, {
113
+ [x: string]: z.core.util.JSONType;
114
+ route: string;
115
+ sources: {
116
+ noindex: boolean;
117
+ spec: string;
118
+ label?: string | undefined;
119
+ route?: string | undefined;
120
+ }[];
121
+ spec?: string | undefined;
122
+ theme?: string | undefined;
123
+ }>>;
124
+ requiredSecrets: z.ZodArray<z.ZodString>;
125
+ runtimeDeps: z.ZodArray<z.ZodString>;
126
+ }, z.core.$strict>;
127
+ /**
128
+ * An API reference rendered by [Scalar](https://scalar.com)'s self-contained
129
+ * UI — its own sidebar, search, theme, and request client on a single route —
130
+ * instead of Blume's native operation pages. Takes an OpenAPI or AsyncAPI
131
+ * document (Scalar detects which); a GraphQL schema has no Scalar embed.
132
+ * Blume's per-page controls don't apply: the embed doesn't weave into the
133
+ * sidebar, search, or llms.txt, and it brings its own request client in place
134
+ * of the Try it playground.
135
+ */
136
+ export declare const scalar: (options: ScalarOptions) => ScalarAdapter;