gazetta 0.6.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 (340) 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/index.html +2 -2
  4. package/dist/admin-api/error-response.d.ts +21 -0
  5. package/dist/admin-api/error-response.d.ts.map +1 -0
  6. package/dist/admin-api/error-response.js +12 -0
  7. package/dist/admin-api/error-response.js.map +1 -0
  8. package/dist/admin-api/index.d.ts +0 -2
  9. package/dist/admin-api/index.d.ts.map +1 -1
  10. package/dist/admin-api/index.js +4 -24
  11. package/dist/admin-api/index.js.map +1 -1
  12. package/dist/admin-api/routes/assets.d.ts +16 -0
  13. package/dist/admin-api/routes/assets.d.ts.map +1 -0
  14. package/dist/admin-api/routes/assets.js +433 -0
  15. package/dist/admin-api/routes/assets.js.map +1 -0
  16. package/dist/admin-api/routes/fragments.d.ts.map +1 -1
  17. package/dist/admin-api/routes/fragments.js +30 -4
  18. package/dist/admin-api/routes/fragments.js.map +1 -1
  19. package/dist/admin-api/routes/pages.d.ts.map +1 -1
  20. package/dist/admin-api/routes/pages.js +37 -4
  21. package/dist/admin-api/routes/pages.js.map +1 -1
  22. package/dist/admin-api/routes/publish.d.ts.map +1 -1
  23. package/dist/admin-api/routes/publish.js +68 -35
  24. package/dist/admin-api/routes/publish.js.map +1 -1
  25. package/dist/admin-api/schemas/assets.d.ts +48 -0
  26. package/dist/admin-api/schemas/assets.d.ts.map +1 -0
  27. package/dist/admin-api/schemas/assets.js +44 -0
  28. package/dist/admin-api/schemas/assets.js.map +1 -0
  29. package/dist/admin-api/schemas/index.d.ts +2 -0
  30. package/dist/admin-api/schemas/index.d.ts.map +1 -1
  31. package/dist/admin-api/schemas/index.js +2 -0
  32. package/dist/admin-api/schemas/index.js.map +1 -1
  33. package/dist/admin-api/source-context.d.ts +0 -7
  34. package/dist/admin-api/source-context.d.ts.map +1 -1
  35. package/dist/admin-api/source-context.js +0 -3
  36. package/dist/admin-api/source-context.js.map +1 -1
  37. package/dist/assets/analyze-audio.d.ts +3 -0
  38. package/dist/assets/analyze-audio.d.ts.map +1 -0
  39. package/dist/assets/analyze-audio.js +80 -0
  40. package/dist/assets/analyze-audio.js.map +1 -0
  41. package/dist/assets/analyze-image.d.ts +19 -0
  42. package/dist/assets/analyze-image.d.ts.map +1 -0
  43. package/dist/assets/analyze-image.js +123 -0
  44. package/dist/assets/analyze-image.js.map +1 -0
  45. package/dist/assets/analyze.d.ts +94 -0
  46. package/dist/assets/analyze.d.ts.map +1 -0
  47. package/dist/assets/analyze.js +45 -0
  48. package/dist/assets/analyze.js.map +1 -0
  49. package/dist/assets/asset-deps.d.ts +30 -0
  50. package/dist/assets/asset-deps.d.ts.map +1 -0
  51. package/dist/assets/asset-deps.js +42 -0
  52. package/dist/assets/asset-deps.js.map +1 -0
  53. package/dist/assets/asset-paths.d.ts +155 -0
  54. package/dist/assets/asset-paths.d.ts.map +1 -0
  55. package/dist/assets/asset-paths.js +197 -0
  56. package/dist/assets/asset-paths.js.map +1 -0
  57. package/dist/assets/delete.d.ts +75 -0
  58. package/dist/assets/delete.d.ts.map +1 -0
  59. package/dist/assets/delete.js +82 -0
  60. package/dist/assets/delete.js.map +1 -0
  61. package/dist/assets/errors.d.ts +241 -0
  62. package/dist/assets/errors.d.ts.map +1 -0
  63. package/dist/assets/errors.js +300 -0
  64. package/dist/assets/errors.js.map +1 -0
  65. package/dist/assets/find-refs.d.ts +37 -0
  66. package/dist/assets/find-refs.d.ts.map +1 -0
  67. package/dist/assets/find-refs.js +35 -0
  68. package/dist/assets/find-refs.js.map +1 -0
  69. package/dist/assets/hash.d.ts +13 -0
  70. package/dist/assets/hash.d.ts.map +1 -0
  71. package/dist/assets/hash.js +43 -0
  72. package/dist/assets/hash.js.map +1 -0
  73. package/dist/assets/image-metadata.d.ts +11 -0
  74. package/dist/assets/image-metadata.d.ts.map +1 -0
  75. package/dist/assets/image-metadata.js +31 -0
  76. package/dist/assets/image-metadata.js.map +1 -0
  77. package/dist/assets/ingest-locale.d.ts +86 -0
  78. package/dist/assets/ingest-locale.d.ts.map +1 -0
  79. package/dist/assets/ingest-locale.js +209 -0
  80. package/dist/assets/ingest-locale.js.map +1 -0
  81. package/dist/assets/ingest.d.ts +96 -0
  82. package/dist/assets/ingest.d.ts.map +1 -0
  83. package/dist/assets/ingest.js +308 -0
  84. package/dist/assets/ingest.js.map +1 -0
  85. package/dist/assets/kind-compat.d.ts +34 -0
  86. package/dist/assets/kind-compat.d.ts.map +1 -0
  87. package/dist/assets/kind-compat.js +33 -0
  88. package/dist/assets/kind-compat.js.map +1 -0
  89. package/dist/assets/list.d.ts +46 -0
  90. package/dist/assets/list.d.ts.map +1 -0
  91. package/dist/assets/list.js +102 -0
  92. package/dist/assets/list.js.map +1 -0
  93. package/dist/assets/manifest-default.d.ts +56 -0
  94. package/dist/assets/manifest-default.d.ts.map +1 -0
  95. package/dist/assets/manifest-default.js +120 -0
  96. package/dist/assets/manifest-default.js.map +1 -0
  97. package/dist/assets/manifest-filename.d.ts +52 -0
  98. package/dist/assets/manifest-filename.d.ts.map +1 -0
  99. package/dist/assets/manifest-filename.js +104 -0
  100. package/dist/assets/manifest-filename.js.map +1 -0
  101. package/dist/assets/manifest-locale.d.ts +60 -0
  102. package/dist/assets/manifest-locale.d.ts.map +1 -0
  103. package/dist/assets/manifest-locale.js +206 -0
  104. package/dist/assets/manifest-locale.js.map +1 -0
  105. package/dist/assets/manifest-merge.d.ts +66 -0
  106. package/dist/assets/manifest-merge.d.ts.map +1 -0
  107. package/dist/assets/manifest-merge.js +82 -0
  108. package/dist/assets/manifest-merge.js.map +1 -0
  109. package/dist/assets/manifest.d.ts +83 -0
  110. package/dist/assets/manifest.d.ts.map +1 -0
  111. package/dist/assets/manifest.js +93 -0
  112. package/dist/assets/manifest.js.map +1 -0
  113. package/dist/assets/mime-sniff.d.ts +18 -0
  114. package/dist/assets/mime-sniff.d.ts.map +1 -0
  115. package/dist/assets/mime-sniff.js +84 -0
  116. package/dist/assets/mime-sniff.js.map +1 -0
  117. package/dist/assets/preprocess-svg.d.ts +3 -0
  118. package/dist/assets/preprocess-svg.d.ts.map +1 -0
  119. package/dist/assets/preprocess-svg.js +49 -0
  120. package/dist/assets/preprocess-svg.js.map +1 -0
  121. package/dist/assets/preprocess.d.ts +62 -0
  122. package/dist/assets/preprocess.d.ts.map +1 -0
  123. package/dist/assets/preprocess.js +86 -0
  124. package/dist/assets/preprocess.js.map +1 -0
  125. package/dist/assets/publish-plan.d.ts +41 -0
  126. package/dist/assets/publish-plan.d.ts.map +1 -0
  127. package/dist/assets/publish-plan.js +49 -0
  128. package/dist/assets/publish-plan.js.map +1 -0
  129. package/dist/assets/publish.d.ts +33 -0
  130. package/dist/assets/publish.d.ts.map +1 -0
  131. package/dist/assets/publish.js +81 -0
  132. package/dist/assets/publish.js.map +1 -0
  133. package/dist/assets/refs.d.ts +37 -0
  134. package/dist/assets/refs.d.ts.map +1 -0
  135. package/dist/assets/refs.js +33 -0
  136. package/dist/assets/refs.js.map +1 -0
  137. package/dist/assets/remove-override.d.ts +42 -0
  138. package/dist/assets/remove-override.d.ts.map +1 -0
  139. package/dist/assets/remove-override.js +53 -0
  140. package/dist/assets/remove-override.js.map +1 -0
  141. package/dist/assets/rename.d.ts +43 -0
  142. package/dist/assets/rename.d.ts.map +1 -0
  143. package/dist/assets/rename.js +271 -0
  144. package/dist/assets/rename.js.map +1 -0
  145. package/dist/assets/replace.d.ts +37 -0
  146. package/dist/assets/replace.d.ts.map +1 -0
  147. package/dist/assets/replace.js +195 -0
  148. package/dist/assets/replace.js.map +1 -0
  149. package/dist/assets/resolve.d.ts +141 -0
  150. package/dist/assets/resolve.d.ts.map +1 -0
  151. package/dist/assets/resolve.js +381 -0
  152. package/dist/assets/resolve.js.map +1 -0
  153. package/dist/assets/rewrite-manifest-asset-ref.d.ts +44 -0
  154. package/dist/assets/rewrite-manifest-asset-ref.d.ts.map +1 -0
  155. package/dist/assets/rewrite-manifest-asset-ref.js +51 -0
  156. package/dist/assets/rewrite-manifest-asset-ref.js.map +1 -0
  157. package/dist/assets/scan-manifest-for-asset.d.ts +63 -0
  158. package/dist/assets/scan-manifest-for-asset.d.ts.map +1 -0
  159. package/dist/assets/scan-manifest-for-asset.js +105 -0
  160. package/dist/assets/scan-manifest-for-asset.js.map +1 -0
  161. package/dist/assets/serve-route.d.ts +45 -0
  162. package/dist/assets/serve-route.d.ts.map +1 -0
  163. package/dist/assets/serve-route.js +123 -0
  164. package/dist/assets/serve-route.js.map +1 -0
  165. package/dist/assets/svg-sanitize.d.ts +38 -0
  166. package/dist/assets/svg-sanitize.d.ts.map +1 -0
  167. package/dist/assets/svg-sanitize.js +209 -0
  168. package/dist/assets/svg-sanitize.js.map +1 -0
  169. package/dist/assets/update-metadata.d.ts +61 -0
  170. package/dist/assets/update-metadata.d.ts.map +1 -0
  171. package/dist/assets/update-metadata.js +82 -0
  172. package/dist/assets/update-metadata.js.map +1 -0
  173. package/dist/assets/url.d.ts +82 -0
  174. package/dist/assets/url.d.ts.map +1 -0
  175. package/dist/assets/url.js +103 -0
  176. package/dist/assets/url.js.map +1 -0
  177. package/dist/assets/validate.d.ts +74 -0
  178. package/dist/assets/validate.d.ts.map +1 -0
  179. package/dist/assets/validate.js +136 -0
  180. package/dist/assets/validate.js.map +1 -0
  181. package/dist/assets/variants.d.ts +23 -0
  182. package/dist/assets/variants.d.ts.map +1 -0
  183. package/dist/assets/variants.js +74 -0
  184. package/dist/assets/variants.js.map +1 -0
  185. package/dist/cli/assets-cli.d.ts +58 -0
  186. package/dist/cli/assets-cli.d.ts.map +1 -0
  187. package/dist/cli/assets-cli.js +233 -0
  188. package/dist/cli/assets-cli.js.map +1 -0
  189. package/dist/cli/assets-display.d.ts +112 -0
  190. package/dist/cli/assets-display.d.ts.map +1 -0
  191. package/dist/cli/assets-display.js +106 -0
  192. package/dist/cli/assets-display.js.map +1 -0
  193. package/dist/cli/bootstrap.d.ts +0 -2
  194. package/dist/cli/bootstrap.d.ts.map +1 -1
  195. package/dist/cli/bootstrap.js +0 -1
  196. package/dist/cli/bootstrap.js.map +1 -1
  197. package/dist/cli/index.js +64 -18
  198. package/dist/cli/index.js.map +1 -1
  199. package/dist/compare.d.ts.map +1 -1
  200. package/dist/compare.js +15 -12
  201. package/dist/compare.js.map +1 -1
  202. package/dist/dep-sidecars.d.ts +127 -0
  203. package/dist/dep-sidecars.d.ts.map +1 -0
  204. package/dist/dep-sidecars.js +122 -0
  205. package/dist/dep-sidecars.js.map +1 -0
  206. package/dist/editor/AssetEmbeddedWidget.d.ts +3 -0
  207. package/dist/editor/AssetEmbeddedWidget.d.ts.map +1 -0
  208. package/dist/editor/AssetEmbeddedWidget.js +146 -0
  209. package/dist/editor/AssetEmbeddedWidget.js.map +1 -0
  210. package/dist/editor/mount.d.ts +12 -1
  211. package/dist/editor/mount.d.ts.map +1 -1
  212. package/dist/editor/mount.js +36 -5
  213. package/dist/editor/mount.js.map +1 -1
  214. package/dist/format.d.ts +44 -0
  215. package/dist/format.d.ts.map +1 -0
  216. package/dist/format.js +65 -0
  217. package/dist/format.js.map +1 -0
  218. package/dist/fragment-deps.d.ts +24 -0
  219. package/dist/fragment-deps.d.ts.map +1 -0
  220. package/dist/fragment-deps.js +20 -0
  221. package/dist/fragment-deps.js.map +1 -0
  222. package/dist/hash.d.ts +0 -6
  223. package/dist/hash.d.ts.map +1 -1
  224. package/dist/hash.js +0 -18
  225. package/dist/hash.js.map +1 -1
  226. package/dist/history-provider.d.ts.map +1 -1
  227. package/dist/history-provider.js +30 -8
  228. package/dist/history-provider.js.map +1 -1
  229. package/dist/history-recorder.d.ts +7 -3
  230. package/dist/history-recorder.d.ts.map +1 -1
  231. package/dist/history-recorder.js +9 -1
  232. package/dist/history-recorder.js.map +1 -1
  233. package/dist/history-restorer.d.ts.map +1 -1
  234. package/dist/history-restorer.js +34 -2
  235. package/dist/history-restorer.js.map +1 -1
  236. package/dist/history.d.ts +26 -8
  237. package/dist/history.d.ts.map +1 -1
  238. package/dist/index.d.ts +2 -4
  239. package/dist/index.d.ts.map +1 -1
  240. package/dist/index.js +1 -2
  241. package/dist/index.js.map +1 -1
  242. package/dist/locale.d.ts +20 -0
  243. package/dist/locale.d.ts.map +1 -1
  244. package/dist/locale.js +38 -0
  245. package/dist/locale.js.map +1 -1
  246. package/dist/providers/_atomic-write.d.ts +9 -0
  247. package/dist/providers/_atomic-write.d.ts.map +1 -0
  248. package/dist/providers/_atomic-write.js +72 -0
  249. package/dist/providers/_atomic-write.js.map +1 -0
  250. package/dist/providers/_rm-ignore-missing.d.ts +31 -0
  251. package/dist/providers/_rm-ignore-missing.d.ts.map +1 -0
  252. package/dist/providers/_rm-ignore-missing.js +12 -0
  253. package/dist/providers/_rm-ignore-missing.js.map +1 -0
  254. package/dist/providers/_stream-interop.d.ts +23 -0
  255. package/dist/providers/_stream-interop.d.ts.map +1 -0
  256. package/dist/providers/_stream-interop.js +21 -0
  257. package/dist/providers/_stream-interop.js.map +1 -0
  258. package/dist/providers/azure-blob.d.ts.map +1 -1
  259. package/dist/providers/azure-blob.js +60 -0
  260. package/dist/providers/azure-blob.js.map +1 -1
  261. package/dist/providers/filesystem.d.ts +4 -0
  262. package/dist/providers/filesystem.d.ts.map +1 -1
  263. package/dist/providers/filesystem.js +63 -2
  264. package/dist/providers/filesystem.js.map +1 -1
  265. package/dist/providers/s3.d.ts.map +1 -1
  266. package/dist/providers/s3.js +84 -1
  267. package/dist/providers/s3.js.map +1 -1
  268. package/dist/publish-rendered.d.ts +37 -17
  269. package/dist/publish-rendered.d.ts.map +1 -1
  270. package/dist/publish-rendered.js +71 -67
  271. package/dist/publish-rendered.js.map +1 -1
  272. package/dist/publish.d.ts +13 -12
  273. package/dist/publish.d.ts.map +1 -1
  274. package/dist/publish.js +23 -47
  275. package/dist/publish.js.map +1 -1
  276. package/dist/resolver.d.ts +12 -2
  277. package/dist/resolver.d.ts.map +1 -1
  278. package/dist/resolver.js +54 -9
  279. package/dist/resolver.js.map +1 -1
  280. package/dist/schema/dimensions.d.ts +78 -0
  281. package/dist/schema/dimensions.d.ts.map +1 -0
  282. package/dist/schema/dimensions.js +97 -0
  283. package/dist/schema/dimensions.js.map +1 -0
  284. package/dist/schema/helpers.d.ts +108 -0
  285. package/dist/schema/helpers.d.ts.map +1 -0
  286. package/dist/schema/helpers.js +133 -0
  287. package/dist/schema/helpers.js.map +1 -0
  288. package/dist/schema/index.d.ts +27 -0
  289. package/dist/schema/index.d.ts.map +1 -0
  290. package/dist/schema/index.js +25 -0
  291. package/dist/schema/index.js.map +1 -0
  292. package/dist/schema/types.d.ts +390 -0
  293. package/dist/schema/types.d.ts.map +1 -0
  294. package/dist/schema/types.js +25 -0
  295. package/dist/schema/types.js.map +1 -0
  296. package/dist/selector-chain.d.ts +63 -0
  297. package/dist/selector-chain.d.ts.map +1 -0
  298. package/dist/selector-chain.js +58 -0
  299. package/dist/selector-chain.js.map +1 -0
  300. package/dist/sidecars.d.ts +19 -18
  301. package/dist/sidecars.d.ts.map +1 -1
  302. package/dist/sidecars.js +70 -62
  303. package/dist/sidecars.js.map +1 -1
  304. package/dist/targets.d.ts.map +1 -1
  305. package/dist/targets.js +15 -37
  306. package/dist/targets.js.map +1 -1
  307. package/dist/themes.d.ts +69 -0
  308. package/dist/themes.d.ts.map +1 -0
  309. package/dist/themes.js +85 -0
  310. package/dist/themes.js.map +1 -0
  311. package/dist/transforms/adapter.d.ts +115 -0
  312. package/dist/transforms/adapter.d.ts.map +1 -0
  313. package/dist/transforms/adapter.js +2 -0
  314. package/dist/transforms/adapter.js.map +1 -0
  315. package/dist/transforms/cloudflare.d.ts +17 -0
  316. package/dist/transforms/cloudflare.d.ts.map +1 -0
  317. package/dist/transforms/cloudflare.js +110 -0
  318. package/dist/transforms/cloudflare.js.map +1 -0
  319. package/dist/transforms/index.d.ts +24 -0
  320. package/dist/transforms/index.d.ts.map +1 -0
  321. package/dist/transforms/index.js +30 -0
  322. package/dist/transforms/index.js.map +1 -0
  323. package/dist/transforms/sharp.d.ts +3 -0
  324. package/dist/transforms/sharp.d.ts.map +1 -0
  325. package/dist/transforms/sharp.js +43 -0
  326. package/dist/transforms/sharp.js.map +1 -0
  327. package/dist/types.d.ts +125 -1
  328. package/dist/types.d.ts.map +1 -1
  329. package/dist/types.js.map +1 -1
  330. package/package.json +20 -1
  331. package/admin-dist/assets/index-B6pVot0Y.css +0 -1
  332. package/admin-dist/assets/index-DniLwxJA.js +0 -609
  333. package/dist/providers/r2.d.ts +0 -8
  334. package/dist/providers/r2.d.ts.map +0 -1
  335. package/dist/providers/r2.js +0 -86
  336. package/dist/providers/r2.js.map +0 -1
  337. package/dist/source-sidecars.d.ts +0 -32
  338. package/dist/source-sidecars.d.ts.map +0 -1
  339. package/dist/source-sidecars.js +0 -98
  340. package/dist/source-sidecars.js.map +0 -1
