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,79 @@
1
+ /**
2
+ * Runtime capability inspection for a configured target.
3
+ *
4
+ * Per `feature-design-process.md` non-foundational disciplines
5
+ * ("Capability-gap UX surfaced at four points") and
6
+ * `design-soft-delete.md` Q10 capability-gap principle: when a feature
7
+ * needs a runtime capability that some configured targets can't
8
+ * provide (archive needing redirects on a worker; future presence
9
+ * needing a persistent connection; future RBAC content filtering
10
+ * needing per-request rendering), the gap surfaces at four uniform
11
+ * places: (1) boot config validate, (2) author-time modal,
12
+ * (3) validator scanner, (4) pre-publish gate.
13
+ *
14
+ * This module is the shared primitive — pure predicates over a
15
+ * `TargetConfig`. Each of the four surfaces consumes the same answer
16
+ * so authors and operators see consistent gap reporting regardless
17
+ * of which surface they're looking at.
18
+ *
19
+ * # The capability vocabulary (closed enum)
20
+ *
21
+ * Future capabilities (presence, RBAC content filtering, dynamic
22
+ * fragments) extend the enum. Each new entry pairs with one or more
23
+ * features that need it; the inspector grows additively without
24
+ * existing call-sites changing.
25
+ *
26
+ * # SOLID
27
+ *
28
+ * - SRP: one file, pure predicates. No I/O, no side effects.
29
+ * - OCP: capability enum extends; existing call sites stay unchanged
30
+ * (they ask "do you have X?" not "are you platform Y?").
31
+ * - DIP: callers depend on the abstract `RuntimeCapability` enum +
32
+ * `inspectTarget()` function, not on platform discrimination.
33
+ */
34
+ import type { TargetConfig } from '../types.js';
35
+ /**
36
+ * Closed enum of runtime capabilities. Extend for new features that
37
+ * need capability-gap UX (presence, RBAC content filtering, dynamic
38
+ * fragments, etc.).
39
+ */
40
+ export type RuntimeCapability =
41
+ /** Worker reads HTML markers and emits `301 → aliasOf` for archived items. */
42
+ 'redirects'
43
+ /** Worker emits `410 Gone` for archived-no-alias items. */
44
+ | 'gone-status';
45
+ /** Reason a capability is missing — surfaces in audit + author UI. */
46
+ export interface CapabilityGap {
47
+ capability: RuntimeCapability;
48
+ /** Human-readable reason; surfaces in author modals + audit logs. */
49
+ reason: string;
50
+ }
51
+ export interface TargetCapabilities {
52
+ /** Capabilities the target supports. */
53
+ has: ReadonlySet<RuntimeCapability>;
54
+ /** Per-missing-capability reasons for the four surfaces. */
55
+ gaps: readonly CapabilityGap[];
56
+ }
57
+ /**
58
+ * Inspect a target's runtime capabilities. Plain-static targets
59
+ * (no worker, no `_redirects` host glue) lack `redirects` and
60
+ * `gone-status`; everything else has both.
61
+ *
62
+ * The plain-static heuristic matches the existing P4 validator
63
+ * (`archive-not-supported-on-target`): `type === 'static'` AND no
64
+ * `redirects.format` configured (or `'none'`) means the host has
65
+ * no mechanism to emit 301/410 for archived URLs.
66
+ *
67
+ * Worker-served target types (`dynamic` + `static-with-worker`)
68
+ * support both capabilities natively. Static targets WITH
69
+ * `redirects.format` ('cloudflare' | 'netlify' | 'json') support
70
+ * `redirects` via the host's `_redirects` file, but plain-static
71
+ * with no host config can't emit `Gone` status — the host's
72
+ * natural 404 is the floor.
73
+ */
74
+ export declare function inspectTarget(target: TargetConfig): TargetCapabilities;
75
+ /** Convenience predicate — boolean answer to "can this target serve 301 redirects?" */
76
+ export declare function canServeRedirects(target: TargetConfig): boolean;
77
+ /** Convenience predicate — boolean answer to "can this target serve 410 Gone?" */
78
+ export declare function canServeGoneStatus(target: TargetConfig): boolean;
79
+ //# sourceMappingURL=runtime-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-capabilities.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB;AAC3B,8EAA8E;AAC5E,WAAW;AACb,2DAA2D;GACzD,aAAa,CAAA;AAEjB,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,GAAG,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAA;IACnC,4DAA4D;IAC5D,IAAI,EAAE,SAAS,aAAa,EAAE,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAoCtE;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE/D;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Inspect a target's runtime capabilities. Plain-static targets
3
+ * (no worker, no `_redirects` host glue) lack `redirects` and
4
+ * `gone-status`; everything else has both.
5
+ *
6
+ * The plain-static heuristic matches the existing P4 validator
7
+ * (`archive-not-supported-on-target`): `type === 'static'` AND no
8
+ * `redirects.format` configured (or `'none'`) means the host has
9
+ * no mechanism to emit 301/410 for archived URLs.
10
+ *
11
+ * Worker-served target types (`dynamic` + `static-with-worker`)
12
+ * support both capabilities natively. Static targets WITH
13
+ * `redirects.format` ('cloudflare' | 'netlify' | 'json') support
14
+ * `redirects` via the host's `_redirects` file, but plain-static
15
+ * with no host config can't emit `Gone` status — the host's
16
+ * natural 404 is the floor.
17
+ */
18
+ export function inspectTarget(target) {
19
+ const has = new Set();
20
+ const gaps = [];
21
+ const redirectsFormat = target.redirects?.format;
22
+ const isPlainStatic = target.type === 'static' && (redirectsFormat === undefined || redirectsFormat === 'none');
23
+ // Worker presence detected via:
24
+ // - `type: 'dynamic'` (ESI mode runs on a worker), OR
25
+ // - a WorkerCapableDeployAdapter (e.g., cloudflareWorkersDeploy)
26
+ // Pure-static deploy adapters (GitHub Pages, S3 static, etc.) don't
27
+ // bundle a worker and don't implement workerRuntimeConfig().
28
+ const hasWorker = target.type === 'dynamic' || (target.deploy !== undefined && 'workerRuntimeConfig' in target.deploy);
29
+ const hasHostRedirects = redirectsFormat !== undefined && redirectsFormat !== 'none';
30
+ if (hasWorker || hasHostRedirects) {
31
+ has.add('redirects');
32
+ }
33
+ else {
34
+ gaps.push({
35
+ capability: 'redirects',
36
+ reason: isPlainStatic
37
+ ? "plain-static target has no worker and no `redirects.format` configured; archived URLs return the host's natural 404 instead of a 301 redirect"
38
+ : 'target lacks a runtime that can emit 301 redirects',
39
+ });
40
+ }
41
+ if (hasWorker) {
42
+ has.add('gone-status');
43
+ }
44
+ else {
45
+ gaps.push({
46
+ capability: 'gone-status',
47
+ reason: "no worker runtime available to emit `410 Gone` for archived-no-alias items; falls back to the host's natural 404",
48
+ });
49
+ }
50
+ return { has, gaps };
51
+ }
52
+ /** Convenience predicate — boolean answer to "can this target serve 301 redirects?" */
53
+ export function canServeRedirects(target) {
54
+ return inspectTarget(target).has.has('redirects');
55
+ }
56
+ /** Convenience predicate — boolean answer to "can this target serve 410 Gone?" */
57
+ export function canServeGoneStatus(target) {
58
+ return inspectTarget(target).has.has('gone-status');
59
+ }
60
+ //# sourceMappingURL=runtime-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-capabilities.js","sourceRoot":"","sources":["../../src/runtime/runtime-capabilities.ts"],"names":[],"mappings":"AA4DA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqB,CAAA;IACxC,MAAM,IAAI,GAAoB,EAAE,CAAA;IAEhC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAA;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,MAAM,CAAC,CAAA;IAC/G,gCAAgC;IAChC,wDAAwD;IACxD,mEAAmE;IACnE,oEAAoE;IACpE,6DAA6D;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,qBAAqB,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IACtH,MAAM,gBAAgB,GAAG,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,MAAM,CAAA;IAEpF,IAAI,SAAS,IAAI,gBAAgB,EAAE,CAAC;QAClC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,aAAa;gBACnB,CAAC,CAAC,+IAA+I;gBACjJ,CAAC,CAAC,oDAAoD;SACzD,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,aAAa;YACzB,MAAM,EACJ,kHAAkH;SACrH,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AACtB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AACnD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AACrD,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Save-concurrency etag — a content hash used by the save endpoints
3
+ * to detect stale writes. Different from the publish-state hash in
4
+ * `hash.ts`:
5
+ *
6
+ * `.{8hex}.hash` (publish-state, MD5)
7
+ * - Substitutes template + fragment hashes into the manifest
8
+ * - Drives sidecars, compare, cache invalidation
9
+ * - Server-only: requires `templateHashes` and `fragmentHashes`
10
+ * maps that the client doesn't have
11
+ *
12
+ * save etag (this module, SHA-256, 16 hex)
13
+ * - Pure manifest content; no template/fragment substitution
14
+ * - Drives `If-Match` save concurrency per `design-offline.md` Q3
15
+ * - Computable identically by client + server (same canonicalization,
16
+ * same Web Crypto API)
17
+ *
18
+ * # Why two etags
19
+ *
20
+ * Save concurrency asks: "did THIS page's manifest change between
21
+ * my read and my write?" A template change doesn't dirty individual
22
+ * pages from the author's perspective — the author edits page X;
23
+ * if a colleague separately edits the template, that's a render
24
+ * concern, not a save-conflict concern. Mixing the two would force
25
+ * 409 STALE on every author after a template edit, which is wrong UX.
26
+ *
27
+ * The `.{8hex}.hash` etag legitimately includes template/fragment
28
+ * dependencies because IT drives publish + cache invalidation, where
29
+ * the question IS "did anything in the dep tree change."
30
+ *
31
+ * Two etags, two semantics, two consumers. Locked per `design-offline.md`
32
+ * Cut 9 grilling.
33
+ *
34
+ * # Why SHA-256 truncated to 16 hex (not MD5 truncated to 8)
35
+ *
36
+ * Save etags collide more often than publish hashes — every save is
37
+ * a new etag candidate; many saves per page over a long offline
38
+ * session. A collision = silent stale-write (false negative on
39
+ * conflict). 8 hex MD5 = 4B keyspace; tens of thousands of saves
40
+ * across thousands of pages would hit the birthday bound. 16 hex
41
+ * SHA-256 = 18.4 quintillion keyspace; collisions are not a
42
+ * realistic concern. Cost: 8 extra characters in the ETag header.
43
+ *
44
+ * # Client + server parity contract
45
+ *
46
+ * Both call `computeSaveEtag(manifest)` and MUST produce identical
47
+ * output. Canonicalization rules:
48
+ *
49
+ * 1. Pick fields: `template`, `content`, `components`, `metadata`,
50
+ * `route`. Other fields ignored (sidecars, derived state, etc.).
51
+ * 2. JSON.stringify with sorted keys via the existing
52
+ * `sortedReplacer` (deep recursive object-key sort).
53
+ * 3. SHA-256 via `globalThis.crypto.subtle.digest('SHA-256', bytes)`
54
+ * (Web Crypto; works in Node 18+ and all browsers).
55
+ * 4. Take first 8 bytes (16 hex characters).
56
+ */
57
+ /**
58
+ * Compute the save etag for a page or fragment manifest. Returns 16
59
+ * lowercase hex characters (first 8 bytes of SHA-256).
60
+ *
61
+ * Both client and server call this with the same manifest object;
62
+ * both produce the same etag. Used for `ETag` response header on
63
+ * GET and `If-Match` request header on PUT.
64
+ *
65
+ * Async because Web Crypto's `digest` is async. Callers in hot paths
66
+ * (save handlers, contract tests) await once per save.
67
+ */
68
+ export declare function computeSaveEtag(manifest: Record<string, unknown>): Promise<string>;
69
+ //# sourceMappingURL=save-etag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-etag.d.ts","sourceRoot":"","sources":["../src/save-etag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAqCH;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAexF"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Save-concurrency etag — a content hash used by the save endpoints
3
+ * to detect stale writes. Different from the publish-state hash in
4
+ * `hash.ts`:
5
+ *
6
+ * `.{8hex}.hash` (publish-state, MD5)
7
+ * - Substitutes template + fragment hashes into the manifest
8
+ * - Drives sidecars, compare, cache invalidation
9
+ * - Server-only: requires `templateHashes` and `fragmentHashes`
10
+ * maps that the client doesn't have
11
+ *
12
+ * save etag (this module, SHA-256, 16 hex)
13
+ * - Pure manifest content; no template/fragment substitution
14
+ * - Drives `If-Match` save concurrency per `design-offline.md` Q3
15
+ * - Computable identically by client + server (same canonicalization,
16
+ * same Web Crypto API)
17
+ *
18
+ * # Why two etags
19
+ *
20
+ * Save concurrency asks: "did THIS page's manifest change between
21
+ * my read and my write?" A template change doesn't dirty individual
22
+ * pages from the author's perspective — the author edits page X;
23
+ * if a colleague separately edits the template, that's a render
24
+ * concern, not a save-conflict concern. Mixing the two would force
25
+ * 409 STALE on every author after a template edit, which is wrong UX.
26
+ *
27
+ * The `.{8hex}.hash` etag legitimately includes template/fragment
28
+ * dependencies because IT drives publish + cache invalidation, where
29
+ * the question IS "did anything in the dep tree change."
30
+ *
31
+ * Two etags, two semantics, two consumers. Locked per `design-offline.md`
32
+ * Cut 9 grilling.
33
+ *
34
+ * # Why SHA-256 truncated to 16 hex (not MD5 truncated to 8)
35
+ *
36
+ * Save etags collide more often than publish hashes — every save is
37
+ * a new etag candidate; many saves per page over a long offline
38
+ * session. A collision = silent stale-write (false negative on
39
+ * conflict). 8 hex MD5 = 4B keyspace; tens of thousands of saves
40
+ * across thousands of pages would hit the birthday bound. 16 hex
41
+ * SHA-256 = 18.4 quintillion keyspace; collisions are not a
42
+ * realistic concern. Cost: 8 extra characters in the ETag header.
43
+ *
44
+ * # Client + server parity contract
45
+ *
46
+ * Both call `computeSaveEtag(manifest)` and MUST produce identical
47
+ * output. Canonicalization rules:
48
+ *
49
+ * 1. Pick fields: `template`, `content`, `components`, `metadata`,
50
+ * `route`. Other fields ignored (sidecars, derived state, etc.).
51
+ * 2. JSON.stringify with sorted keys via the existing
52
+ * `sortedReplacer` (deep recursive object-key sort).
53
+ * 3. SHA-256 via `globalThis.crypto.subtle.digest('SHA-256', bytes)`
54
+ * (Web Crypto; works in Node 18+ and all browsers).
55
+ * 4. Take first 8 bytes (16 hex characters).
56
+ */
57
+ /**
58
+ * Manifest fields that participate in the save etag.
59
+ *
60
+ * Archive fields (per `design-soft-delete.md` Q1) are part of the etag
61
+ * because archive transitions are saves the concurrency model must
62
+ * detect: if author A archives page X while author B is editing it,
63
+ * B's next save must 409-STALE rather than silently overwrite A's
64
+ * archive. Same logic for `aliasOf` flatten cascades and unarchive.
65
+ */
66
+ const SAVE_ETAG_FIELDS = [
67
+ 'template',
68
+ 'content',
69
+ 'components',
70
+ 'metadata',
71
+ 'route',
72
+ 'archived',
73
+ 'archivedAt',
74
+ 'archivedBy',
75
+ 'aliasOf',
76
+ ];
77
+ /** Canonical JSON via sorted-key recursion. Same shape as the
78
+ * publish-hash module's sortedReplacer; duplicated here so this
79
+ * module is self-contained (see SRP note in the file header). */
80
+ function sortedReplacer(_key, value) {
81
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
82
+ const out = {};
83
+ for (const k of Object.keys(value).sort()) {
84
+ out[k] = value[k];
85
+ }
86
+ return out;
87
+ }
88
+ return value;
89
+ }
90
+ /**
91
+ * Compute the save etag for a page or fragment manifest. Returns 16
92
+ * lowercase hex characters (first 8 bytes of SHA-256).
93
+ *
94
+ * Both client and server call this with the same manifest object;
95
+ * both produce the same etag. Used for `ETag` response header on
96
+ * GET and `If-Match` request header on PUT.
97
+ *
98
+ * Async because Web Crypto's `digest` is async. Callers in hot paths
99
+ * (save handlers, contract tests) await once per save.
100
+ */
101
+ export async function computeSaveEtag(manifest) {
102
+ const picked = {};
103
+ for (const field of SAVE_ETAG_FIELDS) {
104
+ if (field in manifest)
105
+ picked[field] = manifest[field];
106
+ }
107
+ const json = JSON.stringify(picked, sortedReplacer);
108
+ const bytes = new TextEncoder().encode(json);
109
+ const digest = await globalThis.crypto.subtle.digest('SHA-256', bytes);
110
+ // First 8 bytes = 16 hex characters.
111
+ const view = new Uint8Array(digest, 0, 8);
112
+ let out = '';
113
+ for (let i = 0; i < view.length; i++) {
114
+ out += view[i].toString(16).padStart(2, '0');
115
+ }
116
+ return out;
117
+ }
118
+ //# sourceMappingURL=save-etag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-etag.js","sourceRoot":"","sources":["../src/save-etag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAAG;IACvB,UAAU;IACV,SAAS;IACT,YAAY;IACZ,UAAU;IACV,OAAO;IACP,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,SAAS;CACD,CAAA;AAEV;;kEAEkE;AAClE,SAAS,cAAc,CAAC,IAAY,EAAE,KAAc;IAClD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAA4B,EAAE,CAAA;QACvC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,GAAG,CAAC,CAAC,CAAC,GAAI,KAAiC,CAAC,CAAC,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAiC;IACrE,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,KAAK,IAAI,QAAQ;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACtE,qCAAqC;IACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACzC,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1,5 +1,7 @@
1
- import type { PageManifest, FragmentManifest, SiteManifest, StorageProvider } from './types.js';
1
+ import type { AdminCache } from './cache/types.js';
2
+ import type { SiteConfig } from './config/types.js';
2
3
  import { type ContentRoot } from './content-root.js';
