blume 1.7.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +217 -0
  3. package/README.md +34 -21
  4. package/dist/cli/chunk-11j0384y.js +148 -0
  5. package/dist/cli/chunk-11j0384y.js.map +10 -0
  6. package/dist/cli/{chunk-rqy0s5wh.js → chunk-1w8dp3qb.js} +17 -16
  7. package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-1w8dp3qb.js.map} +3 -3
  8. package/dist/cli/chunk-2q1dwty4.js +75 -0
  9. package/dist/cli/chunk-2q1dwty4.js.map +11 -0
  10. package/dist/cli/chunk-41za066z.js +122 -0
  11. package/dist/cli/chunk-41za066z.js.map +11 -0
  12. package/dist/cli/chunk-5a2z0198.js +133 -0
  13. package/dist/cli/chunk-5a2z0198.js.map +10 -0
  14. package/dist/cli/{chunk-5g0w1e2c.js → chunk-6k8vp3ta.js} +25 -13
  15. package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-6k8vp3ta.js.map} +4 -4
  16. package/dist/cli/{chunk-5qk08vmp.js → chunk-79njf86q.js} +133 -54
  17. package/dist/cli/chunk-79njf86q.js.map +11 -0
  18. package/dist/cli/{chunk-e7f42gdj.js → chunk-7ez8ny0t.js} +2 -2
  19. package/dist/cli/{chunk-nn13znc2.js → chunk-88cpgt6h.js} +1 -1
  20. package/dist/cli/chunk-a9kptbw5.js +361 -0
  21. package/dist/cli/chunk-a9kptbw5.js.map +14 -0
  22. package/dist/cli/chunk-abh8yjkn.js +31 -0
  23. package/dist/cli/chunk-abh8yjkn.js.map +10 -0
  24. package/dist/cli/chunk-b5aj94ah.js +91 -0
  25. package/dist/cli/chunk-b5aj94ah.js.map +10 -0
  26. package/dist/cli/{chunk-b27xqwn9.js → chunk-bctazmbk.js} +9 -5
  27. package/dist/cli/chunk-bctazmbk.js.map +10 -0
  28. package/dist/cli/chunk-beat36xx.js +279 -0
  29. package/dist/cli/chunk-beat36xx.js.map +10 -0
  30. package/dist/cli/chunk-bnbmcwfb.js +145 -0
  31. package/dist/cli/chunk-bnbmcwfb.js.map +11 -0
  32. package/dist/cli/{chunk-0xjyb285.js → chunk-bw22s759.js} +15 -5
  33. package/dist/cli/{chunk-0xjyb285.js.map → chunk-bw22s759.js.map} +4 -4
  34. package/dist/cli/chunk-by2290sx.js +39 -0
  35. package/dist/cli/chunk-by2290sx.js.map +10 -0
  36. package/dist/cli/chunk-d1tadaw7.js +79 -0
  37. package/dist/cli/chunk-d1tadaw7.js.map +10 -0
  38. package/dist/cli/{chunk-ahnw3kxw.js → chunk-d80hr03s.js} +24 -19
  39. package/dist/cli/chunk-d80hr03s.js.map +15 -0
  40. package/dist/cli/chunk-ernrthtr.js +97 -0
  41. package/dist/cli/chunk-ernrthtr.js.map +10 -0
  42. package/dist/cli/chunk-f2972sbt.js +374 -0
  43. package/dist/cli/chunk-f2972sbt.js.map +10 -0
  44. package/dist/cli/{chunk-vacwm2hv.js → chunk-f7t03s3g.js} +2 -2
  45. package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
  46. package/dist/cli/chunk-fa25z98p.js.map +11 -0
  47. package/dist/cli/{chunk-cjtn640a.js → chunk-fh5hj5jt.js} +43 -20
  48. package/dist/cli/chunk-fh5hj5jt.js.map +10 -0
  49. package/dist/cli/{chunk-yg63d42r.js → chunk-j8mw0za6.js} +86 -57
  50. package/dist/cli/chunk-j8mw0za6.js.map +35 -0
  51. package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
  52. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  53. package/dist/cli/{chunk-ps4m1xh4.js → chunk-mnqj32sj.js} +505 -542
  54. package/dist/cli/chunk-mnqj32sj.js.map +12 -0
  55. package/dist/cli/{chunk-8cjtbafj.js → chunk-mwt1k8n7.js} +100 -374
  56. package/dist/cli/chunk-mwt1k8n7.js.map +10 -0
  57. package/dist/cli/chunk-nk3ts2xk.js +51 -0
  58. package/dist/cli/chunk-nk3ts2xk.js.map +10 -0
  59. package/dist/cli/{chunk-3r45185y.js → chunk-pat2zzwc.js} +9 -11
  60. package/dist/cli/{chunk-3r45185y.js.map → chunk-pat2zzwc.js.map} +2 -2
  61. package/dist/cli/chunk-pnnvybbk.js +176 -0
  62. package/dist/cli/chunk-pnnvybbk.js.map +11 -0
  63. package/dist/cli/{chunk-4x36ddpw.js → chunk-sqn5t4q0.js} +81 -87
  64. package/dist/cli/chunk-sqn5t4q0.js.map +10 -0
  65. package/dist/cli/{chunk-bvwwhd84.js → chunk-tzne8qfq.js} +15 -15
  66. package/dist/cli/{chunk-bvwwhd84.js.map → chunk-tzne8qfq.js.map} +1 -1
  67. package/dist/cli/chunk-xaz13gwg.js +12449 -0
  68. package/dist/cli/chunk-xaz13gwg.js.map +182 -0
  69. package/dist/cli/chunk-y3e45rc8.js +102 -0
  70. package/dist/cli/chunk-y3e45rc8.js.map +10 -0
  71. package/dist/cli/chunk-z01ze5c1.js +261 -0
  72. package/dist/cli/chunk-z01ze5c1.js.map +10 -0
  73. package/dist/cli/{chunk-k79xp7av.js → chunk-z1f5arsg.js} +219 -689
  74. package/dist/cli/chunk-z1f5arsg.js.map +36 -0
  75. package/dist/cli/{chunk-1jefwnfs.js → chunk-zg2gtj10.js} +1076 -2592
  76. package/dist/cli/chunk-zg2gtj10.js.map +35 -0
  77. package/dist/cli/{chunk-dwgcp5sm.js → chunk-zxccj738.js} +1 -1
  78. package/dist/cli/index.js +214 -57
  79. package/dist/cli/index.js.map +8 -7
  80. package/dist/types/ai/agent-readability.d.ts +52 -0
  81. package/dist/types/ai/ai-catalog.d.ts +42 -0
  82. package/dist/types/ai/api/paths.d.ts +17 -0
  83. package/dist/types/ai/api-catalog.d.ts +18 -0
  84. package/dist/types/ai/ask.d.ts +368 -0
  85. package/dist/types/ai/changelog-markdown.d.ts +2 -0
  86. package/dist/types/ai/component-markdown.d.ts +2 -2
  87. package/dist/types/ai/index.d.ts +24 -0
  88. package/dist/types/ai/link-headers.d.ts +24 -0
  89. package/dist/types/ai/llms.d.ts +25 -0
  90. package/dist/types/ai/markdown.d.ts +45 -0
  91. package/dist/types/ai/mcp/discovery.d.ts +68 -0
  92. package/dist/types/ai/mcp/tools.d.ts +16 -0
  93. package/dist/types/ai/openapi-components.d.ts +43 -0
  94. package/dist/types/ai/relative-links.d.ts +26 -0
  95. package/dist/types/ai/serializers.d.ts +15 -0
  96. package/dist/types/ai/skills.d.ts +42 -0
  97. package/dist/types/ai/tar.d.ts +25 -0
  98. package/dist/types/ai/visibility.d.ts +17 -0
  99. package/dist/types/ai/web-bot-auth.d.ts +16 -0
  100. package/dist/types/analytics/adobe.d.ts +35 -0
  101. package/dist/types/analytics/amplitude.d.ts +50 -0
  102. package/dist/types/analytics/clarity.d.ts +31 -0
  103. package/dist/types/analytics/clearbit.d.ts +29 -0
  104. package/dist/types/analytics/cloudflare.d.ts +41 -0
  105. package/dist/types/analytics/fathom.d.ts +41 -0
  106. package/dist/types/analytics/google-analytics.d.ts +44 -0
  107. package/dist/types/analytics/google-tag-manager.d.ts +40 -0
  108. package/dist/types/analytics/head.d.ts +30 -0
  109. package/dist/types/analytics/heap.d.ts +40 -0
  110. package/dist/types/analytics/hightouch.d.ts +44 -0
  111. package/dist/types/analytics/hotjar.d.ts +33 -0
  112. package/dist/types/analytics/index.d.ts +61 -0
  113. package/dist/types/analytics/inline.d.ts +17 -0
  114. package/dist/types/analytics/logrocket.d.ts +44 -0
  115. package/dist/types/analytics/mixpanel.d.ts +67 -0
  116. package/dist/types/analytics/pirsch.d.ts +42 -0
  117. package/dist/types/analytics/plausible.d.ts +56 -0
  118. package/dist/types/analytics/posthog.d.ts +45 -0
  119. package/dist/types/analytics/schema.d.ts +320 -0
  120. package/dist/types/analytics/script.d.ts +46 -0
  121. package/dist/types/analytics/segment.d.ts +50 -0
  122. package/dist/types/analytics/vercel.d.ts +48 -0
  123. package/dist/types/astro/integration.d.ts +76 -0
  124. package/dist/types/astro/markdown-negotiation.d.ts +23 -0
  125. package/dist/types/astro/module-types.d.ts +14 -0
  126. package/dist/types/astro/pages.d.ts +44 -0
  127. package/dist/types/cli/env.d.ts +12 -0
  128. package/dist/types/cli/init/scaffold.d.ts +154 -0
  129. package/dist/types/components/layout/nav-utils.d.ts +11 -0
  130. package/dist/types/core/adapter.d.ts +47 -0
  131. package/dist/types/core/api-name.d.ts +7 -0
  132. package/dist/types/core/changelog-index.d.ts +13 -0
  133. package/dist/types/core/config-input.d.ts +186 -515
  134. package/dist/types/core/config.d.ts +60 -34
  135. package/dist/types/core/content-assets.d.ts +76 -0
  136. package/dist/types/core/custom-pages.d.ts +33 -0
  137. package/dist/types/core/data.d.ts +27 -12
  138. package/dist/types/core/define-components.d.ts +12 -9
  139. package/dist/types/core/deployment-env.d.ts +6 -11
  140. package/dist/types/core/frontmatter.d.ts +10 -0
  141. package/dist/types/core/graph.d.ts +18 -0
  142. package/dist/types/core/heading-markers.d.ts +54 -0
  143. package/dist/types/core/i18n-ui.d.ts +6 -2
  144. package/dist/types/core/i18n.d.ts +87 -0
  145. package/dist/types/core/includes.d.ts +138 -0
  146. package/dist/types/core/last-modified.d.ts +47 -0
  147. package/dist/types/core/links.d.ts +95 -0
  148. package/dist/types/core/locale-links.d.ts +60 -0
  149. package/dist/types/core/manifest.d.ts +17 -0
  150. package/dist/types/core/meta.d.ts +38 -0
  151. package/dist/types/core/nav-diagnostics.d.ts +26 -0
  152. package/dist/types/core/navigation.d.ts +6 -0
  153. package/dist/types/core/node-require.d.ts +19 -0
  154. package/dist/types/core/package-json.d.ts +13 -0
  155. package/dist/types/core/probe.d.ts +42 -0
  156. package/dist/types/core/project-graph.d.ts +51 -0
  157. package/dist/types/core/project.d.ts +2 -0
  158. package/dist/types/core/safe-href.d.ts +2 -0
  159. package/dist/types/core/safe-links.d.ts +26 -0
  160. package/dist/types/core/schema.d.ts +2282 -452
  161. package/dist/types/core/site-url.d.ts +16 -0
  162. package/dist/types/core/sources/assets.d.ts +36 -0
  163. package/dist/types/core/sources/cache.d.ts +37 -0
  164. package/dist/types/core/sources/collection.d.ts +28 -0
  165. package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
  166. package/dist/types/core/sources/contentful.d.ts +40 -0
  167. package/dist/types/core/sources/filesystem.d.ts +24 -0
  168. package/dist/types/core/sources/github-releases.d.ts +31 -0
  169. package/dist/types/core/sources/json.d.ts +30 -0
  170. package/dist/types/core/sources/lexical.d.ts +19 -0
  171. package/dist/types/core/sources/lower.d.ts +75 -0
  172. package/dist/types/core/sources/mdx-remote.d.ts +28 -0
  173. package/dist/types/core/sources/normalize.d.ts +147 -0
  174. package/dist/types/core/sources/notion.d.ts +131 -0
  175. package/dist/types/core/sources/obsidian.d.ts +46 -0
  176. package/dist/types/core/sources/payload.d.ts +39 -0
  177. package/dist/types/core/sources/portable-text.d.ts +42 -0
  178. package/dist/types/core/sources/read.d.ts +23 -0
  179. package/dist/types/core/sources/remote.d.ts +74 -0
  180. package/dist/types/core/sources/resolve.d.ts +19 -0
  181. package/dist/types/core/sources/sanity.d.ts +43 -0
  182. package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
  183. package/dist/types/core/sources/strapi.d.ts +33 -0
  184. package/dist/types/core/sources/types.d.ts +7 -0
  185. package/dist/types/core/sources/watch.d.ts +45 -0
  186. package/dist/types/core/text-width.d.ts +11 -0
  187. package/dist/types/core/types.d.ts +15 -1
  188. package/dist/types/core/unrecognized-keys.d.ts +7 -0
  189. package/dist/types/core/versions.d.ts +72 -0
  190. package/dist/types/core/yaml.d.ts +9 -0
  191. package/dist/types/deploy/adapter-output.d.ts +45 -0
  192. package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
  193. package/dist/types/deploy/adapters/index.d.ts +29 -0
  194. package/dist/types/deploy/adapters/netlify.d.ts +37 -0
  195. package/dist/types/deploy/adapters/node.d.ts +37 -0
  196. package/dist/types/deploy/adapters/registry.d.ts +133 -0
  197. package/dist/types/deploy/adapters/types.d.ts +71 -0
  198. package/dist/types/deploy/adapters/vercel.d.ts +38 -0
  199. package/dist/types/deploy/artifacts.d.ts +65 -0
  200. package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
  201. package/dist/types/deploy/function-bundle.d.ts +80 -0
  202. package/dist/types/deploy/headers.d.ts +50 -0
  203. package/dist/types/deploy/node-headers.d.ts +42 -0
  204. package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
  205. package/dist/types/deploy/platforms/index.d.ts +18 -0
  206. package/dist/types/deploy/platforms/netlify.d.ts +13 -0
  207. package/dist/types/deploy/platforms/node.d.ts +11 -0
  208. package/dist/types/deploy/platforms/paths.d.ts +27 -0
  209. package/dist/types/deploy/platforms/static.d.ts +10 -0
  210. package/dist/types/deploy/platforms/types.d.ts +104 -0
  211. package/dist/types/deploy/platforms/vercel.d.ts +32 -0
  212. package/dist/types/deploy/redirects.d.ts +53 -0
  213. package/dist/types/deploy/robots.d.ts +8 -0
  214. package/dist/types/deploy/rss.d.ts +31 -0
  215. package/dist/types/deploy/sitemap.d.ts +21 -0
  216. package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
  217. package/dist/types/markdown/code-title.d.ts +32 -0
  218. package/dist/types/markdown/fence-meta.d.ts +23 -0
  219. package/dist/types/markdown/themes.d.ts +3 -3
  220. package/dist/types/openapi/asyncapi.d.ts +129 -0
  221. package/dist/types/openapi/graphql-build.d.ts +8 -0
  222. package/dist/types/openapi/graphql.d.ts +122 -0
  223. package/dist/types/openapi/model.d.ts +158 -0
  224. package/dist/types/openapi/parse.d.ts +57 -0
  225. package/dist/types/openapi/references.d.ts +37 -25
  226. package/dist/types/openapi/render-mdx.d.ts +33 -0
  227. package/dist/types/openapi/sentence.d.ts +7 -0
  228. package/dist/types/openapi/signature.d.ts +10 -0
  229. package/dist/types/openapi/source.d.ts +22 -0
  230. package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
  231. package/dist/types/reference/asyncapi.d.ts +166 -0
  232. package/dist/types/reference/graphql.d.ts +181 -0
  233. package/dist/types/reference/index.d.ts +32 -0
  234. package/dist/types/reference/openapi.d.ts +165 -0
  235. package/dist/types/reference/options.d.ts +157 -0
  236. package/dist/types/reference/scalar.d.ts +136 -0
  237. package/dist/types/reference/schema.d.ts +630 -0
  238. package/dist/types/search/adapters/algolia.d.ts +32 -0
  239. package/dist/types/search/adapters/flexsearch.d.ts +12 -0
  240. package/dist/types/search/adapters/index.d.ts +31 -0
  241. package/dist/types/search/adapters/mixedbread.d.ts +22 -0
  242. package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
  243. package/dist/types/search/adapters/orama.d.ts +13 -0
  244. package/dist/types/search/adapters/pagefind.d.ts +12 -0
  245. package/dist/types/search/adapters/registry.d.ts +228 -0
  246. package/dist/types/search/adapters/types.d.ts +34 -0
  247. package/dist/types/search/adapters/typesense.d.ts +42 -0
  248. package/dist/types/search/build.d.ts +23 -0
  249. package/dist/types/search/documents.d.ts +90 -0
  250. package/dist/types/search/facets.d.ts +3 -0
  251. package/dist/types/search/sync/algolia.d.ts +14 -0
  252. package/dist/types/search/sync/index.d.ts +14 -0
  253. package/dist/types/search/sync/orama-cloud.d.ts +10 -0
  254. package/dist/types/search/sync/typesense.d.ts +14 -0
  255. package/dist/types/sources/contentful.d.ts +68 -0
  256. package/dist/types/sources/custom.d.ts +20 -0
  257. package/dist/types/sources/filesystem.d.ts +42 -0
  258. package/dist/types/sources/github-releases.d.ts +46 -0
  259. package/dist/types/sources/index.d.ts +48 -0
  260. package/dist/types/sources/mdx-remote.d.ts +63 -0
  261. package/dist/types/sources/notion.d.ts +65 -0
  262. package/dist/types/sources/obsidian.d.ts +34 -0
  263. package/dist/types/sources/payload.d.ts +68 -0
  264. package/dist/types/sources/registry.d.ts +1414 -0
  265. package/dist/types/sources/sanity.d.ts +69 -0
  266. package/dist/types/sources/shared.d.ts +46 -0
  267. package/dist/types/sources/strapi.d.ts +66 -0
  268. package/dist/types/theme/icon-kind.d.ts +11 -0
  269. package/dist/types/theme/icons.d.ts +20 -0
  270. package/docs/01-quickstart.mdx +18 -18
  271. package/docs/02-deployment.mdx +50 -26
  272. package/docs/03-upgrading.mdx +351 -0
  273. package/docs/04-migrating.mdx +58 -0
  274. package/docs/08-faq.mdx +3 -3
  275. package/docs/advanced/blog.mdx +13 -6
  276. package/docs/advanced/changelog.mdx +23 -35
  277. package/docs/advanced/custom-pages.mdx +20 -8
  278. package/docs/advanced/meta.ts +1 -8
  279. package/docs/advanced/skills.mdx +8 -0
  280. package/docs/cli/audit.mdx +646 -0
  281. package/docs/cli/doctor.mdx +29 -0
  282. package/docs/{reference/eval.mdx → cli/evals.mdx} +9 -8
  283. package/docs/cli/index.mdx +105 -0
  284. package/docs/cli/meta.ts +7 -0
  285. package/docs/{reference → cli}/translate.mdx +1 -1
  286. package/docs/cli/validate.mdx +41 -0
  287. package/docs/cli/version.mdx +40 -0
  288. package/docs/configuration/analytics.mdx +350 -59
  289. package/docs/configuration/ask-ai.mdx +162 -61
  290. package/docs/configuration/customization.mdx +15 -9
  291. package/docs/configuration/index.mdx +50 -31
  292. package/docs/configuration/search.mdx +75 -54
  293. package/docs/configuration/theming.mdx +24 -15
  294. package/docs/content/components.mdx +21 -5
  295. package/docs/{reference → content}/frontmatter.mdx +35 -1
  296. package/docs/content/i18n.mdx +8 -6
  297. package/docs/content/includes.mdx +2 -4
  298. package/docs/content/index.mdx +1 -1
  299. package/docs/content/islands.mdx +10 -5
  300. package/docs/content/meta.mdx +1 -1
  301. package/docs/content/meta.ts +1 -0
  302. package/docs/content/navigation.mdx +9 -7
  303. package/docs/content/sources.mdx +145 -50
  304. package/docs/content/syntax.mdx +16 -12
  305. package/docs/content/versioning.mdx +3 -3
  306. package/docs/discoverability/agent-discovery.mdx +11 -11
  307. package/docs/discoverability/index.mdx +4 -4
  308. package/docs/discoverability/json-api.mdx +4 -4
  309. package/docs/discoverability/llms-txt.mdx +6 -6
  310. package/docs/discoverability/markdown.mdx +4 -4
  311. package/docs/discoverability/mcp.mdx +11 -11
  312. package/docs/discoverability/sitemap-and-robots.mdx +3 -3
  313. package/docs/index.mdx +2 -2
  314. package/docs/references/asyncapi.mdx +59 -0
  315. package/docs/{advanced → references}/graphql.mdx +45 -32
  316. package/docs/{reference → references}/meta.ts +2 -2
  317. package/docs/references/openapi.mdx +171 -0
  318. package/docs/references/scalar.mdx +64 -0
  319. package/package.json +42 -8
  320. package/skills/blume/SKILL.md +21 -8
  321. package/skills/blume-migrate/SKILL.md +22 -21
  322. package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
  323. package/skills/blume-migrate/references/docusaurus.md +5 -4
  324. package/skills/blume-migrate/references/fumadocs.md +4 -4
  325. package/skills/blume-migrate/references/mintlify.md +23 -8
  326. package/skills/blume-migrate/references/monorepo.md +6 -6
  327. package/skills/blume-migrate/references/starlight.md +4 -4
  328. package/src/ai/agent-readability.ts +21 -22
  329. package/src/ai/ai-catalog.ts +50 -32
  330. package/src/ai/api/handlers.ts +46 -11
  331. package/src/ai/api-catalog.ts +8 -8
  332. package/src/ai/ask-data.ts +1 -1
  333. package/src/ai/ask.ts +624 -100
  334. package/src/ai/changelog-markdown.ts +91 -0
  335. package/src/ai/component-markdown.ts +328 -12
  336. package/src/ai/index.ts +45 -0
  337. package/src/ai/link-headers.ts +7 -6
  338. package/src/ai/llms.ts +20 -15
  339. package/src/ai/markdown.ts +35 -5
  340. package/src/ai/mcp/data.ts +9 -5
  341. package/src/ai/openapi-components.ts +4 -1
  342. package/src/ai/relative-links.ts +170 -0
  343. package/src/ai/serializers.ts +2 -2
  344. package/src/ai/skills.ts +1 -1
  345. package/src/ai/web-bot-auth.ts +2 -2
  346. package/src/analytics/adobe.ts +46 -0
  347. package/src/analytics/amplitude.ts +79 -0
  348. package/src/analytics/clarity.ts +46 -0
  349. package/src/analytics/clearbit.ts +47 -0
  350. package/src/analytics/cloudflare.ts +67 -0
  351. package/src/analytics/fathom.ts +64 -0
  352. package/src/analytics/google-analytics.ts +84 -0
  353. package/src/analytics/google-tag-manager.ts +61 -0
  354. package/src/analytics/head.ts +130 -0
  355. package/src/analytics/heap.ts +65 -0
  356. package/src/analytics/hightouch.ts +77 -0
  357. package/src/analytics/hotjar.ts +47 -0
  358. package/src/analytics/index.ts +71 -0
  359. package/src/analytics/inline.ts +21 -0
  360. package/src/analytics/logrocket.ts +71 -0
  361. package/src/analytics/mixpanel.ts +92 -0
  362. package/src/analytics/pirsch.ts +66 -0
  363. package/src/analytics/plausible.ts +83 -0
  364. package/src/analytics/posthog.ts +78 -0
  365. package/src/analytics/schema.ts +60 -0
  366. package/src/analytics/script.ts +60 -0
  367. package/src/analytics/segment.ts +85 -0
  368. package/src/analytics/vercel.ts +50 -0
  369. package/src/astro/adapter-root.ts +7 -9
  370. package/src/astro/component-slots.ts +131 -91
  371. package/src/astro/generate.ts +112 -345
  372. package/src/astro/integration.ts +2 -6
  373. package/src/astro/pages.ts +13 -101
  374. package/src/astro/render-deps.ts +379 -0
  375. package/src/astro/runtime-deps.ts +201 -0
  376. package/src/astro/templates.ts +554 -541
  377. package/src/audit/agent.ts +24 -0
  378. package/src/audit/catalog.ts +2 -2
  379. package/src/audit/checks/assets.ts +2 -2
  380. package/src/audit/checks/dns-aid.ts +1 -1
  381. package/src/audit/checks/duplicates.ts +3 -1
  382. package/src/audit/checks/i18n.ts +1 -1
  383. package/src/audit/checks/indexability.ts +7 -7
  384. package/src/audit/checks/links.ts +2 -2
  385. package/src/audit/checks/llms.ts +6 -6
  386. package/src/audit/checks/network.ts +3 -3
  387. package/src/audit/checks/og-image.ts +2 -2
  388. package/src/audit/checks/robots.ts +1 -1
  389. package/src/audit/checks/sitemap.ts +2 -2
  390. package/src/audit/checks/social.ts +1 -1
  391. package/src/audit/run.ts +4 -3
  392. package/src/audit/terms.ts +31 -0
  393. package/src/audit/url.ts +13 -13
  394. package/src/cli/command-meta.ts +10 -0
  395. package/src/cli/commands/audit.ts +39 -20
  396. package/src/cli/commands/build.ts +71 -316
  397. package/src/cli/commands/check.ts +1 -0
  398. package/src/cli/commands/dev.ts +40 -1
  399. package/src/cli/commands/doctor.ts +90 -14
  400. package/src/cli/commands/eject.ts +44 -7
  401. package/src/cli/commands/eval.ts +2 -2
  402. package/src/cli/commands/init.ts +161 -41
  403. package/src/cli/commands/migrate.ts +121 -0
  404. package/src/cli/commands/preview.ts +7 -1
  405. package/src/cli/commands/translate.ts +2 -2
  406. package/src/cli/commands/upgrade.ts +141 -0
  407. package/src/cli/commands/version.ts +57 -44
  408. package/src/cli/eject-scripts.ts +121 -6
  409. package/src/cli/index.ts +11 -1
  410. package/src/cli/init/install.ts +70 -0
  411. package/src/cli/init/questions.ts +7 -0
  412. package/src/cli/init/scaffold.ts +459 -75
  413. package/src/cli/lazy-command.ts +37 -1
  414. package/src/cli/prepare.ts +40 -6
  415. package/src/cli/required-secrets.ts +38 -11
  416. package/src/cli/unknown-flags.ts +266 -0
  417. package/src/cli/yarn-pnp.ts +52 -0
  418. package/src/components/content/AccordionItem.astro +7 -1
  419. package/src/components/content/Card.astro +4 -3
  420. package/src/components/content/ColorItem.astro +22 -4
  421. package/src/components/content/GithubInfo.astro +2 -2
  422. package/src/components/content/Prompt.astro +25 -25
  423. package/src/components/content/Tabs.astro +3 -1
  424. package/src/components/content/Tile.astro +2 -3
  425. package/src/components/content/Tooltip.astro +57 -9
  426. package/src/components/content/content-strings.ts +34 -0
  427. package/src/components/content/diff.ts +1 -1
  428. package/src/components/content/mermaid-element.ts +13 -2
  429. package/src/components/content/prompt-markdown.ts +292 -0
  430. package/src/components/content/tooltip-id.ts +41 -0
  431. package/src/components/islands/hooks.ts +25 -2
  432. package/src/components/layout/Analytics.astro +21 -79
  433. package/src/components/layout/Banner.astro +3 -1
  434. package/src/components/layout/DiscoveryLinks.astro +69 -0
  435. package/src/components/layout/Header.astro +83 -20
  436. package/src/components/layout/LanguageSwitcher.astro +4 -1
  437. package/src/components/layout/Logo.astro +23 -2
  438. package/src/components/layout/NavSelector.astro +13 -2
  439. package/src/components/layout/NavTree.astro +12 -3
  440. package/src/components/layout/NavTreeScript.astro +17 -3
  441. package/src/components/layout/PageActions.astro +3 -3
  442. package/src/components/layout/PageFeedback.astro +11 -1
  443. package/src/components/layout/PageLayout.astro +52 -5
  444. package/src/components/layout/ReferenceLayout.astro +21 -12
  445. package/src/components/layout/RootLayout.astro +69 -66
  446. package/src/components/layout/Search.astro +30 -6
  447. package/src/components/layout/WebMcp.astro +1 -1
  448. package/src/components/layout/analytics-client.ts +72 -15
  449. package/src/components/layout/drawer-inert.ts +113 -15
  450. package/src/components/layout/dropdown-clamp.ts +105 -0
  451. package/src/components/layout/head-scripts.ts +15 -6
  452. package/src/components/layout/nav-utils.ts +17 -0
  453. package/src/components/layout/search/algolia.ts +8 -8
  454. package/src/components/layout/search/orama-cloud.ts +9 -7
  455. package/src/components/layout/search/typesense.ts +11 -17
  456. package/src/components/openapi/MessageComposer.astro +2 -2
  457. package/src/components/openapi/Playground.astro +2 -2
  458. package/src/components/openapi/playground-client.ts +79 -10
  459. package/src/core/changelog-index.ts +24 -0
  460. package/src/core/component-overrides.ts +399 -154
  461. package/src/core/config-input.ts +188 -553
  462. package/src/core/config.ts +130 -41
  463. package/src/core/custom-pages.ts +105 -0
  464. package/src/core/data.ts +31 -12
  465. package/src/core/define-components.ts +12 -9
  466. package/src/core/deployment-env.ts +18 -74
  467. package/src/core/diagnostics.ts +14 -7
  468. package/src/core/graph.ts +69 -25
  469. package/src/core/i18n-ui.ts +6 -2
  470. package/src/core/i18n.ts +17 -0
  471. package/src/core/includes.ts +156 -38
  472. package/src/core/last-modified.ts +6 -11
  473. package/src/core/links.ts +166 -2
  474. package/src/core/manifest.ts +10 -3
  475. package/src/core/navigation.ts +115 -16
  476. package/src/core/new-tab.ts +35 -0
  477. package/src/core/node-require.ts +21 -0
  478. package/src/core/project-graph.ts +42 -26
  479. package/src/core/project.ts +9 -4
  480. package/src/core/request-body.ts +61 -0
  481. package/src/core/safe-href.ts +28 -0
  482. package/src/core/safe-links.ts +68 -0
  483. package/src/core/schema.ts +517 -739
  484. package/src/core/server-features.ts +8 -9
  485. package/src/core/sources/assets.ts +47 -11
  486. package/src/core/sources/collection.ts +67 -0
  487. package/src/core/sources/contentful-rich-text.ts +285 -0
  488. package/src/core/sources/contentful.ts +173 -0
  489. package/src/core/sources/github-releases.ts +51 -1
  490. package/src/core/sources/json.ts +71 -0
  491. package/src/core/sources/lexical.ts +195 -0
  492. package/src/core/sources/lower.ts +226 -0
  493. package/src/core/sources/normalize.ts +52 -2
  494. package/src/core/sources/notion.ts +39 -28
  495. package/src/core/sources/payload.ts +135 -0
  496. package/src/core/sources/portable-text.ts +11 -16
  497. package/src/core/sources/remote.ts +226 -0
  498. package/src/core/sources/resolve.ts +104 -166
  499. package/src/core/sources/sanity.ts +16 -49
  500. package/src/core/sources/strapi-blocks.ts +124 -0
  501. package/src/core/sources/strapi.ts +191 -0
  502. package/src/core/sources/types.ts +12 -1
  503. package/src/core/types.ts +15 -1
  504. package/src/core/ui-packs/ar.ts +6 -2
  505. package/src/core/ui-packs/bg.ts +6 -2
  506. package/src/core/ui-packs/bn.ts +6 -2
  507. package/src/core/ui-packs/ca.ts +3 -1
  508. package/src/core/ui-packs/cs.ts +6 -2
  509. package/src/core/ui-packs/da.ts +6 -2
  510. package/src/core/ui-packs/de.ts +6 -2
  511. package/src/core/ui-packs/el.ts +3 -1
  512. package/src/core/ui-packs/es.ts +3 -1
  513. package/src/core/ui-packs/fa.ts +6 -2
  514. package/src/core/ui-packs/fi.ts +6 -2
  515. package/src/core/ui-packs/fr.ts +3 -1
  516. package/src/core/ui-packs/he.ts +6 -2
  517. package/src/core/ui-packs/hi.ts +6 -2
  518. package/src/core/ui-packs/hr.ts +6 -2
  519. package/src/core/ui-packs/hu.ts +6 -2
  520. package/src/core/ui-packs/id.ts +6 -2
  521. package/src/core/ui-packs/it.ts +3 -1
  522. package/src/core/ui-packs/ja.ts +3 -1
  523. package/src/core/ui-packs/ko.ts +3 -1
  524. package/src/core/ui-packs/nl.ts +6 -2
  525. package/src/core/ui-packs/no.ts +6 -2
  526. package/src/core/ui-packs/pl.ts +6 -2
  527. package/src/core/ui-packs/pt-br.ts +3 -1
  528. package/src/core/ui-packs/pt.ts +3 -1
  529. package/src/core/ui-packs/ro.ts +6 -2
  530. package/src/core/ui-packs/ru.ts +6 -2
  531. package/src/core/ui-packs/sk.ts +6 -2
  532. package/src/core/ui-packs/sr.ts +6 -2
  533. package/src/core/ui-packs/sv.ts +6 -2
  534. package/src/core/ui-packs/th.ts +3 -1
  535. package/src/core/ui-packs/tr.ts +6 -2
  536. package/src/core/ui-packs/uk.ts +6 -2
  537. package/src/core/ui-packs/vi.ts +3 -1
  538. package/src/core/ui-packs/zh-tw.ts +3 -1
  539. package/src/core/ui-packs/zh.ts +3 -1
  540. package/src/core/unrecognized-keys.ts +10 -0
  541. package/src/core/version-cut.ts +116 -8
  542. package/src/deploy/adapter-output.ts +57 -97
  543. package/src/deploy/adapters/cloudflare.ts +39 -0
  544. package/src/deploy/adapters/index.ts +41 -0
  545. package/src/deploy/adapters/netlify.ts +34 -0
  546. package/src/deploy/adapters/node.ts +34 -0
  547. package/src/deploy/adapters/registry.ts +127 -0
  548. package/src/deploy/adapters/types.ts +92 -0
  549. package/src/deploy/adapters/vercel.ts +35 -0
  550. package/src/deploy/artifacts.ts +55 -27
  551. package/src/deploy/cloudflare-negotiation.ts +179 -100
  552. package/src/deploy/function-bundle.ts +18 -3
  553. package/src/deploy/headers.ts +124 -23
  554. package/src/deploy/node-headers.ts +198 -0
  555. package/src/deploy/platforms/cloudflare.ts +312 -0
  556. package/src/deploy/platforms/index.ts +67 -0
  557. package/src/deploy/platforms/netlify.ts +52 -0
  558. package/src/deploy/platforms/node.ts +40 -0
  559. package/src/deploy/platforms/paths.ts +42 -0
  560. package/src/deploy/platforms/static.ts +29 -0
  561. package/src/deploy/platforms/types.ts +112 -0
  562. package/src/deploy/platforms/vercel.ts +193 -0
  563. package/src/deploy/redirects.ts +30 -18
  564. package/src/deploy/robots.ts +3 -3
  565. package/src/deploy/rss.ts +2 -2
  566. package/src/deploy/sitemap.ts +2 -2
  567. package/src/deploy/vercel-negotiation.ts +2 -2
  568. package/src/eval/agents.ts +32 -1
  569. package/src/eval/findings.ts +19 -11
  570. package/src/eval/report.ts +10 -2
  571. package/src/markdown/external-links.ts +65 -0
  572. package/src/markdown/include.ts +45 -27
  573. package/src/markdown/index.ts +34 -9
  574. package/src/markdown/inline-code.ts +12 -6
  575. package/src/markdown/relative-links.ts +324 -0
  576. package/src/markdown/themes.ts +3 -3
  577. package/src/migrate/migrate.ts +149 -0
  578. package/src/openapi/parse.ts +64 -16
  579. package/src/openapi/proxy.ts +62 -10
  580. package/src/openapi/references.ts +147 -147
  581. package/src/openapi/render-mdx.ts +32 -10
  582. package/src/openapi/scalar.ts +15 -13
  583. package/src/openapi/sentence.ts +14 -0
  584. package/src/openapi/source.ts +37 -21
  585. package/src/openapi/spec-dependency-error.ts +15 -0
  586. package/src/reference/asyncapi.ts +83 -0
  587. package/src/reference/graphql.ts +89 -0
  588. package/src/reference/index.ts +40 -0
  589. package/src/reference/openapi.ts +83 -0
  590. package/src/reference/options.ts +201 -0
  591. package/src/reference/scalar.ts +136 -0
  592. package/src/reference/schema.ts +88 -0
  593. package/src/registry/eject.ts +97 -42
  594. package/src/search/adapters/algolia.ts +46 -0
  595. package/src/search/adapters/flexsearch.ts +29 -0
  596. package/src/search/adapters/index.ts +39 -0
  597. package/src/search/adapters/mixedbread.ts +39 -0
  598. package/src/search/adapters/orama-cloud.ts +51 -0
  599. package/src/search/adapters/orama.ts +24 -0
  600. package/src/search/adapters/pagefind.ts +27 -0
  601. package/src/search/adapters/registry.ts +131 -0
  602. package/src/search/adapters/types.ts +46 -0
  603. package/src/search/adapters/typesense.ts +57 -0
  604. package/src/search/build.ts +8 -4
  605. package/src/search/documents.ts +6 -0
  606. package/src/search/sync/algolia.ts +12 -11
  607. package/src/search/sync/index.ts +35 -20
  608. package/src/search/sync/orama-cloud.ts +12 -9
  609. package/src/search/sync/typesense.ts +15 -13
  610. package/src/sources/contentful.ts +63 -0
  611. package/src/sources/custom.ts +38 -0
  612. package/src/sources/filesystem.ts +51 -0
  613. package/src/sources/github-releases.ts +52 -0
  614. package/src/sources/index.ts +60 -0
  615. package/src/sources/mdx-remote.ts +76 -0
  616. package/src/sources/notion.ts +63 -0
  617. package/src/sources/obsidian.ts +38 -0
  618. package/src/sources/payload.ts +60 -0
  619. package/src/sources/registry.ts +182 -0
  620. package/src/sources/sanity.ts +66 -0
  621. package/src/sources/shared.ts +52 -0
  622. package/src/sources/strapi.ts +58 -0
  623. package/src/theme/entry.ts +24 -2
  624. package/src/translate/report.ts +40 -7
  625. package/src/upgrade/upgrade.ts +499 -0
  626. package/dist/cli/chunk-0qymqwzz.js +0 -164
  627. package/dist/cli/chunk-0qymqwzz.js.map +0 -15
  628. package/dist/cli/chunk-1jefwnfs.js.map +0 -48
  629. package/dist/cli/chunk-2mzebbbz.js +0 -69
  630. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  631. package/dist/cli/chunk-4x36ddpw.js.map +0 -11
  632. package/dist/cli/chunk-5093q3n7.js +0 -68
  633. package/dist/cli/chunk-5093q3n7.js.map +0 -10
  634. package/dist/cli/chunk-5qk08vmp.js.map +0 -11
  635. package/dist/cli/chunk-7s8hm3b6.js +0 -5347
  636. package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
  637. package/dist/cli/chunk-8cjtbafj.js.map +0 -13
  638. package/dist/cli/chunk-97r59kpr.js +0 -381
  639. package/dist/cli/chunk-97r59kpr.js.map +0 -12
  640. package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
  641. package/dist/cli/chunk-b27xqwn9.js.map +0 -10
  642. package/dist/cli/chunk-bf6bt1xt.js +0 -185
  643. package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
  644. package/dist/cli/chunk-cjtn640a.js.map +0 -10
  645. package/dist/cli/chunk-ct47dqpx.js.map +0 -11
  646. package/dist/cli/chunk-esphfr8p.js +0 -107
  647. package/dist/cli/chunk-esphfr8p.js.map +0 -11
  648. package/dist/cli/chunk-ex56aa81.js +0 -1016
  649. package/dist/cli/chunk-ex56aa81.js.map +0 -13
  650. package/dist/cli/chunk-garjf5z9.js +0 -30
  651. package/dist/cli/chunk-garjf5z9.js.map +0 -10
  652. package/dist/cli/chunk-js7saxwm.js +0 -1045
  653. package/dist/cli/chunk-js7saxwm.js.map +0 -22
  654. package/dist/cli/chunk-k79xp7av.js.map +0 -39
  655. package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
  656. package/dist/cli/chunk-q4rae3bg.js +0 -60
  657. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  658. package/dist/cli/chunk-rz9jmfhz.js +0 -108
  659. package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
  660. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  661. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  662. package/dist/cli/chunk-vrfp10qk.js +0 -81
  663. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  664. package/dist/cli/chunk-yg63d42r.js.map +0 -34
  665. package/docs/advanced/api-reference.mdx +0 -240
  666. package/docs/reference/cli.mdx +0 -197
  667. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  668. package/src/components/content/changelog-element.ts +0 -69
  669. package/src/search/providers.ts +0 -91
  670. /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-7ez8ny0t.js.map} +0 -0
  671. /package/dist/cli/{chunk-nn13znc2.js.map → chunk-88cpgt6h.js.map} +0 -0
  672. /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-f7t03s3g.js.map} +0 -0
  673. /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-zxccj738.js.map} +0 -0