@@ -1,8 +0,0 @@
1
- import type { StorageProvider } from '../types.js';
2
- export interface R2RestProviderOptions {
3
- accountId: string;
4
- bucket: string;
5
- apiToken: string;
6
- }
7
- export declare function createR2RestProvider(options: R2RestProviderOptions): StorageProvider;
8
- //# sourceMappingURL=r2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../src/providers/r2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAID,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,eAAe,CAgFpF"}
@@ -1,86 +0,0 @@
1
- const CF_API = 'https://api.cloudflare.com/client/v4';
2
- export function createR2RestProvider(options) {
3
- const { accountId, bucket, apiToken } = options;
4
- const base = `${CF_API}/accounts/${accountId}/r2/buckets/${bucket}/objects`;
5
- function headers(extra) {
6
- return { Authorization: `Bearer ${apiToken}`, ...extra };
7
- }
8
- return {
9
- async readFile(path) {
10
- const res = await fetch(`${base}/${encodeURIComponent(normalizePath(path))}`, { headers: headers() });
11
- if (!res.ok) {
12
- if (res.status === 404)
13
- throw new Error(`File not found: ${path}`);
14
- throw new Error(`Cannot read ${path}: ${res.status} ${res.statusText}`);
15
- }
16
- return await res.text();
17
- },
18
- async readDir(path) {
19
- const prefix = normalizePath(path);
20
- const prefixWithSlash = prefix ? `${prefix}/` : '';
21
- const url = `${CF_API}/accounts/${accountId}/r2/buckets/${bucket}/objects?prefix=${encodeURIComponent(prefixWithSlash)}`;
22
- const res = await fetch(url, { headers: headers() });
23
- if (!res.ok)
24
- throw new Error(`Cannot list ${path}: ${res.status}`);
25
- const data = (await res.json());
26
- const entries = new Map();
27
- for (const obj of data.result ?? []) {
28
- const relativeName = obj.key.slice(prefixWithSlash.length);
29
- const firstSegment = relativeName.split('/')[0];
30
- if (!firstSegment)
31
- continue;
32
- const isDirectory = relativeName.includes('/');
33
- if (entries.has(firstSegment) && entries.get(firstSegment))
34
- continue;
35
- entries.set(firstSegment, isDirectory);
36
- }
37
- return [...entries.entries()].map(([name, isDirectory]) => ({ name, isDirectory }));
38
- },
39
- async exists(path) {
40
- const res = await fetch(`${base}/${encodeURIComponent(normalizePath(path))}`, {
41
- method: 'HEAD',
42
- headers: headers(),
43
- });
44
- if (res.ok)
45
- return true;
46
- // Check as directory prefix
47
- const url = `${CF_API}/accounts/${accountId}/r2/buckets/${bucket}/objects?prefix=${encodeURIComponent(normalizePath(path) + '/')}&per_page=1`;
48
- const listRes = await fetch(url, { headers: headers() });
49
- if (!listRes.ok)
50
- return false;
51
- const data = (await listRes.json());
52
- return (data.result?.length ?? 0) > 0;
53
- },
54
- async writeFile(path, content) {
55
- const body = new TextEncoder().encode(content);
56
- const res = await fetch(`${base}/${encodeURIComponent(normalizePath(path))}`, {
57
- method: 'PUT',
58
- headers: headers({ 'Content-Type': 'text/plain; charset=utf-8' }),
59
- body,
60
- });
61
- if (!res.ok)
62
- throw new Error(`Cannot write ${path}: ${res.status} ${res.statusText}`);
63
- },
64
- async mkdir(_path) {
65
- // R2 has no directories — implicit from key prefixes
66
- },
67
- async rm(path) {
68
- const key = normalizePath(path);
69
- // Try deleting as single object
70
- await fetch(`${base}/${encodeURIComponent(key)}`, { method: 'DELETE', headers: headers() });
71
- // Delete all objects with this prefix
72
- const url = `${CF_API}/accounts/${accountId}/r2/buckets/${bucket}/objects?prefix=${encodeURIComponent(key)}`;
73
- const listRes = await fetch(url, { headers: headers() });
74
- if (listRes.ok) {
75
- const data = (await listRes.json());
76
- for (const obj of data.result ?? []) {
77
- await fetch(`${base}/${encodeURIComponent(obj.key)}`, { method: 'DELETE', headers: headers() });
78
- }
79
- }
80
- },
81
- };
82
- }
83
- function normalizePath(path) {
84
- return path.replace(/^(\.\/|\/)+/, '');
85
- }
86
- //# sourceMappingURL=r2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"r2.js","sourceRoot":"","sources":["../../src/providers/r2.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import type { StorageProvider } from './types.js';
2
- import type { TemplateInfo } from './templates-scan.js';
3
- import { type ContentRoot } from './content-root.js';
4
- export interface SourceSidecarWriter {
5
- writeFor(kind: 'page' | 'fragment', name: string): Promise<void>;
6
- /**
7
- * Ensure every page and fragment in the site has sidecars written.
8
- * Idempotent; concurrent callers share the same in-flight work. Use
9
- * this before any read path that depends on `.uses-*` / `.tpl-*`
10
- * sidecars being present (e.g. dependents lookup) — without it, a
11
- * fresh dev server serves empty results until the first publish.
12
- */
13
- ensureBackfilled(): Promise<void>;
14
- invalidate(): void;
15
- }
16
- export interface SourceSidecarWriterOptions {
17
- /** Content root for source. Preferred shape. */
18
- contentRoot?: ContentRoot;
19
- /** @deprecated Prefer `contentRoot`. */
20
- storage?: StorageProvider;
21
- /** @deprecated Prefer `contentRoot`. */
22
- siteDir?: string;
23
- scanTemplates: () => Promise<TemplateInfo[]>;
24
- /** Templates directory — used by `ensureBackfilled` to load the site
25
- * manifest so it knows which items need sidecars. Without this,
26
- * `ensureBackfilled` throws. */
27
- templatesDir?: string;
28
- /** Project-level manifest — passed to loadSite so targets don't need site.yaml. */
29
- manifest?: import('./types.js').SiteManifest;
30
- }
31
- export declare function createSourceSidecarWriter(opts: SourceSidecarWriterOptions): SourceSidecarWriter;
32
- //# sourceMappingURL=source-sidecars.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-sidecars.d.ts","sourceRoot":"","sources":["../src/source-sidecars.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIvD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE;;;;;;OAMG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,UAAU,IAAI,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,gDAAgD;IAChD,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC5C;;qCAEiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,YAAY,EAAE,YAAY,CAAA;CAC7C;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,0BAA0B,GAAG,mBAAmB,CAkF/F"}
@@ -1,98 +0,0 @@
1
- /**
2
- * Source-side sidecar writer. Keeps `sites/<name>/pages/` and
3
- * `sites/<name>/fragments/` in the same filename-encoded shape as published
4
- * targets — .{hash}.hash,
5
- * .uses-{frag}, .tpl-{template} — so compare and incremental publish can
6
- * read them without re-hashing manifests.
7
- *
8
- * Single responsibility: given (kind, name), hash the manifest with current
9
- * template hashes and write its three sidecars. Nothing else.
10
- *
11
- * Template hashes are cached. A template edit flips every dependent item's
12
- * content hash, so the file watcher calls invalidate() — next writeFor()
13
- * rescans.
14
- */
15
- import { join } from 'node:path';
16
- import { templateHashesFrom } from './templates-scan.js';
17
- import { hashManifest } from './hash.js';
18
- import { writeSidecars, collectFragmentRefs, listSidecars } from './sidecars.js';
19
- import { createContentRoot } from './content-root.js';
20
- import { loadSite } from './site-loader.js';
21
- import { mapLimit } from './concurrency.js';
22
- export function createSourceSidecarWriter(opts) {
23
- const root = opts.contentRoot ??
24
- (opts.storage && opts.siteDir !== undefined
25
- ? createContentRoot(opts.storage, opts.siteDir)
26
- : (() => {
27
- throw new Error('createSourceSidecarWriter: pass `contentRoot` (or legacy `storage` + `siteDir`)');
28
- })());
29
- let templateHashes = null;
30
- const getTemplateHashes = () => {
31
- if (!templateHashes)
32
- templateHashes = opts.scanTemplates().then(templateHashesFrom);
33
- return templateHashes;
34
- };
35
- /** Shared in-flight promise for the "every item has a sidecar" state.
36
- * Concurrent callers await the same work; subsequent calls after it
37
- * settles are near-free (one listSidecars + set-diff). Cleared by
38
- * invalidate() so a template-hash change also re-backfills. */
39
- let backfillPromise = null;
40
- async function runBackfill() {
41
- if (!opts.templatesDir) {
42
- throw new Error('SourceSidecarWriter.ensureBackfilled requires `templatesDir` in options');
43
- }
44
- const site = await loadSite({ contentRoot: root, templatesDir: opts.templatesDir, manifest: opts.manifest });
45
- const [pagesList, fragmentsList] = await Promise.all([
46
- listSidecars(root.storage, root.path('pages')),
47
- listSidecars(root.storage, root.path('fragments')),
48
- ]);
49
- const missingPages = [...site.pages.keys()].filter(n => !pagesList.has(n));
50
- const missingFragments = [...site.fragments.keys()].filter(n => !fragmentsList.has(n));
51
- if (!missingPages.length && !missingFragments.length)
52
- return;
53
- await mapLimit([
54
- ...missingPages.map(n => ({ kind: 'page', name: n })),
55
- ...missingFragments.map(n => ({ kind: 'fragment', name: n })),
56
- ], it => writer.writeFor(it.kind, it.name));
57
- }
58
- const writer = {
59
- async writeFor(kind, name) {
60
- const subdir = kind === 'page' ? 'pages' : 'fragments';
61
- const manifestName = kind === 'page' ? 'page.json' : 'fragment.json';
62
- const itemDir = root.path(subdir, name);
63
- const manifestPath = join(itemDir, manifestName);
64
- let manifest;
65
- try {
66
- manifest = JSON.parse(await root.storage.readFile(manifestPath));
67
- }
68
- catch {
69
- return;
70
- }
71
- const hashes = await getTemplateHashes();
72
- const hash = hashManifest(manifest, { templateHashes: hashes });
73
- await writeSidecars(root.storage, itemDir, {
74
- hash,
75
- uses: collectFragmentRefs(manifest.components),
76
- template: manifest.template,
77
- pub: null,
78
- });
79
- },
80
- ensureBackfilled() {
81
- if (!backfillPromise) {
82
- backfillPromise = runBackfill().catch(err => {
83
- // Clear on failure so the next caller retries. Otherwise one
84
- // transient error would poison backfill for the process lifetime.
85
- backfillPromise = null;
86
- throw err;
87
- });
88
- }
89
- return backfillPromise;
90
- },
91
- invalidate() {
92
- templateHashes = null;
93
- backfillPromise = null;
94
- },
95
- };
96
- return writer;
97
- }
98
- //# sourceMappingURL=source-sidecars.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-sidecars.js","sourceRoot":"","sources":["../src/source-sidecars.ts"],"names":[],"mappings":"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"}