blume 2.0.2 → 2.1.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 (601) hide show
  1. package/AGENTS.md +1 -0
  2. package/CHANGELOG.md +113 -0
  3. package/README.md +1 -1
  4. package/dist/cli/{chunk-6k4ftwze.js → chunk-0gz36akr.js} +18 -2
  5. package/dist/cli/{chunk-6k4ftwze.js.map → chunk-0gz36akr.js.map} +3 -3
  6. package/dist/cli/{chunk-zp79m0ts.js → chunk-1n228xqb.js} +2 -2
  7. package/dist/cli/{chunk-ddndchfr.js → chunk-2f3ndkpw.js} +57 -29
  8. package/dist/cli/chunk-2f3ndkpw.js.map +14 -0
  9. package/dist/cli/{chunk-fsmrqk8a.js → chunk-2f7n4qzt.js} +8 -2
  10. package/dist/cli/{chunk-fsmrqk8a.js.map → chunk-2f7n4qzt.js.map} +3 -3
  11. package/dist/cli/{chunk-ppzjqwx2.js → chunk-2n4ps1b3.js} +17 -18
  12. package/dist/cli/{chunk-ppzjqwx2.js.map → chunk-2n4ps1b3.js.map} +3 -3
  13. package/dist/cli/{chunk-5r8g91qn.js → chunk-43zcf4gz.js} +398 -159
  14. package/dist/cli/chunk-43zcf4gz.js.map +36 -0
  15. package/dist/cli/chunk-4ejxbzee.js +39 -0
  16. package/dist/cli/chunk-4ejxbzee.js.map +10 -0
  17. package/dist/cli/{chunk-hr8ne106.js → chunk-4h8z9vv5.js} +296 -77
  18. package/dist/cli/chunk-4h8z9vv5.js.map +16 -0
  19. package/dist/cli/{chunk-k7pj68a8.js → chunk-5cg2rzgf.js} +18 -16
  20. package/dist/cli/{chunk-k7pj68a8.js.map → chunk-5cg2rzgf.js.map} +2 -2
  21. package/dist/cli/{chunk-h2ez8dzb.js → chunk-5ffywsmb.js} +4 -4
  22. package/dist/cli/{chunk-g698a744.js → chunk-5wj2qwn2.js} +5 -5
  23. package/dist/cli/chunk-6bm0xpgd.js +18 -0
  24. package/dist/cli/chunk-6bm0xpgd.js.map +10 -0
  25. package/dist/cli/{chunk-3yce002v.js → chunk-713mngdq.js} +15 -8
  26. package/dist/cli/chunk-713mngdq.js.map +14 -0
  27. package/dist/cli/{chunk-91ws1n6j.js → chunk-9geymqns.js} +17 -15
  28. package/dist/cli/{chunk-91ws1n6j.js.map → chunk-9geymqns.js.map} +2 -2
  29. package/dist/cli/{chunk-6dtt0zfn.js → chunk-9xr4dgee.js} +27 -18
  30. package/dist/cli/chunk-9xr4dgee.js.map +10 -0
  31. package/dist/cli/{chunk-sqw4ekg1.js → chunk-amrb6hgh.js} +2 -2
  32. package/dist/cli/chunk-cm89scdv.js +443 -0
  33. package/dist/cli/chunk-cm89scdv.js.map +11 -0
  34. package/dist/cli/{chunk-wdrt2k2v.js → chunk-cmtcnh9f.js} +90 -26
  35. package/dist/cli/chunk-cmtcnh9f.js.map +10 -0
  36. package/dist/cli/chunk-cy5bm0j0.js +104 -0
  37. package/dist/cli/chunk-cy5bm0j0.js.map +11 -0
  38. package/dist/cli/{chunk-7mbqtmgb.js → chunk-e7vvk5ya.js} +21 -12
  39. package/dist/cli/chunk-e7vvk5ya.js.map +10 -0
  40. package/dist/cli/{chunk-qkb5a8sa.js → chunk-g2z9x01v.js} +6 -98
  41. package/dist/cli/chunk-g2z9x01v.js.map +10 -0
  42. package/dist/cli/{chunk-273ygyr4.js → chunk-ga0pf4aj.js} +7 -7
  43. package/dist/cli/{chunk-273ygyr4.js.map → chunk-ga0pf4aj.js.map} +3 -3
  44. package/dist/cli/{chunk-h7k3nq3v.js → chunk-gp84za0h.js} +2 -2
  45. package/dist/cli/{chunk-hqp2ajnh.js → chunk-h2a48yhd.js} +195 -73
  46. package/dist/cli/chunk-h2a48yhd.js.map +36 -0
  47. package/dist/cli/{chunk-pbg5a4s3.js → chunk-jnwj5kjj.js} +71 -47
  48. package/dist/cli/chunk-jnwj5kjj.js.map +19 -0
  49. package/dist/cli/chunk-kwrg63tm.js +31 -0
  50. package/dist/cli/chunk-kwrg63tm.js.map +10 -0
  51. package/dist/cli/{chunk-8g8ytmgx.js → chunk-nd1821sk.js} +21 -19
  52. package/dist/cli/{chunk-8g8ytmgx.js.map → chunk-nd1821sk.js.map} +2 -2
  53. package/dist/cli/{chunk-w4bxdvsa.js → chunk-ntv4qrt7.js} +17 -15
  54. package/dist/cli/{chunk-w4bxdvsa.js.map → chunk-ntv4qrt7.js.map} +2 -2
  55. package/dist/cli/{chunk-bfwp9vp6.js → chunk-p804f3pe.js} +7 -7
  56. package/dist/cli/{chunk-4e9b9ra6.js → chunk-py62fewh.js} +6 -6
  57. package/dist/cli/{chunk-4e9b9ra6.js.map → chunk-py62fewh.js.map} +1 -1
  58. package/dist/cli/chunk-q3wxxq39.js +126 -0
  59. package/dist/cli/chunk-q3wxxq39.js.map +11 -0
  60. package/dist/cli/{chunk-j85scx15.js → chunk-rekqz4qg.js} +142 -46
  61. package/dist/cli/chunk-rekqz4qg.js.map +10 -0
  62. package/dist/cli/{chunk-00gs3wqs.js → chunk-ta27feev.js} +1 -1
  63. package/dist/cli/{chunk-v6ya5kcb.js → chunk-xkz5xbtv.js} +4031 -1132
  64. package/dist/cli/chunk-xkz5xbtv.js.map +213 -0
  65. package/dist/cli/{chunk-bbnwccaz.js → chunk-y4ykbark.js} +2 -2
  66. package/dist/cli/{chunk-n1yg3tj3.js → chunk-y5h4r2y0.js} +6 -6
  67. package/dist/cli/{chunk-n1yg3tj3.js.map → chunk-y5h4r2y0.js.map} +3 -3
  68. package/dist/cli/{chunk-nfcyttvj.js → chunk-yj17vs39.js} +9 -9
  69. package/dist/cli/{chunk-nfcyttvj.js.map → chunk-yj17vs39.js.map} +1 -1
  70. package/dist/cli/{chunk-7vtckvaw.js → chunk-yxmk4pec.js} +16 -14
  71. package/dist/cli/{chunk-7vtckvaw.js.map → chunk-yxmk4pec.js.map} +2 -2
  72. package/dist/cli/{chunk-gs7r695n.js → chunk-zccbjcj0.js} +22 -8
  73. package/dist/cli/{chunk-gs7r695n.js.map → chunk-zccbjcj0.js.map} +3 -3
  74. package/dist/cli/{chunk-xh43dwgw.js → chunk-zf748avv.js} +415 -225
  75. package/dist/cli/chunk-zf748avv.js.map +37 -0
  76. package/dist/cli/{chunk-d1v5rhy0.js → chunk-zhvd6adm.js} +16 -14
  77. package/dist/cli/{chunk-d1v5rhy0.js.map → chunk-zhvd6adm.js.map} +2 -2
  78. package/dist/cli/index.js +28 -20
  79. package/dist/cli/index.js.map +5 -5
  80. package/dist/types/ai/agent-surface.d.ts +8 -7
  81. package/dist/types/ai/ai-catalog.d.ts +7 -0
  82. package/dist/types/ai/ask-context.d.ts +22 -0
  83. package/dist/types/ai/ask.d.ts +271 -58
  84. package/dist/types/ai/index.d.ts +2 -2
  85. package/dist/types/ai/link-headers.d.ts +8 -1
  86. package/dist/types/ai/openapi-components.d.ts +5 -2
  87. package/dist/types/ai/relative-links.d.ts +9 -7
  88. package/dist/types/ai/site-skill.d.ts +26 -0
  89. package/dist/types/ai/skills.d.ts +20 -1
  90. package/dist/types/ai/tar.d.ts +1 -3
  91. package/dist/types/analytics/index.d.ts +2 -0
  92. package/dist/types/analytics/one-dollar-stats.d.ts +48 -0
  93. package/dist/types/analytics/schema.d.ts +14 -0
  94. package/dist/types/astro/integration.d.ts +11 -2
  95. package/dist/types/captcha/hcaptcha.d.ts +27 -0
  96. package/dist/types/captcha/index.d.ts +28 -0
  97. package/dist/types/captcha/schema.d.ts +29 -0
  98. package/dist/types/captcha/turnstile.d.ts +28 -0
  99. package/dist/types/components/content/api-field.d.ts +59 -0
  100. package/dist/types/components/content/api-page.d.ts +95 -0
  101. package/dist/types/components/layout/nav-utils.d.ts +26 -0
  102. package/dist/types/components/openapi/helpers.d.ts +137 -0
  103. package/dist/types/components/openapi/security.d.ts +85 -0
  104. package/dist/types/consent/ethyca.d.ts +48 -0
  105. package/dist/types/consent/index.d.ts +37 -0
  106. package/dist/types/consent/native.d.ts +28 -0
  107. package/dist/types/consent/osano.d.ts +42 -0
  108. package/dist/types/consent/schema.d.ts +110 -0
  109. package/dist/types/core/base-path.d.ts +21 -7
  110. package/dist/types/core/config-input.d.ts +196 -27
  111. package/dist/types/core/data.d.ts +49 -4
  112. package/dist/types/core/directive-diagnostics.d.ts +12 -0
  113. package/dist/types/core/footer.d.ts +8 -0
  114. package/dist/types/core/heading-markers.d.ts +5 -7
  115. package/dist/types/core/i18n-ui.d.ts +86 -0
  116. package/dist/types/core/i18n.d.ts +2 -0
  117. package/dist/types/core/includes.d.ts +8 -2
  118. package/dist/types/core/last-modified.d.ts +10 -0
  119. package/dist/types/core/localizable.d.ts +7 -0
  120. package/dist/types/core/meta.d.ts +8 -0
  121. package/dist/types/core/page-modes.d.ts +29 -0
  122. package/dist/types/core/redirect-patterns.d.ts +144 -0
  123. package/dist/types/core/related.d.ts +40 -0
  124. package/dist/types/core/schema.d.ts +558 -56
  125. package/dist/types/core/sources/lower.d.ts +29 -16
  126. package/dist/types/core/sources/normalize.d.ts +13 -1
  127. package/dist/types/core/sources/read.d.ts +5 -0
  128. package/dist/types/core/sources/watch.d.ts +12 -5
  129. package/dist/types/core/standard-schema.d.ts +5 -0
  130. package/dist/types/core/types.d.ts +1 -1
  131. package/dist/types/core/variables.d.ts +42 -0
  132. package/dist/types/deploy/artifacts.d.ts +6 -4
  133. package/dist/types/deploy/headers.d.ts +5 -0
  134. package/dist/types/deploy/node-headers.d.ts +13 -2
  135. package/dist/types/deploy/platforms/cloudflare.d.ts +5 -0
  136. package/dist/types/deploy/platforms/netlify.d.ts +7 -0
  137. package/dist/types/deploy/platforms/types.d.ts +8 -0
  138. package/dist/types/deploy/platforms/vercel.d.ts +6 -0
  139. package/dist/types/deploy/redirects.d.ts +61 -22
  140. package/dist/types/deploy/vercel-negotiation.d.ts +9 -0
  141. package/dist/types/markdown/code-title.d.ts +17 -0
  142. package/dist/types/markdown/directives.d.ts +62 -0
  143. package/dist/types/markdown/features.d.ts +24 -2
  144. package/dist/types/markdown/mdast.d.ts +63 -0
  145. package/dist/types/narration/build.d.ts +70 -0
  146. package/dist/types/narration/provider.d.ts +26 -0
  147. package/dist/types/narration/script.d.ts +154 -0
  148. package/dist/types/openapi/asyncapi.d.ts +4 -2
  149. package/dist/types/openapi/model.d.ts +12 -6
  150. package/dist/types/openapi/overlay.d.ts +54 -0
  151. package/dist/types/openapi/parse.d.ts +13 -0
  152. package/dist/types/openapi/references.d.ts +14 -4
  153. package/dist/types/ratelimit/cloudflare.d.ts +39 -0
  154. package/dist/types/ratelimit/index.d.ts +27 -0
  155. package/dist/types/ratelimit/memory.d.ts +36 -0
  156. package/dist/types/ratelimit/schema.d.ts +111 -0
  157. package/dist/types/ratelimit/upstash.d.ts +21 -0
  158. package/dist/types/ratelimit/wrangler.d.ts +23 -0
  159. package/dist/types/reference/asyncapi.d.ts +10 -10
  160. package/dist/types/reference/graphql.d.ts +13 -10
  161. package/dist/types/reference/openapi.d.ts +33 -12
  162. package/dist/types/reference/options.d.ts +45 -5
  163. package/dist/types/reference/scalar.d.ts +13 -0
  164. package/dist/types/reference/schema.d.ts +60 -36
  165. package/dist/types/search/documents.d.ts +12 -1
  166. package/dist/types/search/orama-index.d.ts +4 -0
  167. package/dist/types/seo/metatags.d.ts +20 -0
  168. package/docs/02-deployment.mdx +44 -6
  169. package/docs/03-upgrading.mdx +4 -4
  170. package/docs/04-migrating.mdx +1 -1
  171. package/docs/08-faq.mdx +1 -1
  172. package/docs/advanced/changelog.mdx +2 -2
  173. package/docs/advanced/custom-pages.mdx +3 -3
  174. package/docs/advanced/skills.mdx +14 -0
  175. package/docs/cli/audit.mdx +38 -2
  176. package/docs/cli/evals.mdx +3 -3
  177. package/docs/cli/index.mdx +1 -0
  178. package/docs/cli/translate.mdx +3 -3
  179. package/docs/cli/version.mdx +1 -1
  180. package/docs/configuration/analytics.mdx +22 -1
  181. package/docs/configuration/assistant.mdx +188 -36
  182. package/docs/configuration/consent.mdx +100 -0
  183. package/docs/configuration/customization.mdx +6 -4
  184. package/docs/configuration/index.mdx +63 -5
  185. package/docs/configuration/meta.ts +3 -0
  186. package/docs/configuration/narration.mdx +119 -0
  187. package/docs/configuration/rate-limiting.mdx +69 -0
  188. package/docs/configuration/search.mdx +30 -2
  189. package/docs/configuration/theming.mdx +3 -1
  190. package/docs/content/components.mdx +107 -1
  191. package/docs/content/frontmatter.mdx +77 -1
  192. package/docs/content/i18n.mdx +40 -3
  193. package/docs/content/includes.mdx +16 -0
  194. package/docs/content/index.mdx +4 -2
  195. package/docs/content/islands.mdx +1 -1
  196. package/docs/content/meta.mdx +4 -1
  197. package/docs/content/meta.ts +1 -0
  198. package/docs/content/navigation.mdx +28 -6
  199. package/docs/content/sources/contentful.mdx +32 -0
  200. package/docs/content/sources/custom.mdx +39 -0
  201. package/docs/content/sources/github-releases.mdx +31 -0
  202. package/docs/content/sources/index.mdx +91 -0
  203. package/docs/content/sources/meta.ts +16 -0
  204. package/docs/content/sources/notion.mdx +32 -0
  205. package/docs/content/sources/obsidian.mdx +37 -0
  206. package/docs/content/sources/payload.mdx +30 -0
  207. package/docs/content/sources/remote-mdx.mdx +40 -0
  208. package/docs/content/sources/sanity.mdx +29 -0
  209. package/docs/content/sources/strapi.mdx +31 -0
  210. package/docs/content/syntax.mdx +81 -2
  211. package/docs/content/variables.mdx +41 -0
  212. package/docs/content/versioning.mdx +1 -1
  213. package/docs/discoverability/agent-discovery.mdx +30 -3
  214. package/docs/discoverability/index.mdx +3 -2
  215. package/docs/discoverability/llms-txt.mdx +1 -1
  216. package/docs/discoverability/markdown.mdx +2 -2
  217. package/docs/discoverability/metadata.mdx +17 -0
  218. package/docs/discoverability/open-graph.mdx +5 -3
  219. package/docs/discoverability/rss.mdx +1 -1
  220. package/docs/references/api-pages.mdx +74 -0
  221. package/docs/references/asyncapi.mdx +2 -2
  222. package/docs/references/graphql.mdx +3 -3
  223. package/docs/references/meta.ts +1 -1
  224. package/docs/references/openapi.mdx +106 -5
  225. package/docs/references/scalar.mdx +3 -1
  226. package/package.json +36 -1
  227. package/skills/blume/SKILL.md +3 -0
  228. package/skills/blume-migrate/SKILL.md +5 -5
  229. package/skills/blume-migrate/references/docusaurus.md +3 -3
  230. package/skills/blume-migrate/references/fumadocs.md +1 -1
  231. package/skills/blume-migrate/references/mintlify.md +37 -19
  232. package/skills/blume-migrate/references/nextra.md +3 -3
  233. package/skills/blume-migrate/references/starlight.md +2 -1
  234. package/skills/blume-migrate/scripts/mintlify-codemod.mjs +67 -16
  235. package/skills/blume-write-skill/SKILL.md +82 -0
  236. package/src/ai/agent-readability.ts +4 -3
  237. package/src/ai/agent-surface.ts +9 -7
  238. package/src/ai/ai-catalog.ts +12 -5
  239. package/src/ai/api/handlers.ts +2 -2
  240. package/src/ai/api/spec.ts +2 -2
  241. package/src/ai/api-catalog.ts +6 -2
  242. package/src/ai/ask-context.ts +73 -20
  243. package/src/ai/ask-data.ts +6 -0
  244. package/src/ai/ask-tools.ts +142 -0
  245. package/src/ai/ask.ts +354 -76
  246. package/src/ai/changelog-markdown.ts +2 -2
  247. package/src/ai/component-markdown.ts +75 -0
  248. package/src/ai/cors.ts +2 -0
  249. package/src/ai/index.ts +12 -0
  250. package/src/ai/link-headers.ts +14 -5
  251. package/src/ai/llms.ts +24 -9
  252. package/src/ai/markdown.ts +2 -1
  253. package/src/ai/mcp/data.ts +6 -0
  254. package/src/ai/mcp/discovery.ts +2 -2
  255. package/src/ai/mcp/query.ts +2 -2
  256. package/src/ai/mcp/server.ts +2 -2
  257. package/src/ai/openapi-components.ts +31 -9
  258. package/src/ai/relative-links.ts +42 -26
  259. package/src/ai/serializers.ts +2 -1
  260. package/src/ai/site-skill.ts +274 -0
  261. package/src/ai/skills.ts +49 -3
  262. package/src/ai/tar.ts +139 -12
  263. package/src/ai/write-skill.ts +97 -0
  264. package/src/analytics/head.ts +4 -0
  265. package/src/analytics/index.ts +5 -0
  266. package/src/analytics/one-dollar-stats.ts +86 -0
  267. package/src/analytics/schema.ts +2 -0
  268. package/src/astro/generate.ts +133 -19
  269. package/src/astro/include-hmr.ts +31 -12
  270. package/src/astro/include-refresh.ts +19 -8
  271. package/src/astro/index.ts +1 -0
  272. package/src/astro/integration.ts +143 -14
  273. package/src/astro/module-types.ts +6 -0
  274. package/src/astro/runtime-modules.ts +28 -13
  275. package/src/astro/templates.ts +364 -67
  276. package/src/astro/variables.ts +31 -0
  277. package/src/audit/catalog.ts +19 -0
  278. package/src/audit/checks/contrast.ts +183 -0
  279. package/src/audit/checks/i18n.ts +2 -3
  280. package/src/audit/checks/indexability.ts +2 -3
  281. package/src/audit/checks/links.ts +13 -13
  282. package/src/audit/checks/sitemap.ts +2 -3
  283. package/src/audit/graph.ts +3 -1
  284. package/src/audit/redirects.ts +46 -15
  285. package/src/audit/run.ts +14 -9
  286. package/src/audit/snapshot.ts +5 -0
  287. package/src/audit/types.ts +2 -1
  288. package/src/blume-modules.d.ts +7 -0
  289. package/src/captcha/client.ts +152 -0
  290. package/src/captcha/hcaptcha.ts +36 -0
  291. package/src/captcha/index.ts +28 -0
  292. package/src/captcha/schema.ts +32 -0
  293. package/src/captcha/turnstile.ts +38 -0
  294. package/src/captcha/verify.ts +71 -0
  295. package/src/cli/args.ts +32 -0
  296. package/src/cli/command-meta.ts +5 -0
  297. package/src/cli/commands/audit.ts +4 -1
  298. package/src/cli/commands/doctor.ts +25 -17
  299. package/src/cli/commands/eval.ts +19 -11
  300. package/src/cli/commands/skill.ts +96 -0
  301. package/src/cli/commands/translate.ts +9 -12
  302. package/src/cli/commands/validate.ts +3 -1
  303. package/src/cli/dev-lock.ts +157 -37
  304. package/src/cli/index.ts +5 -0
  305. package/src/cli/report-format.ts +11 -6
  306. package/src/cli/required-secrets.ts +71 -29
  307. package/src/components/BlumePage.astro +2 -0
  308. package/src/components/colors.ts +19 -0
  309. package/src/components/content/ApiEndpoint.astro +18 -0
  310. package/src/components/content/ApiField.astro +79 -0
  311. package/src/components/content/ApiPlayground.astro +62 -0
  312. package/src/components/content/ApiRail.astro +19 -0
  313. package/src/components/content/Badge.astro +5 -3
  314. package/src/components/content/Color.astro +1 -0
  315. package/src/components/content/Component.astro +2 -2
  316. package/src/components/content/FileTree.astro +1 -0
  317. package/src/components/content/GithubInfo.astro +1 -0
  318. package/src/components/content/Panel.astro +1 -0
  319. package/src/components/content/ParamField.astro +25 -0
  320. package/src/components/content/RequestExample.astro +17 -0
  321. package/src/components/content/ResponseExample.astro +17 -0
  322. package/src/components/content/ResponseField.astro +32 -0
  323. package/src/components/content/Step.astro +1 -0
  324. package/src/components/content/Tab.astro +0 -1
  325. package/src/components/content/Tabs.astro +4 -0
  326. package/src/components/content/Tile.astro +1 -0
  327. package/src/components/content/Tooltip.astro +1 -0
  328. package/src/components/content/Tree.astro +1 -0
  329. package/src/components/content/TypeTable.astro +4 -1
  330. package/src/components/content/View.astro +21 -0
  331. package/src/components/content/ViewSwitcher.astro +168 -0
  332. package/src/components/content/api-field.ts +100 -0
  333. package/src/components/content/api-page.ts +224 -0
  334. package/src/components/content/badge-color.ts +5 -2
  335. package/src/components/content/base-href.ts +13 -36
  336. package/src/components/content/view-switcher.ts +71 -0
  337. package/src/components/index.ts +2 -0
  338. package/src/components/islands/Assistant.astro +10 -1
  339. package/src/components/islands/assistant.tsx +125 -18
  340. package/src/components/islands/base-path.ts +47 -10
  341. package/src/components/islands/code-question.ts +62 -0
  342. package/src/components/islands/hooks.ts +145 -40
  343. package/src/components/islands/support-link.ts +68 -0
  344. package/src/components/islands/webmcp.ts +4 -2
  345. package/src/components/layout/Analytics.astro +11 -2
  346. package/src/components/layout/Banner.astro +14 -10
  347. package/src/components/layout/Breadcrumbs.astro +11 -4
  348. package/src/components/layout/ConsentBanner.astro +62 -0
  349. package/src/components/layout/ConsentHead.astro +38 -0
  350. package/src/components/layout/Directory.astro +94 -0
  351. package/src/components/layout/DiscoveryLinks.astro +9 -5
  352. package/src/components/layout/DrawerSwitchers.astro +51 -0
  353. package/src/components/layout/Empty.astro +2 -2
  354. package/src/components/layout/Header.astro +124 -82
  355. package/src/components/layout/LanguageSwitcher.astro +50 -17
  356. package/src/components/layout/NarrationPlayer.astro +1085 -0
  357. package/src/components/layout/NavSelector.astro +35 -9
  358. package/src/components/layout/NavTabMenu.astro +3 -3
  359. package/src/components/layout/NavTree.astro +16 -6
  360. package/src/components/layout/PageActions.astro +4 -3
  361. package/src/components/layout/PageFeedback.astro +54 -49
  362. package/src/components/layout/PageLayout.astro +78 -9
  363. package/src/components/layout/Pagination.astro +3 -3
  364. package/src/components/layout/ReferenceLayout.astro +17 -6
  365. package/src/components/layout/RelatedPages.astro +42 -0
  366. package/src/components/layout/RootLayout.astro +313 -50
  367. package/src/components/layout/Search.astro +64 -30
  368. package/src/components/layout/SiteFooter.astro +124 -0
  369. package/src/components/layout/SiteMetatags.astro +16 -0
  370. package/src/components/layout/VersionBanner.astro +2 -2
  371. package/src/components/layout/analytics-client.ts +12 -0
  372. package/src/components/layout/consent/native.ts +79 -0
  373. package/src/components/layout/consent/types.ts +37 -0
  374. package/src/components/layout/footer-links.ts +53 -0
  375. package/src/components/layout/footer-socials.ts +87 -0
  376. package/src/components/layout/locale-redirect.ts +107 -0
  377. package/src/components/layout/nav-utils.ts +83 -0
  378. package/src/components/layout/page-feedback.ts +96 -0
  379. package/src/components/layout/search/analytics.ts +98 -0
  380. package/src/components/layout/search/flexsearch.ts +17 -5
  381. package/src/components/layout/search/orama-cloud.ts +26 -14
  382. package/src/components/layout/search/types.ts +20 -0
  383. package/src/components/layout/search/typesense.ts +5 -1
  384. package/src/components/layout/toc-active.ts +41 -0
  385. package/src/components/layout/toc-element.ts +8 -14
  386. package/src/components/openapi/ApiTagOperations.astro +2 -2
  387. package/src/components/openapi/AsyncApiOperation.astro +7 -4
  388. package/src/components/openapi/GraphqlChip.astro +2 -2
  389. package/src/components/openapi/Operation.astro +163 -13
  390. package/src/components/openapi/Playground.astro +4 -4
  391. package/src/components/openapi/RequestBody.astro +6 -4
  392. package/src/components/openapi/RequestPanel.astro +63 -8
  393. package/src/components/openapi/Responses.astro +6 -4
  394. package/src/components/openapi/SchemaTable.astro +7 -0
  395. package/src/components/openapi/async-snippets.ts +4 -4
  396. package/src/components/openapi/async.ts +38 -6
  397. package/src/components/openapi/code-samples.ts +97 -0
  398. package/src/components/openapi/helpers.ts +19 -9
  399. package/src/components/openapi/message-composer.ts +6 -1
  400. package/src/components/openapi/message.ts +17 -2
  401. package/src/components/openapi/operation-model.ts +81 -11
  402. package/src/components/openapi/panel.ts +4 -2
  403. package/src/components/openapi/param-style.ts +181 -0
  404. package/src/components/openapi/playground-client.ts +73 -16
  405. package/src/components/openapi/request.ts +190 -26
  406. package/src/components/openapi/schema-tree.ts +30 -24
  407. package/src/components/openapi/security.ts +6 -3
  408. package/src/components/openapi/snippets.ts +953 -13
  409. package/src/components/openapi/ws-client.ts +18 -2
  410. package/src/components/props.ts +6 -0
  411. package/src/consent/client.ts +95 -0
  412. package/src/consent/clients.ts +19 -0
  413. package/src/consent/ethyca.ts +71 -0
  414. package/src/consent/head.ts +24 -0
  415. package/src/consent/index.ts +37 -0
  416. package/src/consent/init.ts +29 -0
  417. package/src/consent/native.ts +36 -0
  418. package/src/consent/osano.ts +59 -0
  419. package/src/consent/schema.ts +30 -0
  420. package/src/core/base-path.ts +62 -16
  421. package/src/core/builtin-tags.ts +5 -0
  422. package/src/core/client-address.ts +19 -0
  423. package/src/core/config-input.ts +203 -27
  424. package/src/core/data.ts +44 -4
  425. package/src/core/diagnostics.ts +5 -2
  426. package/src/core/directive-diagnostics.ts +99 -0
  427. package/src/core/footer.ts +26 -0
  428. package/src/core/frontmatter.ts +21 -18
  429. package/src/core/graph.ts +39 -36
  430. package/src/core/heading-markers.ts +5 -18
  431. package/src/core/i18n-ui.ts +82 -2
  432. package/src/core/i18n.ts +31 -3
  433. package/src/core/includes.ts +20 -3
  434. package/src/core/last-modified.ts +25 -3
  435. package/src/core/links.ts +16 -2
  436. package/src/core/locale-links.ts +5 -1
  437. package/src/core/localizable.ts +26 -0
  438. package/src/core/meta.ts +33 -19
  439. package/src/core/navigation.ts +71 -20
  440. package/src/core/page-modes.ts +56 -0
  441. package/src/core/project-graph.ts +138 -10
  442. package/src/core/redirect-patterns.ts +491 -0
  443. package/src/core/related.ts +131 -0
  444. package/src/core/schema.ts +342 -68
  445. package/src/core/sources/contentful-rich-text.ts +27 -20
  446. package/src/core/sources/filesystem.ts +20 -2
  447. package/src/core/sources/github-releases.ts +25 -6
  448. package/src/core/sources/lexical.ts +23 -18
  449. package/src/core/sources/lower.ts +201 -34
  450. package/src/core/sources/mdx-remote.ts +51 -16
  451. package/src/core/sources/normalize.ts +327 -91
  452. package/src/core/sources/notion.ts +52 -25
  453. package/src/core/sources/obsidian.ts +23 -6
  454. package/src/core/sources/portable-text.ts +38 -21
  455. package/src/core/sources/read.ts +8 -3
  456. package/src/core/sources/strapi-blocks.ts +20 -16
  457. package/src/core/sources/watch.ts +20 -7
  458. package/src/core/standard-schema.ts +10 -6
  459. package/src/core/types.ts +1 -1
  460. package/src/core/ui-packs/ar.ts +43 -0
  461. package/src/core/ui-packs/bg.ts +45 -0
  462. package/src/core/ui-packs/bn.ts +43 -0
  463. package/src/core/ui-packs/ca.ts +46 -0
  464. package/src/core/ui-packs/cs.ts +44 -0
  465. package/src/core/ui-packs/da.ts +45 -0
  466. package/src/core/ui-packs/de.ts +46 -0
  467. package/src/core/ui-packs/el.ts +45 -0
  468. package/src/core/ui-packs/es.ts +46 -0
  469. package/src/core/ui-packs/fa.ts +45 -0
  470. package/src/core/ui-packs/fi.ts +45 -0
  471. package/src/core/ui-packs/fr.ts +46 -0
  472. package/src/core/ui-packs/he.ts +43 -0
  473. package/src/core/ui-packs/hi.ts +44 -0
  474. package/src/core/ui-packs/hr.ts +45 -0
  475. package/src/core/ui-packs/hu.ts +44 -0
  476. package/src/core/ui-packs/id.ts +45 -0
  477. package/src/core/ui-packs/it.ts +45 -0
  478. package/src/core/ui-packs/ja.ts +45 -0
  479. package/src/core/ui-packs/ko.ts +44 -0
  480. package/src/core/ui-packs/nl.ts +46 -0
  481. package/src/core/ui-packs/no.ts +44 -0
  482. package/src/core/ui-packs/pl.ts +45 -0
  483. package/src/core/ui-packs/pt-br.ts +46 -0
  484. package/src/core/ui-packs/pt.ts +45 -0
  485. package/src/core/ui-packs/ro.ts +45 -0
  486. package/src/core/ui-packs/ru.ts +45 -0
  487. package/src/core/ui-packs/sk.ts +44 -0
  488. package/src/core/ui-packs/sr.ts +45 -0
  489. package/src/core/ui-packs/sv.ts +44 -0
  490. package/src/core/ui-packs/th.ts +43 -0
  491. package/src/core/ui-packs/tr.ts +45 -0
  492. package/src/core/ui-packs/uk.ts +45 -0
  493. package/src/core/ui-packs/vi.ts +45 -0
  494. package/src/core/ui-packs/zh-tw.ts +43 -0
  495. package/src/core/ui-packs/zh.ts +43 -0
  496. package/src/core/variables.ts +103 -0
  497. package/src/core/version-cut.ts +52 -15
  498. package/src/deploy/artifacts.ts +104 -14
  499. package/src/deploy/cloudflare-negotiation.ts +39 -17
  500. package/src/deploy/headers.ts +10 -5
  501. package/src/deploy/node-headers.ts +64 -10
  502. package/src/deploy/platforms/cloudflare.ts +44 -3
  503. package/src/deploy/platforms/netlify.ts +34 -1
  504. package/src/deploy/platforms/node.ts +1 -0
  505. package/src/deploy/platforms/static.ts +1 -0
  506. package/src/deploy/platforms/types.ts +8 -0
  507. package/src/deploy/platforms/vercel.ts +38 -2
  508. package/src/deploy/redirects.ts +139 -36
  509. package/src/deploy/robots.ts +2 -2
  510. package/src/deploy/rss.ts +4 -3
  511. package/src/deploy/sitemap.ts +7 -5
  512. package/src/deploy/vercel-negotiation.ts +36 -0
  513. package/src/markdown/api-rail.ts +259 -0
  514. package/src/markdown/base-links.ts +34 -36
  515. package/src/markdown/code-title.ts +35 -9
  516. package/src/markdown/directives.ts +242 -36
  517. package/src/markdown/features.ts +20 -2
  518. package/src/markdown/fence-meta.ts +2 -0
  519. package/src/markdown/include.ts +11 -1
  520. package/src/markdown/index.ts +35 -11
  521. package/src/markdown/math.ts +4 -4
  522. package/src/markdown/mdast.ts +5 -2
  523. package/src/markdown/relative-links.ts +12 -4
  524. package/src/markdown/variables.ts +56 -0
  525. package/src/markdown/views.ts +82 -0
  526. package/src/narration/build.ts +412 -0
  527. package/src/narration/player.ts +249 -0
  528. package/src/narration/provider.ts +29 -0
  529. package/src/narration/script.ts +592 -0
  530. package/src/og/card.ts +136 -11
  531. package/src/og/derive.ts +41 -31
  532. package/src/og/index.ts +1 -0
  533. package/src/openapi/asyncapi.ts +4 -2
  534. package/src/openapi/model.ts +77 -36
  535. package/src/openapi/overlay.ts +256 -0
  536. package/src/openapi/parse.ts +55 -2
  537. package/src/openapi/proxy.ts +63 -10
  538. package/src/openapi/references.ts +21 -5
  539. package/src/openapi/render-mdx.ts +46 -3
  540. package/src/openapi/scalar.ts +40 -6
  541. package/src/openapi/source.ts +1 -1
  542. package/src/ratelimit/cloudflare.ts +54 -0
  543. package/src/ratelimit/index.ts +30 -0
  544. package/src/ratelimit/memory.ts +45 -0
  545. package/src/ratelimit/runtime.ts +229 -0
  546. package/src/ratelimit/schema.ts +28 -0
  547. package/src/ratelimit/upstash.ts +30 -0
  548. package/src/ratelimit/wrangler.ts +70 -0
  549. package/src/reference/asyncapi.ts +2 -2
  550. package/src/reference/graphql.ts +5 -2
  551. package/src/reference/openapi.ts +21 -7
  552. package/src/reference/options.ts +51 -7
  553. package/src/reference/scalar.ts +33 -8
  554. package/src/registry/eject.ts +201 -28
  555. package/src/registry/registry.ts +7 -0
  556. package/src/search/adapters/version-scope.ts +30 -0
  557. package/src/search/documents.ts +93 -28
  558. package/src/search/orama-index.ts +28 -3
  559. package/src/search/pagefind-ranking.ts +39 -0
  560. package/src/search/popular.ts +2 -1
  561. package/src/search/sync/algolia.ts +15 -4
  562. package/src/search/sync/orama-cloud.ts +3 -0
  563. package/src/search/sync/typesense.ts +5 -0
  564. package/src/seo/jsonld.ts +7 -3
  565. package/src/seo/metatags.ts +67 -0
  566. package/src/theme/chrome-icons.ts +1 -0
  567. package/src/theme/color.ts +500 -0
  568. package/src/theme/entry.ts +56 -3
  569. package/src/theme/palette.ts +121 -45
  570. package/src/translate/meta.ts +68 -24
  571. package/src/translate/prompts.ts +1 -0
  572. package/src/translate/run.ts +3 -3
  573. package/src/translate/validate.ts +12 -3
  574. package/src/translate/work-list.ts +56 -17
  575. package/src/upgrade/upgrade.ts +4 -171
  576. package/dist/cli/chunk-3yce002v.js.map +0 -14
  577. package/dist/cli/chunk-5r8g91qn.js.map +0 -34
  578. package/dist/cli/chunk-6dtt0zfn.js.map +0 -10
  579. package/dist/cli/chunk-7mbqtmgb.js.map +0 -10
  580. package/dist/cli/chunk-ddndchfr.js.map +0 -14
  581. package/dist/cli/chunk-esh98wmb.js +0 -23
  582. package/dist/cli/chunk-esh98wmb.js.map +0 -10
  583. package/dist/cli/chunk-hqp2ajnh.js.map +0 -35
  584. package/dist/cli/chunk-hr8ne106.js.map +0 -13
  585. package/dist/cli/chunk-j85scx15.js.map +0 -10
  586. package/dist/cli/chunk-mqc662a6.js +0 -75
  587. package/dist/cli/chunk-mqc662a6.js.map +0 -11
  588. package/dist/cli/chunk-pbg5a4s3.js.map +0 -19
  589. package/dist/cli/chunk-qkb5a8sa.js.map +0 -10
  590. package/dist/cli/chunk-v6ya5kcb.js.map +0 -189
  591. package/dist/cli/chunk-wdrt2k2v.js.map +0 -10
  592. package/dist/cli/chunk-xh43dwgw.js.map +0 -36
  593. package/docs/content/sources.mdx +0 -338
  594. /package/dist/cli/{chunk-zp79m0ts.js.map → chunk-1n228xqb.js.map} +0 -0
  595. /package/dist/cli/{chunk-h2ez8dzb.js.map → chunk-5ffywsmb.js.map} +0 -0
  596. /package/dist/cli/{chunk-g698a744.js.map → chunk-5wj2qwn2.js.map} +0 -0
  597. /package/dist/cli/{chunk-sqw4ekg1.js.map → chunk-amrb6hgh.js.map} +0 -0
  598. /package/dist/cli/{chunk-h7k3nq3v.js.map → chunk-gp84za0h.js.map} +0 -0
  599. /package/dist/cli/{chunk-bfwp9vp6.js.map → chunk-p804f3pe.js.map} +0 -0
  600. /package/dist/cli/{chunk-00gs3wqs.js.map → chunk-ta27feev.js.map} +0 -0
  601. /package/dist/cli/{chunk-bbnwccaz.js.map → chunk-y4ykbark.js.map} +0 -0
