blume 1.7.2 → 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 (677) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +227 -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-xhtpx3ff.js → chunk-1w8dp3qb.js} +17 -16
  7. package/dist/cli/{chunk-xhtpx3ff.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-9he6crym.js → chunk-6k8vp3ta.js} +25 -13
  15. package/dist/cli/{chunk-9he6crym.js.map → chunk-6k8vp3ta.js.map} +4 -4
  16. package/dist/cli/{chunk-mt76t7dj.js → chunk-79njf86q.js} +133 -54
  17. package/dist/cli/chunk-79njf86q.js.map +11 -0
  18. package/dist/cli/{chunk-3w7b2vcx.js → chunk-7ez8ny0t.js} +2 -2
  19. package/dist/cli/{chunk-688e0dde.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-hs3gbh8p.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-9bkjd11x.js → chunk-bw22s759.js} +15 -5
  33. package/dist/cli/{chunk-9bkjd11x.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-t3tj0dgr.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-exeeb35e.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-12dxjqk7.js → chunk-fh5hj5jt.js} +44 -21
  48. package/dist/cli/chunk-fh5hj5jt.js.map +10 -0
  49. package/dist/cli/{chunk-8cd8tj54.js → chunk-j8mw0za6.js} +86 -57
  50. package/dist/cli/chunk-j8mw0za6.js.map +35 -0
  51. package/dist/cli/chunk-jts8mvcz.js +106 -0
  52. package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
  53. package/dist/cli/{chunk-ejjx8znq.js → chunk-mnqj32sj.js} +505 -536
  54. package/dist/cli/chunk-mnqj32sj.js.map +12 -0
  55. package/dist/cli/{chunk-196vjxp9.js → chunk-mwt1k8n7.js} +100 -372
  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-n9sra6sy.js → chunk-pat2zzwc.js} +10 -14
  60. package/dist/cli/{chunk-n9sra6sy.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-cvky9gb2.js → chunk-sqn5t4q0.js} +81 -87
  64. package/dist/cli/chunk-sqn5t4q0.js.map +10 -0
  65. package/dist/cli/{chunk-eevwt1sc.js → chunk-tzne8qfq.js} +15 -15
  66. package/dist/cli/{chunk-eevwt1sc.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-5n7t497w.js → chunk-z1f5arsg.js} +247 -755
  74. package/dist/cli/chunk-z1f5arsg.js.map +36 -0
  75. package/dist/cli/{chunk-hdm2dkd2.js → chunk-zg2gtj10.js} +1086 -2596
  76. package/dist/cli/chunk-zg2gtj10.js.map +35 -0
  77. package/dist/cli/{chunk-ppfvdcd4.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 +209 -505
  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 +28 -11
  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 +2291 -441
  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 +20 -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 +176 -61
  290. package/docs/configuration/customization.mdx +15 -9
  291. package/docs/configuration/index.mdx +52 -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 +37 -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 +12 -7
  303. package/docs/content/sources.mdx +145 -50
  304. package/docs/content/syntax.mdx +26 -12
  305. package/docs/content/versioning.mdx +3 -3
  306. package/docs/discoverability/agent-discovery.mdx +91 -10
  307. package/docs/discoverability/index.mdx +5 -5
  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 +26 -22
  329. package/src/ai/ai-catalog.ts +259 -0
  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 +19 -6
  338. package/src/ai/llms.ts +26 -15
  339. package/src/ai/markdown.ts +35 -5
  340. package/src/ai/mcp/data.ts +9 -5
  341. package/src/ai/mcp/discovery.ts +1 -1
  342. package/src/ai/openapi-components.ts +4 -1
  343. package/src/ai/relative-links.ts +170 -0
  344. package/src/ai/serializers.ts +2 -2
  345. package/src/ai/skills.ts +1 -1
  346. package/src/ai/web-bot-auth.ts +2 -2
  347. package/src/analytics/adobe.ts +46 -0
  348. package/src/analytics/amplitude.ts +79 -0
  349. package/src/analytics/clarity.ts +46 -0
  350. package/src/analytics/clearbit.ts +47 -0
  351. package/src/analytics/cloudflare.ts +67 -0
  352. package/src/analytics/fathom.ts +64 -0
  353. package/src/analytics/google-analytics.ts +84 -0
  354. package/src/analytics/google-tag-manager.ts +61 -0
  355. package/src/analytics/head.ts +130 -0
  356. package/src/analytics/heap.ts +65 -0
  357. package/src/analytics/hightouch.ts +77 -0
  358. package/src/analytics/hotjar.ts +47 -0
  359. package/src/analytics/index.ts +71 -0
  360. package/src/analytics/inline.ts +21 -0
  361. package/src/analytics/logrocket.ts +71 -0
  362. package/src/analytics/mixpanel.ts +92 -0
  363. package/src/analytics/pirsch.ts +66 -0
  364. package/src/analytics/plausible.ts +83 -0
  365. package/src/analytics/posthog.ts +78 -0
  366. package/src/analytics/schema.ts +60 -0
  367. package/src/analytics/script.ts +60 -0
  368. package/src/analytics/segment.ts +85 -0
  369. package/src/analytics/vercel.ts +50 -0
  370. package/src/astro/adapter-root.ts +7 -9
  371. package/src/astro/component-slots.ts +131 -91
  372. package/src/astro/generate.ts +114 -345
  373. package/src/astro/integration.ts +2 -6
  374. package/src/astro/pages.ts +13 -101
  375. package/src/astro/render-deps.ts +379 -0
  376. package/src/astro/runtime-deps.ts +201 -0
  377. package/src/astro/templates.ts +554 -541
  378. package/src/audit/agent.ts +24 -0
  379. package/src/audit/catalog.ts +2 -2
  380. package/src/audit/checks/assets.ts +2 -2
  381. package/src/audit/checks/dns-aid.ts +1 -1
  382. package/src/audit/checks/duplicates.ts +3 -1
  383. package/src/audit/checks/i18n.ts +1 -1
  384. package/src/audit/checks/indexability.ts +7 -7
  385. package/src/audit/checks/links.ts +2 -2
  386. package/src/audit/checks/llms.ts +6 -6
  387. package/src/audit/checks/network.ts +3 -3
  388. package/src/audit/checks/og-image.ts +2 -2
  389. package/src/audit/checks/robots.ts +1 -1
  390. package/src/audit/checks/sitemap.ts +2 -2
  391. package/src/audit/checks/social.ts +1 -1
  392. package/src/audit/run.ts +4 -3
  393. package/src/audit/terms.ts +31 -0
  394. package/src/audit/url.ts +13 -13
  395. package/src/cli/command-meta.ts +10 -0
  396. package/src/cli/commands/audit.ts +39 -20
  397. package/src/cli/commands/build.ts +71 -314
  398. package/src/cli/commands/check.ts +1 -0
  399. package/src/cli/commands/dev.ts +40 -1
  400. package/src/cli/commands/doctor.ts +90 -14
  401. package/src/cli/commands/eject.ts +44 -7
  402. package/src/cli/commands/eval.ts +2 -2
  403. package/src/cli/commands/init.ts +161 -41
  404. package/src/cli/commands/migrate.ts +121 -0
  405. package/src/cli/commands/preview.ts +7 -1
  406. package/src/cli/commands/translate.ts +2 -2
  407. package/src/cli/commands/upgrade.ts +141 -0
  408. package/src/cli/commands/version.ts +57 -44
  409. package/src/cli/eject-scripts.ts +121 -6
  410. package/src/cli/index.ts +11 -1
  411. package/src/cli/init/install.ts +70 -0
  412. package/src/cli/init/questions.ts +7 -0
  413. package/src/cli/init/scaffold.ts +459 -75
  414. package/src/cli/lazy-command.ts +37 -1
  415. package/src/cli/prepare.ts +40 -6
  416. package/src/cli/required-secrets.ts +38 -11
  417. package/src/cli/unknown-flags.ts +266 -0
  418. package/src/cli/yarn-pnp.ts +52 -0
  419. package/src/components/content/AccordionItem.astro +7 -1
  420. package/src/components/content/Card.astro +4 -3
  421. package/src/components/content/ColorItem.astro +22 -4
  422. package/src/components/content/GithubInfo.astro +2 -2
  423. package/src/components/content/Prompt.astro +25 -25
  424. package/src/components/content/Tabs.astro +3 -1
  425. package/src/components/content/Tile.astro +2 -3
  426. package/src/components/content/Tooltip.astro +57 -9
  427. package/src/components/content/content-strings.ts +34 -0
  428. package/src/components/content/diff.ts +1 -1
  429. package/src/components/content/mermaid-element.ts +13 -2
  430. package/src/components/content/prompt-markdown.ts +292 -0
  431. package/src/components/content/tooltip-id.ts +41 -0
  432. package/src/components/islands/hooks.ts +75 -3
  433. package/src/components/layout/Analytics.astro +21 -79
  434. package/src/components/layout/Banner.astro +3 -1
  435. package/src/components/layout/DiscoveryLinks.astro +69 -0
  436. package/src/components/layout/Header.astro +83 -20
  437. package/src/components/layout/LanguageSwitcher.astro +4 -1
  438. package/src/components/layout/Logo.astro +23 -2
  439. package/src/components/layout/NavSelector.astro +13 -2
  440. package/src/components/layout/NavTree.astro +12 -3
  441. package/src/components/layout/NavTreeScript.astro +17 -3
  442. package/src/components/layout/PageActions.astro +3 -3
  443. package/src/components/layout/PageFeedback.astro +11 -1
  444. package/src/components/layout/PageLayout.astro +52 -5
  445. package/src/components/layout/ReferenceLayout.astro +21 -12
  446. package/src/components/layout/RootLayout.astro +69 -43
  447. package/src/components/layout/Search.astro +30 -6
  448. package/src/components/layout/WebMcp.astro +1 -1
  449. package/src/components/layout/analytics-client.ts +101 -15
  450. package/src/components/layout/drawer-inert.ts +113 -15
  451. package/src/components/layout/dropdown-clamp.ts +105 -0
  452. package/src/components/layout/head-scripts.ts +15 -6
  453. package/src/components/layout/nav-utils.ts +17 -0
  454. package/src/components/layout/search/algolia.ts +8 -8
  455. package/src/components/layout/search/orama-cloud.ts +9 -7
  456. package/src/components/layout/search/typesense.ts +11 -17
  457. package/src/components/openapi/MessageComposer.astro +2 -2
  458. package/src/components/openapi/Playground.astro +2 -2
  459. package/src/components/openapi/playground-client.ts +79 -10
  460. package/src/core/changelog-index.ts +24 -0
  461. package/src/core/component-overrides.ts +399 -154
  462. package/src/core/config-input.ts +212 -543
  463. package/src/core/config.ts +130 -41
  464. package/src/core/custom-pages.ts +105 -0
  465. package/src/core/data.ts +32 -11
  466. package/src/core/define-components.ts +12 -9
  467. package/src/core/deployment-env.ts +18 -74
  468. package/src/core/diagnostics.ts +14 -7
  469. package/src/core/graph.ts +69 -25
  470. package/src/core/i18n-ui.ts +6 -2
  471. package/src/core/i18n.ts +17 -0
  472. package/src/core/includes.ts +156 -38
  473. package/src/core/last-modified.ts +6 -11
  474. package/src/core/links.ts +166 -2
  475. package/src/core/manifest.ts +10 -3
  476. package/src/core/navigation.ts +137 -19
  477. package/src/core/new-tab.ts +35 -0
  478. package/src/core/node-require.ts +21 -0
  479. package/src/core/project-graph.ts +42 -26
  480. package/src/core/project.ts +9 -4
  481. package/src/core/request-body.ts +61 -0
  482. package/src/core/safe-href.ts +28 -0
  483. package/src/core/safe-links.ts +68 -0
  484. package/src/core/schema.ts +531 -721
  485. package/src/core/server-features.ts +8 -9
  486. package/src/core/sources/assets.ts +47 -11
  487. package/src/core/sources/collection.ts +67 -0
  488. package/src/core/sources/contentful-rich-text.ts +285 -0
  489. package/src/core/sources/contentful.ts +173 -0
  490. package/src/core/sources/github-releases.ts +51 -1
  491. package/src/core/sources/json.ts +71 -0
  492. package/src/core/sources/lexical.ts +195 -0
  493. package/src/core/sources/lower.ts +226 -0
  494. package/src/core/sources/normalize.ts +52 -2
  495. package/src/core/sources/notion.ts +39 -28
  496. package/src/core/sources/payload.ts +135 -0
  497. package/src/core/sources/portable-text.ts +11 -16
  498. package/src/core/sources/remote.ts +226 -0
  499. package/src/core/sources/resolve.ts +104 -166
  500. package/src/core/sources/sanity.ts +16 -49
  501. package/src/core/sources/strapi-blocks.ts +124 -0
  502. package/src/core/sources/strapi.ts +191 -0
  503. package/src/core/sources/types.ts +12 -1
  504. package/src/core/types.ts +20 -1
  505. package/src/core/ui-packs/ar.ts +6 -2
  506. package/src/core/ui-packs/bg.ts +6 -2
  507. package/src/core/ui-packs/bn.ts +6 -2
  508. package/src/core/ui-packs/ca.ts +3 -1
  509. package/src/core/ui-packs/cs.ts +6 -2
  510. package/src/core/ui-packs/da.ts +6 -2
  511. package/src/core/ui-packs/de.ts +6 -2
  512. package/src/core/ui-packs/el.ts +3 -1
  513. package/src/core/ui-packs/es.ts +3 -1
  514. package/src/core/ui-packs/fa.ts +6 -2
  515. package/src/core/ui-packs/fi.ts +6 -2
  516. package/src/core/ui-packs/fr.ts +3 -1
  517. package/src/core/ui-packs/he.ts +6 -2
  518. package/src/core/ui-packs/hi.ts +6 -2
  519. package/src/core/ui-packs/hr.ts +6 -2
  520. package/src/core/ui-packs/hu.ts +6 -2
  521. package/src/core/ui-packs/id.ts +6 -2
  522. package/src/core/ui-packs/it.ts +3 -1
  523. package/src/core/ui-packs/ja.ts +3 -1
  524. package/src/core/ui-packs/ko.ts +3 -1
  525. package/src/core/ui-packs/nl.ts +6 -2
  526. package/src/core/ui-packs/no.ts +6 -2
  527. package/src/core/ui-packs/pl.ts +6 -2
  528. package/src/core/ui-packs/pt-br.ts +3 -1
  529. package/src/core/ui-packs/pt.ts +3 -1
  530. package/src/core/ui-packs/ro.ts +6 -2
  531. package/src/core/ui-packs/ru.ts +6 -2
  532. package/src/core/ui-packs/sk.ts +6 -2
  533. package/src/core/ui-packs/sr.ts +6 -2
  534. package/src/core/ui-packs/sv.ts +6 -2
  535. package/src/core/ui-packs/th.ts +3 -1
  536. package/src/core/ui-packs/tr.ts +6 -2
  537. package/src/core/ui-packs/uk.ts +6 -2
  538. package/src/core/ui-packs/vi.ts +3 -1
  539. package/src/core/ui-packs/zh-tw.ts +3 -1
  540. package/src/core/ui-packs/zh.ts +3 -1
  541. package/src/core/unrecognized-keys.ts +10 -0
  542. package/src/core/version-cut.ts +116 -8
  543. package/src/deploy/adapter-output.ts +57 -97
  544. package/src/deploy/adapters/cloudflare.ts +39 -0
  545. package/src/deploy/adapters/index.ts +41 -0
  546. package/src/deploy/adapters/netlify.ts +34 -0
  547. package/src/deploy/adapters/node.ts +34 -0
  548. package/src/deploy/adapters/registry.ts +127 -0
  549. package/src/deploy/adapters/types.ts +92 -0
  550. package/src/deploy/adapters/vercel.ts +35 -0
  551. package/src/deploy/artifacts.ts +67 -28
  552. package/src/deploy/cloudflare-negotiation.ts +179 -100
  553. package/src/deploy/function-bundle.ts +18 -3
  554. package/src/deploy/headers.ts +129 -22
  555. package/src/deploy/node-headers.ts +198 -0
  556. package/src/deploy/platforms/cloudflare.ts +312 -0
  557. package/src/deploy/platforms/index.ts +67 -0
  558. package/src/deploy/platforms/netlify.ts +52 -0
  559. package/src/deploy/platforms/node.ts +40 -0
  560. package/src/deploy/platforms/paths.ts +42 -0
  561. package/src/deploy/platforms/static.ts +29 -0
  562. package/src/deploy/platforms/types.ts +112 -0
  563. package/src/deploy/platforms/vercel.ts +193 -0
  564. package/src/deploy/redirects.ts +30 -18
  565. package/src/deploy/robots.ts +3 -3
  566. package/src/deploy/rss.ts +2 -2
  567. package/src/deploy/sitemap.ts +2 -2
  568. package/src/deploy/vercel-negotiation.ts +27 -4
  569. package/src/eval/agents.ts +32 -1
  570. package/src/eval/findings.ts +19 -11
  571. package/src/eval/report.ts +10 -2
  572. package/src/markdown/external-links.ts +65 -0
  573. package/src/markdown/include.ts +45 -27
  574. package/src/markdown/index.ts +34 -9
  575. package/src/markdown/inline-code.ts +12 -6
  576. package/src/markdown/relative-links.ts +324 -0
  577. package/src/markdown/themes.ts +3 -3
  578. package/src/migrate/migrate.ts +149 -0
  579. package/src/openapi/parse.ts +64 -16
  580. package/src/openapi/proxy.ts +62 -10
  581. package/src/openapi/references.ts +147 -147
  582. package/src/openapi/render-mdx.ts +32 -10
  583. package/src/openapi/scalar.ts +15 -13
  584. package/src/openapi/sentence.ts +14 -0
  585. package/src/openapi/source.ts +37 -21
  586. package/src/openapi/spec-dependency-error.ts +15 -0
  587. package/src/reference/asyncapi.ts +83 -0
  588. package/src/reference/graphql.ts +89 -0
  589. package/src/reference/index.ts +40 -0
  590. package/src/reference/openapi.ts +83 -0
  591. package/src/reference/options.ts +201 -0
  592. package/src/reference/scalar.ts +136 -0
  593. package/src/reference/schema.ts +88 -0
  594. package/src/registry/eject.ts +97 -42
  595. package/src/search/adapters/algolia.ts +46 -0
  596. package/src/search/adapters/flexsearch.ts +29 -0
  597. package/src/search/adapters/index.ts +39 -0
  598. package/src/search/adapters/mixedbread.ts +39 -0
  599. package/src/search/adapters/orama-cloud.ts +51 -0
  600. package/src/search/adapters/orama.ts +24 -0
  601. package/src/search/adapters/pagefind.ts +27 -0
  602. package/src/search/adapters/registry.ts +131 -0
  603. package/src/search/adapters/types.ts +46 -0
  604. package/src/search/adapters/typesense.ts +57 -0
  605. package/src/search/build.ts +33 -7
  606. package/src/search/documents.ts +6 -0
  607. package/src/search/sync/algolia.ts +12 -11
  608. package/src/search/sync/index.ts +35 -20
  609. package/src/search/sync/orama-cloud.ts +12 -9
  610. package/src/search/sync/typesense.ts +15 -13
  611. package/src/sources/contentful.ts +63 -0
  612. package/src/sources/custom.ts +38 -0
  613. package/src/sources/filesystem.ts +51 -0
  614. package/src/sources/github-releases.ts +52 -0
  615. package/src/sources/index.ts +60 -0
  616. package/src/sources/mdx-remote.ts +76 -0
  617. package/src/sources/notion.ts +63 -0
  618. package/src/sources/obsidian.ts +38 -0
  619. package/src/sources/payload.ts +60 -0
  620. package/src/sources/registry.ts +182 -0
  621. package/src/sources/sanity.ts +66 -0
  622. package/src/sources/shared.ts +52 -0
  623. package/src/sources/strapi.ts +58 -0
  624. package/src/theme/entry.ts +47 -2
  625. package/src/translate/report.ts +40 -7
  626. package/src/upgrade/upgrade.ts +499 -0
  627. package/dist/cli/chunk-12dxjqk7.js.map +0 -10
  628. package/dist/cli/chunk-196vjxp9.js.map +0 -13
  629. package/dist/cli/chunk-2mzebbbz.js +0 -69
  630. package/dist/cli/chunk-2z47ypj8.js.map +0 -11
  631. package/dist/cli/chunk-30e87n55.js +0 -108
  632. package/dist/cli/chunk-30e87n55.js.map +0 -10
  633. package/dist/cli/chunk-450a7rcr.js +0 -185
  634. package/dist/cli/chunk-450a7rcr.js.map +0 -11
  635. package/dist/cli/chunk-5n7t497w.js.map +0 -40
  636. package/dist/cli/chunk-61j18dwk.js +0 -5342
  637. package/dist/cli/chunk-61j18dwk.js.map +0 -58
  638. package/dist/cli/chunk-88by27n5.js +0 -17
  639. package/dist/cli/chunk-88by27n5.js.map +0 -10
  640. package/dist/cli/chunk-8cd8tj54.js.map +0 -34
  641. package/dist/cli/chunk-aztttvb3.js +0 -381
  642. package/dist/cli/chunk-aztttvb3.js.map +0 -12
  643. package/dist/cli/chunk-cvky9gb2.js.map +0 -11
  644. package/dist/cli/chunk-ejjx8znq.js.map +0 -15
  645. package/dist/cli/chunk-fmceyezb.js +0 -1007
  646. package/dist/cli/chunk-fmceyezb.js.map +0 -13
  647. package/dist/cli/chunk-hdm2dkd2.js.map +0 -48
  648. package/dist/cli/chunk-hs3gbh8p.js.map +0 -10
  649. package/dist/cli/chunk-jbj4qhfw.js +0 -30
  650. package/dist/cli/chunk-jbj4qhfw.js.map +0 -10
  651. package/dist/cli/chunk-mqb2ka8m.js +0 -68
  652. package/dist/cli/chunk-mqb2ka8m.js.map +0 -10
  653. package/dist/cli/chunk-mt76t7dj.js.map +0 -11
  654. package/dist/cli/chunk-q4rae3bg.js +0 -60
  655. package/dist/cli/chunk-q4rae3bg.js.map +0 -10
  656. package/dist/cli/chunk-ra1v2nc2.js +0 -35
  657. package/dist/cli/chunk-ra1v2nc2.js.map +0 -10
  658. package/dist/cli/chunk-t3tj0dgr.js.map +0 -15
  659. package/dist/cli/chunk-tqa1s0k8.js +0 -69
  660. package/dist/cli/chunk-tqa1s0k8.js.map +0 -11
  661. package/dist/cli/chunk-vh9w1sgp.js +0 -73
  662. package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
  663. package/dist/cli/chunk-vkrsvbr5.js +0 -107
  664. package/dist/cli/chunk-vkrsvbr5.js.map +0 -11
  665. package/dist/cli/chunk-vrfp10qk.js +0 -81
  666. package/dist/cli/chunk-vrfp10qk.js.map +0 -10
  667. package/dist/cli/chunk-wjt80jps.js +0 -1049
  668. package/dist/cli/chunk-wjt80jps.js.map +0 -24
  669. package/docs/advanced/api-reference.mdx +0 -240
  670. package/docs/reference/cli.mdx +0 -197
  671. package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
  672. package/src/components/content/changelog-element.ts +0 -69
  673. package/src/search/providers.ts +0 -91
  674. /package/dist/cli/{chunk-3w7b2vcx.js.map → chunk-7ez8ny0t.js.map} +0 -0
  675. /package/dist/cli/{chunk-688e0dde.js.map → chunk-88cpgt6h.js.map} +0 -0
  676. /package/dist/cli/{chunk-exeeb35e.js.map → chunk-f7t03s3g.js.map} +0 -0
  677. /package/dist/cli/{chunk-ppfvdcd4.js.map → chunk-zxccj738.js.map} +0 -0
@@ -1,48 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ hasScalarReferences,
4
+ buildMcpDiscovery,
5
+ buildMcpServerCard,
6
+ sourcesOfKind,
7
+ resolveDocsCollection,
8
+ discoverPages,
9
+ routeIsTaken,
10
+ customOgRoutes,
11
+ resolveAskBackend,
12
+ buildIncludeGraph,
3
13
  buildRssFeeds,
4
14
  renderRssFeed,
5
- buildRawMarkdown,
6
- buildSearchDocuments,
7
- buildMcpData
8
- } from "./chunk-wjt80jps.js";
9
- import {
10
- buildIncludeGraph,
11
15
  isOpenApiSource,
12
- scanProject
13
- } from "./chunk-hdm2dkd2.js";
16
+ buildRawMarkdown
17
+ } from "./chunk-xaz13gwg.js";
14
18
  import {
15
- packageRoot,
16
- getBlumeVersion
19
+ packageRoot
17
20
  } from "./index.js";