@@ -0,0 +1,320 @@
1
+ import { z } from "zod";
2
+ /** One configured analytics adapter, as its factory returned it. */
3
+ export declare const analyticsAdapterSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4
+ kind: z.ZodLiteral<"adobe">;
5
+ options: z.ZodObject<{
6
+ url: z.ZodString;
7
+ }, z.core.$strict>;
8
+ requiredSecrets: z.ZodArray<z.ZodString>;
9
+ runtimeDeps: z.ZodArray<z.ZodString>;
10
+ }, z.core.$strict>, z.ZodObject<{
11
+ kind: z.ZodLiteral<"amplitude">;
12
+ options: z.ZodObject<{
13
+ key: z.ZodString;
14
+ }, z.core.$catchall<z.ZodJSONSchema>>;
15
+ requiredSecrets: z.ZodArray<z.ZodString>;
16
+ runtimeDeps: z.ZodArray<z.ZodString>;
17
+ }, z.core.$strict>, z.ZodObject<{
18
+ kind: z.ZodLiteral<"clarity">;
19
+ options: z.ZodObject<{
20
+ id: z.ZodString;
21
+ }, z.core.$strict>;
22
+ requiredSecrets: z.ZodArray<z.ZodString>;
23
+ runtimeDeps: z.ZodArray<z.ZodString>;
24
+ }, z.core.$strict>, z.ZodObject<{
25
+ kind: z.ZodLiteral<"clearbit">;
26
+ options: z.ZodObject<{
27
+ key: z.ZodString;
28
+ }, z.core.$strict>;
29
+ requiredSecrets: z.ZodArray<z.ZodString>;
30
+ runtimeDeps: z.ZodArray<z.ZodString>;
31
+ }, z.core.$strict>, z.ZodObject<{
32
+ kind: z.ZodLiteral<"cloudflare">;
33
+ options: z.ZodObject<{
34
+ token: z.ZodString;
35
+ }, z.core.$catchall<z.ZodJSONSchema>>;
36
+ requiredSecrets: z.ZodArray<z.ZodString>;
37
+ runtimeDeps: z.ZodArray<z.ZodString>;
38
+ }, z.core.$strict>, z.ZodObject<{
39
+ kind: z.ZodLiteral<"fathom">;
40
+ options: z.ZodObject<{
41
+ site: z.ZodString;
42
+ }, z.core.$catchall<z.ZodString>>;
43
+ requiredSecrets: z.ZodArray<z.ZodString>;
44
+ runtimeDeps: z.ZodArray<z.ZodString>;
45
+ }, z.core.$strict>, z.ZodObject<{
46
+ kind: z.ZodLiteral<"google-analytics">;
47
+ options: z.ZodObject<{
48
+ id: z.ZodString;
49
+ }, z.core.$catchall<z.ZodJSONSchema>>;
50
+ requiredSecrets: z.ZodArray<z.ZodString>;
51
+ runtimeDeps: z.ZodArray<z.ZodString>;
52
+ }, z.core.$strict>, z.ZodObject<{
53
+ kind: z.ZodLiteral<"google-tag-manager">;
54
+ options: z.ZodObject<{
55
+ dataLayer: z.ZodOptional<z.ZodString>;
56
+ id: z.ZodString;
57
+ }, z.core.$strict>;
58
+ requiredSecrets: z.ZodArray<z.ZodString>;
59
+ runtimeDeps: z.ZodArray<z.ZodString>;
60
+ }, z.core.$strict>, z.ZodObject<{
61
+ kind: z.ZodLiteral<"heap">;
62
+ options: z.ZodObject<{
63
+ id: z.ZodString;
64
+ }, z.core.$catchall<z.ZodJSONSchema>>;
65
+ requiredSecrets: z.ZodArray<z.ZodString>;
66
+ runtimeDeps: z.ZodArray<z.ZodString>;
67
+ }, z.core.$strict>, z.ZodObject<{
68
+ kind: z.ZodLiteral<"hightouch">;
69
+ options: z.ZodObject<{
70
+ host: z.ZodOptional<z.ZodString>;
71
+ key: z.ZodString;
72
+ }, z.core.$catchall<z.ZodJSONSchema>>;
73
+ requiredSecrets: z.ZodArray<z.ZodString>;
74
+ runtimeDeps: z.ZodArray<z.ZodString>;
75
+ }, z.core.$strict>, z.ZodObject<{
76
+ kind: z.ZodLiteral<"hotjar">;
77
+ options: z.ZodObject<{
78
+ id: z.ZodNumber;
79
+ version: z.ZodOptional<z.ZodNumber>;
80
+ }, z.core.$strict>;
81
+ requiredSecrets: z.ZodArray<z.ZodString>;
82
+ runtimeDeps: z.ZodArray<z.ZodString>;
83
+ }, z.core.$strict>, z.ZodObject<{
84
+ kind: z.ZodLiteral<"logrocket">;
85
+ options: z.ZodObject<{
86
+ id: z.ZodString;
87
+ }, z.core.$catchall<z.ZodJSONSchema>>;
88
+ requiredSecrets: z.ZodArray<z.ZodString>;
89
+ runtimeDeps: z.ZodArray<z.ZodString>;
90
+ }, z.core.$strict>, z.ZodObject<{
91
+ kind: z.ZodLiteral<"mixpanel">;
92
+ options: z.ZodObject<{
93
+ region: z.ZodOptional<z.ZodEnum<{
94
+ in: "in";
95
+ eu: "eu";
96
+ us: "us";
97
+ }>>;
98
+ token: z.ZodString;
99
+ }, z.core.$catchall<z.ZodJSONSchema>>;
100
+ requiredSecrets: z.ZodArray<z.ZodString>;
101
+ runtimeDeps: z.ZodArray<z.ZodString>;
102
+ }, z.core.$strict>, z.ZodObject<{
103
+ kind: z.ZodLiteral<"pirsch">;
104
+ options: z.ZodObject<{
105
+ code: z.ZodString;
106
+ }, z.core.$catchall<z.ZodString>>;
107
+ requiredSecrets: z.ZodArray<z.ZodString>;
108
+ runtimeDeps: z.ZodArray<z.ZodString>;
109
+ }, z.core.$strict>, z.ZodObject<{
110
+ kind: z.ZodLiteral<"plausible">;
111
+ options: z.ZodObject<{
112
+ domain: z.ZodString;
113
+ host: z.ZodOptional<z.ZodString>;
114
+ }, z.core.$catchall<z.ZodString>>;
115
+ requiredSecrets: z.ZodArray<z.ZodString>;
116
+ runtimeDeps: z.ZodArray<z.ZodString>;
117
+ }, z.core.$strict>, z.ZodObject<{
118
+ kind: z.ZodLiteral<"posthog">;
119
+ options: z.ZodObject<{
120
+ host: z.ZodOptional<z.ZodString>;
121
+ key: z.ZodString;
122
+ }, z.core.$catchall<z.ZodJSONSchema>>;
123
+ requiredSecrets: z.ZodArray<z.ZodString>;
124
+ runtimeDeps: z.ZodArray<z.ZodString>;
125
+ }, z.core.$strict>, z.ZodObject<{
126
+ kind: z.ZodLiteral<"script">;
127
+ options: z.ZodObject<{
128
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
129
+ content: z.ZodOptional<z.ZodString>;
130
+ src: z.ZodOptional<z.ZodString>;
131
+ strategy: z.ZodOptional<z.ZodEnum<{
132
+ defer: "defer";
133
+ async: "async";
134
+ }>>;
135
+ }, z.core.$strict>;
136
+ requiredSecrets: z.ZodArray<z.ZodString>;
137
+ runtimeDeps: z.ZodArray<z.ZodString>;
138
+ }, z.core.$strict>, z.ZodObject<{
139
+ kind: z.ZodLiteral<"segment">;
140
+ options: z.ZodObject<{
141
+ cdn: z.ZodOptional<z.ZodString>;
142
+ key: z.ZodString;
143
+ }, z.core.$catchall<z.ZodJSONSchema>>;
144
+ requiredSecrets: z.ZodArray<z.ZodString>;
145
+ runtimeDeps: z.ZodArray<z.ZodString>;
146
+ }, z.core.$strict>, z.ZodObject<{
147
+ kind: z.ZodLiteral<"vercel">;
148
+ options: z.ZodObject<{
149
+ debug: z.ZodOptional<z.ZodBoolean>;
150
+ mode: z.ZodOptional<z.ZodEnum<{
151
+ auto: "auto";
152
+ development: "development";
153
+ production: "production";
154
+ }>>;
155
+ }, z.core.$catchall<z.ZodJSONSchema>>;
156
+ requiredSecrets: z.ZodArray<z.ZodString>;
157
+ runtimeDeps: z.ZodArray<z.ZodString>;
158
+ }, z.core.$strict>], "kind">;
159
+ export type AnalyticsAdapter = z.output<typeof analyticsAdapterSchema>;
160
+ /**
161
+ * `blume.config.analytics`: the adapters to emit, in order. Unset means none.
162
+ * A non-array (the pre-adapter object form, say) fails with the list hint;
163
+ * element errors keep their own messages.
164
+ */
165
+ export declare const analyticsConfigSchema: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
166
+ kind: z.ZodLiteral<"adobe">;
167
+ options: z.ZodObject<{
168
+ url: z.ZodString;
169
+ }, z.core.$strict>;
170
+ requiredSecrets: z.ZodArray<z.ZodString>;
171
+ runtimeDeps: z.ZodArray<z.ZodString>;
172
+ }, z.core.$strict>, z.ZodObject<{
173
+ kind: z.ZodLiteral<"amplitude">;
174
+ options: z.ZodObject<{
175
+ key: z.ZodString;
176
+ }, z.core.$catchall<z.ZodJSONSchema>>;
177
+ requiredSecrets: z.ZodArray<z.ZodString>;
178
+ runtimeDeps: z.ZodArray<z.ZodString>;
179
+ }, z.core.$strict>, z.ZodObject<{
180
+ kind: z.ZodLiteral<"clarity">;
181
+ options: z.ZodObject<{
182
+ id: z.ZodString;
183
+ }, z.core.$strict>;
184
+ requiredSecrets: z.ZodArray<z.ZodString>;
185
+ runtimeDeps: z.ZodArray<z.ZodString>;
186
+ }, z.core.$strict>, z.ZodObject<{
187
+ kind: z.ZodLiteral<"clearbit">;
188
+ options: z.ZodObject<{
189
+ key: z.ZodString;
190
+ }, z.core.$strict>;
191
+ requiredSecrets: z.ZodArray<z.ZodString>;
192
+ runtimeDeps: z.ZodArray<z.ZodString>;
193
+ }, z.core.$strict>, z.ZodObject<{
194
+ kind: z.ZodLiteral<"cloudflare">;
195
+ options: z.ZodObject<{
196
+ token: z.ZodString;
197
+ }, z.core.$catchall<z.ZodJSONSchema>>;
198
+ requiredSecrets: z.ZodArray<z.ZodString>;
199
+ runtimeDeps: z.ZodArray<z.ZodString>;
200
+ }, z.core.$strict>, z.ZodObject<{
201
+ kind: z.ZodLiteral<"fathom">;
202
+ options: z.ZodObject<{
203
+ site: z.ZodString;
204
+ }, z.core.$catchall<z.ZodString>>;
205
+ requiredSecrets: z.ZodArray<z.ZodString>;
206
+ runtimeDeps: z.ZodArray<z.ZodString>;
207
+ }, z.core.$strict>, z.ZodObject<{
208
+ kind: z.ZodLiteral<"google-analytics">;
209
+ options: z.ZodObject<{
210
+ id: z.ZodString;
211
+ }, z.core.$catchall<z.ZodJSONSchema>>;
212
+ requiredSecrets: z.ZodArray<z.ZodString>;
213
+ runtimeDeps: z.ZodArray<z.ZodString>;
214
+ }, z.core.$strict>, z.ZodObject<{
215
+ kind: z.ZodLiteral<"google-tag-manager">;
216
+ options: z.ZodObject<{
217
+ dataLayer: z.ZodOptional<z.ZodString>;
218
+ id: z.ZodString;
219
+ }, z.core.$strict>;
220
+ requiredSecrets: z.ZodArray<z.ZodString>;
221
+ runtimeDeps: z.ZodArray<z.ZodString>;
222
+ }, z.core.$strict>, z.ZodObject<{
223
+ kind: z.ZodLiteral<"heap">;
224
+ options: z.ZodObject<{
225
+ id: z.ZodString;
226
+ }, z.core.$catchall<z.ZodJSONSchema>>;
227
+ requiredSecrets: z.ZodArray<z.ZodString>;
228
+ runtimeDeps: z.ZodArray<z.ZodString>;
229
+ }, z.core.$strict>, z.ZodObject<{
230
+ kind: z.ZodLiteral<"hightouch">;
231
+ options: z.ZodObject<{
232
+ host: z.ZodOptional<z.ZodString>;
233
+ key: z.ZodString;
234
+ }, z.core.$catchall<z.ZodJSONSchema>>;
235
+ requiredSecrets: z.ZodArray<z.ZodString>;
236
+ runtimeDeps: z.ZodArray<z.ZodString>;
237
+ }, z.core.$strict>, z.ZodObject<{
238
+ kind: z.ZodLiteral<"hotjar">;
239
+ options: z.ZodObject<{
240
+ id: z.ZodNumber;
241
+ version: z.ZodOptional<z.ZodNumber>;
242
+ }, z.core.$strict>;
243
+ requiredSecrets: z.ZodArray<z.ZodString>;
244
+ runtimeDeps: z.ZodArray<z.ZodString>;
245
+ }, z.core.$strict>, z.ZodObject<{
246
+ kind: z.ZodLiteral<"logrocket">;
247
+ options: z.ZodObject<{
248
+ id: z.ZodString;
249
+ }, z.core.$catchall<z.ZodJSONSchema>>;
250
+ requiredSecrets: z.ZodArray<z.ZodString>;
251
+ runtimeDeps: z.ZodArray<z.ZodString>;
252
+ }, z.core.$strict>, z.ZodObject<{
253
+ kind: z.ZodLiteral<"mixpanel">;
254
+ options: z.ZodObject<{
255
+ region: z.ZodOptional<z.ZodEnum<{
256
+ in: "in";
257
+ eu: "eu";
258
+ us: "us";
259
+ }>>;
260
+ token: z.ZodString;
261
+ }, z.core.$catchall<z.ZodJSONSchema>>;
262
+ requiredSecrets: z.ZodArray<z.ZodString>;
263
+ runtimeDeps: z.ZodArray<z.ZodString>;
264
+ }, z.core.$strict>, z.ZodObject<{
265
+ kind: z.ZodLiteral<"pirsch">;
266
+ options: z.ZodObject<{
267
+ code: z.ZodString;
268
+ }, z.core.$catchall<z.ZodString>>;
269
+ requiredSecrets: z.ZodArray<z.ZodString>;
270
+ runtimeDeps: z.ZodArray<z.ZodString>;
271
+ }, z.core.$strict>, z.ZodObject<{
272
+ kind: z.ZodLiteral<"plausible">;
273
+ options: z.ZodObject<{
274
+ domain: z.ZodString;
275
+ host: z.ZodOptional<z.ZodString>;
276
+ }, z.core.$catchall<z.ZodString>>;
277
+ requiredSecrets: z.ZodArray<z.ZodString>;
278
+ runtimeDeps: z.ZodArray<z.ZodString>;
279
+ }, z.core.$strict>, z.ZodObject<{
280
+ kind: z.ZodLiteral<"posthog">;
281
+ options: z.ZodObject<{
282
+ host: z.ZodOptional<z.ZodString>;
283
+ key: z.ZodString;
284
+ }, z.core.$catchall<z.ZodJSONSchema>>;
285
+ requiredSecrets: z.ZodArray<z.ZodString>;
286
+ runtimeDeps: z.ZodArray<z.ZodString>;
287
+ }, z.core.$strict>, z.ZodObject<{
288
+ kind: z.ZodLiteral<"script">;
289
+ options: z.ZodObject<{
290
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
291
+ content: z.ZodOptional<z.ZodString>;
292
+ src: z.ZodOptional<z.ZodString>;
293
+ strategy: z.ZodOptional<z.ZodEnum<{
294
+ defer: "defer";
295
+ async: "async";
296
+ }>>;
297
+ }, z.core.$strict>;
298
+ requiredSecrets: z.ZodArray<z.ZodString>;
299
+ runtimeDeps: z.ZodArray<z.ZodString>;
300
+ }, z.core.$strict>, z.ZodObject<{
301
+ kind: z.ZodLiteral<"segment">;
302
+ options: z.ZodObject<{
303
+ cdn: z.ZodOptional<z.ZodString>;
304
+ key: z.ZodString;
305
+ }, z.core.$catchall<z.ZodJSONSchema>>;
306
+ requiredSecrets: z.ZodArray<z.ZodString>;
307
+ runtimeDeps: z.ZodArray<z.ZodString>;
308
+ }, z.core.$strict>, z.ZodObject<{
309
+ kind: z.ZodLiteral<"vercel">;
310
+ options: z.ZodObject<{
311
+ debug: z.ZodOptional<z.ZodBoolean>;
312
+ mode: z.ZodOptional<z.ZodEnum<{
313
+ auto: "auto";
314
+ development: "development";
315
+ production: "production";
316
+ }>>;
317
+ }, z.core.$catchall<z.ZodJSONSchema>>;
318
+ requiredSecrets: z.ZodArray<z.ZodString>;
319
+ runtimeDeps: z.ZodArray<z.ZodString>;
320
+ }, z.core.$strict>], "kind">>>;
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** Options for {@link script}; set exactly one of `src` or `content`. */
5
+ export interface ScriptOptions {
6
+ /** Extra attributes spread onto the `<script>` (e.g. `data-domain`, `id`). */
7
+ attributes?: Record<string, string>;
8
+ /** Inline script body. Mutually exclusive with `src`. */
9
+ content?: string;
10
+ /** External script URL. Mutually exclusive with `content`. */
11
+ src?: string;
12
+ /** Load strategy for an external script. */
13
+ strategy?: "async" | "defer";
14
+ }
15
+ export declare const scriptOptionsSchema: z.ZodObject<{
16
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
17
+ content: z.ZodOptional<z.ZodString>;
18
+ src: z.ZodOptional<z.ZodString>;
19
+ strategy: z.ZodOptional<z.ZodEnum<{
20
+ defer: "defer";
21
+ async: "async";
22
+ }>>;
23
+ }, z.core.$strict>;
24
+ export type ScriptAdapter = AdapterDescriptor<"script", ScriptOptions>;
25
+ export declare const scriptAdapterSchema: z.ZodObject<{
26
+ kind: z.ZodLiteral<"script">;
27
+ options: z.ZodObject<{
28
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
29
+ content: z.ZodOptional<z.ZodString>;
30
+ src: z.ZodOptional<z.ZodString>;
31
+ strategy: z.ZodOptional<z.ZodEnum<{
32
+ defer: "defer";
33
+ async: "async";
34
+ }>>;
35
+ }, z.core.$strict>;
36
+ requiredSecrets: z.ZodArray<z.ZodString>;
37
+ runtimeDeps: z.ZodArray<z.ZodString>;
38
+ }, z.core.$strict>;
39
+ /**
40
+ * Any other provider (Plausible, Fathom, GA, Umami, …) as one `<script>` tag:
41
+ * external via `src`, inline via `content`. `attributes` is the verbatim
42
+ * passthrough here — every entry lands on the tag as-is.
43
+ */
44
+ export declare const script: (options: ScriptOptions) => ScriptAdapter;
45
+ /** The tag. Explicit `src`/`strategy` win over a same-named spread attribute. */
46
+ export declare const scriptHead: (options: ScriptOptions) => HeadScript[];
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ import type { HeadScript } from "./head.ts";
4
+ /** Segment's CDN, where `segment()` loads analytics.js from when `cdn` is unset. */
5
+ export declare const SEGMENT_DEFAULT_CDN = "https://cdn.segment.com";
6
+ /** The options {@link segment} maps itself. */
7
+ export interface SegmentNamedOptions {
8
+ /**
9
+ * Origin of a custom domain that proxies Segment's CDN, e.g.
10
+ * `https://cdn.example.com`. Defaults to Segment's own.
11
+ */
12
+ cdn?: string;
13
+ /** Write key of the JavaScript source. */
14
+ key: string;
15
+ }
16
+ /**
17
+ * Options for {@link segment}: the named options plus any other
18
+ * `analytics.load` option, forwarded verbatim (`integrations`, …). JSON
19
+ * values only.
20
+ */
21
+ export type SegmentOptions = SegmentNamedOptions & {
22
+ [option: string]: JsonValue;
23
+ };
24
+ export declare const segmentOptionsSchema: z.ZodObject<{
25
+ cdn: z.ZodOptional<z.ZodString>;
26
+ key: z.ZodString;
27
+ }, z.core.$catchall<z.ZodJSONSchema>>;
28
+ export type SegmentAdapter = AdapterDescriptor<"segment", SegmentOptions>;
29
+ export declare const segmentAdapterSchema: z.ZodObject<{
30
+ kind: z.ZodLiteral<"segment">;
31
+ options: z.ZodObject<{
32
+ cdn: z.ZodOptional<z.ZodString>;
33
+ key: z.ZodString;
34
+ }, z.core.$catchall<z.ZodJSONSchema>>;
35
+ requiredSecrets: z.ZodArray<z.ZodString>;
36
+ runtimeDeps: z.ZodArray<z.ZodString>;
37
+ }, z.core.$strict>;
38
+ /**
39
+ * Segment (Twilio Segment) analytics.js. The write key is meant for the
40
+ * browser — it identifies the source the SDK reports to.
41
+ */
42
+ export declare const segment: (options: SegmentOptions) => SegmentAdapter;
43
+ /**
44
+ * The install snippet, with `key` mapped to the write key, `cdn` mapped to
45
+ * the script origin (and `analytics._cdn`, so the library fetches its
46
+ * integrations from the same place), and everything else forwarded as the
47
+ * load options; the object is left off when there is nothing to pass, as the
48
+ * snippet prints it.
49
+ */
50
+ export declare const segmentHead: (options: SegmentOptions) => HeadScript[];
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
3
+ /** The props of `@vercel/analytics/astro` that {@link vercel} documents. */
4
+ export interface VercelNamedOptions {
5
+ /** Log every event to the console. Defaults to the component's own rule (on outside production). */
6
+ debug?: boolean;
7
+ /** Force the script's environment instead of letting it detect one. */
8
+ mode?: "auto" | "development" | "production";
9
+ }
10
+ /**
11
+ * Options for {@link vercel}: the documented props plus any other prop of the
12
+ * official component, forwarded verbatim (`endpoint`, `scriptSrc`, `dsn`, …).
13
+ * JSON values only; `beforeSend` is a function and can't travel through
14
+ * config — assign `window.webAnalyticsBeforeSend` from a `script()` adapter
15
+ * listed before `vercel()` instead.
16
+ */
17
+ export type VercelOptions = VercelNamedOptions & {
18
+ [option: string]: JsonValue;
19
+ };
20
+ export declare const vercelOptionsSchema: z.ZodObject<{
21
+ debug: z.ZodOptional<z.ZodBoolean>;
22
+ mode: z.ZodOptional<z.ZodEnum<{
23
+ auto: "auto";
24
+ development: "development";
25
+ production: "production";
26
+ }>>;
27
+ }, z.core.$catchall<z.ZodJSONSchema>>;
28
+ export type VercelAdapter = AdapterDescriptor<"vercel", VercelOptions>;
29
+ export declare const vercelAdapterSchema: z.ZodObject<{
30
+ kind: z.ZodLiteral<"vercel">;
31
+ options: z.ZodObject<{
32
+ debug: z.ZodOptional<z.ZodBoolean>;
33
+ mode: z.ZodOptional<z.ZodEnum<{
34
+ auto: "auto";
35
+ development: "development";
36
+ production: "production";
37
+ }>>;
38
+ }, z.core.$catchall<z.ZodJSONSchema>>;
39
+ requiredSecrets: z.ZodArray<z.ZodString>;
40
+ runtimeDeps: z.ZodArray<z.ZodString>;
41
+ }, z.core.$strict>;
42
+ /**
43
+ * Vercel Web Analytics, rendered through the official Astro component, which
44
+ * injects the first-party script Vercel serves at `/_vercel/insights` once Web
45
+ * Analytics is enabled for the project. Needs no keys. `@vercel/analytics` is
46
+ * one of Blume's own dependencies, so the adapter declares no runtime dep.
47
+ */
48
+ export declare const vercel: (options?: VercelOptions) => VercelAdapter;
@@ -0,0 +1,76 @@
1
+ import type { AstroIntegration } from "astro";
2
+ import type { CustomPageRoute } from "../core/custom-pages.ts";
3
+ import type { BlumeProject } from "../core/project-graph.ts";
4
+ import type { Diagnostic } from "../core/types.ts";
5
+ /**
6
+ * Hand the scanned project to the integration ahead of `build()`, so its
7
+ * `astro:build:done` hook can write the deploy artifacts without scanning
8
+ * again. `blume build` publishes it for a real build and nothing for an
9
+ * isolated verify build, which produces no artifacts. `null` withdraws it.
10
+ */
11
+ export declare const publishBuildProject: (project: BlumeProject | null) => void;
12
+ /**
13
+ * Publish the dev negotiation inputs for the running server: the content
14
+ * routes with a Markdown variant and the homepage `Link` header. Called by
15
+ * `generateRuntime` on every pass, so the middleware follows a route rename
16
+ * without the generated config changing. `null` withdraws a publication, so
17
+ * the middleware falls back to the options baked into the integration call
18
+ * (an ejected project has no CLI to publish).
19
+ */
20
+ export declare const publishDevNegotiation: (negotiation: {
21
+ contentRoutes: readonly string[];
22
+ homeLinkHeader?: string;
23
+ } | null) => void;
24
+ /**
25
+ * Re-run Astro's content-layer loaders against the live dev server. Returns
26
+ * `false` when no server has registered one — before the first
27
+ * `astro:server:setup`, or outside `blume dev` — so the caller can fall back.
28
+ * A route-set change (a page added, removed, or a folder renamed) is what
29
+ * needs this: Astro's glob watcher misses directory renames, and its in-place
30
+ * config restart never re-globs, so without a re-sync `getEntry` reads a
31
+ * stale store and the moved page 404s.
32
+ */
33
+ export declare const refreshBlumeContent: () => Promise<boolean>;
34
+ /**
35
+ * Surface Blume's own diagnostics (config/frontmatter/content errors) in the
36
+ * Vite/Astro browser error overlay during `blume dev`, so they don't hide in the
37
+ * terminal. A no-op when there are no errors or the dev server isn't up. The
38
+ * overlay clears itself on the next successful HMR update.
39
+ */
40
+ export declare const showBlumeErrorOverlay: (diagnostics: Diagnostic[]) => void;
41
+ /** A user page mounted into the generated runtime. */
42
+ export type BlumePageRoute = CustomPageRoute;
43
+ export interface BlumeIntegrationOptions {
44
+ pages: BlumePageRoute[];
45
+ /**
46
+ * Page routes that have a raw-Markdown variant (the content manifest). The
47
+ * hidden runtime leaves this out: the CLI publishes the live set through
48
+ * `publishDevNegotiation` on every regeneration, so a route change never
49
+ * rewrites the generated config. An ejected project, which has no CLI,
50
+ * bakes it in here.
51
+ */
52
+ contentRoutes?: string[];
53
+ /**
54
+ * Homepage `Link` header value for agent discovery (see
55
+ * `ai/link-headers.ts`); the dev-server counterpart of the `_headers` /
56
+ * Vercel-config emission, so `curl -I` against `blume dev` shows what the
57
+ * deployed site will send. Published the same way as `contentRoutes`.
58
+ */
59
+ homeLinkHeader?: string;
60
+ /**
61
+ * Blume project root to scan on `astro:build:done` for the deploy artifacts
62
+ * (search index, llms.txt, sitemap, …) when no CLI has published the
63
+ * project — an ejected app running plain `astro build`. Relative to the
64
+ * Astro root. The hidden runtime leaves it unset: `blume build` publishes
65
+ * its already-scanned project instead.
66
+ */
67
+ buildArtifactsRoot?: string;
68
+ }
69
+ /**
70
+ * Blume's Astro integration. Mounts user-authored pages from `pages/` into the
71
+ * generated runtime via `injectRoute`, keeping each file in its original
72
+ * location so relative imports and `getStaticPaths` keep working; declares
73
+ * the `blume:*` virtual modules' types through `injectTypes`; and teaches the
74
+ * dev server to honor `Accept: text/markdown`.
75
+ */
76
+ export declare const blumeIntegration: (options: BlumeIntegrationOptions) => AstroIntegration;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * HTTP content negotiation for the raw-Markdown variants. The `<route>.md`
3
+ * endpoints already serve a page's source verbatim; these helpers let the dev
4
+ * server honor `Accept: text/markdown` by transparently rewriting a page
5
+ * request to its `.md` variant.
6
+ *
7
+ * The Cloudflare negotiation Worker embeds a plain-JavaScript copy of these
8
+ * helpers (`deploy/cloudflare-negotiation.ts` — its deploy bundle is uploaded
9
+ * unbundled, so it cannot import this module); when editing here, mirror the
10
+ * change there. Parity is enforced by `test/cloudflare-negotiation.test.ts`.
11
+ */
12
+ /**
13
+ * Whether the client explicitly prefers Markdown over HTML. Browsers never send
14
+ * `text/markdown`, so an ordinary page request (`text/html` or the catch-all wildcard) is false.
15
+ */
16
+ export declare const prefersMarkdown: (accept: string | null | undefined) => boolean;
17
+ /**
18
+ * Map a page request URL to its `.md` variant, or `null` when the requested
19
+ * path is not a known content route (Vite/Astro internals, assets, API routes,
20
+ * landing pages, and user `.astro` pages all fall through). `routes` is the set
21
+ * of page paths that have a raw-Markdown variant.
22
+ */
23
+ export declare const markdownVariantUrl: (rawUrl: string | null | undefined, routes: ReadonlySet<string>, base?: string) => string | null;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Ambient declarations for the `blume:*` virtual modules the generated pages
3
+ * and Blume's own layouts import. The integration hands them to Astro through
4
+ * `injectTypes` on `astro:config:done`, so they land under
5
+ * `.astro/integrations/blume/` and are referenced from Astro's generated
6
+ * `types.d.ts` — the same channel `astro:content` and `astro:env` use — rather
7
+ * than a hand-written `src/env.d.ts` the generator and eject each had to
8
+ * write. Every project that mounts the integration gets the types with it.
9
+ *
10
+ * `examplesModule` is the path of the generated `examples.ts` relative to the
11
+ * declaration file: the `blume:examples` map is typed from that module's
12
+ * literal export so `<Component path>` lookups stay typed per project.
13
+ */
14
+ export declare const runtimeModuleDeclarations: (examplesModule: string) => string;
@@ -0,0 +1,44 @@
1
+ import type { BlumeProject } from "../core/project-graph.ts";
2
+ import type { BlumePageRoute } from "./integration.ts";
3
+ export { customStaticRoutes, discoverPages, discoverPagesSync, } from "../core/custom-pages.ts";
4
+ /**
5
+ * Whether the project already owns `route` — through a custom `.astro` page
6
+ * (injected, so matched on `pattern`) or a content page (matched on `route`).
7
+ * Used to skip a generated default page (e.g. `/404`, `/changelog`) so a
8
+ * user-authored page overrides it without a route collision.
9
+ */
10
+ export declare const routeIsTaken: (pages: {
11
+ pattern: string;
12
+ }[], contentPages: {
13
+ route: string;
14
+ }[], route: string) => boolean;
15
+ /** A custom-page route that should get a generated OG card. */
16
+ export interface OgCustomRoute {
17
+ /** `og/<slug>.png` path segment; `index` for the site root. */
18
+ slug: string;
19
+ /** Card headline. */
20
+ title: string;
21
+ }
22
+ /**
23
+ * Whether the generated `/changelog` index route exists for this project —
24
+ * `generate.ts` (which writes the page) and the sitemap/link validator all
25
+ * share this check: there are visible `type: changelog` entries — or a
26
+ * release-backed changelog source, whose route must resolve even when a fetch
27
+ * fails — and no user content or custom page already owns `/changelog`.
28
+ */
29
+ export declare const hasGeneratedChangelog: (project: BlumeProject, userPages: {
30
+ pattern: string;
31
+ }[]) => boolean;
32
+ /**
33
+ * Pick the custom-page routes that should get a generated Open Graph card, with
34
+ * the card's slug and text. OG is otherwise content-route only, so a custom page
35
+ * — most importantly the landing `/`, the most-shared URL — would have no card.
36
+ *
37
+ * Dynamic (`[param]`) routes and private segments (`_partials`, `.well-known`)
38
+ * are skipped: they aren't shareable pages. A `titles` entry (`seo.og.titles`,
39
+ * keyed by route) names a card outright — the only way to say "CLI" when the
40
+ * segment humanizes to "Cli". Otherwise the home is titled with the site title
41
+ * and a deeper page from its last path segment. The card's brand lockup,
42
+ * description, and footer come from the resolved config at render time.
43
+ */
44
+ export declare const customOgRoutes: (pages: BlumePageRoute[], siteTitle: string, titles?: Record<string, string>) => OgCustomRoute[];
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Load `.env`/`.env.local`, cascading from `startDir` up to the repository root
3
+ * (the first ancestor containing a `.git`) or the filesystem root. The ordered
4
+ * path list is handed to dotenv, whose `config` is first-wins, never clobbers
5
+ * existing `process.env` values, and treats unreadable files as best-effort —
6
+ * so shell/CI overrides are never lost, `.env.local` layers over `.env`, and a
7
+ * bad file never aborts a build. dotenv is also the parser Vite runs over
8
+ * these files at build time, so a value means the same thing to the pre-boot
9
+ * content scan and the built site — including multi-line double-quoted values
10
+ * (PEM keys), which a line-based parser silently truncates.
11
+ */
12
+ export declare const loadEnvFiles: (startDir: string) => void;