@@ -0,0 +1,111 @@
1
+ import { z } from "zod";
2
+ /** The configured rate limiter, as its factory returned it. */
3
+ export declare const rateLimitAdapterSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4
+ kind: z.ZodLiteral<"cloudflare">;
5
+ options: z.ZodObject<{
6
+ namespaceId: z.ZodOptional<z.ZodString>;
7
+ requests: z.ZodOptional<z.ZodNumber>;
8
+ window: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<60>]>>;
9
+ }, z.core.$strict>;
10
+ requiredSecrets: z.ZodArray<z.ZodString>;
11
+ runtimeDeps: z.ZodArray<z.ZodString>;
12
+ }, z.core.$strict>, z.ZodObject<{
13
+ kind: z.ZodLiteral<"memory">;
14
+ options: z.ZodObject<{
15
+ requests: z.ZodOptional<z.ZodNumber>;
16
+ window: z.ZodOptional<z.ZodNumber>;
17
+ }, z.core.$strict>;
18
+ requiredSecrets: z.ZodArray<z.ZodString>;
19
+ runtimeDeps: z.ZodArray<z.ZodString>;
20
+ }, z.core.$strict>, z.ZodObject<{
21
+ kind: z.ZodLiteral<"upstash">;
22
+ options: z.ZodObject<{
23
+ requests: z.ZodOptional<z.ZodNumber>;
24
+ window: z.ZodOptional<z.ZodNumber>;
25
+ }, z.core.$strict>;
26
+ requiredSecrets: z.ZodArray<z.ZodString>;
27
+ runtimeDeps: z.ZodArray<z.ZodString>;
28
+ }, z.core.$strict>], "kind">;
29
+ export type RateLimitAdapter = z.output<typeof rateLimitAdapterSchema>;
30
+ /**
31
+ * `blume.config.rateLimit`: how the server routes a reader can call (the
32
+ * assistant, the API playground proxy, server-side search) limit requests
33
+ * per reader. On by default with `memory()`; `false` turns it off (`null`
34
+ * once resolved).
35
+ */
36
+ export declare const rateLimitConfigSchema: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodDiscriminatedUnion<[z.ZodObject<{
37
+ kind: z.ZodLiteral<"cloudflare">;
38
+ options: z.ZodObject<{
39
+ namespaceId: z.ZodOptional<z.ZodString>;
40
+ requests: z.ZodOptional<z.ZodNumber>;
41
+ window: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<60>]>>;
42
+ }, z.core.$strict>;
43
+ requiredSecrets: z.ZodArray<z.ZodString>;
44
+ runtimeDeps: z.ZodArray<z.ZodString>;
45
+ }, z.core.$strict>, z.ZodObject<{
46
+ kind: z.ZodLiteral<"memory">;
47
+ options: z.ZodObject<{
48
+ requests: z.ZodOptional<z.ZodNumber>;
49
+ window: z.ZodOptional<z.ZodNumber>;
50
+ }, z.core.$strict>;
51
+ requiredSecrets: z.ZodArray<z.ZodString>;
52
+ runtimeDeps: z.ZodArray<z.ZodString>;
53
+ }, z.core.$strict>, z.ZodObject<{
54
+ kind: z.ZodLiteral<"upstash">;
55
+ options: z.ZodObject<{
56
+ requests: z.ZodOptional<z.ZodNumber>;
57
+ window: z.ZodOptional<z.ZodNumber>;
58
+ }, z.core.$strict>;
59
+ requiredSecrets: z.ZodArray<z.ZodString>;
60
+ runtimeDeps: z.ZodArray<z.ZodString>;
61
+ }, z.core.$strict>], "kind">]>>, z.ZodTransform<{
62
+ kind: "cloudflare";
63
+ options: {
64
+ namespaceId?: string | undefined;
65
+ requests?: number | undefined;
66
+ window?: 10 | 60 | undefined;
67
+ };
68
+ requiredSecrets: string[];
69
+ runtimeDeps: string[];
70
+ } | {
71
+ kind: "memory";
72
+ options: {
73
+ requests?: number | undefined;
74
+ window?: number | undefined;
75
+ };
76
+ requiredSecrets: string[];
77
+ runtimeDeps: string[];
78
+ } | {
79
+ kind: "upstash";
80
+ options: {
81
+ requests?: number | undefined;
82
+ window?: number | undefined;
83
+ };
84
+ requiredSecrets: string[];
85
+ runtimeDeps: string[];
86
+ } | null, false | {
87
+ kind: "cloudflare";
88
+ options: {
89
+ namespaceId?: string | undefined;
90
+ requests?: number | undefined;
91
+ window?: 10 | 60 | undefined;
92
+ };
93
+ requiredSecrets: string[];
94
+ runtimeDeps: string[];
95
+ } | {
96
+ kind: "memory";
97
+ options: {
98
+ requests?: number | undefined;
99
+ window?: number | undefined;
100
+ };
101
+ requiredSecrets: string[];
102
+ runtimeDeps: string[];
103
+ } | {
104
+ kind: "upstash";
105
+ options: {
106
+ requests?: number | undefined;
107
+ window?: number | undefined;
108
+ };
109
+ requiredSecrets: string[];
110
+ runtimeDeps: string[];
111
+ } | undefined>>;
@@ -0,0 +1,21 @@
1
+ import type { AdapterDescriptor } from "../core/adapter.ts";
2
+ import type { RateLimitOptions } from "./memory.ts";
3
+ /** The env vars holding the Upstash Redis REST endpoint and its token. */
4
+ export declare const UPSTASH_SECRETS: readonly ["UPSTASH_REDIS_REST_URL", "UPSTASH_REDIS_REST_TOKEN"];
5
+ export type UpstashAdapter = AdapterDescriptor<"upstash", RateLimitOptions>;
6
+ export declare const upstashAdapterSchema: import("zod").ZodObject<{
7
+ kind: import("zod").ZodLiteral<"upstash">;
8
+ options: import("zod").ZodObject<{
9
+ requests: import("zod").ZodOptional<import("zod").ZodNumber>;
10
+ window: import("zod").ZodOptional<import("zod").ZodNumber>;
11
+ }, import("zod/v4/core").$strict>;
12
+ requiredSecrets: import("zod").ZodArray<import("zod").ZodString>;
13
+ runtimeDeps: import("zod").ZodArray<import("zod").ZodString>;
14
+ }, import("zod/v4/core").$strict>;
15
+ /**
16
+ * Keeps the count in Upstash Redis, which every instance on every host shares,
17
+ * so the limit holds exactly. It talks to Upstash's REST API, so there is
18
+ * nothing to install; the endpoint and token come from
19
+ * `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`.
20
+ */
21
+ export declare const upstash: (options?: RateLimitOptions) => UpstashAdapter;
@@ -0,0 +1,23 @@
1
+ import type { CloudflareRateLimitAdapter } from "./cloudflare.ts";
2
+ /** The Workers rate limiting binding, as the Worker's config declares it. */
3
+ export interface RateLimitBindingConfig {
4
+ name: string;
5
+ namespace_id: string;
6
+ simple: {
7
+ limit: number;
8
+ period: 10 | 60;
9
+ };
10
+ }
11
+ /**
12
+ * A namespace id for a Worker that sets none: a positive integer derived from
13
+ * its name, so two Blume sites on one account don't share one.
14
+ */
15
+ export declare const rateLimitNamespace: (workerName: string) => string;
16
+ /** The binding `cloudflare()` asks for, on the Worker named `workerName`. */
17
+ export declare const rateLimitBinding: (adapter: CloudflareRateLimitAdapter, workerName: string) => RateLimitBindingConfig;
18
+ /**
19
+ * The built Worker's config (`dist/server/wrangler.json`) with Blume's rate
20
+ * limiting binding in `ratelimits`, replacing an earlier one of the same name
21
+ * and keeping any others. `null` when the config isn't a JSON object.
22
+ */
23
+ export declare const withRateLimitBinding: (wranglerText: string, adapter: CloudflareRateLimitAdapter) => string | null;
@@ -5,9 +5,9 @@ import type { PlaygroundOptions, ReferenceSourceOptions } from "./options.ts";
5
5
  export interface AsyncApiOptions {
6
6
  /**
7
7
  * Code-sample tools shown per operation (Blume renderer). Defaults to every
8
- * tool appropriate to the operation's protocol binding.
8
+ * tool appropriate to the operation's protocol binding; `false` shows none.
9
9
  */
10
- codeSamples?: string[];
10
+ codeSamples?: string[] | false;
11
11
  /** Start nested schema rows expanded rather than collapsed (Blume renderer). Defaults to `false`. */
12
12
  expandSchemas?: boolean;
13
13
  /**
@@ -34,7 +34,7 @@ export declare const asyncapiOptionsSchema: z.ZodPipe<z.ZodObject<{
34
34
  seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
35
35
  spec: z.ZodString;
36
36
  }, z.core.$strict>>>;
37
- codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
37
+ codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
38
38
  playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
39
39
  enabled: z.ZodDefault<z.ZodBoolean>;
40
40
  proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
@@ -58,14 +58,14 @@ export declare const asyncapiOptionsSchema: z.ZodPipe<z.ZodObject<{
58
58
  label?: string | undefined;
59
59
  route?: string | undefined;
60
60
  }[];
61
- codeSamples: string[];
61
+ codeSamples: false | string[];
62
62
  playground: {
63
63
  enabled: boolean;
64
64
  proxy: string | boolean;
65
65
  };
66
66
  route: string;
67
67
  spec?: string | undefined;
68
- }, "spec">, {
68
+ }, "spec" | "overlays">, {
69
69
  expandSchemas: boolean;
70
70
  sources: {
71
71
  includeInLlms: boolean;
@@ -76,7 +76,7 @@ export declare const asyncapiOptionsSchema: z.ZodPipe<z.ZodObject<{
76
76
  label?: string | undefined;
77
77
  route?: string | undefined;
78
78
  }[];
79
- codeSamples: string[];
79
+ codeSamples: false | string[];
80
80
  playground: {
81
81
  enabled: boolean;
82
82
  proxy: string | boolean;
@@ -102,7 +102,7 @@ export declare const asyncapiAdapterSchema: z.ZodObject<{
102
102
  seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
103
103
  spec: z.ZodString;
104
104
  }, z.core.$strict>>>;
105
- codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
105
+ codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
106
106
  playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
107
107
  enabled: z.ZodDefault<z.ZodBoolean>;
108
108
  proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
@@ -126,14 +126,14 @@ export declare const asyncapiAdapterSchema: z.ZodObject<{
126
126
  label?: string | undefined;
127
127
  route?: string | undefined;
128
128
  }[];
129
- codeSamples: string[];
129
+ codeSamples: false | string[];
130
130
  playground: {
131
131
  enabled: boolean;
132
132
  proxy: string | boolean;
133
133
  };
134
134
  route: string;
135
135
  spec?: string | undefined;
136
- }, "spec">, {
136
+ }, "spec" | "overlays">, {
137
137
  expandSchemas: boolean;
138
138
  sources: {
139
139
  includeInLlms: boolean;
@@ -144,7 +144,7 @@ export declare const asyncapiAdapterSchema: z.ZodObject<{
144
144
  label?: string | undefined;
145
145
  route?: string | undefined;
146
146
  }[];
147
- codeSamples: string[];
147
+ codeSamples: false | string[];
148
148
  playground: {
149
149
  enabled: boolean;
150
150
  proxy: string | boolean;
@@ -3,8 +3,11 @@ import type { AdapterDescriptor } from "../core/adapter.ts";
3
3
  import type { GraphqlSourceOptions, PlaygroundOptions } from "./options.ts";
4
4
  /** Options for {@link graphql}. */
5
5
  export interface GraphqlOptions {
6
- /** Code-sample languages shown per operation. Defaults to `["curl", "js", "python"]`. */
7
- codeSamples?: string[];
6
+ /**
7
+ * Code-sample languages shown per operation, in order. Defaults to
8
+ * `["curl", "js", "python"]`; `false` shows none.
9
+ */
10
+ codeSamples?: string[] | false;
8
11
  /**
9
12
  * URL of the live GraphQL endpoint the playground and code samples target —
10
13
  * a schema, unlike an OpenAPI document, names no server. Applies to every
@@ -44,7 +47,7 @@ export declare const graphqlOptionsSchema: z.ZodPipe<z.ZodObject<{
44
47
  spec: z.ZodString;
45
48
  endpoint: z.ZodOptional<z.ZodString>;
46
49
  }, z.core.$strict>>>;
47
- codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
50
+ codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
48
51
  playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
49
52
  enabled: z.ZodDefault<z.ZodBoolean>;
50
53
  proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
@@ -68,7 +71,7 @@ export declare const graphqlOptionsSchema: z.ZodPipe<z.ZodObject<{
68
71
  route?: string | undefined;
69
72
  endpoint?: string | undefined;
70
73
  }[];
71
- codeSamples: string[];
74
+ codeSamples: false | string[];
72
75
  playground: {
73
76
  enabled: boolean;
74
77
  proxy: string | boolean;
@@ -76,7 +79,7 @@ export declare const graphqlOptionsSchema: z.ZodPipe<z.ZodObject<{
76
79
  route: string;
77
80
  endpoint?: string | undefined;
78
81
  spec?: string | undefined;
79
- }, "spec">, {
82
+ }, "spec" | "overlays">, {
80
83
  sources: {
81
84
  includeInLlms: boolean;
82
85
  includeInSearch: boolean;
@@ -87,7 +90,7 @@ export declare const graphqlOptionsSchema: z.ZodPipe<z.ZodObject<{
87
90
  route?: string | undefined;
88
91
  endpoint?: string | undefined;
89
92
  }[];
90
- codeSamples: string[];
93
+ codeSamples: false | string[];
91
94
  playground: {
92
95
  enabled: boolean;
93
96
  proxy: string | boolean;
@@ -115,7 +118,7 @@ export declare const graphqlAdapterSchema: z.ZodObject<{
115
118
  spec: z.ZodString;
116
119
  endpoint: z.ZodOptional<z.ZodString>;
117
120
  }, z.core.$strict>>>;
118
- codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
121
+ codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
119
122
  playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
120
123
  enabled: z.ZodDefault<z.ZodBoolean>;
121
124
  proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
@@ -139,7 +142,7 @@ export declare const graphqlAdapterSchema: z.ZodObject<{
139
142
  route?: string | undefined;
140
143
  endpoint?: string | undefined;
141
144
  }[];
142
- codeSamples: string[];
145
+ codeSamples: false | string[];
143
146
  playground: {
144
147
  enabled: boolean;
145
148
  proxy: string | boolean;
@@ -147,7 +150,7 @@ export declare const graphqlAdapterSchema: z.ZodObject<{
147
150
  route: string;
148
151
  endpoint?: string | undefined;
149
152
  spec?: string | undefined;
150
- }, "spec">, {
153
+ }, "spec" | "overlays">, {
151
154
  sources: {
152
155
  includeInLlms: boolean;
153
156
  includeInSearch: boolean;
@@ -158,7 +161,7 @@ export declare const graphqlAdapterSchema: z.ZodObject<{
158
161
  route?: string | undefined;
159
162
  endpoint?: string | undefined;
160
163
  }[];
161
- codeSamples: string[];
164
+ codeSamples: false | string[];
162
165
  playground: {
163
166
  enabled: boolean;
164
167
  proxy: string | boolean;
@@ -1,10 +1,14 @@
1
1
  import { z } from "zod";
2
2
  import type { AdapterDescriptor } from "../core/adapter.ts";
3
- import type { PlaygroundOptions, ReferenceSourceOptions } from "./options.ts";
3
+ import type { OpenApiSourceOptions, PlaygroundOptions } from "./options.ts";
4
4
  /** Options for {@link openapi}. */
5
5
  export interface OpenApiOptions {
6
- /** Code-sample languages shown per operation (Blume renderer). Defaults to `["curl", "js", "python"]`. */
7
- codeSamples?: string[];
6
+ /**
7
+ * Code-sample languages generated per operation (Blume renderer), in
8
+ * order. Defaults to `["curl", "js", "python"]`; `false` generates none, so
9
+ * only the spec's own `x-codeSamples` show.
10
+ */
11
+ codeSamples?: string[] | false;
8
12
  /** Start nested schema rows expanded rather than collapsed (Blume renderer). Defaults to `false`. */
9
13
  expandSchemas?: boolean;
10
14
  /**
@@ -15,15 +19,21 @@ export interface OpenApiOptions {
15
19
  * `vercel()` in `deployment`).
16
20
  */
17
21
  playground?: PlaygroundOptions;
22
+ /**
23
+ * OpenAPI Overlay documents for `spec`, applied in order before it renders.
24
+ * With `sources`, each source takes its own `overlays`.
25
+ */
26
+ overlays?: string[];
18
27
  /** Where the reference mounts. Defaults to `/reference`. */
19
28
  route?: string;
20
29
  /** One or more specs; each renders on its own route by default. */
21
- sources?: ReferenceSourceOptions[];
30
+ sources?: OpenApiSourceOptions[];
22
31
  /** Shorthand for a single source: `sources: [{ spec }]`. */
23
32
  spec?: string;
24
33
  }
25
34
  export declare const openapiOptionsSchema: z.ZodPipe<z.ZodObject<{
26
35
  expandSchemas: z.ZodDefault<z.ZodBoolean>;
36
+ overlays: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
37
  sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
28
38
  includeInLlms: z.ZodDefault<z.ZodBoolean>;
29
39
  includeInSearch: z.ZodDefault<z.ZodBoolean>;
@@ -32,8 +42,9 @@ export declare const openapiOptionsSchema: z.ZodPipe<z.ZodObject<{
32
42
  route: z.ZodOptional<z.ZodString>;
33
43
  seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
34
44
  spec: z.ZodString;
45
+ overlays: z.ZodDefault<z.ZodArray<z.ZodString>>;
35
46
  }, z.core.$strict>>>;
36
- codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
47
+ codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
37
48
  playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
38
49
  enabled: z.ZodDefault<z.ZodBoolean>;
39
50
  proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
@@ -54,17 +65,19 @@ export declare const openapiOptionsSchema: z.ZodPipe<z.ZodObject<{
54
65
  noindex: boolean;
55
66
  seoDescriptionSuffix: boolean;
56
67
  spec: string;
68
+ overlays: string[];
57
69
  label?: string | undefined;
58
70
  route?: string | undefined;
59
71
  }[];
60
- codeSamples: string[];
72
+ codeSamples: false | string[];
61
73
  playground: {
62
74
  enabled: boolean;
63
75
  proxy: string | boolean;
64
76
  };
65
77
  route: string;
78
+ overlays?: string[] | undefined;
66
79
  spec?: string | undefined;
67
- }, "spec">, {
80
+ }, "spec" | "overlays">, {
68
81
  expandSchemas: boolean;
69
82
  sources: {
70
83
  includeInLlms: boolean;
@@ -72,15 +85,17 @@ export declare const openapiOptionsSchema: z.ZodPipe<z.ZodObject<{
72
85
  noindex: boolean;
73
86
  seoDescriptionSuffix: boolean;
74
87
  spec: string;
88
+ overlays: string[];
75
89
  label?: string | undefined;
76
90
  route?: string | undefined;
77
91
  }[];
78
- codeSamples: string[];
92
+ codeSamples: false | string[];
79
93
  playground: {
80
94
  enabled: boolean;
81
95
  proxy: string | boolean;
82
96
  };
83
97
  route: string;
98
+ overlays?: string[] | undefined;
84
99
  spec?: string | undefined;
85
100
  }>>;
86
101
  /** `openapi()` options with every default applied and `spec` folded into `sources`. */
@@ -92,6 +107,7 @@ export declare const openapiAdapterSchema: z.ZodObject<{
92
107
  kind: z.ZodLiteral<"openapi">;
93
108
  options: z.ZodPipe<z.ZodObject<{
94
109
  expandSchemas: z.ZodDefault<z.ZodBoolean>;
110
+ overlays: z.ZodOptional<z.ZodArray<z.ZodString>>;
95
111
  sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
96
112
  includeInLlms: z.ZodDefault<z.ZodBoolean>;
97
113
  includeInSearch: z.ZodDefault<z.ZodBoolean>;
@@ -100,8 +116,9 @@ export declare const openapiAdapterSchema: z.ZodObject<{
100
116
  route: z.ZodOptional<z.ZodString>;
101
117
  seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
102
118
  spec: z.ZodString;
119
+ overlays: z.ZodDefault<z.ZodArray<z.ZodString>>;
103
120
  }, z.core.$strict>>>;
104
- codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
121
+ codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
105
122
  playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
106
123
  enabled: z.ZodDefault<z.ZodBoolean>;
107
124
  proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
@@ -122,17 +139,19 @@ export declare const openapiAdapterSchema: z.ZodObject<{
122
139
  noindex: boolean;
123
140
  seoDescriptionSuffix: boolean;
124
141
  spec: string;
142
+ overlays: string[];
125
143
  label?: string | undefined;
126
144
  route?: string | undefined;
127
145
  }[];
128
- codeSamples: string[];
146
+ codeSamples: false | string[];
129
147
  playground: {
130
148
  enabled: boolean;
131
149
  proxy: string | boolean;
132
150
  };
133
151
  route: string;
152
+ overlays?: string[] | undefined;
134
153
  spec?: string | undefined;
135
- }, "spec">, {
154
+ }, "spec" | "overlays">, {
136
155
  expandSchemas: boolean;
137
156
  sources: {
138
157
  includeInLlms: boolean;
@@ -140,15 +159,17 @@ export declare const openapiAdapterSchema: z.ZodObject<{
140
159
  noindex: boolean;
141
160
  seoDescriptionSuffix: boolean;
142
161
  spec: string;
162
+ overlays: string[];
143
163
  label?: string | undefined;
144
164
  route?: string | undefined;
145
165
  }[];
146
- codeSamples: string[];
166
+ codeSamples: false | string[];
147
167
  playground: {
148
168
  enabled: boolean;
149
169
  proxy: string | boolean;
150
170
  };
151
171
  route: string;
172
+ overlays?: string[] | undefined;
152
173
  spec?: string | undefined;
153
174
  }>>;
154
175
  requiredSecrets: z.ZodArray<z.ZodString>;
@@ -36,6 +36,41 @@ export interface ReferenceSourceOptions {
36
36
  }
37
37
  /** A spec source with every default applied. */
38
38
  export type ResolvedReferenceSource = z.output<typeof referenceSourceSchema>;
39
+ /**
40
+ * [OpenAPI Overlay](https://spec.openapis.org/overlay/latest.html) documents
41
+ * (local paths or `http(s)` URLs) applied in order to an OpenAPI spec before
42
+ * it renders: changes to a spec you don't edit by hand.
43
+ */
44
+ export declare const overlaysSchema: z.ZodDefault<z.ZodArray<z.ZodString>>;
45
+ /** Whether adapter-level `overlays` has the `spec` it belongs to. */
46
+ export declare const overlaysHaveSpec: (options: {
47
+ overlays?: string[];
48
+ spec?: string;
49
+ }) => boolean;
50
+ /** The refinement issue for `overlays` set beside `sources` instead of `spec`. */
51
+ export declare const overlaysNeedSpecIssue: {
52
+ message: string;
53
+ path: string[];
54
+ };
55
+ /** An OpenAPI spec source: the shared shape plus its `overlays`. */
56
+ export declare const openapiSourceSchema: z.ZodObject<{
57
+ includeInLlms: z.ZodDefault<z.ZodBoolean>;
58
+ includeInSearch: z.ZodDefault<z.ZodBoolean>;
59
+ label: z.ZodOptional<z.ZodString>;
60
+ noindex: z.ZodDefault<z.ZodBoolean>;
61
+ route: z.ZodOptional<z.ZodString>;
62
+ seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
63
+ spec: z.ZodString;
64
+ overlays: z.ZodDefault<z.ZodArray<z.ZodString>>;
65
+ }, z.core.$strict>;
66
+ /** One OpenAPI spec source, as `openapi()` accepts it. */
67
+ export interface OpenApiSourceOptions extends ReferenceSourceOptions {
68
+ /**
69
+ * OpenAPI Overlay documents (local paths or `http(s)` URLs) applied in
70
+ * order to the spec before it renders.
71
+ */
72
+ overlays?: string[];
73
+ }
39
74
  /**
40
75
  * A single GraphQL schema: the shared source shape plus `endpoint`, the live
41
76
  * GraphQL API URL the playground and code samples target (a schema, unlike an
@@ -110,8 +145,11 @@ export declare const sharedOptions: (defaults: {
110
145
  codeSamples: string[];
111
146
  route: string;
112
147
  }) => {
113
- /** Code-sample languages/tools shown per operation (Blume renderer). */
114
- codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
148
+ /**
149
+ * Code-sample languages/tools shown per operation (Blume renderer), or
150
+ * `false` for none: only the spec's own `x-codeSamples` then.
151
+ */
152
+ codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
115
153
  /** The "Try it" panel; see {@link playgroundSchema}. */
116
154
  playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
117
155
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -129,8 +167,9 @@ export declare const sharedOptions: (defaults: {
129
167
  spec: z.ZodOptional<z.ZodString>;
130
168
  };
131
169
  /**
132
- * Resolve the `spec` shorthand into `sources` so downstream code reads one
133
- * field: the shorthand becomes the first source (with the source defaults
170
+ * Resolve the `spec` shorthand (and, on OpenAPI kinds, the `overlays` beside
171
+ * it) into `sources` so downstream code reads one field: the shorthand becomes
172
+ * the first source (with the source defaults
134
173
  * applied through the source schema itself, so the two can never drift) and
135
174
  * the `spec` key is dropped. An adapter with neither renders nothing, which
136
175
  * is a config mistake rather than a choice — `refine` it away with
@@ -143,7 +182,8 @@ export declare const liftSpec: <Source extends {
143
182
  }>) => <Options extends {
144
183
  sources: Source[];
145
184
  spec?: string;
146
- }>({ spec, ...options }: Options) => Omit<Options, "spec">;
185
+ overlays?: string[];
186
+ }>({ overlays, spec, ...options }: Options) => Omit<Options, "spec" | "overlays">;
147
187
  /** Whether an adapter has anything to render; pairs with {@link missingSourcesIssue}. */
148
188
  export declare const hasSources: (options: {
149
189
  sources: {
@@ -15,6 +15,7 @@ export declare const SCALAR_RUNTIME_DEPS: readonly string[];
15
15
  export declare const scalarSourceSchema: z.ZodObject<{
16
16
  label: z.ZodOptional<z.ZodString>;
17
17
  noindex: z.ZodDefault<z.ZodBoolean>;
18
+ overlays: z.ZodDefault<z.ZodArray<z.ZodString>>;
18
19
  route: z.ZodOptional<z.ZodString>;
19
20
  spec: z.ZodString;
20
21
  }, z.core.$strict>;
@@ -24,6 +25,8 @@ export interface ScalarSourceOptions {
24
25
  label?: string;
25
26
  /** Emit noindex metadata and omit the page from the sitemap. Defaults to `false`. */
26
27
  noindex?: boolean;
28
+ /** OpenAPI Overlay documents applied in order to the document before it's embedded. */
29
+ overlays?: string[];
27
30
  /** Per-source route; defaults to the adapter's `route` (or a derived path). */
28
31
  route?: string;
29
32
  /** Local path or `http(s)` URL to the OpenAPI or AsyncAPI document. */
@@ -44,6 +47,8 @@ export type ResolvedScalarOptions = {
44
47
  };
45
48
  /** The options {@link scalar} maps itself. */
46
49
  export interface ScalarNamedOptions {
50
+ /** OpenAPI Overlay documents for `spec`; with `sources`, each takes its own. */
51
+ overlays?: string[];
47
52
  /** Where the reference mounts. Defaults to `/reference`. */
48
53
  route?: string;
49
54
  /** One or more documents; each renders on its own route by default. */
@@ -73,10 +78,12 @@ export type ScalarOptions = ScalarNamedOptions & {
73
78
  * the named ones is Scalar configuration and passes through untouched.
74
79
  */
75
80
  export declare const scalarOptionsSchema: z.ZodPipe<z.ZodObject<{
81
+ overlays: z.ZodOptional<z.ZodArray<z.ZodString>>;
76
82
  route: z.ZodDefault<z.ZodString>;
77
83
  sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
78
84
  label: z.ZodOptional<z.ZodString>;
79
85
  noindex: z.ZodDefault<z.ZodBoolean>;
86
+ overlays: z.ZodDefault<z.ZodArray<z.ZodString>>;
80
87
  route: z.ZodOptional<z.ZodString>;
81
88
  spec: z.ZodString;
82
89
  }, z.core.$strict>>>;
@@ -87,10 +94,12 @@ export declare const scalarOptionsSchema: z.ZodPipe<z.ZodObject<{
87
94
  route: string;
88
95
  sources: {
89
96
  noindex: boolean;
97
+ overlays: string[];
90
98
  spec: string;
91
99
  label?: string | undefined;
92
100
  route?: string | undefined;
93
101
  }[];
102
+ overlays?: string[] | undefined;
94
103
  spec?: string | undefined;
95
104
  theme?: string | undefined;
96
105
  }>>;
@@ -100,10 +109,12 @@ export type ResolvedScalarAdapter = AdapterDescriptor<"scalar", ResolvedScalarOp
100
109
  export declare const scalarAdapterSchema: z.ZodObject<{
101
110
  kind: z.ZodLiteral<"scalar">;
102
111
  options: z.ZodPipe<z.ZodObject<{
112
+ overlays: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
113
  route: z.ZodDefault<z.ZodString>;
104
114
  sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
105
115
  label: z.ZodOptional<z.ZodString>;
106
116
  noindex: z.ZodDefault<z.ZodBoolean>;
117
+ overlays: z.ZodDefault<z.ZodArray<z.ZodString>>;
107
118
  route: z.ZodOptional<z.ZodString>;
108
119
  spec: z.ZodString;
109
120
  }, z.core.$strict>>>;
@@ -114,10 +125,12 @@ export declare const scalarAdapterSchema: z.ZodObject<{
114
125
  route: string;
115
126
  sources: {
116
127
  noindex: boolean;
128
+ overlays: string[];
117
129
  spec: string;
118
130
  label?: string | undefined;
119
131
  route?: string | undefined;
120
132
  }[];
133
+ overlays?: string[] | undefined;
121
134
  spec?: string | undefined;
122
135
  theme?: string | undefined;
123
136
  }>>;