18
21
  import {
19
- hasScalarReferences
20
- } from "./chunk-61j18dwk.js";
22
+ buildSearchDocuments,
23
+ buildMcpData
24
+ } from "./chunk-a9kptbw5.js";
21
25
  import {
22
- buildAskData,
23
- buildMcpDiscovery,
24
- buildMcpServerCard,
25
- buildThemeCss,
26
- buildReferenceFiles,
27
- tailwindEntryTemplate,
28
- examplesEntryTemplate,
29
- rebaseSourceDirectives,
30
- twoslashCss,
31
26
  planComponentSlots,
32
- discoverIslands,
33
- EXAMPLE_SCAN_GLOB,
34
- exampleScanRoots,
35
- discoverExamples,
36
- exampleMarkdownLookup,
37
- detectNeedsReact,
38
- detectUsesMath,
39
- collectStaged,
40
- buildRuntimeData,
41
- languageIconCssFor,
42
- clientFeaturesFor
43
- } from "./chunk-5n7t497w.js";
44
- import {
45
- resolveAskBackend,
27
+ runtimeDependencies,
46
28
  astroConfigTemplate,
47
29
  contentConfigTemplate,
48
30
  askEndpointTemplate,
@@ -60,22 +42,38 @@ import {
60
42
  catchAllPageTemplate,
61
43
  changelogIndexTemplate,
62
44
  notFoundPageTemplate,
63
- islandWrapperTemplate,
64
- islandMapTemplate,
65
45
  exampleSlug,
66
46
  exampleWrapperTemplate,
67
47
  exampleMapTemplate,
68
48
  examplesPageTemplate,
69
49
  runtimeTsconfigTemplate
70
- } from "./chunk-ejjx8znq.js";
50
+ } from "./chunk-mnqj32sj.js";
71
51
  import {
72
- discoverPages,
73
- routeIsTaken,
74
- customOgRoutes
75
- } from "./chunk-vrfp10qk.js";
52
+ discoverIslands
53
+ } from "./chunk-bnbmcwfb.js";
76
54
  import {
77
- servesStaticIndex
78
- } from "./chunk-q4rae3bg.js";
55
+ buildAskData,
56
+ buildThemeCss,
57
+ buildReferenceFiles,
58
+ tailwindEntryTemplate,
59
+ examplesEntryTemplate,
60
+ rebaseSourceDirectives,
61
+ twoslashCss,
62
+ EXAMPLE_SCAN_GLOB,
63
+ exampleScanRoots,
64
+ discoverExamples,
65
+ exampleMarkdownLookup,
66
+ detectNeedsReact,
67
+ detectUsesMath,
68
+ collectStaged,
69
+ buildRuntimeData,
70
+ analyzeComponentsFile,
71
+ languageIconCssFor,
72
+ clientFeaturesFor
73
+ } from "./chunk-z1f5arsg.js";
74
+ import {
75
+ scanProject
76
+ } from "./chunk-zg2gtj10.js";
79
77
 
