gazetta 0.7.0 → 0.8.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 (738) hide show
  1. package/admin-dist/assets/index-CBeq0rRb.js +693 -0
  2. package/admin-dist/assets/index-Dtg1dTZQ.css +1 -0
  3. package/admin-dist/assets/rolldown-runtime-BYbx6iT9.js +1 -0
  4. package/admin-dist/assets/{vendor-primevue-C0Q_YTCb.js → vendor-primevue-CBGHkaXv.js} +183 -39
  5. package/admin-dist/assets/{vendor-react-BipDVGow.js → vendor-react-BdW_kNCG.js} +2 -2
  6. package/admin-dist/assets/vendor-rjsf-lN2SztQt.js +33 -0
  7. package/admin-dist/assets/vendor-tiptap-C36yDquB.js +141 -0
  8. package/admin-dist/assets/vendor-vue-Bt5uR1VW.js +1 -0
  9. package/admin-dist/assets/workbox-window.prod.es5-DGMtIXHc.js +2 -0
  10. package/admin-dist/index.html +8 -8
  11. package/admin-dist/sw.js +1 -0
  12. package/dist/admin-api/archived-name-conflict.d.ts +31 -0
  13. package/dist/admin-api/archived-name-conflict.d.ts.map +1 -0
  14. package/dist/admin-api/archived-name-conflict.js +226 -0
  15. package/dist/admin-api/archived-name-conflict.js.map +1 -0
  16. package/dist/admin-api/cache-stats-logger.d.ts +83 -0
  17. package/dist/admin-api/cache-stats-logger.d.ts.map +1 -0
  18. package/dist/admin-api/cache-stats-logger.js +59 -0
  19. package/dist/admin-api/cache-stats-logger.js.map +1 -0
  20. package/dist/admin-api/hook-audit-emitter.d.ts +38 -0
  21. package/dist/admin-api/hook-audit-emitter.d.ts.map +1 -0
  22. package/dist/admin-api/hook-audit-emitter.js +21 -0
  23. package/dist/admin-api/hook-audit-emitter.js.map +1 -0
  24. package/dist/admin-api/index.d.ts +84 -0
  25. package/dist/admin-api/index.d.ts.map +1 -1
  26. package/dist/admin-api/index.js +254 -9
  27. package/dist/admin-api/index.js.map +1 -1
  28. package/dist/admin-api/middleware/audit.d.ts +25 -0
  29. package/dist/admin-api/middleware/audit.d.ts.map +1 -0
  30. package/dist/admin-api/middleware/audit.js +65 -0
  31. package/dist/admin-api/middleware/audit.js.map +1 -0
  32. package/dist/admin-api/middleware/capability.d.ts +8 -0
  33. package/dist/admin-api/middleware/capability.d.ts.map +1 -0
  34. package/dist/admin-api/middleware/capability.js +65 -0
  35. package/dist/admin-api/middleware/capability.js.map +1 -0
  36. package/dist/admin-api/middleware/principal.d.ts +18 -0
  37. package/dist/admin-api/middleware/principal.d.ts.map +1 -0
  38. package/dist/admin-api/middleware/principal.js +128 -0
  39. package/dist/admin-api/middleware/principal.js.map +1 -0
  40. package/dist/admin-api/routes/archive-review.d.ts +80 -0
  41. package/dist/admin-api/routes/archive-review.d.ts.map +1 -0
  42. package/dist/admin-api/routes/archive-review.js +70 -0
  43. package/dist/admin-api/routes/archive-review.js.map +1 -0
  44. package/dist/admin-api/routes/archive.d.ts +145 -0
  45. package/dist/admin-api/routes/archive.d.ts.map +1 -0
  46. package/dist/admin-api/routes/archive.js +540 -0
  47. package/dist/admin-api/routes/archive.js.map +1 -0
  48. package/dist/admin-api/routes/assets.d.ts +6 -1
  49. package/dist/admin-api/routes/assets.d.ts.map +1 -1
  50. package/dist/admin-api/routes/assets.js +167 -14
  51. package/dist/admin-api/routes/assets.js.map +1 -1
  52. package/dist/admin-api/routes/audit.d.ts +71 -0
  53. package/dist/admin-api/routes/audit.d.ts.map +1 -0
  54. package/dist/admin-api/routes/audit.js +178 -0
  55. package/dist/admin-api/routes/audit.js.map +1 -0
  56. package/dist/admin-api/routes/compare.d.ts.map +1 -1
  57. package/dist/admin-api/routes/compare.js +3 -2
  58. package/dist/admin-api/routes/compare.js.map +1 -1
  59. package/dist/admin-api/routes/fields.d.ts.map +1 -1
  60. package/dist/admin-api/routes/fields.js +2 -1
  61. package/dist/admin-api/routes/fields.js.map +1 -1
  62. package/dist/admin-api/routes/fragments.d.ts +13 -1
  63. package/dist/admin-api/routes/fragments.d.ts.map +1 -1
  64. package/dist/admin-api/routes/fragments.js +127 -92
  65. package/dist/admin-api/routes/fragments.js.map +1 -1
  66. package/dist/admin-api/routes/health.d.ts +60 -0
  67. package/dist/admin-api/routes/health.d.ts.map +1 -0
  68. package/dist/admin-api/routes/health.js +65 -0
  69. package/dist/admin-api/routes/health.js.map +1 -0
  70. package/dist/admin-api/routes/history.d.ts +2 -1
  71. package/dist/admin-api/routes/history.d.ts.map +1 -1
  72. package/dist/admin-api/routes/history.js +26 -4
  73. package/dist/admin-api/routes/history.js.map +1 -1
  74. package/dist/admin-api/routes/pages.d.ts +20 -1
  75. package/dist/admin-api/routes/pages.d.ts.map +1 -1
  76. package/dist/admin-api/routes/pages.js +157 -117
  77. package/dist/admin-api/routes/pages.js.map +1 -1
  78. package/dist/admin-api/routes/preview.d.ts.map +1 -1
  79. package/dist/admin-api/routes/preview.js +56 -17
  80. package/dist/admin-api/routes/preview.js.map +1 -1
  81. package/dist/admin-api/routes/publish.d.ts +19 -1
  82. package/dist/admin-api/routes/publish.d.ts.map +1 -1
  83. package/dist/admin-api/routes/publish.js +508 -92
  84. package/dist/admin-api/routes/publish.js.map +1 -1
  85. package/dist/admin-api/routes/rename.d.ts +62 -0
  86. package/dist/admin-api/routes/rename.d.ts.map +1 -0
  87. package/dist/admin-api/routes/rename.js +366 -0
  88. package/dist/admin-api/routes/rename.js.map +1 -0
  89. package/dist/admin-api/routes/site.d.ts.map +1 -1
  90. package/dist/admin-api/routes/site.js +6 -18
  91. package/dist/admin-api/routes/site.js.map +1 -1
  92. package/dist/admin-api/routes/system.d.ts +23 -0
  93. package/dist/admin-api/routes/system.d.ts.map +1 -0
  94. package/dist/admin-api/routes/system.js +115 -0
  95. package/dist/admin-api/routes/system.js.map +1 -0
  96. package/dist/admin-api/routes/templates.d.ts +11 -1
  97. package/dist/admin-api/routes/templates.d.ts.map +1 -1
  98. package/dist/admin-api/routes/templates.js +36 -3
  99. package/dist/admin-api/routes/templates.js.map +1 -1
  100. package/dist/admin-api/routes/validation.d.ts +47 -0
  101. package/dist/admin-api/routes/validation.d.ts.map +1 -0
  102. package/dist/admin-api/routes/validation.js +120 -0
  103. package/dist/admin-api/routes/validation.js.map +1 -0
  104. package/dist/admin-api/schemas/archive.d.ts +124 -0
  105. package/dist/admin-api/schemas/archive.d.ts.map +1 -0
  106. package/dist/admin-api/schemas/archive.js +93 -0
  107. package/dist/admin-api/schemas/archive.js.map +1 -0
  108. package/dist/admin-api/schemas/assets.d.ts +16 -0
  109. package/dist/admin-api/schemas/assets.d.ts.map +1 -1
  110. package/dist/admin-api/schemas/assets.js +15 -0
  111. package/dist/admin-api/schemas/assets.js.map +1 -1
  112. package/dist/admin-api/schemas/audit.d.ts +175 -0
  113. package/dist/admin-api/schemas/audit.d.ts.map +1 -0
  114. package/dist/admin-api/schemas/audit.js +91 -0
  115. package/dist/admin-api/schemas/audit.js.map +1 -0
  116. package/dist/admin-api/schemas/error.d.ts +94 -0
  117. package/dist/admin-api/schemas/error.d.ts.map +1 -0
  118. package/dist/admin-api/schemas/error.js +79 -0
  119. package/dist/admin-api/schemas/error.js.map +1 -0
  120. package/dist/admin-api/schemas/fragments.d.ts +2 -0
  121. package/dist/admin-api/schemas/fragments.d.ts.map +1 -1
  122. package/dist/admin-api/schemas/fragments.js +4 -0
  123. package/dist/admin-api/schemas/fragments.js.map +1 -1
  124. package/dist/admin-api/schemas/index.d.ts +8 -0
  125. package/dist/admin-api/schemas/index.d.ts.map +1 -1
  126. package/dist/admin-api/schemas/index.js +8 -0
  127. package/dist/admin-api/schemas/index.js.map +1 -1
  128. package/dist/admin-api/schemas/pages.d.ts +2 -0
  129. package/dist/admin-api/schemas/pages.d.ts.map +1 -1
  130. package/dist/admin-api/schemas/pages.js +11 -0
  131. package/dist/admin-api/schemas/pages.js.map +1 -1
  132. package/dist/admin-api/schemas/rename.d.ts +77 -0
  133. package/dist/admin-api/schemas/rename.d.ts.map +1 -0
  134. package/dist/admin-api/schemas/rename.js +75 -0
  135. package/dist/admin-api/schemas/rename.js.map +1 -0
  136. package/dist/admin-api/schemas/site.d.ts +3 -2
  137. package/dist/admin-api/schemas/site.d.ts.map +1 -1
  138. package/dist/admin-api/schemas/site.js +3 -2
  139. package/dist/admin-api/schemas/site.js.map +1 -1
  140. package/dist/admin-api/schemas/system.d.ts +28 -0
  141. package/dist/admin-api/schemas/system.d.ts.map +1 -0
  142. package/dist/admin-api/schemas/system.js +35 -0
  143. package/dist/admin-api/schemas/system.js.map +1 -0
  144. package/dist/admin-api/schemas/targets.d.ts +55 -0
  145. package/dist/admin-api/schemas/targets.d.ts.map +1 -1
  146. package/dist/admin-api/schemas/targets.js +46 -0
  147. package/dist/admin-api/schemas/targets.js.map +1 -1
  148. package/dist/admin-api/schemas/templates.d.ts +54 -0
  149. package/dist/admin-api/schemas/templates.d.ts.map +1 -1
  150. package/dist/admin-api/schemas/templates.js +21 -0
  151. package/dist/admin-api/schemas/templates.js.map +1 -1
  152. package/dist/admin-api/schemas/validation.d.ts +101 -0
  153. package/dist/admin-api/schemas/validation.d.ts.map +1 -0
  154. package/dist/admin-api/schemas/validation.js +57 -0
  155. package/dist/admin-api/schemas/validation.js.map +1 -0
  156. package/dist/admin-api/source-context.d.ts +66 -10
  157. package/dist/admin-api/source-context.d.ts.map +1 -1
  158. package/dist/admin-api/source-context.js +43 -5
  159. package/dist/admin-api/source-context.js.map +1 -1
  160. package/dist/ai/adapter-scaffold.d.ts +63 -0
  161. package/dist/ai/adapter-scaffold.d.ts.map +1 -0
  162. package/dist/ai/adapter-scaffold.js +89 -0
  163. package/dist/ai/adapter-scaffold.js.map +1 -0
  164. package/dist/ai/compose-prompt.d.ts +50 -0
  165. package/dist/ai/compose-prompt.d.ts.map +1 -0
  166. package/dist/ai/compose-prompt.js +49 -0
  167. package/dist/ai/compose-prompt.js.map +1 -0
  168. package/dist/ai/errors.d.ts +65 -0
  169. package/dist/ai/errors.d.ts.map +1 -0
  170. package/dist/ai/errors.js +59 -0
  171. package/dist/ai/errors.js.map +1 -0
  172. package/dist/ai/index.d.ts +17 -0
  173. package/dist/ai/index.d.ts.map +1 -0
  174. package/dist/ai/index.js +16 -0
  175. package/dist/ai/index.js.map +1 -0
  176. package/dist/ai/provider.d.ts +76 -0
  177. package/dist/ai/provider.d.ts.map +1 -0
  178. package/dist/ai/provider.js +13 -0
  179. package/dist/ai/provider.js.map +1 -0
  180. package/dist/ai/refusal.d.ts +50 -0
  181. package/dist/ai/refusal.d.ts.map +1 -0
  182. package/dist/ai/refusal.js +100 -0
  183. package/dist/ai/refusal.js.map +1 -0
  184. package/dist/ai/vision-prep.d.ts +32 -0
  185. package/dist/ai/vision-prep.d.ts.map +1 -0
  186. package/dist/ai/vision-prep.js +113 -0
  187. package/dist/ai/vision-prep.js.map +1 -0
  188. package/dist/alt/adapter.d.ts +140 -0
  189. package/dist/alt/adapter.d.ts.map +1 -0
  190. package/dist/alt/adapter.js +7 -0
  191. package/dist/alt/adapter.js.map +1 -0
  192. package/dist/alt/anthropic.d.ts +63 -0
  193. package/dist/alt/anthropic.d.ts.map +1 -0
  194. package/dist/alt/anthropic.js +147 -0
  195. package/dist/alt/anthropic.js.map +1 -0
  196. package/dist/alt/config.d.ts +67 -0
  197. package/dist/alt/config.d.ts.map +1 -0
  198. package/dist/alt/config.js +41 -0
  199. package/dist/alt/config.js.map +1 -0
  200. package/dist/alt/factory.d.ts +19 -0
  201. package/dist/alt/factory.d.ts.map +1 -0
  202. package/dist/alt/factory.js +69 -0
  203. package/dist/alt/factory.js.map +1 -0
  204. package/dist/alt/null-adapter.d.ts +3 -0
  205. package/dist/alt/null-adapter.d.ts.map +1 -0
  206. package/dist/alt/null-adapter.js +43 -0
  207. package/dist/alt/null-adapter.js.map +1 -0
  208. package/dist/alt/ollama.d.ts +40 -0
  209. package/dist/alt/ollama.d.ts.map +1 -0
  210. package/dist/alt/ollama.js +139 -0
  211. package/dist/alt/ollama.js.map +1 -0
  212. package/dist/alt/openai.d.ts +46 -0
  213. package/dist/alt/openai.d.ts.map +1 -0
  214. package/dist/alt/openai.js +118 -0
  215. package/dist/alt/openai.js.map +1 -0
  216. package/dist/alt/prompt-policies.d.ts +79 -0
  217. package/dist/alt/prompt-policies.d.ts.map +1 -0
  218. package/dist/alt/prompt-policies.js +67 -0
  219. package/dist/alt/prompt-policies.js.map +1 -0
  220. package/dist/alt/route-handler.d.ts +56 -0
  221. package/dist/alt/route-handler.d.ts.map +1 -0
  222. package/dist/alt/route-handler.js +122 -0
  223. package/dist/alt/route-handler.js.map +1 -0
  224. package/dist/alt/suggester.d.ts +57 -0
  225. package/dist/alt/suggester.d.ts.map +1 -0
  226. package/dist/alt/suggester.js +133 -0
  227. package/dist/alt/suggester.js.map +1 -0
  228. package/dist/app.js +1 -1
  229. package/dist/app.js.map +1 -1
  230. package/dist/archive-aliases.d.ts +79 -0
  231. package/dist/archive-aliases.d.ts.map +1 -0
  232. package/dist/archive-aliases.js +60 -0
  233. package/dist/archive-aliases.js.map +1 -0
  234. package/dist/archive-helpers.d.ts +73 -0
  235. package/dist/archive-helpers.d.ts.map +1 -0
  236. package/dist/archive-helpers.js +94 -0
  237. package/dist/archive-helpers.js.map +1 -0
  238. package/dist/assets/find-refs.d.ts +1 -1
  239. package/dist/assets/find-refs.js +1 -1
  240. package/dist/assets/find-refs.js.map +1 -1
  241. package/dist/assets/rename.js +1 -1
  242. package/dist/assets/rename.js.map +1 -1
  243. package/dist/assets/replace.js +1 -1
  244. package/dist/assets/replace.js.map +1 -1
  245. package/dist/assets/resolve.js +4 -4
  246. package/dist/assets/resolve.js.map +1 -1
  247. package/dist/assets/serve-route.js +2 -2
  248. package/dist/assets/serve-route.js.map +1 -1
  249. package/dist/assets/validate.d.ts +1 -1
  250. package/dist/assets/validate.js +1 -1
  251. package/dist/audit/config.d.ts +75 -0
  252. package/dist/audit/config.d.ts.map +1 -0
  253. package/dist/audit/config.js +91 -0
  254. package/dist/audit/config.js.map +1 -0
  255. package/dist/audit/context.d.ts +98 -0
  256. package/dist/audit/context.d.ts.map +1 -0
  257. package/dist/audit/context.js +51 -0
  258. package/dist/audit/context.js.map +1 -0
  259. package/dist/audit/errors.d.ts +73 -0
  260. package/dist/audit/errors.d.ts.map +1 -0
  261. package/dist/audit/errors.js +78 -0
  262. package/dist/audit/errors.js.map +1 -0
  263. package/dist/audit/index.d.ts +16 -0
  264. package/dist/audit/index.d.ts.map +1 -0
  265. package/dist/audit/index.js +10 -0
  266. package/dist/audit/index.js.map +1 -0
  267. package/dist/audit/provider.d.ts +73 -0
  268. package/dist/audit/provider.d.ts.map +1 -0
  269. package/dist/audit/provider.js +2 -0
  270. package/dist/audit/provider.js.map +1 -0
  271. package/dist/audit/providers/history.d.ts +66 -0
  272. package/dist/audit/providers/history.d.ts.map +1 -0
  273. package/dist/audit/providers/history.js +102 -0
  274. package/dist/audit/providers/history.js.map +1 -0
  275. package/dist/audit/pseudonymize.d.ts +26 -0
  276. package/dist/audit/pseudonymize.d.ts.map +1 -0
  277. package/dist/audit/pseudonymize.js +86 -0
  278. package/dist/audit/pseudonymize.js.map +1 -0
  279. package/dist/audit/recorder.d.ts +102 -0
  280. package/dist/audit/recorder.d.ts.map +1 -0
  281. package/dist/audit/recorder.js +55 -0
  282. package/dist/audit/recorder.js.map +1 -0
  283. package/dist/audit/retention.d.ts +83 -0
  284. package/dist/audit/retention.d.ts.map +1 -0
  285. package/dist/audit/retention.js +142 -0
  286. package/dist/audit/retention.js.map +1 -0
  287. package/dist/audit/source-ip.d.ts +32 -0
  288. package/dist/audit/source-ip.d.ts.map +1 -0
  289. package/dist/audit/source-ip.js +164 -0
  290. package/dist/audit/source-ip.js.map +1 -0
  291. package/dist/audit/types.d.ts +143 -0
  292. package/dist/audit/types.d.ts.map +1 -0
  293. package/dist/audit/types.js +33 -0
  294. package/dist/audit/types.js.map +1 -0
  295. package/dist/audit/user-agent.d.ts +28 -0
  296. package/dist/audit/user-agent.d.ts.map +1 -0
  297. package/dist/audit/user-agent.js +63 -0
  298. package/dist/audit/user-agent.js.map +1 -0
  299. package/dist/auth/capabilities.d.ts +28 -0
  300. package/dist/auth/capabilities.d.ts.map +1 -0
  301. package/dist/auth/capabilities.js +101 -0
  302. package/dist/auth/capabilities.js.map +1 -0
  303. package/dist/auth/config.d.ts +109 -0
  304. package/dist/auth/config.d.ts.map +1 -0
  305. package/dist/auth/config.js +221 -0
  306. package/dist/auth/config.js.map +1 -0
  307. package/dist/auth/errors.d.ts +72 -0
  308. package/dist/auth/errors.d.ts.map +1 -0
  309. package/dist/auth/errors.js +78 -0
  310. package/dist/auth/errors.js.map +1 -0
  311. package/dist/auth/factory.d.ts +43 -0
  312. package/dist/auth/factory.d.ts.map +1 -0
  313. package/dist/auth/factory.js +48 -0
  314. package/dist/auth/factory.js.map +1 -0
  315. package/dist/auth/index.d.ts +21 -0
  316. package/dist/auth/index.d.ts.map +1 -0
  317. package/dist/auth/index.js +14 -0
  318. package/dist/auth/index.js.map +1 -0
  319. package/dist/auth/ip-match.d.ts +29 -0
  320. package/dist/auth/ip-match.d.ts.map +1 -0
  321. package/dist/auth/ip-match.js +162 -0
  322. package/dist/auth/ip-match.js.map +1 -0
  323. package/dist/auth/provider.d.ts +76 -0
  324. package/dist/auth/provider.d.ts.map +1 -0
  325. package/dist/auth/provider.js +2 -0
  326. package/dist/auth/provider.js.map +1 -0
  327. package/dist/auth/providers/aws-cognito.d.ts +55 -0
  328. package/dist/auth/providers/aws-cognito.d.ts.map +1 -0
  329. package/dist/auth/providers/aws-cognito.js +114 -0
  330. package/dist/auth/providers/aws-cognito.js.map +1 -0
  331. package/dist/auth/providers/azure-easy-auth.d.ts +7 -0
  332. package/dist/auth/providers/azure-easy-auth.d.ts.map +1 -0
  333. package/dist/auth/providers/azure-easy-auth.js +48 -0
  334. package/dist/auth/providers/azure-easy-auth.js.map +1 -0
  335. package/dist/auth/providers/cloudflare-access.d.ts +71 -0
  336. package/dist/auth/providers/cloudflare-access.d.ts.map +1 -0
  337. package/dist/auth/providers/cloudflare-access.js +120 -0
  338. package/dist/auth/providers/cloudflare-access.js.map +1 -0
  339. package/dist/auth/providers/forwarded-user.d.ts +31 -0
  340. package/dist/auth/providers/forwarded-user.d.ts.map +1 -0
  341. package/dist/auth/providers/forwarded-user.js +72 -0
  342. package/dist/auth/providers/forwarded-user.js.map +1 -0
  343. package/dist/auth/providers/none.d.ts +6 -0
  344. package/dist/auth/providers/none.d.ts.map +1 -0
  345. package/dist/auth/providers/none.js +19 -0
  346. package/dist/auth/providers/none.js.map +1 -0
  347. package/dist/auth/providers/tailscale.d.ts +7 -0
  348. package/dist/auth/providers/tailscale.d.ts.map +1 -0
  349. package/dist/auth/providers/tailscale.js +30 -0
  350. package/dist/auth/providers/tailscale.js.map +1 -0
  351. package/dist/auth/role-resolver.d.ts +38 -0
  352. package/dist/auth/role-resolver.d.ts.map +1 -0
  353. package/dist/auth/role-resolver.js +92 -0
  354. package/dist/auth/role-resolver.js.map +1 -0
  355. package/dist/auth/types.d.ts +150 -0
  356. package/dist/auth/types.d.ts.map +1 -0
  357. package/dist/auth/types.js +60 -0
  358. package/dist/auth/types.js.map +1 -0
  359. package/dist/cache/errors.d.ts +41 -0
  360. package/dist/cache/errors.d.ts.map +1 -0
  361. package/dist/cache/errors.js +44 -0
  362. package/dist/cache/errors.js.map +1 -0
  363. package/dist/cache/factories.d.ts +17 -0
  364. package/dist/cache/factories.d.ts.map +1 -0
  365. package/dist/cache/factories.js +17 -0
  366. package/dist/cache/factories.js.map +1 -0
  367. package/dist/cache/keys.d.ts +63 -0
  368. package/dist/cache/keys.d.ts.map +1 -0
  369. package/dist/cache/keys.js +145 -0
  370. package/dist/cache/keys.js.map +1 -0
  371. package/dist/cache/memory.d.ts +51 -0
  372. package/dist/cache/memory.d.ts.map +1 -0
  373. package/dist/cache/memory.js +204 -0
  374. package/dist/cache/memory.js.map +1 -0
  375. package/dist/cache/per-site.d.ts +22 -0
  376. package/dist/cache/per-site.d.ts.map +1 -0
  377. package/dist/cache/per-site.js +114 -0
  378. package/dist/cache/per-site.js.map +1 -0
  379. package/dist/cache/types.d.ts +142 -0
  380. package/dist/cache/types.d.ts.map +1 -0
  381. package/dist/cache/types.js +33 -0
  382. package/dist/cache/types.js.map +1 -0
  383. package/dist/cli/archive.d.ts +44 -0
  384. package/dist/cli/archive.d.ts.map +1 -0
  385. package/dist/cli/archive.js +310 -0
  386. package/dist/cli/archive.js.map +1 -0
  387. package/dist/cli/bootstrap.d.ts +15 -8
  388. package/dist/cli/bootstrap.d.ts.map +1 -1
  389. package/dist/cli/bootstrap.js +59 -23
  390. package/dist/cli/bootstrap.js.map +1 -1
  391. package/dist/cli/dev-template-watcher.d.ts +29 -0
  392. package/dist/cli/dev-template-watcher.d.ts.map +1 -0
  393. package/dist/cli/dev-template-watcher.js +38 -0
  394. package/dist/cli/dev-template-watcher.js.map +1 -0
  395. package/dist/cli/history.d.ts.map +1 -1
  396. package/dist/cli/history.js +5 -3
  397. package/dist/cli/history.js.map +1 -1
  398. package/dist/cli/index.js +712 -395
  399. package/dist/cli/index.js.map +1 -1
  400. package/dist/cli/validate-flags.d.ts +29 -0
  401. package/dist/cli/validate-flags.d.ts.map +1 -0
  402. package/dist/cli/validate-flags.js +49 -0
  403. package/dist/cli/validate-flags.js.map +1 -0
  404. package/dist/compare.d.ts +1 -1
  405. package/dist/compare.d.ts.map +1 -1
  406. package/dist/compare.js +25 -23
  407. package/dist/compare.js.map +1 -1
  408. package/dist/component-ids.d.ts +25 -0
  409. package/dist/component-ids.d.ts.map +1 -0
  410. package/dist/component-ids.js +83 -0
  411. package/dist/component-ids.js.map +1 -0
  412. package/dist/config/define.d.ts +61 -0
  413. package/dist/config/define.d.ts.map +1 -0
  414. package/dist/config/define.js +64 -0
  415. package/dist/config/define.js.map +1 -0
  416. package/dist/config/errors.d.ts +32 -0
  417. package/dist/config/errors.d.ts.map +1 -0
  418. package/dist/config/errors.js +40 -0
  419. package/dist/config/errors.js.map +1 -0
  420. package/dist/config/index.d.ts +13 -0
  421. package/dist/config/index.d.ts.map +1 -0
  422. package/dist/config/index.js +20 -0
  423. package/dist/config/index.js.map +1 -0
  424. package/dist/config/loader.d.ts +105 -0
  425. package/dist/config/loader.d.ts.map +1 -0
  426. package/dist/config/loader.js +265 -0
  427. package/dist/config/loader.js.map +1 -0
  428. package/dist/config/schemas.d.ts +89 -0
  429. package/dist/config/schemas.d.ts.map +1 -0
  430. package/dist/config/schemas.js +172 -0
  431. package/dist/config/schemas.js.map +1 -0
  432. package/dist/config/types.d.ts +32 -0
  433. package/dist/config/types.d.ts.map +1 -0
  434. package/dist/config/types.js +15 -0
  435. package/dist/config/types.js.map +1 -0
  436. package/dist/deploy/cloudflare-workers.d.ts +46 -0
  437. package/dist/deploy/cloudflare-workers.d.ts.map +1 -0
  438. package/dist/deploy/cloudflare-workers.js +213 -0
  439. package/dist/deploy/cloudflare-workers.js.map +1 -0
  440. package/dist/deploy/errors.d.ts +66 -0
  441. package/dist/deploy/errors.d.ts.map +1 -0
  442. package/dist/deploy/errors.js +82 -0
  443. package/dist/deploy/errors.js.map +1 -0
  444. package/dist/deploy/index.d.ts +9 -0
  445. package/dist/deploy/index.d.ts.map +1 -0
  446. package/dist/deploy/index.js +3 -0
  447. package/dist/deploy/index.js.map +1 -0
  448. package/dist/deploy/types.d.ts +162 -0
  449. package/dist/deploy/types.d.ts.map +1 -0
  450. package/dist/deploy/types.js +2 -0
  451. package/dist/deploy/types.js.map +1 -0
  452. package/dist/fragments/create.d.ts +70 -0
  453. package/dist/fragments/create.d.ts.map +1 -0
  454. package/dist/fragments/create.js +93 -0
  455. package/dist/fragments/create.js.map +1 -0
  456. package/dist/fragments/publish.d.ts +37 -0
  457. package/dist/fragments/publish.d.ts.map +1 -0
  458. package/dist/fragments/publish.js +52 -0
  459. package/dist/fragments/publish.js.map +1 -0
  460. package/dist/fragments/save.d.ts +81 -0
  461. package/dist/fragments/save.d.ts.map +1 -0
  462. package/dist/fragments/save.js +105 -0
  463. package/dist/fragments/save.js.map +1 -0
  464. package/dist/history-recorder.d.ts +5 -5
  465. package/dist/history-recorder.d.ts.map +1 -1
  466. package/dist/history-recorder.js +4 -4
  467. package/dist/history-recorder.js.map +1 -1
  468. package/dist/history-restorer.js +2 -2
  469. package/dist/history-restorer.js.map +1 -1
  470. package/dist/history.d.ts +1 -1
  471. package/dist/hooks/audit-emitter.d.ts +73 -0
  472. package/dist/hooks/audit-emitter.d.ts.map +1 -0
  473. package/dist/hooks/audit-emitter.js +13 -0
  474. package/dist/hooks/audit-emitter.js.map +1 -0
  475. package/dist/hooks/context.d.ts +78 -0
  476. package/dist/hooks/context.d.ts.map +1 -0
  477. package/dist/hooks/context.js +56 -0
  478. package/dist/hooks/context.js.map +1 -0
  479. package/dist/hooks/contribution.d.ts +90 -0
  480. package/dist/hooks/contribution.d.ts.map +1 -0
  481. package/dist/hooks/contribution.js +2 -0
  482. package/dist/hooks/contribution.js.map +1 -0
  483. package/dist/hooks/dispatch.d.ts +30 -0
  484. package/dist/hooks/dispatch.d.ts.map +1 -0
  485. package/dist/hooks/dispatch.js +252 -0
  486. package/dist/hooks/dispatch.js.map +1 -0
  487. package/dist/hooks/errors.d.ts +100 -0
  488. package/dist/hooks/errors.d.ts.map +1 -0
  489. package/dist/hooks/errors.js +103 -0
  490. package/dist/hooks/errors.js.map +1 -0
  491. package/dist/hooks/index.d.ts +15 -0
  492. package/dist/hooks/index.d.ts.map +1 -0
  493. package/dist/hooks/index.js +6 -0
  494. package/dist/hooks/index.js.map +1 -0
  495. package/dist/hooks/registry.d.ts +53 -0
  496. package/dist/hooks/registry.d.ts.map +1 -0
  497. package/dist/hooks/registry.js +139 -0
  498. package/dist/hooks/registry.js.map +1 -0
  499. package/dist/hooks/storage.d.ts +43 -0
  500. package/dist/hooks/storage.d.ts.map +1 -0
  501. package/dist/hooks/storage.js +2 -0
  502. package/dist/hooks/storage.js.map +1 -0
  503. package/dist/hooks/types.d.ts +324 -0
  504. package/dist/hooks/types.d.ts.map +1 -0
  505. package/dist/hooks/types.js +2 -0
  506. package/dist/hooks/types.js.map +1 -0
  507. package/dist/index.d.ts +26 -6
  508. package/dist/index.d.ts.map +1 -1
  509. package/dist/index.js +49 -5
  510. package/dist/index.js.map +1 -1
  511. package/dist/locale.d.ts +5 -1
  512. package/dist/locale.d.ts.map +1 -1
  513. package/dist/locale.js +6 -2
  514. package/dist/locale.js.map +1 -1
  515. package/dist/manifest-save.d.ts +255 -0
  516. package/dist/manifest-save.d.ts.map +1 -0
  517. package/dist/manifest-save.js +260 -0
  518. package/dist/manifest-save.js.map +1 -0
  519. package/dist/manifest.d.ts +1 -2
  520. package/dist/manifest.d.ts.map +1 -1
  521. package/dist/manifest.js +43 -44
  522. package/dist/manifest.js.map +1 -1
  523. package/dist/node-floor.d.ts +3 -0
  524. package/dist/node-floor.d.ts.map +1 -0
  525. package/dist/node-floor.js +3 -0
  526. package/dist/node-floor.js.map +1 -0
  527. package/dist/pages/create.d.ts +103 -0
  528. package/dist/pages/create.d.ts.map +1 -0
  529. package/dist/pages/create.js +117 -0
  530. package/dist/pages/create.js.map +1 -0
  531. package/dist/pages/publish.d.ts +59 -0
  532. package/dist/pages/publish.d.ts.map +1 -0
  533. package/dist/pages/publish.js +78 -0
  534. package/dist/pages/publish.js.map +1 -0
  535. package/dist/pages/save.d.ts +97 -0
  536. package/dist/pages/save.d.ts.map +1 -0
  537. package/dist/pages/save.js +138 -0
  538. package/dist/pages/save.js.map +1 -0
  539. package/dist/providers/factories.d.ts +65 -0
  540. package/dist/providers/factories.d.ts.map +1 -0
  541. package/dist/providers/factories.js +189 -0
  542. package/dist/providers/factories.js.map +1 -0
  543. package/dist/publish-item.d.ts +225 -0
  544. package/dist/publish-item.d.ts.map +1 -0
  545. package/dist/publish-item.js +210 -0
  546. package/dist/publish-item.js.map +1 -0
  547. package/dist/publish-rendered.d.ts.map +1 -1
  548. package/dist/publish-rendered.js +75 -6
  549. package/dist/publish-rendered.js.map +1 -1
  550. package/dist/publish-renderers.d.ts +132 -0
  551. package/dist/publish-renderers.d.ts.map +1 -0
  552. package/dist/publish-renderers.js +240 -0
  553. package/dist/publish-renderers.js.map +1 -0
  554. package/dist/publish-run.d.ts +223 -0
  555. package/dist/publish-run.d.ts.map +1 -0
  556. package/dist/publish-run.js +307 -0
  557. package/dist/publish-run.js.map +1 -0
  558. package/dist/publish.d.ts.map +1 -1
  559. package/dist/publish.js +1 -10
  560. package/dist/publish.js.map +1 -1
  561. package/dist/render-for-analysis.d.ts +24 -0
  562. package/dist/render-for-analysis.d.ts.map +1 -0
  563. package/dist/render-for-analysis.js +146 -0
  564. package/dist/render-for-analysis.js.map +1 -0
  565. package/dist/resolver.d.ts.map +1 -1
  566. package/dist/resolver.js +47 -23
  567. package/dist/resolver.js.map +1 -1
  568. package/dist/runtime/archive-marker.d.ts +62 -0
  569. package/dist/runtime/archive-marker.d.ts.map +1 -0
  570. package/dist/runtime/archive-marker.js +88 -0
  571. package/dist/runtime/archive-marker.js.map +1 -0
  572. package/dist/runtime/capability-gap-warnings.d.ts +42 -0
  573. package/dist/runtime/capability-gap-warnings.d.ts.map +1 -0
  574. package/dist/runtime/capability-gap-warnings.js +28 -0
  575. package/dist/runtime/capability-gap-warnings.js.map +1 -0
  576. package/dist/runtime/redirects-emit.d.ts +93 -0
  577. package/dist/runtime/redirects-emit.d.ts.map +1 -0
  578. package/dist/runtime/redirects-emit.js +89 -0
  579. package/dist/runtime/redirects-emit.js.map +1 -0
  580. package/dist/runtime/runtime-capabilities.d.ts +79 -0
  581. package/dist/runtime/runtime-capabilities.d.ts.map +1 -0
  582. package/dist/runtime/runtime-capabilities.js +60 -0
  583. package/dist/runtime/runtime-capabilities.js.map +1 -0
  584. package/dist/save-etag.d.ts +69 -0
  585. package/dist/save-etag.d.ts.map +1 -0
  586. package/dist/save-etag.js +118 -0
  587. package/dist/save-etag.js.map +1 -0
  588. package/dist/site-loader.d.ts +42 -4
  589. package/dist/site-loader.d.ts.map +1 -1
  590. package/dist/site-loader.js +27 -8
  591. package/dist/site-loader.js.map +1 -1
  592. package/dist/targets.d.ts +21 -12
  593. package/dist/targets.d.ts.map +1 -1
  594. package/dist/targets.js +27 -95
  595. package/dist/targets.js.map +1 -1
  596. package/dist/testing/admin-cache-contract.d.ts +52 -0
  597. package/dist/testing/admin-cache-contract.d.ts.map +1 -0
  598. package/dist/testing/admin-cache-contract.js +203 -0
  599. package/dist/testing/admin-cache-contract.js.map +1 -0
  600. package/dist/testing/index.d.ts +11 -0
  601. package/dist/testing/index.d.ts.map +1 -0
  602. package/dist/testing/index.js +11 -0
  603. package/dist/testing/index.js.map +1 -0
  604. package/dist/transforms/factories.d.ts +16 -0
  605. package/dist/transforms/factories.d.ts.map +1 -0
  606. package/dist/transforms/factories.js +18 -0
  607. package/dist/transforms/factories.js.map +1 -0
  608. package/dist/transforms/index.d.ts +10 -17
  609. package/dist/transforms/index.d.ts.map +1 -1
  610. package/dist/transforms/index.js +4 -28
  611. package/dist/transforms/index.js.map +1 -1
  612. package/dist/transforms/sharp.d.ts +15 -1
  613. package/dist/transforms/sharp.d.ts.map +1 -1
  614. package/dist/transforms/sharp.js +34 -20
  615. package/dist/transforms/sharp.js.map +1 -1
  616. package/dist/types.d.ts +379 -52
  617. package/dist/types.d.ts.map +1 -1
  618. package/dist/types.js +20 -1
  619. package/dist/types.js.map +1 -1
  620. package/dist/validation/alt-required-walker.d.ts +27 -0
  621. package/dist/validation/alt-required-walker.d.ts.map +1 -0
  622. package/dist/validation/alt-required-walker.js +108 -0
  623. package/dist/validation/alt-required-walker.js.map +1 -0
  624. package/dist/validation/default-registry.d.ts +12 -0
  625. package/dist/validation/default-registry.d.ts.map +1 -0
  626. package/dist/validation/default-registry.js +55 -0
  627. package/dist/validation/default-registry.js.map +1 -0
  628. package/dist/validation/publish-audit.d.ts +44 -0
  629. package/dist/validation/publish-audit.d.ts.map +1 -0
  630. package/dist/validation/publish-audit.js +64 -0
  631. package/dist/validation/publish-audit.js.map +1 -0
  632. package/dist/validation/registry.d.ts +23 -0
  633. package/dist/validation/registry.d.ts.map +1 -0
  634. package/dist/validation/registry.js +15 -0
  635. package/dist/validation/registry.js.map +1 -0
  636. package/dist/validation/save-delta.d.ts +46 -0
  637. package/dist/validation/save-delta.d.ts.map +1 -0
  638. package/dist/validation/save-delta.js +57 -0
  639. package/dist/validation/save-delta.js.map +1 -0
  640. package/dist/validation/scanner.d.ts +91 -0
  641. package/dist/validation/scanner.d.ts.map +1 -0
  642. package/dist/validation/scanner.js +327 -0
  643. package/dist/validation/scanner.js.map +1 -0
  644. package/dist/validation/template-impact.d.ts +52 -0
  645. package/dist/validation/template-impact.d.ts.map +1 -0
  646. package/dist/validation/template-impact.js +53 -0
  647. package/dist/validation/template-impact.js.map +1 -0
  648. package/dist/validation/types.d.ts +123 -0
  649. package/dist/validation/types.d.ts.map +1 -0
  650. package/dist/validation/types.js +7 -0
  651. package/dist/validation/types.js.map +1 -0
  652. package/dist/validation/validators/accessibility.d.ts +3 -0
  653. package/dist/validation/validators/accessibility.d.ts.map +1 -0
  654. package/dist/validation/validators/accessibility.js +106 -0
  655. package/dist/validation/validators/accessibility.js.map +1 -0
  656. package/dist/validation/validators/aliasof-points-to-archived.d.ts +40 -0
  657. package/dist/validation/validators/aliasof-points-to-archived.d.ts.map +1 -0
  658. package/dist/validation/validators/aliasof-points-to-archived.js +34 -0
  659. package/dist/validation/validators/aliasof-points-to-archived.js.map +1 -0
  660. package/dist/validation/validators/alt-required.d.ts +3 -0
  661. package/dist/validation/validators/alt-required.d.ts.map +1 -0
  662. package/dist/validation/validators/alt-required.js +118 -0
  663. package/dist/validation/validators/alt-required.js.map +1 -0
  664. package/dist/validation/validators/archive-not-supported-on-target.d.ts +3 -0
  665. package/dist/validation/validators/archive-not-supported-on-target.d.ts.map +1 -0
  666. package/dist/validation/validators/archive-not-supported-on-target.js +38 -0
  667. package/dist/validation/validators/archive-not-supported-on-target.js.map +1 -0
  668. package/dist/validation/validators/broken-links.d.ts +3 -0
  669. package/dist/validation/validators/broken-links.d.ts.map +1 -0
  670. package/dist/validation/validators/broken-links.js +190 -0
  671. package/dist/validation/validators/broken-links.js.map +1 -0
  672. package/dist/validation/validators/circular-alias.d.ts +36 -0
  673. package/dist/validation/validators/circular-alias.d.ts.map +1 -0
  674. package/dist/validation/validators/circular-alias.js +63 -0
  675. package/dist/validation/validators/circular-alias.js.map +1 -0
  676. package/dist/validation/validators/circular-fragment.d.ts +15 -0
  677. package/dist/validation/validators/circular-fragment.d.ts.map +1 -0
  678. package/dist/validation/validators/circular-fragment.js +97 -0
  679. package/dist/validation/validators/circular-fragment.js.map +1 -0
  680. package/dist/validation/validators/dangling-alias.d.ts +38 -0
  681. package/dist/validation/validators/dangling-alias.d.ts.map +1 -0
  682. package/dist/validation/validators/dangling-alias.js +31 -0
  683. package/dist/validation/validators/dangling-alias.js.map +1 -0
  684. package/dist/validation/validators/deploy-target-type-supported.d.ts +3 -0
  685. package/dist/validation/validators/deploy-target-type-supported.d.ts.map +1 -0
  686. package/dist/validation/validators/deploy-target-type-supported.js +32 -0
  687. package/dist/validation/validators/deploy-target-type-supported.js.map +1 -0
  688. package/dist/validation/validators/dynamic-route-conflict.d.ts +18 -0
  689. package/dist/validation/validators/dynamic-route-conflict.d.ts.map +1 -0
  690. package/dist/validation/validators/dynamic-route-conflict.js +80 -0
  691. package/dist/validation/validators/dynamic-route-conflict.js.map +1 -0
  692. package/dist/validation/validators/html-validity.d.ts +3 -0
  693. package/dist/validation/validators/html-validity.d.ts.map +1 -0
  694. package/dist/validation/validators/html-validity.js +89 -0
  695. package/dist/validation/validators/html-validity.js.map +1 -0
  696. package/dist/validation/validators/orphaned-locale-file.d.ts +21 -0
  697. package/dist/validation/validators/orphaned-locale-file.d.ts.map +1 -0
  698. package/dist/validation/validators/orphaned-locale-file.js +84 -0
  699. package/dist/validation/validators/orphaned-locale-file.js.map +1 -0
  700. package/dist/validation/validators/referenced-archived-without-alias.d.ts +3 -0
  701. package/dist/validation/validators/referenced-archived-without-alias.d.ts.map +1 -0
  702. package/dist/validation/validators/referenced-archived-without-alias.js +65 -0
  703. package/dist/validation/validators/referenced-archived-without-alias.js.map +1 -0
  704. package/dist/validation/validators/referenced-asset-exists.d.ts +13 -0
  705. package/dist/validation/validators/referenced-asset-exists.d.ts.map +1 -0
  706. package/dist/validation/validators/referenced-asset-exists.js +80 -0
  707. package/dist/validation/validators/referenced-asset-exists.js.map +1 -0
  708. package/dist/validation/validators/referenced-fragment-exists.d.ts +9 -0
  709. package/dist/validation/validators/referenced-fragment-exists.d.ts.map +1 -0
  710. package/dist/validation/validators/referenced-fragment-exists.js +52 -0
  711. package/dist/validation/validators/referenced-fragment-exists.js.map +1 -0
  712. package/dist/validation/validators/referenced-template-exists.d.ts +10 -0
  713. package/dist/validation/validators/referenced-template-exists.d.ts.map +1 -0
  714. package/dist/validation/validators/referenced-template-exists.js +74 -0
  715. package/dist/validation/validators/referenced-template-exists.js.map +1 -0
  716. package/dist/validation/validators/schema-conformance.d.ts +17 -0
  717. package/dist/validation/validators/schema-conformance.d.ts.map +1 -0
  718. package/dist/validation/validators/schema-conformance.js +94 -0
  719. package/dist/validation/validators/schema-conformance.js.map +1 -0
  720. package/dist/validation/validators/target-deploy-coverage.d.ts +3 -0
  721. package/dist/validation/validators/target-deploy-coverage.d.ts.map +1 -0
  722. package/dist/validation/validators/target-deploy-coverage.js +37 -0
  723. package/dist/validation/validators/target-deploy-coverage.js.map +1 -0
  724. package/dist/validation/validators/unused-fragment.d.ts +16 -0
  725. package/dist/validation/validators/unused-fragment.d.ts.map +1 -0
  726. package/dist/validation/validators/unused-fragment.js +86 -0
  727. package/dist/validation/validators/unused-fragment.js.map +1 -0
  728. package/package.json +54 -31
  729. package/admin-dist/assets/index-BO9-CXmW.css +0 -1
  730. package/admin-dist/assets/index-Ufu8zZH_.js +0 -668
  731. package/admin-dist/assets/rolldown-runtime-COnpUsM8.js +0 -1
  732. package/admin-dist/assets/vendor-rjsf-HKBAjOmQ.js +0 -32
  733. package/admin-dist/assets/vendor-tiptap-IyO99U4R.js +0 -142
  734. package/admin-dist/assets/vendor-vue-D3wBSmDf.js +0 -1
  735. package/dist/publish-locale.d.ts +0 -44
  736. package/dist/publish-locale.d.ts.map +0 -1
  737. package/dist/publish-locale.js +0 -103
  738. package/dist/publish-locale.js.map +0 -1
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Site config + Gazetta config loader.
3
+ *
4
+ * Per design-config.md, design-config-implementation.md Cut 2, and
5
+ * locked Q1-Q4:
6
+ *
7
+ * - jiti for TS evaluation (reuses template-loader's pattern)
8
+ * - dotenv loaded BEFORE config eval (Q4 lock; project-root only;
9
+ * CI-skip preserved)
10
+ * - Discovery rules per Q2 lock:
11
+ * - Both root site.config.ts AND sites/ dir present → ConfigLayoutError
12
+ * - sites/ dir exists → walk subdirectories with site.config.ts;
13
+ * skip + warn for any subdir without it
14
+ * - Otherwise → flat layout: site.config.ts at project root
15
+ * - gazetta.config.ts at project root is optional; absent = built-in defaults
16
+ * - Zod validation on every load (defense in depth alongside TS types)
17
+ * - Defaults flow per design-config.md: object-fields inherit from
18
+ * gazetta.defaults; arrays (plugins, hooks) are explicit per site
19
+ */
20
+ import { existsSync, readdirSync, statSync } from 'node:fs';
21
+ import { join, resolve } from 'node:path';
22
+ import { pathToFileURL } from 'node:url';
23
+ import { createJiti } from 'jiti';
24
+ import { ConfigEvaluationError, ConfigLayoutError, ConfigValidationError } from './errors.js';
25
+ import { GazettaConfigSchema, SiteConfigSchema } from './schemas.js';
26
+ const SITE_CONFIG_FILES = ['site.config.ts', 'site.config.js', 'site.config.mjs'];
27
+ const GAZETTA_CONFIG_FILES = ['gazetta.config.ts', 'gazetta.config.js', 'gazetta.config.mjs'];
28
+ /**
29
+ * Find the first existing config file in a directory matching the
30
+ * known extensions (.ts / .js / .mjs).
31
+ */
32
+ function findConfigFile(dir, candidates) {
33
+ for (const name of candidates) {
34
+ const full = join(dir, name);
35
+ if (existsSync(full))
36
+ return full;
37
+ }
38
+ return null;
39
+ }
40
+ /**
41
+ * Evaluate a TypeScript / JavaScript config file via jiti.
42
+ *
43
+ * Returns the default export. Throws ConfigEvaluationError on parse /
44
+ * runtime errors.
45
+ */
46
+ async function evaluateConfig(filePath) {
47
+ const jiti = createJiti(pathToFileURL(filePath).href, {
48
+ jsx: false,
49
+ moduleCache: false,
50
+ });
51
+ // Anchor relative filesystem paths inside the config to the config file's
52
+ // directory (so `filesystemStorage({ path: './dist' })` resolves the same
53
+ // way regardless of which directory the CLI was invoked from). Cleared in
54
+ // a finally block so test harnesses + concurrent loads don't leak state.
55
+ const { setConfigAnchor, configAnchorFromFile } = await import('../providers/factories.js');
56
+ setConfigAnchor(configAnchorFromFile(filePath));
57
+ let mod;
58
+ try {
59
+ mod = (await jiti.import(filePath));
60
+ }
61
+ catch (err) {
62
+ throw new ConfigEvaluationError(`Failed to evaluate config: ${err.message}`, filePath, { cause: err });
63
+ }
64
+ finally {
65
+ setConfigAnchor(null);
66
+ }
67
+ if (!mod || typeof mod !== 'object') {
68
+ throw new ConfigEvaluationError('Config module did not produce a default export', filePath);
69
+ }
70
+ // Default export shape: jiti normalizes both `export default { ... }` and
71
+ // `module.exports = { ... }` to a `.default` field on the namespace object.
72
+ const value = 'default' in mod ? mod.default : mod;
73
+ if (!value || typeof value !== 'object') {
74
+ throw new ConfigEvaluationError('Config default export must be an object (use defineSite() or defineGazetta())', filePath);
75
+ }
76
+ return value;
77
+ }
78
+ /**
79
+ * Validate a loaded config object against its Zod schema.
80
+ *
81
+ * Throws ConfigValidationError with the file path on schema failure.
82
+ */
83
+ function validateSiteConfig(value, filePath) {
84
+ const result = SiteConfigSchema.safeParse(value);
85
+ if (!result.success) {
86
+ const issues = result.error.issues.map(issue => ` ${issue.path.join('.')}: ${issue.message}`).join('\n');
87
+ throw new ConfigValidationError(`Site config validation failed:\n${issues}`, filePath);
88
+ }
89
+ return result.data;
90
+ }
91
+ function validateGazettaConfig(value, filePath) {
92
+ const result = GazettaConfigSchema.safeParse(value);
93
+ if (!result.success) {
94
+ const issues = result.error.issues.map(issue => ` ${issue.path.join('.')}: ${issue.message}`).join('\n');
95
+ throw new ConfigValidationError(`Gazetta config validation failed:\n${issues}`, filePath);
96
+ }
97
+ return result.data;
98
+ }
99
+ /**
100
+ * Load gazetta.config.ts from the project root.
101
+ *
102
+ * Returns null if no config file is present (built-in defaults apply).
103
+ */
104
+ export async function loadGazettaConfig(projectRoot) {
105
+ const configPath = findConfigFile(projectRoot, GAZETTA_CONFIG_FILES);
106
+ if (!configPath)
107
+ return null;
108
+ const value = await evaluateConfig(configPath);
109
+ return validateGazettaConfig(value, configPath);
110
+ }
111
+ /**
112
+ * Load a single site.config.ts from a site directory.
113
+ *
114
+ * Per Q2 lock: if the site directory exists but has no config file,
115
+ * returns null (caller decides whether to warn + skip).
116
+ */
117
+ export async function loadSiteConfig(siteDir) {
118
+ const configPath = findConfigFile(siteDir, SITE_CONFIG_FILES);
119
+ if (!configPath)
120
+ return null;
121
+ const value = await evaluateConfig(configPath);
122
+ const config = validateSiteConfig(value, configPath);
123
+ return { config, configPath };
124
+ }
125
+ /**
126
+ * Apply gazetta.config.defaults to a site config (object-fields only;
127
+ * arrays do not inherit per design-config.md "Defaults flow").
128
+ *
129
+ * Per the single-Site-per-process invariant (`CONTEXT.md`): each Gazetta
130
+ * process loads exactly one Site, so the gazetta-level cache instance is
131
+ * inherited directly when the Site doesn't set its own `cache:` field.
132
+ * No per-Site reconstruction; each process re-evaluates
133
+ * `gazetta.config.ts` and gets fresh instances at boot.
134
+ *
135
+ * Audit defaults still flow through the `admin` block as a loose record
136
+ * — the audit foundation hasn't migrated to Path X yet.
137
+ */
138
+ function applyGazettaDefaults(site, defaults) {
139
+ if (!defaults)
140
+ return site;
141
+ const admin = site.admin ?? {};
142
+ return {
143
+ ...site,
144
+ cache: site.cache ?? defaults.cache,
145
+ admin: {
146
+ ...admin,
147
+ audit: admin.audit ?? defaults.audit,
148
+ },
149
+ };
150
+ }
151
+ /**
152
+ * Discover and load all sites in a project.
153
+ *
154
+ * Implements Q2 layout-resolution rules:
155
+ * - Both root site.config.ts AND sites/ dir present → ConfigLayoutError
156
+ * - sites/ dir exists → walk subdirectories; warn + skip any without site.config.ts
157
+ * - Otherwise → flat layout: single site at project root
158
+ */
159
+ export async function discoverSites(projectRoot, gazetta, options) {
160
+ const log = options?.logger ?? ((msg) => console.warn(msg));
161
+ const rootConfigPath = findConfigFile(projectRoot, SITE_CONFIG_FILES);
162
+ const sitesDir = join(projectRoot, 'sites');
163
+ const sitesDirExists = existsSync(sitesDir) && statSync(sitesDir).isDirectory();
164
+ // Q2 conflict check
165
+ if (rootConfigPath && sitesDirExists) {
166
+ throw new ConfigLayoutError(`Conflicting layout: both ${rootConfigPath} (flat) AND ${sitesDir}/ (multi-site) are present. Pick one — either delete the root site.config.ts to use multi-site, or delete the sites/ directory to use flat layout.`);
167
+ }
168
+ const defaults = gazetta?.defaults;
169
+ // Flat layout: single site at project root
170
+ if (rootConfigPath) {
171
+ const value = await evaluateConfig(rootConfigPath);
172
+ const config = applyGazettaDefaults(validateSiteConfig(value, rootConfigPath), defaults);
173
+ return [
174
+ {
175
+ name: config.name,
176
+ dir: projectRoot,
177
+ configPath: rootConfigPath,
178
+ config,
179
+ },
180
+ ];
181
+ }
182
+ // Multi-site layout: walk sites/
183
+ if (!sitesDirExists) {
184
+ log(`No site config found: neither ${SITE_CONFIG_FILES[0]} at project root nor sites/ directory exists.`);
185
+ return [];
186
+ }
187
+ const subdirs = readdirSync(sitesDir, { withFileTypes: true })
188
+ .filter(entry => entry.isDirectory())
189
+ .map(entry => entry.name)
190
+ .sort();
191
+ if (subdirs.length === 0) {
192
+ log(`Empty sites/ directory at ${sitesDir} — no sites to load.`);
193
+ return [];
194
+ }
195
+ const sites = [];
196
+ for (const dirName of subdirs) {
197
+ const siteDir = join(sitesDir, dirName);
198
+ const loaded = await loadSiteConfig(siteDir);
199
+ if (!loaded) {
200
+ log(`Skipping ${siteDir}: no ${SITE_CONFIG_FILES[0]} found.`);
201
+ continue;
202
+ }
203
+ sites.push({
204
+ name: loaded.config.name,
205
+ dir: siteDir,
206
+ configPath: loaded.configPath,
207
+ config: applyGazettaDefaults(loaded.config, defaults),
208
+ });
209
+ }
210
+ return sites;
211
+ }
212
+ /**
213
+ * Load the full project config — gazetta.config.ts (optional) + all
214
+ * discovered sites.
215
+ *
216
+ * This is the top-level entry point that boot flows use. dotenv must
217
+ * already have been loaded before this is called (per Q4 lock).
218
+ */
219
+ export async function loadProjectConfig(projectRoot, options) {
220
+ const absRoot = resolve(projectRoot);
221
+ const gazetta = await loadGazettaConfig(absRoot);
222
+ const sites = await discoverSites(absRoot, gazetta, options);
223
+ return {
224
+ projectRoot: absRoot,
225
+ gazetta,
226
+ sites,
227
+ };
228
+ }
229
+ /**
230
+ * Adapter: convert the user's SiteConfig (input shape) into the
231
+ * runtime SiteManifest shape consumed by site-loader.ts and
232
+ * downstream code.
233
+ *
234
+ * The two shapes are equivalent at runtime — SiteManifest types nested
235
+ * provider blocks (ai, altText, targets, themes.default) more strictly
236
+ * than SiteConfig (which uses Record<string, unknown> for forward-
237
+ * compatibility with foundations that haven't shipped yet).
238
+ *
239
+ * The conversion is structural: pass the values through; cast nested
240
+ * provider blocks to their runtime types. Downstream validation (alt
241
+ * adapter factory, etc.) still runs and rejects malformed nested data.
242
+ *
243
+ * Per design-config-implementation.md Cut 4 — wires the new TS-config
244
+ * loader into existing site-loader.ts without breaking downstream
245
+ * consumers that read site.manifest.{name, locale, targets, ...}.
246
+ */
247
+ export function siteConfigToManifest(config) {
248
+ // The shapes overlap nearly entirely; runtime values flow through.
249
+ // The cast through `unknown` is required because SiteConfig's
250
+ // permissive `Record<string, unknown>` blocks (ai, altText,
251
+ // targets) don't satisfy SiteManifest's stricter typed shapes by
252
+ // simple assignment, but the runtime data is identical.
253
+ return config;
254
+ }
255
+ /**
256
+ * Convert a `GazettaConfig` (Zod-inferred user input) to a runtime
257
+ * `GazettaManifest`. Same lossless cast as `siteConfigToManifest` —
258
+ * the shapes overlap; runtime values flow through. Gazetta-level
259
+ * `ai.provider` is opaque (`z.unknown()`) in the schema but is the
260
+ * constructed `AIProvider` instance at runtime.
261
+ */
262
+ export function gazettaConfigToManifest(config) {
263
+ return config;
264
+ }
265
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Zod schemas for site.config.ts and gazetta.config.ts validation.
3
+ *
4
+ * Per design-config.md and ADR-0005: TS types catch shape errors at
5
+ * edit time; Zod catches env-var-driven errors and shape errors not
6
+ * expressible in TS at load time. Defense in depth.
7
+ *
8
+ * Validation philosophy: enforce the load-bearing structural fields
9
+ * (name, targets, dimensions). Pass-through for nested fields that
10
+ * have their own validation downstream (e.g., target storage configs
11
+ * are validated by their respective providers; AI configs by the alt
12
+ * adapter factory).
13
+ *
14
+ * This keeps the schema small and forward-compatible — adding a new
15
+ * field anywhere in the config tree doesn't require updating this
16
+ * schema.
17
+ */
18
+ import { z } from 'zod';
19
+ /**
20
+ * Per-site config — `sites/{name}/site.config.ts` (or `site.config.ts`
21
+ * at project root for flat layouts).
22
+ *
23
+ * Required for any site to exist. Carries per-site concerns: targets,
24
+ * dimensions (themes/locales), auth, plugins, hooks, audit, SEO defaults.
25
+ */
26
+ export declare const SiteConfigSchema: z.ZodObject<{
27
+ name: z.ZodString;
28
+ version: z.ZodOptional<z.ZodString>;
29
+ locales: z.ZodOptional<z.ZodObject<{
30
+ supported: z.ZodArray<z.ZodString>;
31
+ default: z.ZodOptional<z.ZodString>;
32
+ fallbacks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
33
+ defaultPrefix: z.ZodOptional<z.ZodBoolean>;
34
+ detection: z.ZodOptional<z.ZodBoolean>;
35
+ }, z.core.$strip>>;
36
+ themes: z.ZodOptional<z.ZodObject<{
37
+ supported: z.ZodArray<z.ZodString>;
38
+ default: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>>;
40
+ defaultOgImage: z.ZodOptional<z.ZodString>;
41
+ ai: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
42
+ altText: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
43
+ systemPages: z.ZodOptional<z.ZodArray<z.ZodString>>;
44
+ targets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
45
+ cache: z.ZodOptional<z.ZodUnknown>;
46
+ admin: z.ZodOptional<z.ZodObject<{
47
+ auth: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
48
+ hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
49
+ audit: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
+ notifications: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
51
+ offline: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
52
+ }, z.core.$strip>>;
53
+ }, z.core.$strict>;
54
+ /**
55
+ * Project-level Gazetta config — `gazetta.config.ts` at project root.
56
+ *
57
+ * Optional; absent means use built-in defaults.
58
+ */
59
+ export declare const GazettaConfigSchema: z.ZodObject<{
60
+ logLevel: z.ZodOptional<z.ZodEnum<{
61
+ error: "error";
62
+ trace: "trace";
63
+ debug: "debug";
64
+ info: "info";
65
+ warn: "warn";
66
+ }>>;
67
+ telemetry: z.ZodOptional<z.ZodBoolean>;
68
+ dev: z.ZodOptional<z.ZodObject<{
69
+ port: z.ZodOptional<z.ZodNumber>;
70
+ hostname: z.ZodOptional<z.ZodString>;
71
+ }, z.core.$strip>>;
72
+ defaults: z.ZodOptional<z.ZodObject<{
73
+ cache: z.ZodOptional<z.ZodUnknown>;
74
+ audit: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
75
+ }, z.core.$strip>>;
76
+ ai: z.ZodOptional<z.ZodObject<{
77
+ provider: z.ZodOptional<z.ZodUnknown>;
78
+ model: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>>;
80
+ altText: z.ZodOptional<z.ZodObject<{
81
+ systemPrompt: z.ZodOptional<z.ZodString>;
82
+ maxTokens: z.ZodOptional<z.ZodNumber>;
83
+ }, z.core.$strip>>;
84
+ mcp: z.ZodOptional<z.ZodObject<{
85
+ enabled: z.ZodOptional<z.ZodBoolean>;
86
+ port: z.ZodOptional<z.ZodNumber>;
87
+ }, z.core.$strip>>;
88
+ }, z.core.$strict>;
89
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAoBvB;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiElB,CAAA;AAEX;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0DrB,CAAA"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Zod schemas for site.config.ts and gazetta.config.ts validation.
3
+ *
4
+ * Per design-config.md and ADR-0005: TS types catch shape errors at
5
+ * edit time; Zod catches env-var-driven errors and shape errors not
6
+ * expressible in TS at load time. Defense in depth.
7
+ *
8
+ * Validation philosophy: enforce the load-bearing structural fields
9
+ * (name, targets, dimensions). Pass-through for nested fields that
10
+ * have their own validation downstream (e.g., target storage configs
11
+ * are validated by their respective providers; AI configs by the alt
12
+ * adapter factory).
13
+ *
14
+ * This keeps the schema small and forward-compatible — adding a new
15
+ * field anywhere in the config tree doesn't require updating this
16
+ * schema.
17
+ */
18
+ import { z } from 'zod';
19
+ /**
20
+ * Locale code per BCP 47 — accepts `en`, `en-gb`, `pt-br`, etc.
21
+ * Permissive; downstream resolves the canonical form.
22
+ */
23
+ const LocaleCodeSchema = z.string().regex(/^[a-z]{2,3}(-[a-z0-9]{2,8})?$/, {
24
+ message: 'Locale code must be BCP 47 (e.g., "en", "en-gb", "pt-br")',
25
+ });
26
+ /**
27
+ * Theme name — lowercase ASCII; must NOT collide with a BCP 47 locale code
28
+ * (locked invariant per design-media.md). Validation here checks the
29
+ * lowercase-ASCII rule; the full locale-collision check runs at
30
+ * `resolveSiteThemes` time when the config + locales are joined.
31
+ */
32
+ const ThemeNameSchema = z.string().regex(/^[a-z][a-z0-9-]*$/, {
33
+ message: 'Theme name must be lowercase ASCII letters/digits/hyphens',
34
+ });
35
+ /**
36
+ * Per-site config — `sites/{name}/site.config.ts` (or `site.config.ts`
37
+ * at project root for flat layouts).
38
+ *
39
+ * Required for any site to exist. Carries per-site concerns: targets,
40
+ * dimensions (themes/locales), auth, plugins, hooks, audit, SEO defaults.
41
+ */
42
+ export const SiteConfigSchema = z
43
+ .object({
44
+ name: z.string().min(1, 'Site name is required'),
45
+ version: z.string().optional(),
46
+ locales: z
47
+ .object({
48
+ supported: z.array(LocaleCodeSchema).min(1),
49
+ default: LocaleCodeSchema.optional(),
50
+ fallbacks: z.record(z.string(), LocaleCodeSchema).optional(),
51
+ defaultPrefix: z.boolean().optional(),
52
+ detection: z.boolean().optional(),
53
+ })
54
+ .optional(),
55
+ themes: z
56
+ .object({
57
+ supported: z.array(ThemeNameSchema).min(1),
58
+ default: ThemeNameSchema.optional(),
59
+ })
60
+ .optional(),
61
+ defaultOgImage: z.string().optional(),
62
+ /**
63
+ * AI cross-task block. Validated downstream by the alt adapter
64
+ * factory; here we only check it's an object when present.
65
+ */
66
+ ai: z.record(z.string(), z.unknown()).optional(),
67
+ altText: z.record(z.string(), z.unknown()).optional(),
68
+ systemPages: z.array(z.string()).optional(),
69
+ /**
70
+ * Per-target configurations. Keys are target names; values are
71
+ * TargetConfig shapes validated downstream by storage providers,
72
+ * transform adapters, etc.
73
+ */
74
+ targets: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),
75
+ /**
76
+ * AdminCache instance (Path X — operator constructs via factory call,
77
+ * e.g., `cache: memoryCache({...})`). Validated downstream by checking
78
+ * for the AdminCache method shape; Zod's role here is to accept the
79
+ * opaque constructed instance.
80
+ */
81
+ cache: z.unknown().optional(),
82
+ /**
83
+ * Reserved for future foundations (auth, hooks, audit, notifications).
84
+ * Each block is validated by its own factory at load time per the
85
+ * Universal Provider Requirements.
86
+ *
87
+ * Extension surfaces per ADR-0009:
88
+ * - `hooks` is `HookContribution[]` — array of factory-call results
89
+ * (e.g., `[autoSlugify(), cdnPurge({...})]`). Runtime treats
90
+ * `Array.isArray(hooks)`; schema accepts opaque array.
91
+ * - Future `validators` + `routes` follow the same contribution-array
92
+ * shape when they ship.
93
+ *
94
+ * The `plugins` field was retired per ADR-0009 — no `Plugin` runtime
95
+ * contract; operators import per-surface factories.
96
+ */
97
+ admin: z
98
+ .object({
99
+ auth: z.record(z.string(), z.unknown()).optional(),
100
+ hooks: z.array(z.unknown()).optional(),
101
+ audit: z.record(z.string(), z.unknown()).optional(),
102
+ notifications: z.record(z.string(), z.unknown()).optional(),
103
+ offline: z.record(z.string(), z.unknown()).optional(),
104
+ })
105
+ .optional(),
106
+ })
107
+ .strict();
108
+ /**
109
+ * Project-level Gazetta config — `gazetta.config.ts` at project root.
110
+ *
111
+ * Optional; absent means use built-in defaults.
112
+ */
113
+ export const GazettaConfigSchema = z
114
+ .object({
115
+ logLevel: z.enum(['trace', 'debug', 'info', 'warn', 'error']).optional(),
116
+ telemetry: z.boolean().optional(),
117
+ dev: z
118
+ .object({
119
+ port: z.number().int().min(1).max(65535).optional(),
120
+ hostname: z.string().optional(),
121
+ })
122
+ .optional(),
123
+ /**
124
+ * Defaults that sites inherit unless they override. Object fields
125
+ * merge per-field; arrays (plugins, hooks) do NOT inherit (locked
126
+ * per design-config.md "Defaults flow").
127
+ *
128
+ * `defaults.cache` is a constructed AdminCache instance (Path X —
129
+ * `defaults: { cache: memoryCache({...}) }`). Per the single-Site-
130
+ * per-process invariant in `CONTEXT.md`, each process re-evaluates
131
+ * `gazetta.config.ts` and gets a fresh instance; no per-Site
132
+ * reconstruction needed. Zod accepts the opaque instance.
133
+ */
134
+ defaults: z
135
+ .object({
136
+ cache: z.unknown().optional(),
137
+ audit: z.record(z.string(), z.unknown()).optional(),
138
+ })
139
+ .optional(),
140
+ /**
141
+ * Cross-task AI defaults (gazetta-level rung). Inherited by sites
142
+ * that don't override per the three-rung chain (gazetta → site →
143
+ * target). `provider` is a constructed AIProvider instance (factory
144
+ * call); `model` is a data literal. Schema accepts the opaque
145
+ * provider via `z.unknown()`.
146
+ */
147
+ ai: z
148
+ .object({
149
+ provider: z.unknown().optional(),
150
+ model: z.string().optional(),
151
+ })
152
+ .optional(),
153
+ /**
154
+ * Per-task AI defaults at gazetta level (`altText:` for the alt-text
155
+ * task; future `translation:` etc.). Carry data literals only;
156
+ * provider lives on the cross-task `ai:` block above.
157
+ */
158
+ altText: z
159
+ .object({
160
+ systemPrompt: z.string().optional(),
161
+ maxTokens: z.number().int().positive().optional(),
162
+ })
163
+ .optional(),
164
+ mcp: z
165
+ .object({
166
+ enabled: z.boolean().optional(),
167
+ port: z.number().int().min(1).max(65535).optional(),
168
+ })
169
+ .optional(),
170
+ })
171
+ .strict();
172
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Site config + Gazetta config TypeScript interfaces — the user-facing
3
+ * shape that operators write in `site.config.ts` and `gazetta.config.ts`.
4
+ *
5
+ * Per ADR-0005 and design-config.md:
6
+ * - These types are returned by `defineSite()` / `defineGazetta()` typed
7
+ * identity functions; consumers get full TS inference.
8
+ * - Runtime Zod validation runs on every load (defense in depth — TS
9
+ * catches shape errors at edit time; Zod catches env-var-driven errors
10
+ * at load time).
11
+ * - SiteConfig mirrors the runtime SiteManifest shape but is the user's
12
+ * input contract (more flexible defaults, optional fields).
13
+ */
14
+ import type { z } from 'zod';
15
+ import type { GazettaConfigSchema, SiteConfigSchema } from './schemas.js';
16
+ /**
17
+ * Project-level Gazetta config — `gazetta.config.ts` at project root.
18
+ * Optional; absent means use built-in defaults.
19
+ *
20
+ * Carries cross-site concerns: telemetry, log level, dev port, MCP
21
+ * server settings, default cache/audit providers that sites inherit.
22
+ */
23
+ export type GazettaConfig = z.infer<typeof GazettaConfigSchema>;
24
+ /**
25
+ * Per-site config — `sites/{name}/site.config.ts` (or `site.config.ts`
26
+ * at project root for flat layouts).
27
+ *
28
+ * Required for any site to exist. Carries per-site concerns: targets,
29
+ * dimensions (themes/locales), auth, plugins, hooks, audit, SEO defaults.
30
+ */
31
+ export type SiteConfig = z.infer<typeof SiteConfigSchema>;
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEzE;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Site config + Gazetta config TypeScript interfaces — the user-facing
3
+ * shape that operators write in `site.config.ts` and `gazetta.config.ts`.
4
+ *
5
+ * Per ADR-0005 and design-config.md:
6
+ * - These types are returned by `defineSite()` / `defineGazetta()` typed
7
+ * identity functions; consumers get full TS inference.
8
+ * - Runtime Zod validation runs on every load (defense in depth — TS
9
+ * catches shape errors at edit time; Zod catches env-var-driven errors
10
+ * at load time).
11
+ * - SiteConfig mirrors the runtime SiteManifest shape but is the user's
12
+ * input contract (more flexible defaults, optional fields).
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,46 @@
1
+ import type { WorkerCapableDeployAdapter } from './types.js';
2
+ export interface CloudflareWorkersDeployOptions {
3
+ /** Cloudflare API token with Workers Scripts:Edit + R2 Read:Bucket permissions. */
4
+ apiToken: string;
5
+ /** Cloudflare account ID. */
6
+ accountId: string;
7
+ /** Worker name (also used as the workers.dev subdomain). */
8
+ name: string;
9
+ /** R2 bucket name the worker reads from at request time. */
10
+ bucket: string;
11
+ }
12
+ interface WranglerTomlInput {
13
+ name: string;
14
+ bucket: string;
15
+ siteUrl: string | undefined;
16
+ }
17
+ /**
18
+ * Render the wrangler.toml content. Pure function; unit-testable
19
+ * without mocking fs.
20
+ */
21
+ export declare function renderWranglerToml(input: WranglerTomlInput): string;
22
+ /**
23
+ * Render the worker entry-point code. Pure function. The
24
+ * `cloudflare-r2` adapter at `packages/gazetta/src/workers/` provides
25
+ * the actual request-handling logic; the entry is a thin re-export.
26
+ */
27
+ export declare function renderWorkerEntry(): string;
28
+ /**
29
+ * Extract the deployed URL from wrangler stdout. Pure function.
30
+ *
31
+ * Wrangler 4.x stdout opens with a telemetry banner URL pointing at
32
+ * github.com/cloudflare/workers-sdk; the actual deploy URL appears
33
+ * later as either:
34
+ * - `*.workers.dev` — the default subdomain when `workers_dev = true`
35
+ * - the route domain from `[[routes]]` in wrangler.toml (the
36
+ * operator's `target.siteUrl`)
37
+ *
38
+ * Strategy: prefer the configured siteUrl when present in stdout
39
+ * (deploys with a custom route surface it as part of the "Published"
40
+ * line); otherwise pick the first `*.workers.dev` URL; fall through
41
+ * to the first non-github URL.
42
+ */
43
+ export declare function extractDeployUrl(stdout: string, siteUrl: string | undefined): string | undefined;
44
+ export declare function cloudflareWorkersDeploy(opts: CloudflareWorkersDeployOptions): WorkerCapableDeployAdapter;
45
+ export {};
46
+ //# sourceMappingURL=cloudflare-workers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-workers.d.ts","sourceRoot":"","sources":["../../src/deploy/cloudflare-workers.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAIV,0BAA0B,EAE3B,MAAM,YAAY,CAAA;AAQnB,MAAM,WAAW,8BAA8B;IAC7C,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAA;IAChB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAmBnE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAiBhG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,0BAA0B,CAwHxG"}