gazetta 0.5.0 → 0.7.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 (478) hide show
  1. package/admin-dist/assets/index-BO9-CXmW.css +1 -0
  2. package/admin-dist/assets/index-Ufu8zZH_.js +668 -0
  3. package/admin-dist/assets/{vendor-primevue-BnR1c_bQ.js → vendor-primevue-C0Q_YTCb.js} +330 -431
  4. package/admin-dist/assets/vendor-vue-D3wBSmDf.js +1 -0
  5. package/admin-dist/index.html +4 -4
  6. package/dist/admin-api/error-response.d.ts +21 -0
  7. package/dist/admin-api/error-response.d.ts.map +1 -0
  8. package/dist/admin-api/error-response.js +12 -0
  9. package/dist/admin-api/error-response.js.map +1 -0
  10. package/dist/admin-api/index.d.ts +19 -6
  11. package/dist/admin-api/index.d.ts.map +1 -1
  12. package/dist/admin-api/index.js +137 -21
  13. package/dist/admin-api/index.js.map +1 -1
  14. package/dist/admin-api/routes/assets.d.ts +16 -0
  15. package/dist/admin-api/routes/assets.d.ts.map +1 -0
  16. package/dist/admin-api/routes/assets.js +433 -0
  17. package/dist/admin-api/routes/assets.js.map +1 -0
  18. package/dist/admin-api/routes/compare.d.ts +2 -1
  19. package/dist/admin-api/routes/compare.d.ts.map +1 -1
  20. package/dist/admin-api/routes/compare.js +33 -24
  21. package/dist/admin-api/routes/compare.js.map +1 -1
  22. package/dist/admin-api/routes/fields.d.ts +2 -2
  23. package/dist/admin-api/routes/fields.d.ts.map +1 -1
  24. package/dist/admin-api/routes/fields.js +10 -3
  25. package/dist/admin-api/routes/fields.js.map +1 -1
  26. package/dist/admin-api/routes/fragments.d.ts +2 -3
  27. package/dist/admin-api/routes/fragments.d.ts.map +1 -1
  28. package/dist/admin-api/routes/fragments.js +120 -21
  29. package/dist/admin-api/routes/fragments.js.map +1 -1
  30. package/dist/admin-api/routes/history.d.ts +23 -0
  31. package/dist/admin-api/routes/history.d.ts.map +1 -0
  32. package/dist/admin-api/routes/history.js +143 -0
  33. package/dist/admin-api/routes/history.js.map +1 -0
  34. package/dist/admin-api/routes/pages.d.ts +2 -3
  35. package/dist/admin-api/routes/pages.d.ts.map +1 -1
  36. package/dist/admin-api/routes/pages.js +153 -22
  37. package/dist/admin-api/routes/pages.js.map +1 -1
  38. package/dist/admin-api/routes/preview.d.ts +2 -2
  39. package/dist/admin-api/routes/preview.d.ts.map +1 -1
  40. package/dist/admin-api/routes/preview.js +50 -15
  41. package/dist/admin-api/routes/preview.js.map +1 -1
  42. package/dist/admin-api/routes/publish.d.ts +2 -1
  43. package/dist/admin-api/routes/publish.d.ts.map +1 -1
  44. package/dist/admin-api/routes/publish.js +259 -79
  45. package/dist/admin-api/routes/publish.js.map +1 -1
  46. package/dist/admin-api/routes/site.d.ts +2 -2
  47. package/dist/admin-api/routes/site.d.ts.map +1 -1
  48. package/dist/admin-api/routes/site.js +27 -4
  49. package/dist/admin-api/routes/site.js.map +1 -1
  50. package/dist/admin-api/routes/templates.d.ts +2 -2
  51. package/dist/admin-api/routes/templates.d.ts.map +1 -1
  52. package/dist/admin-api/routes/templates.js +19 -9
  53. package/dist/admin-api/routes/templates.js.map +1 -1
  54. package/dist/admin-api/schemas/assets.d.ts +48 -0
  55. package/dist/admin-api/schemas/assets.d.ts.map +1 -0
  56. package/dist/admin-api/schemas/assets.js +44 -0
  57. package/dist/admin-api/schemas/assets.js.map +1 -0
  58. package/dist/admin-api/schemas/compare.d.ts +29 -0
  59. package/dist/admin-api/schemas/compare.d.ts.map +1 -0
  60. package/dist/admin-api/schemas/compare.js +30 -0
  61. package/dist/admin-api/schemas/compare.js.map +1 -0
  62. package/dist/admin-api/schemas/dependents.d.ts +15 -0
  63. package/dist/admin-api/schemas/dependents.d.ts.map +1 -0
  64. package/dist/admin-api/schemas/dependents.js +14 -0
  65. package/dist/admin-api/schemas/dependents.js.map +1 -0
  66. package/dist/admin-api/schemas/fetch.d.ts +12 -0
  67. package/dist/admin-api/schemas/fetch.d.ts.map +1 -0
  68. package/dist/admin-api/schemas/fetch.js +11 -0
  69. package/dist/admin-api/schemas/fetch.js.map +1 -0
  70. package/dist/admin-api/schemas/fields.d.ts +11 -0
  71. package/dist/admin-api/schemas/fields.d.ts.map +1 -0
  72. package/dist/admin-api/schemas/fields.js +11 -0
  73. package/dist/admin-api/schemas/fields.js.map +1 -0
  74. package/dist/admin-api/schemas/fragments.d.ts +27 -0
  75. package/dist/admin-api/schemas/fragments.d.ts.map +1 -0
  76. package/dist/admin-api/schemas/fragments.js +26 -0
  77. package/dist/admin-api/schemas/fragments.js.map +1 -0
  78. package/dist/admin-api/schemas/history.d.ts +73 -0
  79. package/dist/admin-api/schemas/history.d.ts.map +1 -0
  80. package/dist/admin-api/schemas/history.js +35 -0
  81. package/dist/admin-api/schemas/history.js.map +1 -0
  82. package/dist/admin-api/schemas/index.d.ts +34 -0
  83. package/dist/admin-api/schemas/index.d.ts.map +1 -0
  84. package/dist/admin-api/schemas/index.js +34 -0
  85. package/dist/admin-api/schemas/index.js.map +1 -0
  86. package/dist/admin-api/schemas/pages.d.ts +46 -0
  87. package/dist/admin-api/schemas/pages.d.ts.map +1 -0
  88. package/dist/admin-api/schemas/pages.js +47 -0
  89. package/dist/admin-api/schemas/pages.js.map +1 -0
  90. package/dist/admin-api/schemas/publish.d.ts +67 -0
  91. package/dist/admin-api/schemas/publish.d.ts.map +1 -0
  92. package/dist/admin-api/schemas/publish.js +60 -0
  93. package/dist/admin-api/schemas/publish.js.map +1 -0
  94. package/dist/admin-api/schemas/site.d.ts +28 -0
  95. package/dist/admin-api/schemas/site.d.ts.map +1 -0
  96. package/dist/admin-api/schemas/site.js +24 -0
  97. package/dist/admin-api/schemas/site.js.map +1 -0
  98. package/dist/admin-api/schemas/targets.d.ts +36 -0
  99. package/dist/admin-api/schemas/targets.d.ts.map +1 -0
  100. package/dist/admin-api/schemas/targets.js +19 -0
  101. package/dist/admin-api/schemas/targets.js.map +1 -0
  102. package/dist/admin-api/schemas/templates.d.ts +17 -0
  103. package/dist/admin-api/schemas/templates.d.ts.map +1 -0
  104. package/dist/admin-api/schemas/templates.js +16 -0
  105. package/dist/admin-api/schemas/templates.js.map +1 -0
  106. package/dist/admin-api/source-context.d.ts +158 -0
  107. package/dist/admin-api/source-context.d.ts.map +1 -0
  108. package/dist/admin-api/source-context.js +92 -0
  109. package/dist/admin-api/source-context.js.map +1 -0
  110. package/dist/app.js +1 -1
  111. package/dist/app.js.map +1 -1
  112. package/dist/assemble.d.ts.map +1 -1
  113. package/dist/assemble.js +4 -1
  114. package/dist/assemble.js.map +1 -1
  115. package/dist/assets/analyze-audio.d.ts +3 -0
  116. package/dist/assets/analyze-audio.d.ts.map +1 -0
  117. package/dist/assets/analyze-audio.js +80 -0
  118. package/dist/assets/analyze-audio.js.map +1 -0
  119. package/dist/assets/analyze-image.d.ts +19 -0
  120. package/dist/assets/analyze-image.d.ts.map +1 -0
  121. package/dist/assets/analyze-image.js +123 -0
  122. package/dist/assets/analyze-image.js.map +1 -0
  123. package/dist/assets/analyze.d.ts +94 -0
  124. package/dist/assets/analyze.d.ts.map +1 -0
  125. package/dist/assets/analyze.js +45 -0
  126. package/dist/assets/analyze.js.map +1 -0
  127. package/dist/assets/asset-deps.d.ts +30 -0
  128. package/dist/assets/asset-deps.d.ts.map +1 -0
  129. package/dist/assets/asset-deps.js +42 -0
  130. package/dist/assets/asset-deps.js.map +1 -0
  131. package/dist/assets/asset-paths.d.ts +155 -0
  132. package/dist/assets/asset-paths.d.ts.map +1 -0
  133. package/dist/assets/asset-paths.js +197 -0
  134. package/dist/assets/asset-paths.js.map +1 -0
  135. package/dist/assets/delete.d.ts +75 -0
  136. package/dist/assets/delete.d.ts.map +1 -0
  137. package/dist/assets/delete.js +82 -0
  138. package/dist/assets/delete.js.map +1 -0
  139. package/dist/assets/errors.d.ts +241 -0
  140. package/dist/assets/errors.d.ts.map +1 -0
  141. package/dist/assets/errors.js +300 -0
  142. package/dist/assets/errors.js.map +1 -0
  143. package/dist/assets/find-refs.d.ts +37 -0
  144. package/dist/assets/find-refs.d.ts.map +1 -0
  145. package/dist/assets/find-refs.js +35 -0
  146. package/dist/assets/find-refs.js.map +1 -0
  147. package/dist/assets/hash.d.ts +13 -0
  148. package/dist/assets/hash.d.ts.map +1 -0
  149. package/dist/assets/hash.js +43 -0
  150. package/dist/assets/hash.js.map +1 -0
  151. package/dist/assets/image-metadata.d.ts +11 -0
  152. package/dist/assets/image-metadata.d.ts.map +1 -0
  153. package/dist/assets/image-metadata.js +31 -0
  154. package/dist/assets/image-metadata.js.map +1 -0
  155. package/dist/assets/ingest-locale.d.ts +86 -0
  156. package/dist/assets/ingest-locale.d.ts.map +1 -0
  157. package/dist/assets/ingest-locale.js +209 -0
  158. package/dist/assets/ingest-locale.js.map +1 -0
  159. package/dist/assets/ingest.d.ts +96 -0
  160. package/dist/assets/ingest.d.ts.map +1 -0
  161. package/dist/assets/ingest.js +308 -0
  162. package/dist/assets/ingest.js.map +1 -0
  163. package/dist/assets/kind-compat.d.ts +34 -0
  164. package/dist/assets/kind-compat.d.ts.map +1 -0
  165. package/dist/assets/kind-compat.js +33 -0
  166. package/dist/assets/kind-compat.js.map +1 -0
  167. package/dist/assets/list.d.ts +46 -0
  168. package/dist/assets/list.d.ts.map +1 -0
  169. package/dist/assets/list.js +102 -0
  170. package/dist/assets/list.js.map +1 -0
  171. package/dist/assets/manifest-default.d.ts +56 -0
  172. package/dist/assets/manifest-default.d.ts.map +1 -0
  173. package/dist/assets/manifest-default.js +120 -0
  174. package/dist/assets/manifest-default.js.map +1 -0
  175. package/dist/assets/manifest-filename.d.ts +52 -0
  176. package/dist/assets/manifest-filename.d.ts.map +1 -0
  177. package/dist/assets/manifest-filename.js +104 -0
  178. package/dist/assets/manifest-filename.js.map +1 -0
  179. package/dist/assets/manifest-locale.d.ts +60 -0
  180. package/dist/assets/manifest-locale.d.ts.map +1 -0
  181. package/dist/assets/manifest-locale.js +206 -0
  182. package/dist/assets/manifest-locale.js.map +1 -0
  183. package/dist/assets/manifest-merge.d.ts +66 -0
  184. package/dist/assets/manifest-merge.d.ts.map +1 -0
  185. package/dist/assets/manifest-merge.js +82 -0
  186. package/dist/assets/manifest-merge.js.map +1 -0
  187. package/dist/assets/manifest.d.ts +83 -0
  188. package/dist/assets/manifest.d.ts.map +1 -0
  189. package/dist/assets/manifest.js +93 -0
  190. package/dist/assets/manifest.js.map +1 -0
  191. package/dist/assets/mime-sniff.d.ts +18 -0
  192. package/dist/assets/mime-sniff.d.ts.map +1 -0
  193. package/dist/assets/mime-sniff.js +84 -0
  194. package/dist/assets/mime-sniff.js.map +1 -0
  195. package/dist/assets/preprocess-svg.d.ts +3 -0
  196. package/dist/assets/preprocess-svg.d.ts.map +1 -0
  197. package/dist/assets/preprocess-svg.js +49 -0
  198. package/dist/assets/preprocess-svg.js.map +1 -0
  199. package/dist/assets/preprocess.d.ts +62 -0
  200. package/dist/assets/preprocess.d.ts.map +1 -0
  201. package/dist/assets/preprocess.js +86 -0
  202. package/dist/assets/preprocess.js.map +1 -0
  203. package/dist/assets/publish-plan.d.ts +41 -0
  204. package/dist/assets/publish-plan.d.ts.map +1 -0
  205. package/dist/assets/publish-plan.js +49 -0
  206. package/dist/assets/publish-plan.js.map +1 -0
  207. package/dist/assets/publish.d.ts +33 -0
  208. package/dist/assets/publish.d.ts.map +1 -0
  209. package/dist/assets/publish.js +81 -0
  210. package/dist/assets/publish.js.map +1 -0
  211. package/dist/assets/refs.d.ts +37 -0
  212. package/dist/assets/refs.d.ts.map +1 -0
  213. package/dist/assets/refs.js +33 -0
  214. package/dist/assets/refs.js.map +1 -0
  215. package/dist/assets/remove-override.d.ts +42 -0
  216. package/dist/assets/remove-override.d.ts.map +1 -0
  217. package/dist/assets/remove-override.js +53 -0
  218. package/dist/assets/remove-override.js.map +1 -0
  219. package/dist/assets/rename.d.ts +43 -0
  220. package/dist/assets/rename.d.ts.map +1 -0
  221. package/dist/assets/rename.js +271 -0
  222. package/dist/assets/rename.js.map +1 -0
  223. package/dist/assets/replace.d.ts +37 -0
  224. package/dist/assets/replace.d.ts.map +1 -0
  225. package/dist/assets/replace.js +195 -0
  226. package/dist/assets/replace.js.map +1 -0
  227. package/dist/assets/resolve.d.ts +141 -0
  228. package/dist/assets/resolve.d.ts.map +1 -0
  229. package/dist/assets/resolve.js +381 -0
  230. package/dist/assets/resolve.js.map +1 -0
  231. package/dist/assets/rewrite-manifest-asset-ref.d.ts +44 -0
  232. package/dist/assets/rewrite-manifest-asset-ref.d.ts.map +1 -0
  233. package/dist/assets/rewrite-manifest-asset-ref.js +51 -0
  234. package/dist/assets/rewrite-manifest-asset-ref.js.map +1 -0
  235. package/dist/assets/scan-manifest-for-asset.d.ts +63 -0
  236. package/dist/assets/scan-manifest-for-asset.d.ts.map +1 -0
  237. package/dist/assets/scan-manifest-for-asset.js +105 -0
  238. package/dist/assets/scan-manifest-for-asset.js.map +1 -0
  239. package/dist/assets/serve-route.d.ts +45 -0
  240. package/dist/assets/serve-route.d.ts.map +1 -0
  241. package/dist/assets/serve-route.js +123 -0
  242. package/dist/assets/serve-route.js.map +1 -0
  243. package/dist/assets/svg-sanitize.d.ts +38 -0
  244. package/dist/assets/svg-sanitize.d.ts.map +1 -0
  245. package/dist/assets/svg-sanitize.js +209 -0
  246. package/dist/assets/svg-sanitize.js.map +1 -0
  247. package/dist/assets/update-metadata.d.ts +61 -0
  248. package/dist/assets/update-metadata.d.ts.map +1 -0
  249. package/dist/assets/update-metadata.js +82 -0
  250. package/dist/assets/update-metadata.js.map +1 -0
  251. package/dist/assets/url.d.ts +82 -0
  252. package/dist/assets/url.d.ts.map +1 -0
  253. package/dist/assets/url.js +103 -0
  254. package/dist/assets/url.js.map +1 -0
  255. package/dist/assets/validate.d.ts +74 -0
  256. package/dist/assets/validate.d.ts.map +1 -0
  257. package/dist/assets/validate.js +136 -0
  258. package/dist/assets/validate.js.map +1 -0
  259. package/dist/assets/variants.d.ts +23 -0
  260. package/dist/assets/variants.d.ts.map +1 -0
  261. package/dist/assets/variants.js +74 -0
  262. package/dist/assets/variants.js.map +1 -0
  263. package/dist/cli/assets-cli.d.ts +58 -0
  264. package/dist/cli/assets-cli.d.ts.map +1 -0
  265. package/dist/cli/assets-cli.js +233 -0
  266. package/dist/cli/assets-cli.js.map +1 -0
  267. package/dist/cli/assets-display.d.ts +112 -0
  268. package/dist/cli/assets-display.d.ts.map +1 -0
  269. package/dist/cli/assets-display.js +106 -0
  270. package/dist/cli/assets-display.js.map +1 -0
  271. package/dist/cli/bootstrap.d.ts +46 -0
  272. package/dist/cli/bootstrap.d.ts.map +1 -0
  273. package/dist/cli/bootstrap.js +84 -0
  274. package/dist/cli/bootstrap.js.map +1 -0
  275. package/dist/cli/history.d.ts +45 -0
  276. package/dist/cli/history.d.ts.map +1 -0
  277. package/dist/cli/history.js +165 -0
  278. package/dist/cli/history.js.map +1 -0
  279. package/dist/cli/index.js +689 -128
  280. package/dist/cli/index.js.map +1 -1
  281. package/dist/compare.d.ts +8 -5
  282. package/dist/compare.d.ts.map +1 -1
  283. package/dist/compare.js +62 -20
  284. package/dist/compare.js.map +1 -1
  285. package/dist/content-root.d.ts +38 -0
  286. package/dist/content-root.d.ts.map +1 -0
  287. package/dist/content-root.js +29 -0
  288. package/dist/content-root.js.map +1 -0
  289. package/dist/dep-sidecars.d.ts +127 -0
  290. package/dist/dep-sidecars.d.ts.map +1 -0
  291. package/dist/dep-sidecars.js +122 -0
  292. package/dist/dep-sidecars.js.map +1 -0
  293. package/dist/editor/AssetEmbeddedWidget.d.ts +3 -0
  294. package/dist/editor/AssetEmbeddedWidget.d.ts.map +1 -0
  295. package/dist/editor/AssetEmbeddedWidget.js +146 -0
  296. package/dist/editor/AssetEmbeddedWidget.js.map +1 -0
  297. package/dist/editor/mount.d.ts +12 -1
  298. package/dist/editor/mount.d.ts.map +1 -1
  299. package/dist/editor/mount.js +96 -33
  300. package/dist/editor/mount.js.map +1 -1
  301. package/dist/format.d.ts +44 -0
  302. package/dist/format.d.ts.map +1 -0
  303. package/dist/format.js +65 -0
  304. package/dist/format.js.map +1 -0
  305. package/dist/fragment-deps.d.ts +24 -0
  306. package/dist/fragment-deps.d.ts.map +1 -0
  307. package/dist/fragment-deps.js +20 -0
  308. package/dist/fragment-deps.js.map +1 -0
  309. package/dist/hash.d.ts +34 -9
  310. package/dist/hash.d.ts.map +1 -1
  311. package/dist/hash.js +60 -21
  312. package/dist/hash.js.map +1 -1
  313. package/dist/history-provider.d.ts +49 -0
  314. package/dist/history-provider.d.ts.map +1 -0
  315. package/dist/history-provider.js +248 -0
  316. package/dist/history-provider.js.map +1 -0
  317. package/dist/history-recorder.d.ts +102 -0
  318. package/dist/history-recorder.d.ts.map +1 -0
  319. package/dist/history-recorder.js +168 -0
  320. package/dist/history-recorder.js.map +1 -0
  321. package/dist/history-restorer.d.ts +46 -0
  322. package/dist/history-restorer.d.ts.map +1 -0
  323. package/dist/history-restorer.js +137 -0
  324. package/dist/history-restorer.js.map +1 -0
  325. package/dist/history.d.ts +129 -0
  326. package/dist/history.d.ts.map +1 -0
  327. package/dist/history.js +25 -0
  328. package/dist/history.js.map +1 -0
  329. package/dist/index.d.ts +27 -7
  330. package/dist/index.d.ts.map +1 -1
  331. package/dist/index.js +16 -4
  332. package/dist/index.js.map +1 -1
  333. package/dist/locale.d.ts +94 -0
  334. package/dist/locale.d.ts.map +1 -0
  335. package/dist/locale.js +188 -0
  336. package/dist/locale.js.map +1 -0
  337. package/dist/manifest.d.ts.map +1 -1
  338. package/dist/manifest.js +16 -1
  339. package/dist/manifest.js.map +1 -1
  340. package/dist/providers/_atomic-write.d.ts +9 -0
  341. package/dist/providers/_atomic-write.d.ts.map +1 -0
  342. package/dist/providers/_atomic-write.js +72 -0
  343. package/dist/providers/_atomic-write.js.map +1 -0
  344. package/dist/providers/_rm-ignore-missing.d.ts +31 -0
  345. package/dist/providers/_rm-ignore-missing.d.ts.map +1 -0
  346. package/dist/providers/_rm-ignore-missing.js +12 -0
  347. package/dist/providers/_rm-ignore-missing.js.map +1 -0
  348. package/dist/providers/_stream-interop.d.ts +23 -0
  349. package/dist/providers/_stream-interop.d.ts.map +1 -0
  350. package/dist/providers/_stream-interop.js +21 -0
  351. package/dist/providers/_stream-interop.js.map +1 -0
  352. package/dist/providers/azure-blob.d.ts.map +1 -1
  353. package/dist/providers/azure-blob.js +60 -0
  354. package/dist/providers/azure-blob.js.map +1 -1
  355. package/dist/providers/filesystem.d.ts +4 -0
  356. package/dist/providers/filesystem.d.ts.map +1 -1
  357. package/dist/providers/filesystem.js +63 -2
  358. package/dist/providers/filesystem.js.map +1 -1
  359. package/dist/providers/s3.d.ts.map +1 -1
  360. package/dist/providers/s3.js +107 -16
  361. package/dist/providers/s3.js.map +1 -1
  362. package/dist/publish-locale.d.ts +44 -0
  363. package/dist/publish-locale.d.ts.map +1 -0
  364. package/dist/publish-locale.js +103 -0
  365. package/dist/publish-locale.js.map +1 -0
  366. package/dist/publish-rendered.d.ts +52 -21
  367. package/dist/publish-rendered.d.ts.map +1 -1
  368. package/dist/publish-rendered.js +144 -87
  369. package/dist/publish-rendered.js.map +1 -1
  370. package/dist/publish.d.ts +18 -19
  371. package/dist/publish.d.ts.map +1 -1
  372. package/dist/publish.js +41 -56
  373. package/dist/publish.js.map +1 -1
  374. package/dist/renderer.d.ts +14 -4
  375. package/dist/renderer.d.ts.map +1 -1
  376. package/dist/renderer.js +35 -23
  377. package/dist/renderer.js.map +1 -1
  378. package/dist/resolver.d.ts +17 -2
  379. package/dist/resolver.d.ts.map +1 -1
  380. package/dist/resolver.js +112 -16
  381. package/dist/resolver.js.map +1 -1
  382. package/dist/robots.d.ts +22 -0
  383. package/dist/robots.d.ts.map +1 -0
  384. package/dist/robots.js +25 -0
  385. package/dist/robots.js.map +1 -0
  386. package/dist/schema/dimensions.d.ts +78 -0
  387. package/dist/schema/dimensions.d.ts.map +1 -0
  388. package/dist/schema/dimensions.js +97 -0
  389. package/dist/schema/dimensions.js.map +1 -0
  390. package/dist/schema/helpers.d.ts +108 -0
  391. package/dist/schema/helpers.d.ts.map +1 -0
  392. package/dist/schema/helpers.js +133 -0
  393. package/dist/schema/helpers.js.map +1 -0
  394. package/dist/schema/index.d.ts +27 -0
  395. package/dist/schema/index.d.ts.map +1 -0
  396. package/dist/schema/index.js +25 -0
  397. package/dist/schema/index.js.map +1 -0
  398. package/dist/schema/types.d.ts +390 -0
  399. package/dist/schema/types.d.ts.map +1 -0
  400. package/dist/schema/types.js +25 -0
  401. package/dist/schema/types.js.map +1 -0
  402. package/dist/selector-chain.d.ts +63 -0
  403. package/dist/selector-chain.d.ts.map +1 -0
  404. package/dist/selector-chain.js +58 -0
  405. package/dist/selector-chain.js.map +1 -0
  406. package/dist/seo.d.ts +56 -0
  407. package/dist/seo.d.ts.map +1 -0
  408. package/dist/seo.js +72 -0
  409. package/dist/seo.js.map +1 -0
  410. package/dist/serve.d.ts +41 -3
  411. package/dist/serve.d.ts.map +1 -1
  412. package/dist/serve.js +206 -65
  413. package/dist/serve.js.map +1 -1
  414. package/dist/sidecars.d.ts +26 -21
  415. package/dist/sidecars.d.ts.map +1 -1
  416. package/dist/sidecars.js +143 -45
  417. package/dist/sidecars.js.map +1 -1
  418. package/dist/site-loader.d.ts +74 -6
  419. package/dist/site-loader.d.ts.map +1 -1
  420. package/dist/site-loader.js +138 -28
  421. package/dist/site-loader.js.map +1 -1
  422. package/dist/sitemap.d.ts +45 -0
  423. package/dist/sitemap.d.ts.map +1 -0
  424. package/dist/sitemap.js +67 -0
  425. package/dist/sitemap.js.map +1 -0
  426. package/dist/targets.d.ts +47 -1
  427. package/dist/targets.d.ts.map +1 -1
  428. package/dist/targets.js +83 -36
  429. package/dist/targets.js.map +1 -1
  430. package/dist/template-loader.d.ts +7 -3
  431. package/dist/template-loader.d.ts.map +1 -1
  432. package/dist/template-loader.js +27 -12
  433. package/dist/template-loader.js.map +1 -1
  434. package/dist/templates-scan-worker.js +1 -1
  435. package/dist/templates-scan-worker.js.map +1 -1
  436. package/dist/templates-scan.d.ts.map +1 -1
  437. package/dist/templates-scan.js +1 -1
  438. package/dist/templates-scan.js.map +1 -1
  439. package/dist/themes.d.ts +69 -0
  440. package/dist/themes.d.ts.map +1 -0
  441. package/dist/themes.js +85 -0
  442. package/dist/themes.js.map +1 -0
  443. package/dist/transforms/adapter.d.ts +115 -0
  444. package/dist/transforms/adapter.d.ts.map +1 -0
  445. package/dist/transforms/adapter.js +2 -0
  446. package/dist/transforms/adapter.js.map +1 -0
  447. package/dist/transforms/cloudflare.d.ts +17 -0
  448. package/dist/transforms/cloudflare.d.ts.map +1 -0
  449. package/dist/transforms/cloudflare.js +110 -0
  450. package/dist/transforms/cloudflare.js.map +1 -0
  451. package/dist/transforms/index.d.ts +24 -0
  452. package/dist/transforms/index.d.ts.map +1 -0
  453. package/dist/transforms/index.js +30 -0
  454. package/dist/transforms/index.js.map +1 -0
  455. package/dist/transforms/sharp.d.ts +3 -0
  456. package/dist/transforms/sharp.d.ts.map +1 -0
  457. package/dist/transforms/sharp.js +43 -0
  458. package/dist/transforms/sharp.js.map +1 -0
  459. package/dist/types.d.ts +241 -10
  460. package/dist/types.d.ts.map +1 -1
  461. package/dist/types.js +28 -5
  462. package/dist/types.js.map +1 -1
  463. package/dist/workers/cloudflare-r2.d.ts +11 -2
  464. package/dist/workers/cloudflare-r2.d.ts.map +1 -1
  465. package/dist/workers/cloudflare-r2.js +120 -55
  466. package/dist/workers/cloudflare-r2.js.map +1 -1
  467. package/package.json +30 -2
  468. package/admin-dist/assets/index-BZAFKsUp.js +0 -608
  469. package/admin-dist/assets/index-BpRotMuK.css +0 -1
  470. package/admin-dist/assets/vendor-vue-DSjyxCX6.js +0 -1
  471. package/dist/providers/r2.d.ts +0 -8
  472. package/dist/providers/r2.d.ts.map +0 -1
  473. package/dist/providers/r2.js +0 -83
  474. package/dist/providers/r2.js.map +0 -1
  475. package/dist/source-sidecars.d.ts +0 -13
  476. package/dist/source-sidecars.d.ts.map +0 -1
  477. package/dist/source-sidecars.js +0 -52
  478. package/dist/source-sidecars.js.map +0 -1