4
+ import type { FragmentManifest, PageManifest, SiteManifest, StorageProvider } from './types.js';
3
5
  /** A page entry with its name, manifest, and optional locale. */
4
6
  export interface PageEntry {
5
7
  name: string;
@@ -59,6 +61,19 @@ export interface Site {
59
61
  siteDir: string;
60
62
  /** Directory containing template packages. Project-level, separate from content rooting. */
61
63
  templatesDir: string;
64
+ /**
65
+ * AdminCache instance for L4 admin / origin-server caching. Always
66
+ * present — `loadSite` either wires the operator-supplied instance
67
+ * from `manifest.cache` (Path X — gazetta.config.ts defaults or per-
68
+ * site override) or falls back to a fresh `memoryCache()`.
69
+ *
70
+ * Per-site key scoping is automatic via `forSite()` — consumers call
71
+ * `site.cache.get('pages:home')` and the wrapper transparently
72
+ * prefixes with `site:{name}:` before hitting the underlying provider.
73
+ * Future shared backing services (Redis, Azure) inherit isolation
74
+ * for free.
75
+ */
76
+ cache: AdminCache;
62
77
  }
63
78
  export interface LoadSiteOptions {
64
79
  /** @deprecated Pass `contentRoot` instead (preferred for new code). */
@@ -70,11 +85,34 @@ export interface LoadSiteOptions {
70
85
  /** Override templates directory (default: siteDir/templates). */
71
86
  templatesDir?: string;
72
87
  /**
73
- * Pre-parsed site manifest. If provided, site.yaml is not read from the
74
- * content root. Used when site.yaml is a project-level bootstrap file
75
- * that lives outside target storage.
88
+ * Pre-loaded runtime site manifest. Used when the caller already has a
89
+ * `SiteManifest` in hand typically from the dev server or admin API,
90
+ * which load the manifest once and pass it to `loadSite` so target
91
+ * content roots don't have to carry their own copy of site config.
92
+ *
93
+ * Mutually exclusive with `config`.
76
94
  */
77
95
  manifest?: SiteManifest;
96
+ /**
97
+ * Pre-loaded TS-config result from `loadSiteConfig()` /
98
+ * `loadProjectConfig()`. When provided, the config is converted to the
99
+ * runtime manifest shape via `siteConfigToManifest()`.
100
+ *
101
+ * Mutually exclusive with `manifest`.
102
+ */
103
+ config?: SiteConfig;
104
+ /**
105
+ * Pre-built per-site `AdminCache` — used when the caller owns the
106
+ * cache lifetime (typically the admin-api boot, which builds one per
107
+ * SourceContext so every load of the same source shares one cache).
108
+ *
109
+ * When provided, `loadSite` assumes the cache is already site-scoped
110
+ * and uses it verbatim. When absent, falls back to constructing one
111
+ * from `manifest.cache` (operator-supplied via Path X) or a fresh
112
+ * `memoryCache()`, wrapped with `forSite()` per call. The fallback
113
+ * suits CLI and tests where loadSite is called once.
114
+ */
115
+ cache?: AdminCache;
78
116
  }
79
117
  /**
80
118
  * Load a site from a storage provider.
@@ -1 +1 @@
1
- {"version":3,"file":"site-loader.d.ts","sourceRoot":"","sources":["../src/site-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG/F,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGvE,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,CAOtD;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,CAO9D;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,gEAAgE;IAChE,OAAO,EAAE,CAAC,CAAA;IACV,+EAA+E;IAC/E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,gFAAgF;IAChF,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IACxE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,oFAAoF;IACpF,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IAChF,4EAA4E;IAC5E,WAAW,EAAE,WAAW,CAAA;IACxB;;;OAGG;IACH,OAAO,EAAE,eAAe,CAAA;IACxB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,4FAA4F;IAC5F,YAAY,EAAE,MAAM,CAAA;CACrB;AAmHD,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDnE"}
1
+ {"version":3,"file":"site-loader.d.ts","sourceRoot":"","sources":["../src/site-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,mBAAmB,CAAA;AAGvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE/F,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,CAOtD;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,CAO9D;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,gEAAgE;IAChE,OAAO,EAAE,CAAC,CAAA;IACV,+EAA+E;IAC/E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,gFAAgF;IAChF,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IACxE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,oFAAoF;IACpF,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IAChF,4EAA4E;IAC5E,WAAW,EAAE,WAAW,CAAA;IACxB;;;OAGG;IACH,OAAO,EAAE,eAAe,CAAA;IACxB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,4FAA4F;IAC5F,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;;;;;;;OAWG;IACH,KAAK,EAAE,UAAU,CAAA;CAClB;AAmHD,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEnE"}
@@ -1,8 +1,11 @@
1
1
  import { join } from 'node:path';
2
- import { parseSiteManifest, parsePageManifest, parseFragmentManifest } from './manifest.js';
2
+ import { memoryCache } from './cache/factories.js';
3
+ import { forSite } from './cache/per-site.js';
4
+ import { siteConfigToManifest } from './config/loader.js';
3
5
  import { mapLimit } from './concurrency.js';
4
6
  import { createContentRoot } from './content-root.js';
5
7
  import { localeFromFilename, localeRoutePrefix, resolveSiteLocales } from './locale.js';
8
+ import { parseFragmentManifest, parsePageManifest } from './manifest.js';
6
9
  /** Flatten all pages including locale variants into a single list. */
7
10
  export function allPageEntries(site) {
8
11
  const entries = [];
@@ -160,22 +163,37 @@ export async function loadSite(opts) {
160
163
  templatesDir = opts.templatesDir ?? join(siteDir, 'templates');
161
164
  }
162
165
  let manifest;
163
- if (opts.manifest) {
164
- // Project-level bootstrap passed in the manifest skip the storage read.
166
+ if (opts.config && opts.manifest) {
167
+ throw new Error('loadSite: pass either `config` or `manifest`, not both');
168
+ }
169
+ if (opts.config) {
170
+ // TS config from new loader — convert to runtime manifest shape.
171
+ manifest = siteConfigToManifest(opts.config);
172
+ }
173
+ else if (opts.manifest) {
174
+ // Project-level bootstrap passed in the manifest — skip any storage read.
165
175
  manifest = opts.manifest;
166
176
  }
167
177
  else {
168
- const siteYamlPath = contentRoot.path('site.yaml');
169
- if (!(await contentRoot.storage.exists(siteYamlPath))) {
170
- throw new Error(`No site.yaml found at ${siteYamlPath}. Is this a Gazetta site directory?`);
171
- }
172
- manifest = await parseSiteManifest(contentRoot.storage, siteYamlPath);
178
+ throw new Error('loadSite: either `config` or `manifest` must be provided');
173
179
  }
174
180
  const { pages, pageLocales } = await discoverPages(contentRoot.storage, contentRoot.path('pages'), manifest);
175
181
  const { fragments, fragmentLocales } = await discoverFragments(contentRoot.storage, contentRoot.path('fragments'));
176
182
  if (pages.size === 0) {
177
183
  console.warn(` Warning: no pages found in ${contentRoot.path('pages')}`);
178
184
  }
185
+ // Per-site cache resolution:
186
+ // 1. If the caller owns the cache lifetime (admin-api boot via
187
+ // SourceContext), use the supplied instance verbatim — it's
188
+ // already site-scoped.
189
+ // 2. Else use the operator-supplied instance from manifest.cache
190
+ // (Path X — set via gazetta.config.ts defaults or per-site
191
+ // override), wrapped with forSite() per call.
192
+ // 3. Else fall back to a fresh MemoryCache (CLI, tests) wrapped
193
+ // with forSite(). Each loadSite() call gets its own — fine for
194
+ // one-shot uses; the admin-api path takes (1) to share across
195
+ // requests.
196
+ const cache = opts.cache ?? forSite(manifest.cache ?? memoryCache(), manifest.name);
179
197
  return {
180
198
  manifest,
181
199
  pages,
@@ -183,6 +201,7 @@ export async function loadSite(opts) {
183
201
  fragments,
184
202
  fragmentLocales,
185
203
  contentRoot,
204
+ cache,
186
205
  // backward-compat fields
187
206
  siteDir,
188
207
  templatesDir,
@@ -1 +1 @@
1
- {"version":3,"file":"site-loader.js","sourceRoot":"","sources":["../src/site-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"site-loader.js","sourceRoot":"","sources":["../src/site-loader.ts"],"names":[],"mappings":"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"}
package/dist/targets.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { StorageProvider, TargetConfig, StorageConfig } from './types.js';
1
+ import type { StorageProvider, TargetConfig } from './types.js';
2
2
  /**
3
3
  * Target resolution surface used by route handlers and anything that needs
4
4
  * to act on a specific named target. Narrow by intent: route factories that
@@ -18,7 +18,7 @@ export interface TargetRegistry {
18
18
  /**
19
19
  * Name of the default editable target for this site. Throws if none exists.
20
20
  * Resolution: first target where `isEditable(config) === true`, in the order
21
- * they appear in site.yaml.
21
+ * they appear in site.config.ts.
22
22
  */
23
23
  defaultEditable(): string;
24
24
  }
@@ -30,22 +30,31 @@ export declare class NoEditableTargetError extends Error {
30
30
  }
31
31
  /**
32
32
  * Build a TargetRegistry from already-initialized providers and their configs.
33
- * The factory that boots the dev server populates `providers` by running
34
- * `createStorageProvider` per target; tests pass in-memory providers.
33
+ * Per Phase 1 (Path X), storage providers are constructed by operator-facing
34
+ * factories at config-eval time; the registry consumes the resulting
35
+ * `StorageProvider` instances directly. Tests pass in-memory providers.
35
36
  */
36
37
  export declare function createTargetRegistryView(providers: Map<string, StorageProvider>, configs: Record<string, TargetConfig>): TargetRegistry;
37
38
  /** Find all editable targets in declaration order. Pure helper. */
38
39
  export declare function listEditableTargets(configs: Record<string, TargetConfig>): string[];
40
+ /**
41
+ * Expand `${VAR}` placeholders in a string by reading from `process.env`.
42
+ * Empty or undefined input passes through. Used by purge-config resolution
43
+ * (`PurgeConfig.apiToken`, `zoneId`) where operators may reference env
44
+ * vars without writing `process.env.X!` directly. Storage credentials
45
+ * use `process.env.X!` at the factory call site (Path X) and don't go
46
+ * through this helper.
47
+ */
39
48
  export declare function resolveEnvVars(value: string | undefined): string | undefined;
40
49
  /**
41
- * Build a storage provider from config.
50
+ * Initialize all target providers in parallel, calling each provider's
51
+ * optional `init()` method (used for connectivity probes by S3 / Azure).
52
+ * Returns a `Map<targetName, StorageProvider>` ready for
53
+ * `createTargetRegistryView`.
42
54
  *
43
- * For filesystem targets, `path` defaults to `./targets/<targetName>` (relative
44
- * to the site dir). Users can override by setting `path` explicitly in
45
- * site.yaml useful for shared drives, existing layouts, or multi-site setups
46
- * that need custom paths. If neither `path` nor `targetName` is available for
47
- * a filesystem target, throws.
55
+ * Failed inits are logged and skipped callers see a partial registry.
56
+ * Slow inits time out at `TARGET_INIT_TIMEOUT_MS` so a hanging SDK doesn't
57
+ * stall the whole boot.
48
58
  */
49
- export declare function createStorageProvider(config: StorageConfig, siteDir: string, targetName?: string): Promise<StorageProvider>;
50
- export declare function createTargetRegistry(targets: Record<string, TargetConfig>, siteDir: string): Promise<Map<string, StorageProvider>>;
59
+ export declare function createTargetRegistry(targets: Record<string, TargetConfig>): Promise<Map<string, StorageProvider>>;
51
60
  //# sourceMappingURL=targets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI9E;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;IAClC,gEAAgE;IAChE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAA;IACjD,8BAA8B;IAC9B,IAAI,IAAI,MAAM,EAAE,CAAA;IAChB;;;;OAIG;IACH,eAAe,IAAI,MAAM,CAAA;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,IAAI,EAAE,MAAM;CAIzB;AACD,qBAAa,qBAAsB,SAAQ,KAAK;;CAK/C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACpC,cAAc,CAsBhB;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,EAAE,CAInF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAqE1B;AAUD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CA6BvC"}
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG/D;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;IAClC,gEAAgE;IAChE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAA;IACjD,8BAA8B;IAC9B,IAAI,IAAI,MAAM,EAAE,CAAA;IAChB;;;;OAIG;IACH,eAAe,IAAI,MAAM,CAAA;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,IAAI,EAAE,MAAM;CAIzB;AACD,qBAAa,qBAAsB,SAAQ,KAAK;;CAK/C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACpC,cAAc,CAsBhB;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,EAAE,CAInF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG5E;AAUD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CA2BvC"}