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,45 @@
1
+ /**
2
+ * Sitemap generation — produces sitemap.xml from target sidecars.
3
+ *
4
+ * SRP: this module owns sitemap XML assembly. It takes the sidecar
5
+ * listing from a target's `pages/` directory (already available via
6
+ * `listSidecars`) and produces the XML string. No I/O — the caller
7
+ * reads sidecars and writes the result to storage.
8
+ *
9
+ * The sitemap reflects what's ACTUALLY published on the target, not
10
+ * what's in the source. A page that exists in source but was never
11
+ * published won't appear. A page that was deleted from source but
12
+ * is still live on the target WILL appear (until the next full
13
+ * publish removes its sidecars).
14
+ *
15
+ * Pages with `.pub-*-noindex` sidecars are excluded. System pages
16
+ * (e.g. 404) are excluded by name.
17
+ */
18
+ import type { SidecarState } from './sidecars.js';
19
+ /** hreflang alternate for a single page — locale code + absolute URL. */
20
+ export interface HreflangAlternate {
21
+ locale: string;
22
+ url: string;
23
+ }
24
+ export interface GenerateSitemapOptions {
25
+ /** Absolute base URL (e.g. "https://gazetta.studio"). */
26
+ siteUrl: string;
27
+ /** Target sidecar listing — keyed by page name (e.g. "home", "about"). */
28
+ pages: Map<string, SidecarState>;
29
+ /** System page names to exclude (e.g. ["404"]). */
30
+ systemPages?: string[];
31
+ /**
32
+ * hreflang alternates per page — keyed by page name. Each entry lists
33
+ * all locale variants (including self). Only pages with 2+ alternates
34
+ * get hreflang in the sitemap. Noindex variants are excluded by the caller.
35
+ */
36
+ hreflangGroups?: Map<string, HreflangAlternate[]>;
37
+ /** Default locale code — used for x-default in hreflang. */
38
+ defaultLocale?: string;
39
+ }
40
+ /**
41
+ * Generate sitemap XML from target sidecars. Returns null when no
42
+ * pages qualify (all noindex, or empty target).
43
+ */
44
+ export declare function generateSitemap(opts: GenerateSitemapOptions): string | null;
45
+ //# sourceMappingURL=sitemap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../src/sitemap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAChC,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACjD,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAWD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAyD3E"}
@@ -0,0 +1,67 @@
1
+ import { deriveRoute } from './site-loader.js';
2
+ function escapeXml(s) {
3
+ return s
4
+ .replace(/&/g, '&amp;')
5
+ .replace(/</g, '&lt;')
6
+ .replace(/>/g, '&gt;')
7
+ .replace(/"/g, '&quot;')
8
+ .replace(/'/g, '&apos;');
9
+ }
10
+ /**
11
+ * Generate sitemap XML from target sidecars. Returns null when no
12
+ * pages qualify (all noindex, or empty target).
13
+ */
14
+ export function generateSitemap(opts) {
15
+ const systemSet = new Set(opts.systemPages ?? []);
16
+ const base = opts.siteUrl.replace(/\/+$/, '');
17
+ const urls = [];
18
+ // Sort by page name for deterministic output across runs.
19
+ const sorted = [...opts.pages.entries()].sort((a, b) => a[0].localeCompare(b[0]));
20
+ for (const [name, state] of sorted) {
21
+ // Locale-qualified entries (home:fr) are handled as separate <url> entries
22
+ // with their locale-prefixed route. The base page name is before the colon.
23
+ const isLocaleEntry = name.includes(':');
24
+ const baseName = isLocaleEntry ? name.split(':')[0] : name;
25
+ const locale = isLocaleEntry ? name.split(':')[1] : null;
26
+ if (systemSet.has(baseName))
27
+ continue;
28
+ if (state.pub?.noindex)
29
+ continue;
30
+ if (baseName.includes('['))
31
+ continue; // dynamic routes — can't sitemap template patterns
32
+ // For locale entries, use the locale-prefixed route (e.g. /fr/about).
33
+ // For default entries, use the standard route (e.g. /about).
34
+ const baseRoute = deriveRoute(baseName);
35
+ const route = locale ? (baseRoute === '/' ? `/${locale}` : `/${locale}${baseRoute}`) : baseRoute;
36
+ const loc = `${base}${route}`;
37
+ const lastmod = state.pub?.lastPublished;
38
+ const parts = [` <loc>${escapeXml(loc)}</loc>`];
39
+ if (lastmod) {
40
+ // Sitemap spec wants YYYY-MM-DD or full ISO — use date only
41
+ parts.push(` <lastmod>${lastmod.slice(0, 10)}</lastmod>`);
42
+ }
43
+ // hreflang cross-links — only when 2+ locale variants exist.
44
+ // Locale entries share the same hreflang group as their base page.
45
+ const alternates = opts.hreflangGroups?.get(baseName);
46
+ if (alternates && alternates.length > 1) {
47
+ for (const alt of alternates) {
48
+ parts.push(` <xhtml:link rel="alternate" hreflang="${escapeXml(alt.locale)}" href="${escapeXml(alt.url)}" />`);
49
+ }
50
+ if (opts.defaultLocale) {
51
+ const defaultAlt = alternates.find(a => a.locale === opts.defaultLocale);
52
+ if (defaultAlt) {
53
+ parts.push(` <xhtml:link rel="alternate" hreflang="x-default" href="${escapeXml(defaultAlt.url)}" />`);
54
+ }
55
+ }
56
+ }
57
+ urls.push(` <url>\n${parts.join('\n')}\n </url>`);
58
+ }
59
+ if (urls.length === 0)
60
+ return null;
61
+ const hasHreflang = opts.hreflangGroups && [...opts.hreflangGroups.values()].some(alts => alts.length > 1);
62
+ const xmlns = hasHreflang
63
+ ? '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">'
64
+ : '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
65
+ return ['<?xml version="1.0" encoding="UTF-8"?>', xmlns, ...urls, '</urlset>', ''].join('\n');
66
+ }
67
+ //# sourceMappingURL=sitemap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../src/sitemap.ts"],"names":[],"mappings":"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"}
package/dist/targets.d.ts CHANGED
@@ -1,5 +1,51 @@
1
1
  import type { StorageProvider, TargetConfig, StorageConfig } from './types.js';
2
+ /**
3
+ * Target resolution surface used by route handlers and anything that needs
4
+ * to act on a specific named target. Narrow by intent: route factories that
5
+ * only list targets take `list()`; handlers that load content take `get()`;
6
+ * publish-aware code reads `getConfig()` to branch on type or environment.
7
+ *
8
+ * Implementations decide how to initialize providers — eagerly at boot,
9
+ * lazily on first access, or mocked for tests.
10
+ */
11
+ export interface TargetRegistry {
12
+ /** Resolve a target name to its storage provider. Throws if unknown. */
13
+ get(name: string): StorageProvider;
14
+ /** Configuration for a target (type, environment, editable). */
15
+ getConfig(name: string): TargetConfig | undefined;
16
+ /** All known target names. */
17
+ list(): string[];
18
+ /**
19
+ * Name of the default editable target for this site. Throws if none exists.
20
+ * Resolution: first target where `isEditable(config) === true`, in the order
21
+ * they appear in site.yaml.
22
+ */
23
+ defaultEditable(): string;
24
+ }
25
+ export declare class UnknownTargetError extends Error {
26
+ constructor(name: string);
27
+ }
28
+ export declare class NoEditableTargetError extends Error {
29
+ constructor();
30
+ }
31
+ /**
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.
35
+ */
36
+ export declare function createTargetRegistryView(providers: Map<string, StorageProvider>, configs: Record<string, TargetConfig>): TargetRegistry;
37
+ /** Find all editable targets in declaration order. Pure helper. */
38
+ export declare function listEditableTargets(configs: Record<string, TargetConfig>): string[];
2
39
  export declare function resolveEnvVars(value: string | undefined): string | undefined;
3
- export declare function createStorageProvider(config: StorageConfig, siteDir: string): Promise<StorageProvider>;
40
+ /**
41
+ * Build a storage provider from config.
42
+ *
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.
48
+ */
49
+ export declare function createStorageProvider(config: StorageConfig, siteDir: string, targetName?: string): Promise<StorageProvider>;
4
50
  export declare function createTargetRegistry(targets: Record<string, TargetConfig>, siteDir: string): Promise<Map<string, StorageProvider>>;
5
51
  //# sourceMappingURL=targets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG9E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyE5G;AAUD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAwBxI"}
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"}
package/dist/targets.js CHANGED
@@ -1,17 +1,76 @@
1
- import { resolve } from 'node:path';
2
- import { execSync } from 'node:child_process';
1
+ import { resolve, join } from 'node:path';
2
+ import { isEditable } from './types.js';
3
3
  import { createFilesystemProvider } from './providers/filesystem.js';
4
+ export class UnknownTargetError extends Error {
5
+ constructor(name) {
6
+ super(`Unknown target: ${name}`);
7
+ this.name = 'UnknownTargetError';
8
+ }
9
+ }
10
+ export class NoEditableTargetError extends Error {
11
+ constructor() {
12
+ super('No editable target is configured. At least one target in site.yaml must be editable.');
13
+ this.name = 'NoEditableTargetError';
14
+ }
15
+ }
16
+ /**
17
+ * Build a TargetRegistry from already-initialized providers and their configs.
18
+ * The factory that boots the dev server populates `providers` by running
19
+ * `createStorageProvider` per target; tests pass in-memory providers.
20
+ */
21
+ export function createTargetRegistryView(providers, configs) {
22
+ const orderedNames = Object.keys(configs);
23
+ return {
24
+ get(name) {
25
+ const p = providers.get(name);
26
+ if (!p)
27
+ throw new UnknownTargetError(name);
28
+ return p;
29
+ },
30
+ getConfig(name) {
31
+ return configs[name];
32
+ },
33
+ list() {
34
+ return [...orderedNames];
35
+ },
36
+ defaultEditable() {
37
+ for (const name of orderedNames) {
38
+ const cfg = configs[name];
39
+ if (cfg && isEditable(cfg))
40
+ return name;
41
+ }
42
+ throw new NoEditableTargetError();
43
+ },
44
+ };
45
+ }
46
+ /** Find all editable targets in declaration order. Pure helper. */
47
+ export function listEditableTargets(configs) {
48
+ return Object.entries(configs)
49
+ .filter(([, cfg]) => isEditable(cfg))
50
+ .map(([name]) => name);
51
+ }
4
52
  export function resolveEnvVars(value) {
5
53
  if (!value)
6
54
  return value;
7
55
  return value.replace(/\$\{(\w+)\}/g, (_, name) => process.env[name] ?? '');
8
56
  }
9
- export async function createStorageProvider(config, siteDir) {
57
+ /**
58
+ * Build a storage provider from config.
59
+ *
60
+ * For filesystem targets, `path` defaults to `./targets/<targetName>` (relative
61
+ * to the site dir). Users can override by setting `path` explicitly in
62
+ * site.yaml — useful for shared drives, existing layouts, or multi-site setups
63
+ * that need custom paths. If neither `path` nor `targetName` is available for
64
+ * a filesystem target, throws.
65
+ */
66
+ export async function createStorageProvider(config, siteDir, targetName) {
10
67
  switch (config.type) {
11
- case 'filesystem':
12
- if (!config.path)
13
- throw new Error('Filesystem storage requires "path"');
14
- return createFilesystemProvider(resolve(siteDir, config.path));
68
+ case 'filesystem': {
69
+ const path = config.path ?? (targetName ? join('targets', targetName) : undefined);
70
+ if (!path)
71
+ throw new Error('Filesystem storage requires "path" (or a target name to derive the default from)');
72
+ return createFilesystemProvider(resolve(siteDir, path));
73
+ }
15
74
  case 'azure-blob': {
16
75
  const connectionString = resolveEnvVars(config.connectionString);
17
76
  if (!connectionString)
@@ -43,7 +102,8 @@ export async function createStorageProvider(config, siteDir) {
43
102
  });
44
103
  }
45
104
  catch {
46
- throw new Error('S3 storage requires @aws-sdk/client-s3. Install it: npm install @aws-sdk/client-s3');
105
+ throw new Error('S3 storage requires @aws-sdk/client-s3 and @aws-sdk/lib-storage. ' +
106
+ 'Install them: npm install @aws-sdk/client-s3 @aws-sdk/lib-storage');
47
107
  }
48
108
  }
49
109
  case 'r2': {
@@ -53,38 +113,25 @@ export async function createStorageProvider(config, siteDir) {
53
113
  throw new Error('R2 storage requires "bucket"');
54
114
  const accessKeyId = resolveEnvVars(config.accessKeyId);
55
115
  const secretAccessKey = resolveEnvVars(config.secretAccessKey);
56
- // When S3 credentials are available, use S3 provider (fast, parallel good for CI)
57
- if (accessKeyId && secretAccessKey) {
58
- try {
59
- const { createS3Provider } = await import('./providers/s3.js');
60
- return createS3Provider({
61
- endpoint: `https://${config.accountId}.r2.cloudflarestorage.com`,
62
- bucket: config.bucket,
63
- accessKeyId,
64
- secretAccessKey,
65
- region: config.region,
66
- });
67
- }
68
- catch {
69
- throw new Error('R2 with S3 credentials requires @aws-sdk/client-s3. Install it: npm install @aws-sdk/client-s3');
70
- }
116
+ if (!accessKeyId || !secretAccessKey) {
117
+ throw new Error('R2 storage requires accessKeyId and secretAccessKey.\n' +
118
+ ' Set R2_ACCESS_KEY_ID and R2_SECRET_ACCESS_KEY environment variables, or\n' +
119
+ ' create an R2 API token at https://dash.cloudflare.com/<account>/r2/api-tokens');
71
120
  }
72
- // Fall back to Cloudflare REST API using wrangler auth
73
- let apiToken;
74
121
  try {
75
- const output = execSync('npx wrangler auth token', { encoding: 'utf-8', timeout: 10000, stdio: ['pipe', 'pipe', 'pipe'] });
76
- // wrangler prints a banner before the token — extract the last non-empty line
77
- apiToken = output.split('\n').map(l => l.trim()).filter(l => l && !l.includes('wrangler') && !l.includes('───')).pop() ?? '';
122
+ const { createS3Provider } = await import('./providers/s3.js');
123
+ return createS3Provider({
124
+ endpoint: `https://${config.accountId}.r2.cloudflarestorage.com`,
125
+ bucket: config.bucket,
126
+ accessKeyId,
127
+ secretAccessKey,
128
+ region: config.region,
129
+ });
78
130
  }
79
131
  catch {
80
- throw new Error('R2 storage: no credentials found.\n' +
81
- ' Either set R2_ACCESS_KEY_ID and R2_SECRET_ACCESS_KEY environment variables,\n' +
82
- ' or run "npx wrangler login" to authenticate with Cloudflare.');
132
+ throw new Error('R2 storage requires @aws-sdk/client-s3 and @aws-sdk/lib-storage. ' +
133
+ 'Install them: npm install @aws-sdk/client-s3 @aws-sdk/lib-storage');
83
134
  }
84
- if (!apiToken)
85
- throw new Error('R2 storage: wrangler returned empty token. Run "npx wrangler login" to authenticate.');
86
- const { createR2RestProvider } = await import('./providers/r2.js');
87
- return createR2RestProvider({ accountId: config.accountId, bucket: config.bucket, apiToken });
88
135
  }
89
136
  default:
90
137
  throw new Error(`Unknown storage type: ${config.type}`);
@@ -105,7 +152,7 @@ export async function createTargetRegistry(targets, siteDir) {
105
152
  await Promise.all(Object.entries(targets).map(async ([name, config]) => {
106
153
  try {
107
154
  const initOne = async () => {
108
- const provider = await createStorageProvider(config.storage, siteDir);
155
+ const provider = await createStorageProvider(config.storage, siteDir, name);
109
156
  if ('init' in provider && typeof provider.init === 'function') {
110
157
  await provider.init();
111
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@ interface LoadedTemplate {
3
3
  render: TemplateFunction;
4
4
  schema: unknown;
5
5
  }
6
- export declare function loadTemplate(storage: StorageProvider, templatesDir: string, templateName: string): Promise<LoadedTemplate>;
7
- /** Check if a custom editor file exists for a template */
8
- export declare function hasEditorFile(storage: StorageProvider, editorsDir: string, templateName: string): Promise<boolean>;
6
+ export declare function loadTemplate(_storage: StorageProvider | undefined, templatesDir: string, templateName: string): Promise<LoadedTemplate>;
7
+ /**
8
+ * Check if a custom editor file exists for a template. Editors live at
9
+ * project level on local filesystem, so this reads via fs.access regardless
10
+ * of what storage the admin app is bound to.
11
+ */
12
+ export declare function hasEditorFile(_storage: StorageProvider | undefined, editorsDir: string, templateName: string): Promise<boolean>;
9
13
  export declare function invalidateTemplate(templateName: string): void;
10
14
  export declare function invalidateAllTemplates(): void;
11
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEnE,UAAU,cAAc;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,MAAM,EAAE,OAAO,CAAA;CAChB;AA8BD,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA2ChI;AAED,0DAA0D;AAC1D,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxH;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAE7D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
1
+ {"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEnE,UAAU,cAAc;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,MAAM,EAAE,OAAO,CAAA;CAChB;AAwCD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAyCzB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAE7D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
@@ -1,14 +1,25 @@
1
1
  import { join } from 'node:path';
2
2
  import { pathToFileURL } from 'node:url';
3
+ import { access } from 'node:fs/promises';
3
4
  import { createJiti } from 'jiti';
4
5
  const cache = new Map();
5
6
  /** Tracks which templates have been imported — reloads use jiti to bypass Node's module cache */
6
7
  const importedPaths = new Set();
7
8
  const TEMPLATE_FILES = ['index.ts', 'index.tsx'];
8
- async function findTemplateFile(storage, templatesDir, templateName) {
9
+ /** Filesystem existence check templates always live on disk at absolute paths. */
10
+ async function fsExists(path) {
11
+ try {
12
+ await access(path);
13
+ return true;
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ }
19
+ async function findTemplateFile(templatesDir, templateName) {
9
20
  for (const file of TEMPLATE_FILES) {
10
21
  const path = join(templatesDir, templateName, file);
11
- if (await storage.exists(path))
22
+ if (await fsExists(path))
12
23
  return path;
13
24
  }
14
25
  return null;
@@ -21,17 +32,17 @@ async function importTemplate(templatePath) {
21
32
  }
22
33
  catch {
23
34
  const jiti = createJiti(pathToFileURL(templatePath).href, { jsx: true });
24
- return await jiti.import(templatePath);
35
+ return (await jiti.import(templatePath));
25
36
  }
26
37
  }
27
38
  const freshJiti = createJiti(pathToFileURL(templatePath).href, { jsx: true, moduleCache: false });
28
- return await freshJiti.import(templatePath);
39
+ return (await freshJiti.import(templatePath));
29
40
  }
30
- export async function loadTemplate(storage, templatesDir, templateName) {
41
+ export async function loadTemplate(_storage, templatesDir, templateName) {
31
42
  const cached = cache.get(templateName);
32
43
  if (cached)
33
44
  return cached;
34
- const templatePath = await findTemplateFile(storage, templatesDir, templateName);
45
+ const templatePath = await findTemplateFile(templatesDir, templateName);
35
46
  if (!templatePath) {
36
47
  throw new Error(`Template "${templateName}" not found. Expected index.ts or index.tsx in ${join(templatesDir, templateName)}\n` +
37
48
  ` Available templates are in ${templatesDir}`);
@@ -59,17 +70,21 @@ export async function loadTemplate(storage, templatesDir, templateName) {
59
70
  cache.set(templateName, loaded);
60
71
  return loaded;
61
72
  }
62
- /** Check if a custom editor file exists for a template */
63
- export async function hasEditorFile(storage, editorsDir, templateName) {
73
+ /**
74
+ * Check if a custom editor file exists for a template. Editors live at
75
+ * project level on local filesystem, so this reads via fs.access regardless
76
+ * of what storage the admin app is bound to.
77
+ */
78
+ export async function hasEditorFile(_storage, editorsDir, templateName) {
64
79
  // Flat: admin/editors/hero.ts(x)
65
- if (await storage.exists(join(editorsDir, `${templateName}.ts`)))
80
+ if (await fsExists(join(editorsDir, `${templateName}.ts`)))
66
81
  return true;
67
- if (await storage.exists(join(editorsDir, `${templateName}.tsx`)))
82
+ if (await fsExists(join(editorsDir, `${templateName}.tsx`)))
68
83
  return true;
69
84
  // Directory: admin/editors/hero/index.ts(x)
70
- if (await storage.exists(join(editorsDir, templateName, 'index.ts')))
85
+ if (await fsExists(join(editorsDir, templateName, 'index.ts')))
71
86
  return true;
72
- if (await storage.exists(join(editorsDir, templateName, 'index.tsx')))
87
+ if (await fsExists(join(editorsDir, templateName, 'index.tsx')))
73
88
  return true;
74
89
  return false;
75
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../src/template-loader.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ async function scan(input) {
9
9
  const jiti = createJiti(pathToFileURL(entry).href, { jsx: true, moduleCache: true });
10
10
  let mod;
11
11
  try {
12
- mod = await jiti.import(entry);
12
+ mod = (await jiti.import(entry));
13
13
  }
14
14
  catch (err) {
15
15
  return { valid: false, hash: '', errors: [`import failed: ${err.message}`], files: [] };
@@ -1 +1 @@
1
- {"version":3,"file":"templates-scan-worker.js","sourceRoot":"","sources":["../src/templates-scan-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAcpC,KAAK,UAAU,IAAI,CAAC,KAAkB;IACpC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpF,IAAI,GAA4B,CAAA;IAChC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAA4B,CAAA;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IACpG,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;QAAE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACzF,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAElD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAgC,CAAC;SAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SAC1C,IAAI,EAAE,CAAA;IAET,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACpB,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KAChD,CAAA;AACH,CAAC;AAED,IAAI,CAAC,UAAU;IAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;AAExF,IAAI,CAAC,UAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"templates-scan-worker.js","sourceRoot":"","sources":["../src/templates-scan-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAcpC,KAAK,UAAU,IAAI,CAAC,KAAkB;IACpC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpF,IAAI,GAA4B,CAAA;IAChC,IAAI,CAAC;QACH,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAA4B,CAAA;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IACpG,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;QAAE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACzF,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAElD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAgC,CAAC;SAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SAC1C,IAAI,EAAE,CAAA;IAET,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACpB,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KAChD,CAAA;AACH,CAAC;AAED,IAAI,CAAC,UAAU;IAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;AAExF,IAAI,CAAC,UAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates-scan.d.ts","sourceRoot":"","sources":["../src/templates-scan.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAmFD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAUzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,CAYvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CASlE"}
1
+ {"version":3,"file":"templates-scan.d.ts","sourceRoot":"","sources":["../src/templates-scan.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAmFD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAYtG;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAYjH;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CASlE"}
@@ -71,7 +71,7 @@ function scanOne(entry, projectRoot) {
71
71
  w.terminate();
72
72
  resolveP(msg);
73
73
  });
74
- w.once('error', (err) => {
74
+ w.once('error', err => {
75
75
  w.terminate();
76
76
  rejectP(err);
77
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"templates-scan.js","sourceRoot":"","sources":["../src/templates-scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates-scan.js","sourceRoot":"","sources":["../src/templates-scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Theme resolution — single source of truth for theme configuration.
3
+ *
4
+ * Mirrors `locale.ts` for the theme dimension. Themes are an asset-override
5
+ * axis introduced in v1: each asset can carry per-theme byte overrides
6
+ * (typically `light` / `dark`) that the resolver picks per render context.
7
+ *
8
+ * Single responsibility: given a `SiteManifest`, return the resolved theme
9
+ * settings (supported list, default). Validation rules. Nothing about
10
+ * assets, manifests, or rendering — those are the resolver's concern.
11
+ *
12
+ * # Why a separate module from locale.ts
13
+ *
14
+ * Themes and locales are peer dimensions in the abstract model but they
15
+ * have different ergonomics: locale codes are open (BCP 47, thousands of
16
+ * valid values), theme codes are closed by convention (typically two or
17
+ * three names per site). The resolution logic is similar enough to feel
18
+ * shared and different enough to warrant separate modules — extracting
19
+ * a shared "dimension config" abstraction would couple them in ways that
20
+ * hurt clarity.
21
+ */
22
+ import type { SiteManifest, ThemesConfig } from './types.js';
23
+ /** Resolved theme settings for a site. */
24
+ export interface ResolvedThemes {
25
+ /** All supported theme names, normalized to lowercase. */
26
+ supported: string[];
27
+ /** The default theme name. */
28
+ default: string;
29
+ }
30
+ /**
31
+ * Validate a theme name as it would appear in storage / filenames.
32
+ *
33
+ * Strict on input — does NOT normalize. Mixed case, leading dots, etc.
34
+ * fail. Callers that want lenient parsing should `normalizeTheme` first
35
+ * and then check.
36
+ *
37
+ * Rejects:
38
+ * - empty / whitespace
39
+ * - dots (would collide with filename suffix scheme)
40
+ * - any uppercase character (filenames must be normalized to lowercase
41
+ * before reaching storage; uppercase reaching this validator is a bug)
42
+ * - BCP 47 locale codes (would be ambiguous in filename composition —
43
+ * `hero.asset.en.json` could be locale `en` or theme `en`)
44
+ */
45
+ export declare function isValidTheme(theme: string): boolean;
46
+ /** Normalize a theme name to lowercase for filenames. */
47
+ export declare function normalizeTheme(theme: string): string;
48
+ /**
49
+ * Resolve theme settings from a site manifest. Throws when the config is
50
+ * present but invalid (collision with locale codes, malformed names) so
51
+ * misconfiguration surfaces at boot rather than silently at render time.
52
+ *
53
+ * Returns `null` when `themes` is unset — that's the "no theme dimension
54
+ * for this site" signal. Asset overrides keyed by theme are rejected
55
+ * downstream when this is null.
56
+ */
57
+ export declare function resolveSiteThemes(site: SiteManifest): ResolvedThemes | null;
58
+ /**
59
+ * Subset themes to a config — used when a target overrides the site's theme
60
+ * set. Falls back to the site's resolved themes when the target doesn't
61
+ * narrow.
62
+ *
63
+ * v1 doesn't expose target-level theme override (assets are global to the
64
+ * site's theme set). The function is here for symmetry with locale
65
+ * resolution and future-proofs the API when targets may want to ship a
66
+ * subset (e.g. a target that only serves light mode).
67
+ */
68
+ export declare function resolveTargetThemes(siteThemes: ResolvedThemes | null, override?: ThemesConfig): ResolvedThemes | null;
69
+ //# sourceMappingURL=themes.d.ts.map