@@ -0,0 +1,433 @@
1
+ /**
2
+ * HTTP routes for `/api/assets*`.
3
+ *
4
+ * Thin adapters. Each handler:
5
+ * 1. resolves the active target's source context,
6
+ * 2. delegates to the appropriate asset-domain operation,
7
+ * 3. maps success to the HTTP response,
8
+ * 4. delegates error-to-response translation to `respondWithAssetError`.
9
+ *
10
+ * No validation, storage, or orchestration logic in here — the asset
11
+ * domain owns all of that (see `src/assets/`).
12
+ */
13
+ import { Hono } from 'hono';
14
+ import { enumerateOverrideSlices } from '../../assets/asset-paths.js';
15
+ import { deleteAsset } from '../../assets/delete.js';
16
+ import { ingestAsset } from '../../assets/ingest.js';
17
+ import { ingestLocaleBytes } from '../../assets/ingest-locale.js';
18
+ import { listAssets, toSummary } from '../../assets/list.js';
19
+ import { readManifest } from '../../assets/manifest.js';
20
+ import { removeOverride } from '../../assets/remove-override.js';
21
+ import { renameAsset } from '../../assets/rename.js';
22
+ import { replaceAsset } from '../../assets/replace.js';
23
+ import { updateAssetMetadata } from '../../assets/update-metadata.js';
24
+ import { buildSelector } from '../../schema/dimensions.js';
25
+ import { isValidLocale } from '../../locale.js';
26
+ import { isValidTheme } from '../../themes.js';
27
+ import { respondWithAssetError } from '../error-response.js';
28
+ /**
29
+ * Pull a Selector out of the request's query params, validating each
30
+ * dimension's value as it reads. Returns `null` when no dimension is
31
+ * set; throws a Response with a 400 body when any value is malformed.
32
+ *
33
+ * Per design, locale codes are BCP 47 (lowercase) and theme codes are
34
+ * lowercase ASCII non-locale tokens. Reuses the same validators used
35
+ * for filename parsing.
36
+ */
37
+ function selectorFromQuery(c) {
38
+ const locale = c.req.query('locale');
39
+ const theme = c.req.query('theme');
40
+ if (locale === undefined && theme === undefined)
41
+ return null;
42
+ if (locale !== undefined && !isValidLocale(locale)) {
43
+ return new Response(JSON.stringify({ code: 'BAD_REQUEST', message: `Invalid locale code: ${locale}` }), {
44
+ status: 400,
45
+ headers: { 'content-type': 'application/json' },
46
+ });
47
+ }
48
+ if (theme !== undefined && !isValidTheme(theme)) {
49
+ return new Response(JSON.stringify({ code: 'BAD_REQUEST', message: `Invalid theme code: ${theme}` }), {
50
+ status: 400,
51
+ headers: { 'content-type': 'application/json' },
52
+ });
53
+ }
54
+ return buildSelector({
55
+ ...(locale !== undefined ? { locale } : {}),
56
+ ...(theme !== undefined ? { theme } : {}),
57
+ });
58
+ }
59
+ /** Where assets live, relative to the target storage root. */
60
+ const ASSETS_ROOT = 'assets';
61
+ export function assetRoutes(resolve) {
62
+ const app = new Hono();
63
+ app.get('/api/assets', async (c) => {
64
+ const source = await resolve(c.req.query('target'));
65
+ try {
66
+ const summaries = await listAssets({
67
+ storage: source.storage,
68
+ assetsRoot: ASSETS_ROOT,
69
+ });
70
+ return c.json(summaries);
71
+ }
72
+ catch (err) {
73
+ const res = respondWithAssetError(c, err);
74
+ if (res)
75
+ return res;
76
+ throw err;
77
+ }
78
+ });
79
+ app.get('/api/assets/:name', async (c) => {
80
+ const name = c.req.param('name');
81
+ const source = await resolve(c.req.query('target'));
82
+ try {
83
+ const manifest = await readManifest(source.storage, ASSETS_ROOT, name);
84
+ // Single-asset GET — discover overrides via the targeted scan.
85
+ // Cheaper than the full list scan (one readDir of the asset's
86
+ // parent dir) and gives the detail pane its locale chips without
87
+ // a second round-trip.
88
+ const slices = await enumerateOverrideSlices(source.storage, ASSETS_ROOT, manifest);
89
+ const locales = [];
90
+ const themes = [];
91
+ for (const slice of slices) {
92
+ const locale = slice.selector.get('locale');
93
+ const theme = slice.selector.get('theme');
94
+ if (locale !== undefined && !locales.includes(locale))
95
+ locales.push(locale);
96
+ if (theme !== undefined && !themes.includes(theme))
97
+ themes.push(theme);
98
+ }
99
+ return c.json(toSummary(manifest, locales, themes));
100
+ }
101
+ catch (err) {
102
+ const res = respondWithAssetError(c, err);
103
+ if (res)
104
+ return res;
105
+ throw err;
106
+ }
107
+ });
108
+ /**
109
+ * PATCH /api/assets/:name — update asset metadata.
110
+ *
111
+ * Today's surface: alt only (per design-media.md three-state model).
112
+ * Future: tags, title, description, focalPoint at the asset level.
113
+ *
114
+ * Wire shape preserves three-state alt:
115
+ * `{}` — no change to alt
116
+ * `{"alt": "text"}` — meaningful description
117
+ * `{"alt": ""}` — decorative
118
+ * `{"alt": null}` — explicitly cleared (resolver falls back to '')
119
+ *
120
+ * Responses:
121
+ * 200 OK — { manifest } (updated summary)
122
+ * 400 Bad Request — alt isn't string|null
123
+ * 404 Not Found — asset missing
124
+ * 500 Storage — underlying write failed
125
+ */
126
+ app.patch('/api/assets/:name', async (c) => {
127
+ const name = c.req.param('name');
128
+ const source = await resolve(c.req.query('target'));
129
+ let body;
130
+ try {
131
+ body = await c.req.json();
132
+ }
133
+ catch {
134
+ return c.json({ code: 'BAD_REQUEST', message: 'Invalid JSON body' }, 400);
135
+ }
136
+ if (!body || typeof body !== 'object' || Array.isArray(body)) {
137
+ return c.json({ code: 'BAD_REQUEST', message: 'Body must be an object' }, 400);
138
+ }
139
+ const patch = {};
140
+ const raw = body;
141
+ if ('alt' in raw) {
142
+ const v = raw.alt;
143
+ if (v !== null && typeof v !== 'string') {
144
+ return c.json({ code: 'BAD_REQUEST', message: 'alt must be string or null' }, 400);
145
+ }
146
+ patch.alt = v;
147
+ }
148
+ if ('focalPoint' in raw) {
149
+ const v = raw.focalPoint;
150
+ if (v === null) {
151
+ patch.focalPoint = null;
152
+ }
153
+ else if (v !== null &&
154
+ typeof v === 'object' &&
155
+ typeof v.x === 'number' &&
156
+ typeof v.y === 'number') {
157
+ const fp = v;
158
+ if (fp.x < 0 || fp.x > 1 || fp.y < 0 || fp.y > 1) {
159
+ return c.json({ code: 'BAD_REQUEST', message: 'focalPoint x and y must be in [0, 1]' }, 400);
160
+ }
161
+ patch.focalPoint = fp;
162
+ }
163
+ else {
164
+ return c.json({ code: 'BAD_REQUEST', message: 'focalPoint must be { x: number, y: number } or null' }, 400);
165
+ }
166
+ }
167
+ try {
168
+ const updated = await updateAssetMetadata({
169
+ storage: source.storage,
170
+ assetsRoot: ASSETS_ROOT,
171
+ assetName: name,
172
+ patch,
173
+ history: source.history,
174
+ contentRoot: source.contentRoot,
175
+ });
176
+ // Re-summarize with override locales so the client refresh shape
177
+ // matches GET. Single-asset case uses the same enumerator.
178
+ const slices = await enumerateOverrideSlices(source.storage, ASSETS_ROOT, updated);
179
+ const locales = [];
180
+ const themes = [];
181
+ for (const slice of slices) {
182
+ const locale = slice.selector.get('locale');
183
+ const theme = slice.selector.get('theme');
184
+ if (locale !== undefined && !locales.includes(locale))
185
+ locales.push(locale);
186
+ if (theme !== undefined && !themes.includes(theme))
187
+ themes.push(theme);
188
+ }
189
+ return c.json({ manifest: toSummary(updated, locales, themes) });
190
+ }
191
+ catch (err) {
192
+ const res = respondWithAssetError(c, err);
193
+ if (res)
194
+ return res;
195
+ throw err;
196
+ }
197
+ });
198
+ app.delete('/api/assets/:name', async (c) => {
199
+ const name = c.req.param('name');
200
+ const source = await resolve(c.req.query('target'));
201
+ try {
202
+ await deleteAsset({
203
+ storage: source.storage,
204
+ assetsRoot: ASSETS_ROOT,
205
+ siteDir: source.siteDir,
206
+ assetName: name,
207
+ manifest: source.manifest,
208
+ history: source.history,
209
+ contentRoot: source.contentRoot,
210
+ });
211
+ // 204 No Content — standard REST for successful delete with no body.
212
+ return c.body(null, 204);
213
+ }
214
+ catch (err) {
215
+ const res = respondWithAssetError(c, err);
216
+ if (res)
217
+ return res;
218
+ throw err;
219
+ }
220
+ });
221
+ /**
222
+ * POST /api/assets/:name/replace-with/:newName — atomic replace.
223
+ *
224
+ * Rewrites every reference to `:name` across pages + fragments to
225
+ * point at `:newName`, then deletes the old asset. One history
226
+ * revision covers the whole operation.
227
+ *
228
+ * Responses:
229
+ * 204 No Content — success
230
+ * 404 Not Found — either asset missing
231
+ * 409 Kind Mismatch — kinds/MIME-categories differ
232
+ * 500 Storage Failure — underlying write/rm failed mid-operation
233
+ */
234
+ /**
235
+ * POST /api/assets/:name/rename-to/:newName — atomic rename.
236
+ *
237
+ * Copies bytes + variants + manifest to `:newName`, rewrites every
238
+ * reference across pages + fragments, and deletes the old asset.
239
+ * One history revision covers the whole operation. URLs to the old
240
+ * asset stay valid until refs are rewritten — safe-order per design.
241
+ *
242
+ * Responses:
243
+ * 204 No Content — success
244
+ * 404 Not Found — old asset missing
245
+ * 409 Name Collision — new name already taken
246
+ * 500 Storage Failure — underlying read/write/rm failed mid-operation
247
+ */
248
+ app.post('/api/assets/:name/rename-to/:newName', async (c) => {
249
+ const oldName = c.req.param('name');
250
+ const newName = c.req.param('newName');
251
+ const source = await resolve(c.req.query('target'));
252
+ try {
253
+ await renameAsset({
254
+ storage: source.storage,
255
+ assetsRoot: ASSETS_ROOT,
256
+ siteDir: source.siteDir,
257
+ oldName,
258
+ newName,
259
+ manifest: source.manifest,
260
+ history: source.history,
261
+ contentRoot: source.contentRoot,
262
+ });
263
+ return c.body(null, 204);
264
+ }
265
+ catch (err) {
266
+ const res = respondWithAssetError(c, err);
267
+ if (res)
268
+ return res;
269
+ throw err;
270
+ }
271
+ });
272
+ app.post('/api/assets/:name/replace-with/:newName', async (c) => {
273
+ const oldName = c.req.param('name');
274
+ const newName = c.req.param('newName');
275
+ const source = await resolve(c.req.query('target'));
276
+ try {
277
+ await replaceAsset({
278
+ storage: source.storage,
279
+ assetsRoot: ASSETS_ROOT,
280
+ siteDir: source.siteDir,
281
+ oldName,
282
+ newName,
283
+ manifest: source.manifest,
284
+ history: source.history,
285
+ });
286
+ return c.body(null, 204);
287
+ }
288
+ catch (err) {
289
+ const res = respondWithAssetError(c, err);
290
+ if (res)
291
+ return res;
292
+ throw err;
293
+ }
294
+ });
295
+ /**
296
+ * POST /api/assets/:name/locale-bytes — upload a locale (or theme,
297
+ * or compound) bytes override for an existing asset.
298
+ *
299
+ * Selector encoded as query: `?locale=fr` or `?locale=fr&theme=dark`.
300
+ * Both absent is a 400 — this route exists to write a non-default
301
+ * selector. Default-bytes upload uses POST /api/assets.
302
+ *
303
+ * Responses:
304
+ * 201 Created — { manifest, bytesPath }
305
+ * 400 Bad Request — invalid selector or empty selector
306
+ * 404 Not Found — asset doesn't exist
307
+ * 409 Kind Mismatch — override MIME category differs from default
308
+ * 500 Storage Failure — underlying write failed
309
+ */
310
+ app.post('/api/assets/:name/locale-bytes', async (c) => {
311
+ const name = c.req.param('name');
312
+ const selectorOrErr = selectorFromQuery(c);
313
+ if (selectorOrErr instanceof Response)
314
+ return selectorOrErr;
315
+ if (selectorOrErr === null) {
316
+ return c.json({ code: 'BAD_REQUEST', message: 'Selector required (locale and/or theme)' }, 400);
317
+ }
318
+ const source = await resolve(c.req.query('target'));
319
+ const body = await c.req.parseBody();
320
+ const file = body.file;
321
+ if (!(file instanceof File)) {
322
+ return c.json({ code: 'BAD_REQUEST', message: 'Missing or invalid "file" field' }, 400);
323
+ }
324
+ const targetConfig = source.targetName ? source.manifest?.targets?.[source.targetName] : undefined;
325
+ const policy = targetConfig?.assets;
326
+ try {
327
+ const result = await ingestLocaleBytes({
328
+ storage: source.storage,
329
+ assetsRoot: ASSETS_ROOT,
330
+ assetName: name,
331
+ selector: selectorOrErr,
332
+ bytes: file.stream(),
333
+ policy,
334
+ history: source.history,
335
+ contentRoot: source.contentRoot,
336
+ });
337
+ return c.json({ manifest: result.manifest, bytesPath: result.bytesPath }, 201);
338
+ }
339
+ catch (err) {
340
+ const res = respondWithAssetError(c, err);
341
+ if (res)
342
+ return res;
343
+ throw err;
344
+ }
345
+ });
346
+ /**
347
+ * DELETE /api/assets/:name/locale-bytes — remove one locale (or
348
+ * theme, or compound) bytes override. The default asset is unaffected;
349
+ * the locale falls back to default bytes after removal.
350
+ *
351
+ * Selector encoded as query (same shape as POST). Both absent is a
352
+ * 400 — to delete the default asset, use DELETE /api/assets/:name.
353
+ *
354
+ * Responses:
355
+ * 204 No Content — success
356
+ * 400 Bad Request — invalid or empty selector
357
+ * 404 Not Found — asset or override doesn't exist
358
+ * 500 Storage Failure — underlying rm failed
359
+ */
360
+ app.delete('/api/assets/:name/locale-bytes', async (c) => {
361
+ const name = c.req.param('name');
362
+ const selectorOrErr = selectorFromQuery(c);
363
+ if (selectorOrErr instanceof Response)
364
+ return selectorOrErr;
365
+ if (selectorOrErr === null) {
366
+ return c.json({ code: 'BAD_REQUEST', message: 'Selector required (locale and/or theme)' }, 400);
367
+ }
368
+ const source = await resolve(c.req.query('target'));
369
+ try {
370
+ await removeOverride({
371
+ storage: source.storage,
372
+ assetsRoot: ASSETS_ROOT,
373
+ siteDir: source.siteDir,
374
+ assetName: name,
375
+ selector: selectorOrErr,
376
+ history: source.history,
377
+ contentRoot: source.contentRoot,
378
+ author: '',
379
+ });
380
+ return c.body(null, 204);
381
+ }
382
+ catch (err) {
383
+ const res = respondWithAssetError(c, err);
384
+ if (res)
385
+ return res;
386
+ throw err;
387
+ }
388
+ });
389
+ app.post('/api/assets', async (c) => {
390
+ const source = await resolve(c.req.query('target'));
391
+ // Hono's parseBody reads multipart into a { [field]: string | File } map.
392
+ const body = await c.req.parseBody();
393
+ const file = body.file;
394
+ const name = body.name;
395
+ const altRaw = body.alt;
396
+ if (!(file instanceof File)) {
397
+ return c.json({ code: 'BAD_REQUEST', message: 'Missing or invalid "file" field' }, 400);
398
+ }
399
+ if (typeof name !== 'string' || name.length === 0) {
400
+ return c.json({ code: 'BAD_REQUEST', message: 'Missing or invalid "name" field' }, 400);
401
+ }
402
+ // alt: absent → null, empty string → "" (decorative), string → the value
403
+ const alt = typeof altRaw === 'string' ? altRaw : null;
404
+ // Pull per-target upload policy from site.yaml. When the source
405
+ // didn't resolve a named target (legacy static-resolver path) or
406
+ // the site manifest isn't wired, ingest falls back to the default
407
+ // size cap.
408
+ const targetConfig = source.targetName ? source.manifest?.targets?.[source.targetName] : undefined;
409
+ const policy = targetConfig?.assets;
410
+ try {
411
+ const result = await ingestAsset({
412
+ storage: source.storage,
413
+ assetsRoot: ASSETS_ROOT,
414
+ bytes: file.stream(),
415
+ requestedName: name,
416
+ alt,
417
+ uploadedBy: '',
418
+ policy,
419
+ history: source.history,
420
+ contentRoot: source.contentRoot,
421
+ });
422
+ return c.json({ manifest: result.manifest, bytesPath: result.bytesPath }, 201);
423
+ }
424
+ catch (err) {
425
+ const res = respondWithAssetError(c, err);
426
+ if (res)
427
+ return res;
428
+ throw err;
429
+ }
430
+ });
431
+ return app;
432
+ }
433
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/admin-api/routes/assets.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Hono } from 'hono';
2
2
  import type { StorageProvider, TargetConfig } from '../../types.js';
