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
@@ -41,10 +41,11 @@ export const it: UIStringsOverride = {
41
41
  banner: { dismiss: "Chiudi l'annuncio" },
42
42
  changelog: {
43
43
  description: "Aggiornamenti del prodotto e note di rilascio.",
44
- showReleases: "Mostra le versioni {version}",
45
44
  title: "Registro delle modifiche",
46
45
  },
47
46
  content: {
47
+ copyColor: "Copia il colore {name} {value}",
48
+ copyPrompt: "Copia prompt",
48
49
  diagramError: "Impossibile visualizzare questo diagramma.",
49
50
  },
50
51
  feedback: {
@@ -62,6 +63,7 @@ export const it: UIStringsOverride = {
62
63
  featured: "In evidenza",
63
64
  githubRepository: "Repository GitHub",
64
65
  navigation: "Navigazione",
66
+ opensInNewTab: "Si apre in una nuova scheda",
65
67
  primary: "Principale",
66
68
  sections: "Sezioni",
67
69
  toggleNavigation: "Mostra o nascondi la navigazione",
@@ -42,10 +42,11 @@ export const ja: UIStringsOverride = {
42
42
  banner: { dismiss: "お知らせを閉じる" },
43
43
  changelog: {
44
44
  description: "製品のアップデートとリリースノート。",
45
- showReleases: "{version} のリリースを表示",
46
45
  title: "変更履歴",
47
46
  },
48
47
  content: {
48
+ copyColor: "カラー {name}({value})をコピー",
49
+ copyPrompt: "プロンプトをコピー",
49
50
  diagramError: "この図を表示できませんでした。",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const ja: UIStringsOverride = {
63
64
  featured: "注目",
64
65
  githubRepository: "GitHub リポジトリ",
65
66
  navigation: "ナビゲーション",
67
+ opensInNewTab: "新しいタブで開きます",
66
68
  primary: "メイン",
67
69
  sections: "セクション",
68
70
  toggleNavigation: "ナビゲーションを切り替え",
@@ -42,10 +42,11 @@ export const ko: UIStringsOverride = {
42
42
  banner: { dismiss: "공지 닫기" },
43
43
  changelog: {
44
44
  description: "제품 업데이트 및 릴리스 노트.",
45
- showReleases: "{version} 릴리스 보기",
46
45
  title: "변경 로그",
47
46
  },
48
47
  content: {
48
+ copyColor: "{name} 색상 {value} 복사",
49
+ copyPrompt: "프롬프트 복사",
49
50
  diagramError: "이 다이어그램을 표시할 수 없습니다.",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const ko: UIStringsOverride = {
63
64
  featured: "추천",
64
65
  githubRepository: "GitHub 저장소",
65
66
  navigation: "탐색",
67
+ opensInNewTab: "새 탭에서 열림",
66
68
  primary: "기본",
67
69
  sections: "섹션",
68
70
  toggleNavigation: "탐색 전환",
@@ -42,10 +42,13 @@ export const nl: UIStringsOverride = {
42
42
  banner: { dismiss: "Aankondiging sluiten" },
43
43
  changelog: {
44
44
  description: "Productupdates en releaseopmerkingen.",
45
- showReleases: "Releases voor {version} tonen",
46
45
  title: "Wijzigingslogboek",
47
46
  },
48
- content: { diagramError: "Dit diagram kon niet worden weergegeven." },
47
+ content: {
48
+ copyColor: "Kleur {name} {value} kopiëren",
49
+ copyPrompt: "Prompt kopiëren",
50
+ diagramError: "Dit diagram kon niet worden weergegeven.",
51
+ },
49
52
  feedback: {
50
53
  no: "Nee",
51
54
  question: "Was deze pagina nuttig?",
@@ -61,6 +64,7 @@ export const nl: UIStringsOverride = {
61
64
  featured: "Uitgelicht",
62
65
  githubRepository: "GitHub-repository",
63
66
  navigation: "Navigatie",
67
+ opensInNewTab: "Opent in een nieuw tabblad",
64
68
  primary: "Primair",
65
69
  sections: "Secties",
66
70
  toggleNavigation: "Navigatie tonen of verbergen",
@@ -42,10 +42,13 @@ export const no: UIStringsOverride = {
42
42
  banner: { dismiss: "Lukk kunngjøringen" },
43
43
  changelog: {
44
44
  description: "Produktoppdateringer og utgivelsesnotater.",
45
- showReleases: "Vis utgivelser for {version}",
46
45
  title: "Endringslogg",
47
46
  },
48
- content: { diagramError: "Kunne ikke vise dette diagrammet." },
47
+ content: {
48
+ copyColor: "Kopier fargen {name} {value}",
49
+ copyPrompt: "Kopier prompt",
50
+ diagramError: "Kunne ikke vise dette diagrammet.",
51
+ },
49
52
  feedback: {
50
53
  no: "Nei",
51
54
  question: "Var denne siden nyttig?",
@@ -61,6 +64,7 @@ export const no: UIStringsOverride = {
61
64
  featured: "Utvalgt",
62
65
  githubRepository: "GitHub-repositorium",
63
66
  navigation: "Navigasjon",
67
+ opensInNewTab: "Åpnes i en ny fane",
64
68
  primary: "Primær",
65
69
  sections: "Seksjoner",
66
70
  toggleNavigation: "Vis eller skjul navigasjonen",
@@ -42,10 +42,13 @@ export const pl: UIStringsOverride = {
42
42
  banner: { dismiss: "Zamknij ogłoszenie" },
43
43
  changelog: {
44
44
  description: "Aktualizacje produktu i informacje o wydaniach.",
45
- showReleases: "Pokaż wydania {version}",
46
45
  title: "Dziennik zmian",
47
46
  },
48
- content: { diagramError: "Nie udało się wyświetlić tego diagramu." },
47
+ content: {
48
+ copyColor: "Kopiuj kolor {name} {value}",
49
+ copyPrompt: "Kopiuj prompt",
50
+ diagramError: "Nie udało się wyświetlić tego diagramu.",
51
+ },
49
52
  feedback: {
50
53
  no: "Nie",
51
54
  question: "Czy ta strona była pomocna?",
@@ -61,6 +64,7 @@ export const pl: UIStringsOverride = {
61
64
  featured: "Polecane",
62
65
  githubRepository: "Repozytorium GitHub",
63
66
  navigation: "Nawigacja",
67
+ opensInNewTab: "Otwiera się w nowej karcie",
64
68
  primary: "Główne",
65
69
  sections: "Sekcje",
66
70
  toggleNavigation: "Przełącz nawigację",
@@ -42,10 +42,11 @@ export const ptBR: UIStringsOverride = {
42
42
  banner: { dismiss: "Fechar o anúncio" },
43
43
  changelog: {
44
44
  description: "Atualizações do produto e notas de lançamento.",
45
- showReleases: "Mostrar versões {version}",
46
45
  title: "Registro de alterações",
47
46
  },
48
47
  content: {
48
+ copyColor: "Copiar a cor {name} {value}",
49
+ copyPrompt: "Copiar prompt",
49
50
  diagramError: "Não foi possível renderizar este diagrama.",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const ptBR: UIStringsOverride = {
63
64
  featured: "Em destaque",
64
65
  githubRepository: "Repositório do GitHub",
65
66
  navigation: "Navegação",
67
+ opensInNewTab: "Abre em uma nova aba",
66
68
  primary: "Principal",
67
69
  sections: "Seções",
68
70
  toggleNavigation: "Mostrar ou ocultar a navegação",
@@ -42,10 +42,11 @@ export const pt: UIStringsOverride = {
42
42
  banner: { dismiss: "Fechar o anúncio" },
43
43
  changelog: {
44
44
  description: "Atualizações do produto e notas de lançamento.",
45
- showReleases: "Mostrar versões {version}",
46
45
  title: "Registo de alterações",
47
46
  },
48
47
  content: {
48
+ copyColor: "Copiar a cor {name} {value}",
49
+ copyPrompt: "Copiar prompt",
49
50
  diagramError: "Não foi possível apresentar este diagrama.",
50
51
  },
51
52
  feedback: {
@@ -63,6 +64,7 @@ export const pt: UIStringsOverride = {
63
64
  featured: "Em destaque",
64
65
  githubRepository: "Repositório do GitHub",
65
66
  navigation: "Navegação",
67
+ opensInNewTab: "Abre num novo separador",
66
68
  primary: "Principal",
67
69
  sections: "Secções",
68
70
  toggleNavigation: "Mostrar ou ocultar a navegação",
@@ -42,10 +42,13 @@ export const ro: UIStringsOverride = {
42
42
  banner: { dismiss: "Închide anunțul" },
43
43
  changelog: {
44
44
  description: "Actualizări ale produsului și note de lansare.",
45
- showReleases: "Afișează lansările {version}",
46
45
  title: "Jurnal de modificări",
47
46
  },
48
- content: { diagramError: "Nu s-a putut reda această diagramă." },
47
+ content: {
48
+ copyColor: "Copiază culoarea {name} {value}",
49
+ copyPrompt: "Copiază promptul",
50
+ diagramError: "Nu s-a putut reda această diagramă.",
51
+ },
49
52
  feedback: {
50
53
  no: "Nu",
51
54
  question: "Ți-a fost utilă această pagină?",
@@ -61,6 +64,7 @@ export const ro: UIStringsOverride = {
61
64
  featured: "Recomandate",
62
65
  githubRepository: "Depozit GitHub",
63
66
  navigation: "Navigare",
67
+ opensInNewTab: "Se deschide într-o filă nouă",
64
68
  primary: "Principal",
65
69
  sections: "Secțiuni",
66
70
  toggleNavigation: "Comută navigarea",
@@ -42,10 +42,13 @@ export const ru: UIStringsOverride = {
42
42
  banner: { dismiss: "Закрыть объявление" },
43
43
  changelog: {
44
44
  description: "Обновления продукта и примечания к выпускам.",
45
- showReleases: "Показать выпуски {version}",
46
45
  title: "Журнал изменений",
47
46
  },
48
- content: { diagramError: "Не удалось отобразить эту диаграмму." },
47
+ content: {
48
+ copyColor: "Скопировать цвет {name} {value}",
49
+ copyPrompt: "Скопировать промпт",
50
+ diagramError: "Не удалось отобразить эту диаграмму.",
51
+ },
49
52
  feedback: {
50
53
  no: "Нет",
51
54
  question: "Эта страница была полезной?",
@@ -61,6 +64,7 @@ export const ru: UIStringsOverride = {
61
64
  featured: "Рекомендуемое",
62
65
  githubRepository: "Репозиторий GitHub",
63
66
  navigation: "Навигация",
67
+ opensInNewTab: "Открывается в новой вкладке",
64
68
  primary: "Основное",
65
69
  sections: "Разделы",
66
70
  toggleNavigation: "Переключить навигацию",
@@ -41,10 +41,13 @@ export const sk: UIStringsOverride = {
41
41
  banner: { dismiss: "Zavrieť oznámenie" },
42
42
  changelog: {
43
43
  description: "Novinky produktu a poznámky k vydaniu.",
44
- showReleases: "Zobraziť vydania {version}",
45
44
  title: "Zoznam zmien",
46
45
  },
47
- content: { diagramError: "Tento diagram sa nepodarilo vykresliť." },
46
+ content: {
47
+ copyColor: "Kopírovať farbu {name} {value}",
48
+ copyPrompt: "Kopírovať prompt",
49
+ diagramError: "Tento diagram sa nepodarilo vykresliť.",
50
+ },
48
51
  feedback: {
49
52
  no: "Nie",
50
53
  question: "Bola táto stránka užitočná?",
@@ -60,6 +63,7 @@ export const sk: UIStringsOverride = {
60
63
  featured: "Odporúčané",
61
64
  githubRepository: "Repozitár na GitHube",
62
65
  navigation: "Navigácia",
66
+ opensInNewTab: "Otvorí sa na novej karte",
63
67
  primary: "Hlavné",
64
68
  sections: "Sekcie",
65
69
  toggleNavigation: "Prepnúť navigáciu",
@@ -41,10 +41,13 @@ export const sr: UIStringsOverride = {
41
41
  banner: { dismiss: "Затвори обавештење" },
42
42
  changelog: {
43
43
  description: "Ажурирања производа и белешке о издањима.",
44
- showReleases: "Прикажи издања {version}",
45
44
  title: "Дневник измена",
46
45
  },
47
- content: { diagramError: "Није могуће приказати овај дијаграм." },
46
+ content: {
47
+ copyColor: "Копирај боју {name} {value}",
48
+ copyPrompt: "Копирај упит",
49
+ diagramError: "Није могуће приказати овај дијаграм.",
50
+ },
48
51
  feedback: {
49
52
  no: "Не",
50
53
  question: "Да ли вам је ова страница помогла?",
@@ -60,6 +63,7 @@ export const sr: UIStringsOverride = {
60
63
  featured: "Истакнуто",
61
64
  githubRepository: "GitHub репозиторијум",
62
65
  navigation: "Навигација",
66
+ opensInNewTab: "Отвара се у новој картици",
63
67
  primary: "Главна",
64
68
  sections: "Одељци",
65
69
  toggleNavigation: "Отвори или затвори навигацију",
@@ -42,10 +42,13 @@ export const sv: UIStringsOverride = {
42
42
  banner: { dismiss: "Stäng meddelandet" },
43
43
  changelog: {
44
44
  description: "Produktuppdateringar och versionsinformation.",
45
- showReleases: "Visa utgåvor för {version}",
46
45
  title: "Ändringslogg",
47
46
  },
48
- content: { diagramError: "Det här diagrammet kunde inte visas." },
47
+ content: {
48
+ copyColor: "Kopiera färgen {name} {value}",
49
+ copyPrompt: "Kopiera prompt",
50
+ diagramError: "Det här diagrammet kunde inte visas.",
51
+ },
49
52
  feedback: {
50
53
  no: "Nej",
51
54
  question: "Var den här sidan till hjälp?",
@@ -61,6 +64,7 @@ export const sv: UIStringsOverride = {
61
64
  featured: "Utvalda",
62
65
  githubRepository: "GitHub-repository",
63
66
  navigation: "Navigering",
67
+ opensInNewTab: "Öppnas i en ny flik",
64
68
  primary: "Primär",
65
69
  sections: "Avsnitt",
66
70
  toggleNavigation: "Växla navigering",
@@ -41,10 +41,11 @@ export const th: UIStringsOverride = {
41
41
  banner: { dismiss: "ปิดประกาศ" },
42
42
  changelog: {
43
43
  description: "อัปเดตผลิตภัณฑ์และบันทึกประจำรุ่น",
44
- showReleases: "แสดงรุ่นของ {version}",
45
44
  title: "บันทึกการเปลี่ยนแปลง",
46
45
  },
47
46
  content: {
47
+ copyColor: "คัดลอกสี {name} {value}",
48
+ copyPrompt: "คัดลอกพรอมต์",
48
49
  diagramError: "ไม่สามารถแสดงไดอะแกรมนี้ได้",
49
50
  },
50
51
  feedback: {
@@ -62,6 +63,7 @@ export const th: UIStringsOverride = {
62
63
  featured: "แนะนำ",
63
64
  githubRepository: "ที่เก็บ GitHub",
64
65
  navigation: "การนำทาง",
66
+ opensInNewTab: "เปิดในแท็บใหม่",
65
67
  primary: "หลัก",
66
68
  sections: "หมวด",
67
69
  toggleNavigation: "สลับการนำทาง",
@@ -42,10 +42,13 @@ export const tr: UIStringsOverride = {
42
42
  banner: { dismiss: "Duyuruyu kapat" },
43
43
  changelog: {
44
44
  description: "Ürün güncellemeleri ve sürüm notları.",
45
- showReleases: "{version} sürümlerini göster",
46
45
  title: "Değişiklik günlüğü",
47
46
  },
48
- content: { diagramError: "Bu diyagram görüntülenemedi." },
47
+ content: {
48
+ copyColor: "Rengi kopyala: {name} {value}",
49
+ copyPrompt: "İstemi kopyala",
50
+ diagramError: "Bu diyagram görüntülenemedi.",
51
+ },
49
52
  feedback: {
50
53
  no: "Hayır",
51
54
  question: "Bu sayfa yardımcı oldu mu?",
@@ -61,6 +64,7 @@ export const tr: UIStringsOverride = {
61
64
  featured: "Öne çıkan",
62
65
  githubRepository: "GitHub deposu",
63
66
  navigation: "Gezinme",
67
+ opensInNewTab: "Yeni sekmede açılır",
64
68
  primary: "Birincil",
65
69
  sections: "Bölümler",
66
70
  toggleNavigation: "Gezinmeyi aç/kapat",
@@ -42,10 +42,13 @@ export const uk: UIStringsOverride = {
42
42
  banner: { dismiss: "Закрити оголошення" },
43
43
  changelog: {
44
44
  description: "Оновлення продукту та примітки до випусків.",
45
- showReleases: "Показати випуски {version}",
46
45
  title: "Журнал змін",
47
46
  },
48
- content: { diagramError: "Не вдалося відобразити цю діаграму." },
47
+ content: {
48
+ copyColor: "Скопіювати колір {name} {value}",
49
+ copyPrompt: "Скопіювати промпт",
50
+ diagramError: "Не вдалося відобразити цю діаграму.",
51
+ },
49
52
  feedback: {
50
53
  no: "Ні",
51
54
  question: "Чи була ця сторінка корисною?",
@@ -61,6 +64,7 @@ export const uk: UIStringsOverride = {
61
64
  featured: "Рекомендоване",
62
65
  githubRepository: "Репозиторій GitHub",
63
66
  navigation: "Навігація",
67
+ opensInNewTab: "Відкривається в новій вкладці",
64
68
  primary: "Основне",
65
69
  sections: "Розділи",
66
70
  toggleNavigation: "Перемкнути навігацію",
@@ -41,10 +41,11 @@ export const vi: UIStringsOverride = {
41
41
  banner: { dismiss: "Đóng thông báo" },
42
42
  changelog: {
43
43
  description: "Cập nhật sản phẩm và ghi chú phát hành.",
44
- showReleases: "Hiện các bản phát hành {version}",
45
44
  title: "Nhật ký thay đổi",
46
45
  },
47
46
  content: {
47
+ copyColor: "Sao chép màu {name} {value}",
48
+ copyPrompt: "Sao chép prompt",
48
49
  diagramError: "Không thể hiển thị sơ đồ này.",
49
50
  },
50
51
  feedback: {
@@ -62,6 +63,7 @@ export const vi: UIStringsOverride = {
62
63
  featured: "Nổi bật",
63
64
  githubRepository: "Kho lưu trữ GitHub",
64
65
  navigation: "Điều hướng",
66
+ opensInNewTab: "Mở trong thẻ mới",
65
67
  primary: "Chính",
66
68
  sections: "Chuyên mục",
67
69
  toggleNavigation: "Chuyển đổi điều hướng",
@@ -41,10 +41,11 @@ export const zhTW: UIStringsOverride = {
41
41
  banner: { dismiss: "關閉公告" },
42
42
  changelog: {
43
43
  description: "產品更新與版本說明。",
44
- showReleases: "顯示 {version} 的發布",
45
44
  title: "更新日誌",
46
45
  },
47
46
  content: {
47
+ copyColor: "複製顏色 {name} {value}",
48
+ copyPrompt: "複製提示詞",
48
49
  diagramError: "無法顯示此圖表。",
49
50
  },
50
51
  feedback: {
@@ -62,6 +63,7 @@ export const zhTW: UIStringsOverride = {
62
63
  featured: "精選",
63
64
  githubRepository: "GitHub 儲存庫",
64
65
  navigation: "導覽",
66
+ opensInNewTab: "在新分頁中開啟",
65
67
  primary: "主要",
66
68
  sections: "章節",
67
69
  toggleNavigation: "切換導覽",
@@ -41,10 +41,11 @@ export const zh: UIStringsOverride = {
41
41
  banner: { dismiss: "关闭公告" },
42
42
  changelog: {
43
43
  description: "产品更新与版本说明。",
44
- showReleases: "显示 {version} 的发布",
45
44
  title: "更新日志",
46
45
  },
47
46
  content: {
47
+ copyColor: "复制颜色 {name} {value}",
48
+ copyPrompt: "复制提示词",
48
49
  diagramError: "无法渲染此图表。",
49
50
  },
50
51
  feedback: {
@@ -62,6 +63,7 @@ export const zh: UIStringsOverride = {
62
63
  featured: "精选",
63
64
  githubRepository: "GitHub 仓库",
64
65
  navigation: "导航",
66
+ opensInNewTab: "在新标签页中打开",
65
67
  primary: "主要",
66
68
  sections: "章节",
67
69
  toggleNavigation: "切换导航",
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Zod's own wording for unknown keys no removed-key hint covers, appended to
3
+ * a hint so an unrelated typo isn't silently dropped from the diagnostic
4
+ * beside it. Shared by every config object that names a removed field's
5
+ * replacement (the root config, `ai.ask`, `openapi()`/`asyncapi()`, …).
6
+ */
7
+ export const unrecognizedKeysMessage = (keys: string[]): string =>
8
+ `Unrecognized key${keys.length > 1 ? "s" : ""}: ${keys
9
+ .map((key) => JSON.stringify(key))
10
+ .join(", ")}`;
@@ -11,6 +11,7 @@ import { localizeRoute } from "./i18n.ts";
11
11
  import type { BlumeProject } from "./project-graph.ts";
12
12
  import { isWithin, scanProject } from "./project-graph.ts";
13
13
  import { VERSION_ID } from "./schema.ts";
14
+ import type { Diagnostic } from "./types.ts";
14
15
  import { VERSION_LIKE, versionizeRoute } from "./versions.ts";
15
16
 
16
17
  /** What `cutVersion` did, for the CLI to report. */
@@ -21,6 +22,11 @@ export interface CutResult {
21
22
  rewritten: { file: string; count: number }[];
22
23
  /** Whether `blume.config.ts` was updated in place. */
23
24
  configUpdated: boolean;
25
+ /**
26
+ * Whether that update added the whole `versions` block — the first cut of a
27
+ * project that had no versioning — rather than one `archived` entry.
28
+ */
29
+ versionsAdded: boolean;
24
30
  /** Ready-to-paste config snippet when in-place update was not possible. */
25
31
  configSnippet: string | null;
26
32
  /** Absolute path of the created snapshot directory. */
@@ -144,11 +150,17 @@ export const rewriteSnapshotLinks = (
144
150
  return { count, text: lines.join("\n") };
145
151
  };
146
152
 
153
+ /**
154
+ * The switcher label a first cut gives the live docs. `versions.current.label`
155
+ * is required, and "Latest" reads right until the author names the release.
156
+ */
157
+ const CURRENT_LABEL = "Latest";
158
+
147
159
  /** The config entry to add, as a paste-ready snippet for the fallback path. */
148
160
  const snippetFor = (id: string, hasVersions: boolean): string =>
149
161
  hasVersions
150
162
  ? `Add to versions.archived in blume.config.ts (newest first):\n\n { id: "${id}" },\n`
151
- : `Add to blume.config.ts:\n\n versions: {\n archived: [{ id: "${id}" }],\n current: { label: "…" },\n },\n`;
163
+ : `Add to blume.config.ts:\n\n versions: {\n archived: [{ id: "${id}" }],\n current: { label: "${CURRENT_LABEL}" },\n },\n`;
152
164
 
153
165
  /**
154
166
  * Best-effort in-place config update: insert the new id at the head of an
@@ -192,6 +204,101 @@ export const insertArchivedVersion = async (
192
204
  return true;
193
205
  };
194
206
 
207
+ /** The opening brace of the config object: `defineConfig({` or `export default {`. */
208
+ const CONFIG_OBJECT = /(?:defineConfig\(\s*|export\s+default\s+)\{/gu;
209
+
210
+ /**
211
+ * Best-effort in-place registration of a first version: add a `versions` block
212
+ * (the id archived, the live docs labeled {@link CURRENT_LABEL}) as the first
213
+ * property of the config object. Only the plain shape is edited — exactly one
214
+ * `defineConfig({` or `export default {` and no `versions` key yet — so a
215
+ * config built any other way falls back to the printed snippet rather than
216
+ * risk corrupting it.
217
+ */
218
+ export const insertVersionsBlock = async (
219
+ configPath: string,
220
+ id: string
221
+ ): Promise<boolean> => {
222
+ let text: string;
223
+ try {
224
+ text = await readFile(configPath, "utf-8");
225
+ } catch {
226
+ return false;
227
+ }
228
+ const matches = [...text.matchAll(CONFIG_OBJECT)];
229
+ const [match] = matches;
230
+ if (matches.length !== 1 || !match || /\bversions\s*:/u.test(text)) {
231
+ return false;
232
+ }
233
+ const insertAt = match.index + match[0].length;
234
+ const rest = text.slice(insertAt);
235
+ const eol = text.includes("\r\n") ? "\r\n" : "\n";
236
+ const lineStart = text.lastIndexOf("\n", match.index) + 1;
237
+ const outer = /^[ \t]*/u.exec(text.slice(lineStart))?.[0] ?? "";
238
+ // Match the indentation of the property on the next line, when there is one.
239
+ const indent =
240
+ /^[ \t]*\r?\n(?<indent>[ \t]*)\S/u.exec(rest)?.groups?.indent ??
241
+ `${outer} `;
242
+ const block = [
243
+ "versions: {",
244
+ ` archived: [{ id: "${id}" }],`,
245
+ ` current: { label: "${CURRENT_LABEL}" },`,
246
+ "},",
247
+ ]
248
+ .map((line) => `${indent}${line}`)
249
+ .join(eol);
250
+ const body = rest.trimStart();
251
+ let tail: string;
252
+ if (body.startsWith("}")) {
253
+ // An empty object: close it on its own line.
254
+ tail = `${eol}${outer}${body}`;
255
+ } else if (/^[ \t]*\r?\n/u.test(rest)) {
256
+ tail = rest;
257
+ } else {
258
+ // An inline object: move its first property onto the next line.
259
+ tail = `${eol}${indent}${body}`;
260
+ }
261
+ await writeTextAtomic(
262
+ configPath,
263
+ `${text.slice(0, insertAt)}${eol}${block}${tail}`
264
+ );
265
+ return true;
266
+ };
267
+
268
+ /**
269
+ * Version-shaped folders (`v1.0/`) at the top of the content root of a project
270
+ * with no `versions` config — usually a snapshot `blume version` cut but
271
+ * couldn't register — which build as ordinary content at `/v1.0/…`, so every
272
+ * page ships twice. With versioning configured, the scan's own
273
+ * `BLUME_VERSIONS_UNCONFIGURED_VERSION` covers a folder it doesn't list; this
274
+ * check is `blume doctor`'s alone, since an unversioned site can have a real
275
+ * `v1/` section that a warning on every build would only nag about.
276
+ */
277
+ export const unregisteredSnapshotDiagnostics = (
278
+ project: BlumeProject
279
+ ): Diagnostic[] => {
280
+ if (project.config.versions) {
281
+ return [];
282
+ }
283
+ const { contentRoot } = project.context;
284
+ const folders = new Set<string>();
285
+ for (const page of project.graph.pages) {
286
+ const [first, ...rest] = page.sourcePath
287
+ ? relative(contentRoot, page.sourcePath).split("/")
288
+ : [];
289
+ if (first && rest.length > 0 && VERSION_LIKE.test(first)) {
290
+ folders.add(first);
291
+ }
292
+ }
293
+ return [...folders].toSorted().map((folder) => ({
294
+ code: "BLUME_VERSIONS_UNCONFIGURED_VERSION",
295
+ file: join(contentRoot, folder),
296
+ message: `Folder "${folder}/" looks like a version snapshot, but versioning isn't configured, so its pages build as ordinary content at /${folder}/….`,
297
+ severity: "warning",
298
+ suggestion: `If it's a snapshot, register it with \`versions: { archived: [{ id: "${folder}" }], current: { label: "${CURRENT_LABEL}" } }\` in blume.config.ts; if it's an ordinary section, ignore this.`,
299
+ }));
300
+ };
301
+
195
302
  /**
196
303
  * Freeze the current docs as an archived version: copy the content tree into
197
304
  * `<contentRoot>/<id>/` (excluding existing snapshots), rewrite root-absolute
@@ -304,18 +411,19 @@ export const cutVersion = async (
304
411
  };
305
412
  await walk(dir);
306
413
 
307
- const configPath = join(root, "blume.config.ts");
308
- const configUpdated =
309
- project.config.versions !== undefined &&
310
- (await insertArchivedVersion(configPath, id));
414
+ const configPath =
415
+ project.context.configFile ?? join(root, "blume.config.ts");
416
+ const firstVersion = project.config.versions === undefined;
417
+ const configUpdated = firstVersion
418
+ ? await insertVersionsBlock(configPath, id)
419
+ : await insertArchivedVersion(configPath, id);
311
420
 
312
421
  return {
313
- configSnippet: configUpdated
314
- ? null
315
- : snippetFor(id, project.config.versions !== undefined),
422
+ configSnippet: configUpdated ? null : snippetFor(id, !firstVersion),
316
423
  configUpdated,
317
424
  copied,
318
425
  dir,
319
426
  rewritten,
427
+ versionsAdded: configUpdated && firstVersion,
320
428
  };
321
429
  };