gazetta 0.3.0 → 0.5.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 (72) hide show
  1. package/admin-dist/assets/index-BZAFKsUp.js +608 -0
  2. package/admin-dist/assets/index-BpRotMuK.css +1 -0
  3. package/admin-dist/assets/vendor-primevue-BnR1c_bQ.js +2097 -0
  4. package/admin-dist/assets/vendor-vue-DSjyxCX6.js +1 -0
  5. package/admin-dist/index.html +4 -4
  6. package/dist/admin-api/index.d.ts +8 -2
  7. package/dist/admin-api/index.d.ts.map +1 -1
  8. package/dist/admin-api/index.js +31 -5
  9. package/dist/admin-api/index.js.map +1 -1
  10. package/dist/admin-api/routes/compare.d.ts +2 -1
  11. package/dist/admin-api/routes/compare.d.ts.map +1 -1
  12. package/dist/admin-api/routes/compare.js +6 -1
  13. package/dist/admin-api/routes/compare.js.map +1 -1
  14. package/dist/admin-api/routes/fragments.d.ts +2 -1
  15. package/dist/admin-api/routes/fragments.d.ts.map +1 -1
  16. package/dist/admin-api/routes/fragments.js +3 -1
  17. package/dist/admin-api/routes/fragments.js.map +1 -1
  18. package/dist/admin-api/routes/pages.d.ts +2 -1
  19. package/dist/admin-api/routes/pages.d.ts.map +1 -1
  20. package/dist/admin-api/routes/pages.js +3 -1
  21. package/dist/admin-api/routes/pages.js.map +1 -1
  22. package/dist/admin-api/routes/publish.d.ts +36 -1
  23. package/dist/admin-api/routes/publish.d.ts.map +1 -1
  24. package/dist/admin-api/routes/publish.js +216 -53
  25. package/dist/admin-api/routes/publish.js.map +1 -1
  26. package/dist/cli/index.js +228 -29
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/compare.d.ts +14 -0
  29. package/dist/compare.d.ts.map +1 -1
  30. package/dist/compare.js +44 -38
  31. package/dist/compare.js.map +1 -1
  32. package/dist/concurrency.d.ts +63 -0
  33. package/dist/concurrency.d.ts.map +1 -0
  34. package/dist/concurrency.js +134 -0
  35. package/dist/concurrency.js.map +1 -0
  36. package/dist/editor/mount.js +71 -71
  37. package/dist/editor/mount.js.map +1 -1
  38. package/dist/hash.d.ts +15 -0
  39. package/dist/hash.d.ts.map +1 -1
  40. package/dist/hash.js +47 -7
  41. package/dist/hash.js.map +1 -1
  42. package/dist/publish-rendered.d.ts +6 -5
  43. package/dist/publish-rendered.d.ts.map +1 -1
  44. package/dist/publish-rendered.js +39 -44
  45. package/dist/publish-rendered.js.map +1 -1
  46. package/dist/publish.d.ts +38 -0
  47. package/dist/publish.d.ts.map +1 -1
  48. package/dist/publish.js +154 -14
  49. package/dist/publish.js.map +1 -1
  50. package/dist/sidecars.d.ts +56 -0
  51. package/dist/sidecars.d.ts.map +1 -0
  52. package/dist/sidecars.js +141 -0
  53. package/dist/sidecars.js.map +1 -0
  54. package/dist/site-loader.d.ts.map +1 -1
  55. package/dist/site-loader.js +13 -10
  56. package/dist/site-loader.js.map +1 -1
  57. package/dist/source-sidecars.d.ts +13 -0
  58. package/dist/source-sidecars.d.ts.map +1 -0
  59. package/dist/source-sidecars.js +52 -0
  60. package/dist/source-sidecars.js.map +1 -0
  61. package/dist/targets.d.ts.map +1 -1
  62. package/dist/targets.js +21 -6
  63. package/dist/targets.js.map +1 -1
  64. package/dist/types.d.ts +10 -0
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/types.js +4 -0
  67. package/dist/types.js.map +1 -1
  68. package/package.json +1 -1
  69. package/admin-dist/assets/index-C-xOOPUK.js +0 -604
  70. package/admin-dist/assets/index-CKOOkleR.css +0 -1
  71. package/admin-dist/assets/vendor-primevue-BNJTiXAs.js +0 -1670
  72. package/admin-dist/assets/vendor-vue-GhBrpzPN.js +0 -1
@@ -1,12 +1,20 @@
1
1
  import { Hono } from 'hono';