3
3
  import type { TemplateInfo } from '../../templates-scan.js';
4
- export declare function compareRoutes(siteDir: string, sourceStorage: StorageProvider, preInitTargets?: Map<string, StorageProvider>, targetConfigs?: Record<string, TargetConfig>, templatesDir?: string, scanTemplatesInjected?: (templatesDir: string, projectRoot: string) => Promise<TemplateInfo[]>): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
4
+ import type { SourceContextResolver } from '../source-context.js';
5
+ export declare function compareRoutes(resolve: SourceContextResolver, preInitTargets?: Map<string, StorageProvider>, targetConfigs?: Record<string, TargetConfig>, templatesDir?: string, scanTemplatesInjected?: (templatesDir: string, projectRoot: string) => Promise<TemplateInfo[]>): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
5
6
  //# sourceMappingURL=compare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/admin-api/routes/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,eAAe,EAC9B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,YAAY,CAAC,EAAE,MAAM,EACrB,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,8EAuD/F"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/admin-api/routes/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEjE,wBAAgB,aAAa,CAC3B,OAAO,EAAE,qBAAqB,EAC9B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,YAAY,CAAC,EAAE,MAAM,EACrB,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,8EAiE/F"}
@@ -1,49 +1,58 @@
1
1
  import { Hono } from 'hono';