80
78
  // src/registry/eject.ts
81
79
  import { existsSync } from "node:fs";
@@ -112,19 +110,18 @@ var askFiles = async (project, srcDir, genDir) => {
112
110
  await rm(join(genDir, "ask-data.json"), { force: true });
113
111
  return [];
114
112
  }
115
- const grounded = ask.provider !== "inkeep";
113
+ const backend = resolveAskBackend(ask.provider);
116
114
  const files = [
117
115
  {
118
- content: askEndpointTemplate(resolveAskBackend(ask), grounded, {
116
+ content: askEndpointTemplate(backend, {
119
117
  cors: ask.cors,
120
118
  instructions: ask.instructions,
121
- reasoning: ask.reasoning,
122
119
  retrieval: ask.retrieval
123
120
  }),
124
121
  path: join(srcDir, "pages", "api", "ask.ts")
125
122
  }
126
123
  ];
127
- if (grounded) {
124
+ if (backend.grounded) {
128
125
  files.push({
129
126
  content: `${JSON.stringify(await buildAskData(project))}
130
127
  `,
@@ -133,7 +130,7 @@ var askFiles = async (project, srcDir, genDir) => {
133
130
  }
134
131
  return files;
135
132
  };
136
- var hostsMcp = (project, userPages) => project.config.ai.mcp.enabled && !routeIsTaken(userPages, project.graph.pages, project.config.ai.mcp.route);
133
+ var hostsMcp = (project, userPages) => project.config.agents.mcp.enabled && !routeIsTaken(userPages, project.graph.pages, project.config.agents.mcp.route);
137
134
  var mcpDiscoveryPages = (project, userPages) => hostsMcp(project, userPages) ? [
138
135
  {
139
136
  entrypoint: "src/blume-mcp/discovery.ts",
@@ -148,7 +145,7 @@ var mcpFiles = async (project, userPages, srcDir, genDir) => {
148
145
  if (!hostsMcp(project, userPages)) {
149
146
  return [];
150
147
  }
151
- const { route } = project.config.ai.mcp;
148
+ const { route } = project.config.agents.mcp;
152
149
  const data = await buildMcpData(project);
153
150
  const discoveryInput = {
154
151
  base: data.base,
@@ -179,7 +176,7 @@ var mcpFiles = async (project, userPages, srcDir, genDir) => {
179
176
  };
180
177
  var changelogFiles = (project, userPages, srcDir, options) => {
181
178
  const hasChangelog = project.graph.pages.some((page) => page.contentType === "changelog" && !(page.meta.draft || page.meta.sidebar.hidden));
182
- const hasChangelogSource = (project.config.content.sources ?? []).some((source) => source.type === "github-releases");
179
+ const hasChangelogSource = sourcesOfKind(project.config, "github-releases").length > 0;
183
180
  if (!(hasChangelog || hasChangelogSource) || routeIsTaken(userPages, project.graph.pages, "/changelog")) {
184
181
  return [];
185
182
  }
@@ -203,6 +200,20 @@ var examplesPreviewFiles = (srcDir, basePath, hasExamples) => hasExamples ? [
203
200
  path: join(srcDir, "pages", ...basePath.split("/").filter(Boolean), "blume-examples", "[...path].astro")
204
201
  }
205
202
  ] : [];
203
+ var ejectDependencies = (options) => {
204
+ const { ask } = options.config.ai;
205
+ return [
206
+ ...new Set([
207
+ "astro",
208
+ "@tailwindcss/vite",
209
+ "blume",
210
+ ...runtimeDependencies(options),
211
+ ...options.needsReact ? ["react", "react-dom"] : [],
212
+ ...ask?.enabled && !ask.endpoint ? ["ai"] : [],
213
+ ...options.config.export.epub ? ["epub-gen-memory"] : []
214
+ ])
215
+ ];
216
+ };
206
217
  var ejectIntegrationBridge = (config, root, configFile) => config.integrations.length > 0 && configFile ? { configFile: toPosix(relative(root, configFile)) } : undefined;
207
218
  var eject = async (root) => {
208
219
  const project = await scanProject(root, { mode: "build" });
@@ -221,7 +232,8 @@ var eject = async (root) => {
221
232
  userTheme,
222
233
  userExamplesCss,
223
234
  rawMarkdown,
224
- islands
235
+ islands,
236
+ overrideAnalysis
225
237
  ] = await Promise.all([
226
238
  context.pagesRoot ? discoverPages(context.pagesRoot) : Promise.resolve([]),
227
239
  detectNeedsReact(root),
@@ -229,11 +241,16 @@ var eject = async (root) => {
229
241
  readUserCss(context.themeFile, genDir),
230
242
  readUserCss(config.examples.css ? join(root, config.examples.css) : null, genDir),
231
243
  buildRawMarkdown(project),
232
- discoverIslands(root)
244
+ discoverIslands(root),
245
+ analyzeComponentsFile(context.componentsFile)
233
246
  ]);
247
+ const slotPlan = planComponentSlots(islands.islands, overrideAnalysis, {
248
+ relativeTo: genDir
249
+ });
234
250
  const frameworks = new Set([
235
251
  ...islands.islands.map((island) => island.framework),
236
- ...examples.examples.map((example) => example.framework)
252
+ ...examples.examples.map((example) => example.framework),
253
+ ...slotPlan.frameworks
237
254
  ]);
238
255
  const needsReact = needsReactRaw || askEnabled || frameworks.has("react");
239
256
  const needsVue = frameworks.has("vue");
@@ -241,10 +258,16 @@ var eject = async (root) => {
241
258
  const relContext = {
242
259
  ...context,
243
260
  contentRoot: toPosix(relative(root, context.contentRoot)),
261
+ distDir: "./dist",
244
262
  outDir: ".",
263
+ pagesRoot: context.pagesRoot ? `./${toPosix(relative(root, context.pagesRoot))}` : null,
245
264
  root: "."
246
265
  };
247
- const componentsImport = context.componentsFile ? `../../${toPosix(relative(root, context.componentsFile))}` : null;
266
+ const docsCollection = resolveDocsCollection(config, root);
267
+ const relCollection = {
268
+ ...docsCollection,
269
+ base: toPosix(relative(root, docsCollection.base))
270
+ };
248
271
  const relPages = [
249
272
  ...pages.map((page) => ({
250
273
  entrypoint: toPosix(relative(root, page.entrypoint)),
@@ -287,6 +310,7 @@ var eject = async (root) => {
287
310
  },
288
311
  {
289
312
  content: contentConfigTemplate({
313
+ collection: relCollection,
290
314
  config,
291
315
  context: relContext,
292
316
  staged: hasStaged,
@@ -304,13 +328,9 @@ var eject = async (root) => {
304
328
  path: join(srcDir, "pages", "[...slug].astro")
305
329
  },
306
330
  {
307
- content: planComponentSlots(componentsImport, null).module,
331
+ content: slotPlan.module,
308
332
  path: join(genDir, "components.ts")
309
333
  },
310
- {
311
- content: islandMapTemplate(islands.islands),
312
- path: join(genDir, "islands.ts")
313
- },
314
334
  {
315
335
  content: exampleMapTemplate(examples.examples, config.basePath),
316
336
  path: join(genDir, "examples.ts")
@@ -377,7 +397,6 @@ var eject = async (root) => {
377
397
  files.push(...await mcpFiles(project, pages, srcDir, genDir), ...changelogFiles(project, pages, srcDir, {
378
398
  exportEpub,
379
399
  exportPdf,
380
- mathEnabled: usesMath,
381
400
  needsReact,
382
401
  staged: hasStaged
383
402
  }));
@@ -394,7 +413,8 @@ var eject = async (root) => {
394
413
  content: searchClientTemplate(config),
395
414
  path: join(genDir, "search-client.ts")
396
415
  });
397
- if (servesStaticIndex(config.search.provider)) {
416
+ const searchAdapter = config.search.provider;
417
+ if (searchAdapter.mode === "static") {
398
418
  const documents = await buildSearchDocuments(project);
399
419
  files.push({
400
420
  content: `${JSON.stringify(documents)}
@@ -405,9 +425,9 @@ var eject = async (root) => {
405
425
  path: join(srcDir, "pages", "blume-search.json.ts")
406
426
  });
407
427
  }
408
- if (config.search.provider === "mixedbread") {
428
+ if (searchAdapter.kind === "mixedbread") {
409
429
  files.push({
410
- content: mixedbreadSearchEndpointTemplate(config.search.mixedbread?.storeId ?? ""),
430
+ content: mixedbreadSearchEndpointTemplate(searchAdapter.options),
411
431
  path: join(srcDir, "pages", "api", "search.ts")
412
432
  });
413
433
  }
@@ -438,11 +458,11 @@ var eject = async (root) => {
438
458
  });
439
459
  }
440
460
  }
441
- files.push(...islands.islands.map((island) => ({
442
- content: islandWrapperTemplate(island),
443
- path: join(genDir, "islands", `${island.name}.astro`)
461
+ files.push(...slotPlan.wrappers.map((wrapper) => ({
462
+ content: wrapper.content,
463
+ path: join(genDir, "component-slots", `${wrapper.name}.astro`)
444
464
  })), ...examples.examples.map((example) => ({
445
- content: exampleWrapperTemplate(example),
465
+ content: exampleWrapperTemplate(example, join(genDir, "examples")),
446
466
  path: join(genDir, "examples", `${exampleSlug(example.path)}.astro`)
447
467
  })), ...examplesPreviewFiles(srcDir, config.basePath, examples.examples.length > 0));
448
468
  for (const [entryId, content] of staged) {
@@ -460,311 +480,19 @@ var eject = async (root) => {
460
480
  });
461
481
  }
462
482
  await rm(context.outDir, { force: true, recursive: true });
463
- return { files: written.map((file) => file.path), warnings };
464
- };
465
-
466
- // src/cli/eject-scripts.ts
467
- import { readFile as readFile2, writeFile as writeFile2 } from "node:fs/promises";
468
- import { join as join2 } from "pathe";
469
- var updatePackageScripts = async (root) => {
470
- const pkgPath = join2(root, "package.json");
471
- let pkg;
472
- try {
473
- pkg = JSON.parse(await readFile2(pkgPath, "utf-8"));
474
- } catch {
475
- return;
476
- }
477
- const scripts = pkg.scripts ?? {};
478
- pkg.scripts = {
479
- ...scripts,
480
- build: "astro build",
481
- dev: "astro dev",
482
- preview: "astro preview"
483
+ return {
484
+ dependencies: ejectDependencies({
485
+ config,
486
+ needsReact,
487
+ needsSvelte,
488
+ needsVue
489
+ }),
490
+ files: written.map((file) => file.path),
491
+ warnings
483
492
  };
484
- await writeFile2(pkgPath, `${JSON.stringify(pkg, null, 2)}
485
- `, "utf-8");
486
- };
487
-
488
- // src/cli/init/scaffold.ts
489
- import { existsSync as existsSync2 } from "node:fs";
490
- import { mkdir as mkdir2, writeFile as writeFile3 } from "node:fs/promises";
491
- import { detect } from "package-manager-detector/detect";
492
- import { basename, dirname, isAbsolute, join as join3, relative as relative2 } from "pathe";
493
-
494
- // src/core/package-json.ts
495
- var toPackageName = (raw) => raw.toLowerCase().replaceAll(/[^a-z0-9._-]+/gu, "-").replaceAll(/^[-_.]+|[-_.]+$/gu, "") || "docs";
496
- var blumePackageJson = (name, extraDeps = {}) => {
497
- const dependencies = Object.entries({
498
- blume: `^${getBlumeVersion()}`,
499
- ...extraDeps
500
- }).toSorted(([a], [b]) => a < b ? -1 : 1).map(([dep, range]) => ` ${JSON.stringify(dep)}: ${JSON.stringify(range)}`).join(`,
501
- `);
502
- return `{
503
- "name": ${JSON.stringify(name)},
504
- "private": true,
505
- "type": "module",
506
- "scripts": {
507
- "dev": "blume dev",
508
- "build": "blume build",
509
- "doctor": "blume doctor"
510
- },
511
- "dependencies": {
512
- ${dependencies}
513
- }
514
- }
515
- `;
516
- };
517
-
518
- // src/cli/init/scaffold.ts
519
- var TEMPLATES = ["docs", "api", "sdk", "changelog"];
520
- var PACKAGE_MANAGERS = ["npm", "pnpm", "yarn", "bun"];
521
- var SOURCE_KINDS = [
522
- "filesystem",
523
- "obsidian",
524
- "github-releases",
525
- "notion",
526
- "sanity",
527
- "mdx-remote"
528
- ];
529
- var page = (title, description, body) => `---
530
- title: ${title}
531
- description: ${description}
532
- ---
533
-
534
- ${body}
535
- `;
536
- var STARTERS = {
537
- api: {
538
- configExtra: `
539
- openapi: {
540
- enabled: true,
541
- route: "/api",
542
- sources: [
543
- {
544
- label: "Petstore",
545
- spec: "https://petstore3.swagger.io/api/v3/openapi.json",
546
- },
547
- ],
548
- },`,
549
- files: (dir) => [
550
- {
551
- content: page("API Reference", "Explore the API.", "# API Reference\n\nYour OpenAPI spec renders at [`/api`](/api). Point `openapi.sources` at your own spec in `blume.config.ts`."),
552
- path: join3(dir, "index.mdx")
553
- }
554
- ]
555
- },
556
- changelog: {
557
- configExtra: `
558
- navigation: {
559
- tabs: [
560
- { label: "Docs", path: "/" },
561
- { label: "Changelog", path: "/changelog" },
562
- ],
563
- },`,
564
- files: (dir) => [
565
- {
566
- content: page("Introduction", "Welcome to your new Blume docs.", "# Introduction\n\nWrite your docs here, and log releases under `changelog/`."),
567
- path: join3(dir, "index.mdx")
568
- },
569
- {
570
- content: `---
571
- title: v1.0.0
572
- type: changelog
573
- date: 2026-01-01
574
- ---
575
-
576
- The first release. Edit \`${dir}/changelog/v1-0-0.mdx\` or add new entries beside it.
577
- `,
578
- path: join3(dir, "changelog", "v1-0-0.mdx")
579
- }
580
- ]
581
- },
582
- docs: {
583
- configExtra: "",
584
- files: (dir) => [
585
- {
586
- content: page("Introduction", "Welcome to your new Blume docs.", `# Introduction
587
-
588
- Welcome to **Blume** — markdown-first docs powered by Astro and Vite.
589
-
590
- Edit \`${dir}/index.mdx\` to get started, then run \`blume dev\`.`),
591
- path: join3(dir, "index.mdx")
592
- }
593
- ]
594
- },
595
- sdk: {
596
- configExtra: "",
597
- files: (dir) => [
598
- {
599
- content: page("Introduction", "Get started with the SDK.", `# Introduction
600
-
601
- Install the SDK and make your first call. See [Installation](/installation).`),
602
- path: join3(dir, "index.mdx")
603
- },
604
- {
605
- content: page("Installation", "Install the SDK.", "# Installation\n\n```package-install\nyour-sdk\n```"),
606
- path: join3(dir, "installation.mdx")
607
- }
608
- ]
609
- }
610
- };
611
- var commandsFor = (pm) => ({
612
- build: pm === "npm" || pm === "bun" ? `${pm} run build` : `${pm} build`,
613
- dev: pm === "npm" ? "npm run dev" : `${pm} dev`,
614
- exec: { bun: "bunx", npm: "npx", pnpm: "pnpm exec", yarn: "yarn" }[pm],
615
- install: `${pm} install`
616
- });
617
- var isPackageManager = (value) => PACKAGE_MANAGERS.some((pm) => pm === value);
618
- var detectPackageManager = (userAgent) => {
619
- const name = userAgent?.split("/")[0];
620
- return name !== undefined && isPackageManager(name) ? name : "npm";
621
- };
622
- var detectProjectPackageManager = async (root) => {
623
- const detected = await detect({ cwd: root });
624
- const name = detected?.name;
625
- return name !== undefined && isPackageManager(name) ? name : detectPackageManager(process.env.npm_config_user_agent);
626
- };
627
- var validateContentDir = (root, dir) => isAbsolute(dir) || relative2(root, join3(root, dir)).startsWith("..") ? "Must be a relative path inside the project." : undefined;
628
- var titleize = (raw) => {
629
- const words = raw.replaceAll(/[-_.]+/gu, " ").split(/\s+/u).filter(Boolean);
630
- return words.length === 0 ? "My Docs" : words.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
631
- };
632
- var needsExplicitSources = (sources) => sources.some((source) => source !== "filesystem");
633
- var SOURCE_SNIPPETS = {
634
- "github-releases": ` // Changelog entries from GitHub Releases. Private repos read
635
- // GITHUB_TOKEN from the environment.
636
- {
637
- type: "github-releases",
638
- owner: "your-org",
639
- repo: "your-repo",
640
- prefix: "changelog",
641
- },`,
642
- "mdx-remote": ` // MDX fetched from a GitHub repo. Private repos read GITHUB_TOKEN
643
- // from the environment.
644
- {
645
- type: "mdx-remote",
646
- github: { owner: "your-org", repo: "your-repo", path: "docs" },
647
- prefix: "remote",
648
- },`,
649
- notion: ` // Pages from a Notion database. Reads NOTION_TOKEN from the environment.
650
- {
651
- type: "notion",
652
- database: "your-database-id",
653
- prefix: "notion",
654
- },`,
655
- obsidian: ` // An Obsidian vault, read in place. No export step, and no
656
- // generated notes in your repo. Point \`vault\` at your vault directory,
657
- // relative to this config file.
658
- {
659
- type: "obsidian",
660
- vault: "vault",
661
- prefix: "notes",
662
- },`,
663
- sanity: ` // Documents from a Sanity dataset. Private datasets read SANITY_TOKEN
664
- // from the environment.
665
- {
666
- type: "sanity",
667
- projectId: "your-project-id",
668
- dataset: "production",
669
- query: \`*[_type == "doc"]\`,
670
- prefix: "sanity",
671
- },`
672
- };
673
- var contentBlockFor = (answers) => {
674
- const sources = answers.sources.length === 0 ? ["filesystem"] : answers.sources;
675
- if (!needsExplicitSources(sources)) {
676
- return answers.contentDir === "docs" ? "" : `
677
- content: {
678
- root: ${JSON.stringify(answers.contentDir)},
679
- },`;
680
- }
681
- const entries = SOURCE_KINDS.filter((kind) => sources.includes(kind)).map((kind) => kind === "filesystem" ? ` { type: "filesystem", root: ${JSON.stringify(answers.contentDir)} },` : SOURCE_SNIPPETS[kind]);
682
- return `
683
- content: {
684
- sources: [
685
- ${entries.join(`
686
- `)}
687
- ],
688
- },`;
689
- };
690
- var buildConfig = (answers) => `import { defineConfig } from "blume";
691
-
692
- export default defineConfig({
693
- title: ${JSON.stringify(answers.title)},
694
- description: "Documentation powered by Blume.",${STARTERS[answers.template].configExtra}${contentBlockFor(answers)}
695
- });
696
- `;
697
- var extraDepsFor = (sources) => {
698
- const deps = {};
699
- if (sources.includes("notion")) {
700
- deps["@notionhq/client"] = "^2.2.15";
701
- }
702
- if (sources.includes("sanity")) {
703
- deps["@sanity/client"] = "^7.25.0";
704
- }
705
- return deps;
706
- };
707
- var buildPlan = (root, answers) => {
708
- const files = [
709
- {
710
- content: blumePackageJson(toPackageName(basename(root)), extraDepsFor(answers.sources)),
711
- path: join3(root, "package.json")
712
- },
713
- { content: buildConfig(answers), path: join3(root, "blume.config.ts") }
714
- ];
715
- if (answers.sources.length === 0 || answers.sources.includes("filesystem")) {
716
- files.push(...STARTERS[answers.template].files(answers.contentDir).map((file) => ({ ...file, path: join3(root, file.path) })));
717
- }
718
- if (answers.sources.includes("obsidian")) {
719
- files.push({
720
- content: "# Welcome\n\nThis folder is read by Blume's `obsidian` source. Open it as a vault in Obsidian and write notes — `[[Wikilinks]]` become site links.\n",
721
- path: join3(root, "vault", "Welcome.md")
722
- });
723
- }
724
- return files;
725
- };
726
- var writeFileSafe = async (file, log) => {
727
- if (existsSync2(file.path)) {
728
- log.info(`Skipped existing ${file.path}`);
729
- return false;
730
- }
731
- await mkdir2(dirname(file.path), { recursive: true });
732
- await writeFile3(file.path, file.content, "utf-8");
733
- log.success(`Created ${file.path}`);
734
- return true;
735
- };
736
- var applyPlan = async (files, log) => {
737
- const created = await Promise.all(files.map((file) => writeFileSafe(file, log)));
738
- const createdPackage = files.some((file, index) => created[index] && basename(file.path) === "package.json");
739
- return { createdPackage };
740
- };
741
- var envVarsFor = (sources) => [
742
- ["GITHUB_TOKEN", ["github-releases", "mdx-remote"]],
743
- ["NOTION_TOKEN", ["notion"]],
744
- ["SANITY_TOKEN", ["sanity"]]
745
- ].filter(([, kinds]) => kinds.some((kind) => sources.includes(kind))).map(([envVar]) => envVar);
746
- var nextSteps = (answers, createdPackage) => {
747
- const commands = commandsFor(answers.packageManager);
748
- const lines = [];
749
- if (answers.directory !== ".") {
750
- lines.push(`cd ${answers.directory}`);
751
- }
752
- if (createdPackage) {
753
- lines.push(commands.install);
754
- }
755
- lines.push(commands.dev);
756
- const envVars = envVarsFor(answers.sources);
757
- const auth = envVars.length > 0 ? `
758
- Set ${envVars.join(" and ")} in .env.local so your sources can authenticate.
759
- ` : "";
760
- return `Next steps:
761
-
762
- ${lines.join(`
763
- `)}
764
- ${auth}`;
765
493
  };
766
494
 
767
- export { eject, updatePackageScripts, TEMPLATES, PACKAGE_MANAGERS, commandsFor, detectPackageManager, detectProjectPackageManager, validateContentDir, titleize, buildPlan, applyPlan, nextSteps };
495
+ export { eject };
768
496
 
769
- //# debugId=9804811AC029D8E764756E2164756E21
770
- //# sourceMappingURL=chunk-196vjxp9.js.map
497
+ //# debugId=21FD19BF3F1015A764756E2164756E21
498
+ //# sourceMappingURL=chunk-mwt1k8n7.js.map