2
- import { getPublishMode } from '../../types.js';
3
- import { publishItems, resolveDependencies } from '../../publish.js';
2
+ import { streamSSE } from 'hono/streaming';
3
+ import { getPublishMode, getEnvironment } from '../../types.js';
4
+ import { publishItems, resolveDependencies, findFragmentDependents, findDependentsFromSidecars } from '../../publish.js';
5
+ import { listSidecars } from '../../sidecars.js';
6
+ import { mapLimitStream } from '../../concurrency.js';
4
7
  import { publishPageRendered, publishPageStatic, publishFragmentRendered, publishSiteManifest, publishFragmentIndex, createCloudflarePurge, lookupCloudflareZoneId } from '../../publish-rendered.js';
5
8
  import { loadSite } from '../../site-loader.js';
6
9
  import { resolveEnvVars } from '../../targets.js';
7
10
  import { scanTemplates, templateHashesFrom } from '../../templates-scan.js';
8
11
  import { hashManifest } from '../../hash.js';
9
- export function publishRoutes(siteDir, sourceStorage, preInitTargets, targetConfigs, templatesDir) {
12
+ export function publishRoutes(siteDir, sourceStorage, preInitTargets, targetConfigs, templatesDir,
13
+ // Optional injected scanner — the admin-api server memoizes it and
14
+ // clears the cache via its template file watcher. Default: fresh scan
15
+ // on every call (used by the CLI and tests).
16
+ scanTemplatesInjected) {
17
+ const scan = scanTemplatesInjected ?? scanTemplates;
10
18
  const app = new Hono();
11
19
  // Background target initialization
12
20
  let targets = preInitTargets ?? null;
@@ -32,94 +40,210 @@ export function publishRoutes(siteDir, sourceStorage, preInitTargets, targetConf
32
40
  }
33
41
  app.get('/api/targets', async (c) => {
34
42
  const t = await getTargets();
35
- return c.json([...t.keys()]);
43
+ return c.json([...t.keys()].map(name => {
44
+ const cfg = getTargetConfig(name);
45
+ return {
46
+ name,
47
+ environment: cfg ? getEnvironment(cfg) : 'local',
48
+ publishMode: cfg ? getPublishMode(cfg) : 'static',
49
+ };
50
+ }));
36
51
  });
37
- app.post('/api/publish', async (c) => {
38
- const body = await c.req.json();
39
- if (!body.items?.length)
40
- return c.json({ error: 'No items specified' }, 400);
41
- if (!body.targets?.length)
42
- return c.json({ error: 'No targets specified' }, 400);
52
+ /**
53
+ * Reverse-dependency lookup for publish UI impact preview.
54
+ * GET /api/dependents?item=fragments/header[&target=staging]
55
+ * → { pages: string[], fragments: string[] }
56
+ *
57
+ * Without `target`: scans local source manifests (authoritative for the
58
+ * current draft state — what's about to be published). Slow-ish on very
59
+ * large sites since it reads every manifest.
60
+ *
61
+ * With `target`: uses published .uses-* / .tpl-* sidecars on that target.
62
+ * Listings only, no content reads — scales to 10k+ items at the cost of
63
+ * reflecting only what's been published (not unsaved local changes).
64
+ * Useful for answering "what pages would need republish if this fragment
65
+ * changed" on large sites.
66
+ */
67
+ app.get('/api/dependents', async (c) => {
68
+ const item = c.req.query('item');
69
+ if (!item || !item.startsWith('fragments/')) {
70
+ return c.json({ error: 'Missing or invalid "item" query (must be fragments/<name>)' }, 400);
71
+ }
72
+ const fragmentName = item.slice('fragments/'.length);
73
+ const targetName = c.req.query('target');
74
+ try {
75
+ if (targetName) {
76
+ const t = await getTargets();
77
+ const targetStorage = t.get(targetName);
78
+ if (!targetStorage)
79
+ return c.json({ error: `Unknown target: ${targetName}` }, 400);
80
+ const result = await findDependentsFromSidecars(targetStorage, { fragment: fragmentName });
81
+ return c.json(result);
82
+ }
83
+ // Source-side: prefer sidecars (listings only) when present. If the
84
+ // project has any source sidecars, trust them — empty means "no
85
+ // dependents," not "stale." Fall back to a full manifest scan only
86
+ // when sidecars don't exist (e.g. project was never opened in the
87
+ // admin UI).
88
+ const [pagesList, fragmentsList] = await Promise.all([
89
+ listSidecars(sourceStorage, `${siteDir}/pages`),
90
+ listSidecars(sourceStorage, `${siteDir}/fragments`),
91
+ ]);
92
+ if (pagesList.size || fragmentsList.size) {
93
+ const result = await findDependentsFromSidecars(sourceStorage, { fragment: fragmentName }, { baseDir: siteDir });
94
+ return c.json(result);
95
+ }
96
+ const result = await findFragmentDependents(sourceStorage, siteDir, fragmentName);
97
+ return c.json(result);
98
+ }
99
+ catch (err) {
100
+ return c.json({ error: err.message }, 500);
101
+ }
102
+ });
103
+ /**
104
+ * Run a publish, yielding progress events. Both the synchronous
105
+ * /api/publish route and the streaming /api/publish/stream route consume
106
+ * this generator. Caller can short-circuit by returning false from the
107
+ * iterator (or break) and we'll stop between items — but storage operations
108
+ * already in flight will complete.
109
+ *
110
+ * Pre-flight validation (unknown targets, invalid templates) is reported as
111
+ * 'fatal' before any 'target-start' event so callers can map to a 4xx.
112
+ */
113
+ async function* runPublish(items, targetNames) {
114
+ if (!items?.length) {
115
+ yield { kind: 'fatal', error: 'No items specified' };
116
+ return;
117
+ }
118
+ if (!targetNames?.length) {
119
+ yield { kind: 'fatal', error: 'No targets specified' };
120
+ return;
121
+ }
43
122
  const t = await getTargets();
44
- for (const name of body.targets) {
45
- if (!t.has(name))
46
- return c.json({ error: `Unknown target: ${name}` }, 400);
123
+ for (const name of targetNames) {
124
+ if (!t.has(name)) {
125
+ yield { kind: 'fatal', error: `Unknown target: ${name}` };
126
+ return;
127
+ }
47
128
  }
48
- // Resolve all dependencies (templates, fragments referenced by pages)
49
- const allItems = await resolveDependencies(sourceStorage, siteDir, body.items);
50
- console.log(` Publishing to ${body.targets.length} target(s):`);
51
- console.log(` Items: ${body.items.join(', ')} (+ ${allItems.length - body.items.length} dependencies)`);
52
- console.log(` Targets: ${body.targets.join(', ')}`);
53
- // Validate + hash templates once for this publish run
129
+ const allItems = await resolveDependencies(sourceStorage, siteDir, items);
130
+ console.log(` Publishing to ${targetNames.length} target(s):`);
131
+ console.log(` Items: ${items.join(', ')} (+ ${allItems.length - items.length} dependencies)`);
132
+ console.log(` Targets: ${targetNames.join(', ')}`);
54
133
  const tdir = templatesDir ?? `${siteDir}/templates`;
55
134
  const projectRoot = siteDir.replace(/\/sites\/[^/]+$/, '');
56
- const templateInfos = await scanTemplates(tdir, projectRoot);
135
+ const templateInfos = await scan(tdir, projectRoot);
57
136
  const invalidTpls = templateInfos.filter(t => !t.valid);
58
137
  if (invalidTpls.length) {
59
- return c.json({
138
+ yield {
139
+ kind: 'fatal',
60
140
  error: 'Cannot publish: invalid templates',
61
141
  invalidTemplates: invalidTpls.map(t => ({ name: t.name, errors: t.errors })),
62
- }, 400);
142
+ };
143
+ return;
63
144
  }
64
145
  const templateHashes = templateHashesFrom(templateInfos);
65
146
  const site = await loadSite({ siteDir, storage: sourceStorage, templatesDir: tdir });
147
+ yield { kind: 'start', targets: targetNames, itemsPerTarget: allItems.length };
66
148
  const results = [];
67
- for (const targetName of body.targets) {
149
+ for (const targetName of targetNames) {
68
150
  const targetStorage = t.get(targetName);
151
+ const config = getTargetConfig(targetName);
152
+ const isStatic = config ? getPublishMode(config) === 'static' : true;
153
+ const purgeConfig = config?.cache?.purge;
154
+ // Static mode bakes fragments into pages at publish time — if the user
155
+ // picked @header, we must also republish every page that uses it.
156
+ // Expand per-target so ESI targets still get the narrow item set.
157
+ let targetItems = allItems;
158
+ if (isStatic) {
159
+ const fragmentItems = items.filter(i => i.startsWith('fragments/'));
160
+ if (fragmentItems.length) {
161
+ const expanded = new Set(allItems);
162
+ for (const frag of fragmentItems) {
163
+ const name = frag.replace('fragments/', '');
164
+ const deps = await findFragmentDependents(sourceStorage, siteDir, name);
165
+ for (const p of deps.pages)
166
+ expanded.add(`pages/${p}`);
167
+ }
168
+ targetItems = [...expanded];
169
+ }
170
+ }
171
+ // Step count: source-copy + per-item render + manifest+index + (purge?)
172
+ const total = 1 + targetItems.length + 1 + (purgeConfig?.type === 'cloudflare' ? 1 : 0);
173
+ yield { kind: 'target-start', target: targetName, total };
174
+ let current = 0;
69
175
  try {
70
176
  let totalFiles = 0;
71
- // 1. Copy source files (YAML, templates) — target is a full copy
72
- const { copiedFiles } = await publishItems(sourceStorage, siteDir, targetStorage, '', allItems);
177
+ // 1. Source copy
178
+ const { copiedFiles } = await publishItems(sourceStorage, siteDir, targetStorage, '', targetItems);
73
179
  totalFiles += copiedFiles;
74
- // 2. Pre-render pages and fragments (including dependencies)
75
- const config = getTargetConfig(targetName);
76
- const isStatic = config ? getPublishMode(config) === 'static' : true;
77
- for (const item of allItems) {
180
+ current++;
181
+ yield { kind: 'progress', target: targetName, current, total, label: 'source files' };
182
+ // 2. Render items in bounded parallel. Progress events are yielded
183
+ // in completion order the UI shows X/N + whatever finished last,
184
+ // which stays meaningful without needing input-order. Preserves the
185
+ // event contract: one 'progress' per item between 'target-start'
186
+ // and 'target-result'.
187
+ // Static-mode page hashes must include fragment hashes (a fragment
188
+ // change invalidates every page that bakes it in). Matches the
189
+ // combination used by compareTargets.
190
+ const fragmentHashes = new Map();
191
+ if (isStatic) {
192
+ for (const [fragName, frag] of site.fragments) {
193
+ fragmentHashes.set(fragName, hashManifest(frag, { templateHashes }));
194
+ }
195
+ }
196
+ const pageHashOpts = isStatic ? { templateHashes, fragmentHashes } : { templateHashes };
197
+ const renderItem = async (item) => {
78
198
  if (item.startsWith('pages/')) {
79
199
  const pageName = item.replace('pages/', '');
80
200
  const page = site.pages.get(pageName);
81
- const manifestHash = page ? hashManifest(page, { templateHashes }) : undefined;
201
+ const manifestHash = page ? hashManifest(page, pageHashOpts) : undefined;
82
202
  if (isStatic) {
83
- const { files } = await publishPageStatic(pageName, sourceStorage, siteDir, targetStorage, tdir, manifestHash);
84
- totalFiles += files;
85
- }
86
- else {
87
- const { files } = await publishPageRendered(pageName, sourceStorage, siteDir, targetStorage, config?.cache, tdir, manifestHash);
88
- totalFiles += files;
203
+ return publishPageStatic(pageName, sourceStorage, siteDir, targetStorage, tdir, manifestHash, site);
89
204
  }
205
+ const { files } = await publishPageRendered(pageName, sourceStorage, siteDir, targetStorage, config?.cache, tdir, manifestHash, site);
206
+ return { files };
90
207
  }
91
- else if (item.startsWith('fragments/')) {
92
- if (!isStatic) {
93
- const fragName = item.replace('fragments/', '');
94
- const frag = site.fragments.get(fragName);
95
- const manifestHash = frag ? hashManifest(frag, { templateHashes }) : undefined;
96
- const { files } = await publishFragmentRendered(fragName, sourceStorage, siteDir, targetStorage, tdir, manifestHash);
97
- totalFiles += files;
98
- }
208
+ if (item.startsWith('fragments/') && !isStatic) {
209
+ const fragName = item.replace('fragments/', '');
210
+ const frag = site.fragments.get(fragName);
211
+ const manifestHash = frag ? hashManifest(frag, { templateHashes }) : undefined;
212
+ const { files } = await publishFragmentRendered(fragName, sourceStorage, siteDir, targetStorage, tdir, manifestHash, site);
213
+ return { files };
99
214
  }
215
+ return { files: 0 }; // skipped (e.g. fragment on static target)
216
+ };
217
+ // Render concurrency is lower than listing concurrency — each render
218
+ // may do multiple writes, so 10 in flight is the safe default.
219
+ for await (const { item, result } of mapLimitStream(targetItems, renderItem, 10)) {
220
+ totalFiles += result.files;
221
+ current++;
222
+ yield { kind: 'progress', target: targetName, current, total, label: item };
100
223
  }
101
224
  // 3. Site manifest + fragment index
102
- await publishSiteManifest(sourceStorage, siteDir, targetStorage);
103
- await publishFragmentIndex(sourceStorage, siteDir, targetStorage);
225
+ await publishSiteManifest(sourceStorage, siteDir, targetStorage, site);
226
+ await publishFragmentIndex(sourceStorage, siteDir, targetStorage, site);
104
227
  totalFiles += 2;
228
+ current++;
229
+ yield { kind: 'progress', target: targetName, current, total, label: 'site manifest' };
105
230
  // 4. Purge CDN cache
106
- const purgeConfig = config?.cache?.purge;
107
231
  if (purgeConfig?.type === 'cloudflare') {
108
232
  const apiToken = resolveEnvVars(purgeConfig.apiToken);
109
233
  const zoneId = resolveEnvVars(purgeConfig.zoneId) ?? (config?.siteUrl && apiToken ? await lookupCloudflareZoneId(config.siteUrl, apiToken) : null);
110
234
  if (apiToken && zoneId) {
111
235
  const purge = createCloudflarePurge(zoneId, apiToken);
112
- const hasFragments = allItems.some(i => i.startsWith('fragments/'));
236
+ const hasFragments = targetItems.some(i => i.startsWith('fragments/'));
113
237
  if (hasFragments) {
114
238
  await purge.purgeAll();
115
239
  console.log(` ${targetName}: cache purged (all)`);
116
240
  }
117
241
  else if (config?.siteUrl) {
118
- const site = await loadSite({ siteDir, storage: sourceStorage, templatesDir });
119
- const urls = allItems
242
+ const siteForUrls = await loadSite({ siteDir, storage: sourceStorage, templatesDir });
243
+ const urls = targetItems
120
244
  .filter(i => i.startsWith('pages/'))
121
245
  .map(i => {
122
- const page = site.pages.get(i.replace('pages/', ''));
246
+ const page = siteForUrls.pages.get(i.replace('pages/', ''));
123
247
  return page ? `${config.siteUrl}${page.route}` : null;
124
248
  })
125
249
  .filter(Boolean);
@@ -129,19 +253,58 @@ export function publishRoutes(siteDir, sourceStorage, preInitTargets, targetConf
129
253
  }
130
254
  }
131
255
  }
256
+ current++;
257
+ yield { kind: 'progress', target: targetName, current, total, label: 'cache purge' };
132
258
  }
133
- results.push({ target: targetName, success: true, copiedFiles: totalFiles });
259
+ const result = { target: targetName, success: true, copiedFiles: totalFiles };
260
+ results.push(result);
134
261
  console.log(` ${targetName}: ${totalFiles} files`);
262
+ yield { kind: 'target-result', result };
135
263
  }
136
264
  catch (err) {
137
265
  const error = err.message;
138
- results.push({ target: targetName, success: false, error, copiedFiles: 0 });
266
+ const result = { target: targetName, success: false, error, copiedFiles: 0 };
267
+ results.push(result);
139
268
  console.error(` ${targetName}: FAILED — ${error}`);
269
+ yield { kind: 'target-result', result };
140
270
  }
141
271
  }
272
+ yield { kind: 'done', results };
273
+ }
274
+ app.post('/api/publish', async (c) => {
275
+ const body = await c.req.json();
276
+ let results = [];
277
+ let fatal = null;
278
+ for await (const ev of runPublish(body.items, body.targets)) {
279
+ if (ev.kind === 'fatal')
280
+ fatal = ev;
281
+ else if (ev.kind === 'done')
282
+ results = ev.results;
283
+ }
284
+ if (fatal) {
285
+ const status = fatal.error.startsWith('Cannot publish') ? 400 : 400;
286
+ return c.json({ error: fatal.error, ...(fatal.invalidTemplates ? { invalidTemplates: fatal.invalidTemplates } : {}) }, status);
287
+ }
142
288
  const allSuccess = results.every(r => r.success);
143
289
  return c.json({ results }, allSuccess ? 200 : 207);
144
290
  });
291
+ app.post('/api/publish/stream', async (c) => {
292
+ const body = await c.req.json();
293
+ return streamSSE(c, async (stream) => {
294
+ try {
295
+ for await (const ev of runPublish(body.items, body.targets)) {
296
+ if (stream.aborted)
297
+ return;
298
+ await stream.writeSSE({ event: ev.kind, data: JSON.stringify(ev) });
299
+ }
300
+ }
301
+ catch (err) {
302
+ if (!stream.aborted) {
303
+ await stream.writeSSE({ event: 'fatal', data: JSON.stringify({ kind: 'fatal', error: err.message }) });
304
+ }
305
+ }
306
+ });
307
+ });
145
308
  app.post('/api/fetch', async (c) => {
146
309
  const body = await c.req.json();
147
310
  if (!body.source)
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/admin-api/routes/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/admin-api/routes/publish.ts"],"names":[],"mappings":"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"}