2
2
  import { join } from 'node:path';
3
- import { getPublishMode } from '../../types.js';
3
+ import { getType } from '../../types.js';
4
4
  import { compareTargets } from '../../compare.js';
5
- export function compareRoutes(siteDir, sourceStorage, preInitTargets, targetConfigs, templatesDir, scanTemplatesInjected) {
5
+ export function compareRoutes(resolve, preInitTargets, targetConfigs, templatesDir, scanTemplatesInjected) {
6
6
  const app = new Hono();
7
7
  let targets = preInitTargets ?? null;
8
- const initPromise = preInitTargets
9
- ? Promise.resolve(preInitTargets)
10
- : (!targetConfigs || Object.keys(targetConfigs).length === 0)
11
- ? Promise.resolve(new Map())
12
- : (async () => {
13
- const { createTargetRegistry } = await import('../../targets.js');
14
- targets = await createTargetRegistry(targetConfigs, siteDir);
15
- return targets;
16
- })();
17
- if (!preInitTargets) {
18
- initPromise.then(t => { targets = t; }).catch(() => { targets = new Map(); });
19
- }
20
- async function getTargets() {
8
+ let targetsInitPromise = null;
9
+ async function getTargets(projectSiteDir) {
21
10
  if (targets)
22
11
  return targets;
23
- return initPromise;
12
+ if (!targetConfigs || Object.keys(targetConfigs).length === 0) {
13
+ targets = new Map();
14
+ return targets;
15
+ }
16
+ if (!targetsInitPromise) {
17
+ const { createTargetRegistry } = await import('../../targets.js');
18
+ targetsInitPromise = createTargetRegistry(targetConfigs, projectSiteDir)
19
+ .then(t => {
20
+ targets = t;
21
+ return t;
22
+ })
23
+ .catch(() => {
24
+ targets = new Map();
25
+ return new Map();
26
+ });
27
+ }
28
+ return targetsInitPromise;
24
29
  }
25
30
  app.get('/api/compare', async (c) => {
31
+ // `target` = compare destination (what we're diffing against)
32
+ // `source` = source of the compare (which editable target to read from);
33
+ // defaults to the resolver's default editable target
26
34
  const targetName = c.req.query('target');
27
35
  if (!targetName)
28
36
  return c.json({ error: 'Missing "target" query parameter' }, 400);
29
- const t = await getTargets();
37
+ const source = await resolve(c.req.query('source'));
38
+ const { projectSiteDir } = source;
39
+ const t = await getTargets(projectSiteDir);
30
40
  const targetStorage = t.get(targetName);
31
41
  if (!targetStorage)
32
42
  return c.json({ error: `Unknown target: ${targetName}` }, 400);
33
- const tdir = templatesDir ?? join(siteDir, 'templates');
34
- // Walk up from siteDir to find the project root (parent of "sites/")
35
- const projectRoot = siteDir.replace(/[\\/]sites[\\/][^\\/]+$/, '');
43
+ const tdir = templatesDir ?? join(projectSiteDir, 'templates');
44
+ const projectRoot = projectSiteDir.replace(/[\\/]sites[\\/][^\\/]+$/, '');
36
45
  const targetConfig = targetConfigs?.[targetName];
37
- const publishMode = targetConfig ? getPublishMode(targetConfig) : 'esi';
46
+ const type = targetConfig ? getType(targetConfig) : 'dynamic';
38
47
  try {
39
48
  const result = await compareTargets({
40
- source: sourceStorage,
49
+ sourceRoot: source.contentRoot,
41
50
  target: targetStorage,
42
- siteDir,
43
51
  templatesDir: tdir,
44
52
  projectRoot,
45
- publishMode,
53
+ type,
46
54
  scanTemplates: scanTemplatesInjected,
55
+ manifest: source.manifest,
47
56
  });
48
57
  return c.json(result);
49
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/admin-api/routes/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/admin-api/routes/compare.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { Hono } from 'hono';
2
- import type { StorageProvider } from '../../types.js';
3
- export declare function fieldRoutes(siteDir: string, storage: StorageProvider, adminDir?: string): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
2
+ import type { SourceContextResolver } from '../source-context.js';
3
+ export declare function fieldRoutes(resolve: SourceContextResolver, adminDir?: string): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
4
4
  //# sourceMappingURL=fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/admin-api/routes/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIrD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,MAAM,8EAkBvF"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/admin-api/routes/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAIjE,wBAAgB,WAAW,CAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,EAAE,MAAM,8EAyB5E"}
@@ -1,11 +1,18 @@
1
1
  import { Hono } from 'hono';
2
2
  import { join } from 'node:path';
3
+ import { createFilesystemProvider } from '../../providers/filesystem.js';
3
4
  const FIELD_EXTENSIONS = ['.ts', '.tsx'];
4
- export function fieldRoutes(siteDir, storage, adminDir) {
5
+ export function fieldRoutes(resolve, adminDir) {
5
6
  const app = new Hono();
6
- const fieldsDir = join(adminDir ?? join(siteDir, 'admin'), 'fields');
7
+ // Custom fields live at project level, outside target content storage.
8
+ const storage = createFilesystemProvider();
7
9
  app.get('/api/fields', async (c) => {
8
- if (!await storage.exists(fieldsDir))
10
+ // projectSiteDir is target-invariant (it's the on-disk project path).
11
+ // We still go through resolve() so the single source-lookup codepath
12
+ // serves this route too — keeps the handler shape uniform.
13
+ const source = await resolve(c.req.query('target'));
14
+ const fieldsDir = join(adminDir ?? join(source.projectSiteDir, 'admin'), 'fields');
15
+ if (!(await storage.exists(fieldsDir)))
9
16
  return c.json([]);
10
17
  const entries = await storage.readDir(fieldsDir);
11
18
  const fields = entries
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/admin-api/routes/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAExC,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,OAAwB,EAAE,QAAiB;IACtF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;IAEpE,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,OAAO;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;aACjF,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;YAC9C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QACJ,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/admin-api/routes/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAGxE,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAExC,MAAM,UAAU,WAAW,CAAC,OAA8B,EAAE,QAAiB;IAC3E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,uEAAuE;IACvE,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAA;IAE1C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC/B,sEAAsE;QACtE,qEAAqE;QACrE,2DAA2D;QAC3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;QAElF,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEzD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,OAAO;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;aACjF,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;YAC9C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QACJ,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { Hono } from 'hono';
2
- import type { StorageProvider } from '../../types.js';
3
- import type { SourceSidecarWriter } from '../../source-sidecars.js';
4
- export declare function fragmentRoutes(siteDir: string, storage: StorageProvider, sidecarWriter?: SourceSidecarWriter): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
2
+ import type { SourceContextResolver } from '../source-context.js';
3
+ export declare function fragmentRoutes(resolve: SourceContextResolver): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
5
4
  //# sourceMappingURL=fragments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../../src/admin-api/routes/fragments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,mBAAmB,8EA2E5G"}
1
+ {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../../src/admin-api/routes/fragments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAMjE,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,8EA8K5D"}