@growth-labs/cms 0.6.6 → 0.6.8
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.
- package/README.md +20 -0
- package/dist/engine/foundry-dispatch.d.ts.map +1 -1
- package/dist/engine/foundry-dispatch.js +36 -7
- package/dist/engine/foundry-dispatch.js.map +1 -1
- package/dist/engine/fronts-publish-intent.d.ts +15 -4
- package/dist/engine/fronts-publish-intent.d.ts.map +1 -1
- package/dist/engine/fronts-publish-intent.js +52 -19
- package/dist/engine/fronts-publish-intent.js.map +1 -1
- package/dist/engine/fronts-publish.d.ts +19 -0
- package/dist/engine/fronts-publish.d.ts.map +1 -1
- package/dist/engine/fronts-publish.js +158 -5
- package/dist/engine/fronts-publish.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +1 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/podcast-source.d.ts +28 -0
- package/dist/engine/podcast-source.d.ts.map +1 -0
- package/dist/engine/podcast-source.js +50 -0
- package/dist/engine/podcast-source.js.map +1 -0
- package/dist/engine/publication-current-guard.d.ts +10 -0
- package/dist/engine/publication-current-guard.d.ts.map +1 -0
- package/dist/engine/publication-current-guard.js +76 -0
- package/dist/engine/publication-current-guard.js.map +1 -0
- package/dist/engine/publication.d.ts +4 -0
- package/dist/engine/publication.d.ts.map +1 -1
- package/dist/engine/publication.js +13 -0
- package/dist/engine/publication.js.map +1 -1
- package/dist/engine/publisher.d.ts.map +1 -1
- package/dist/engine/publisher.js +20 -13
- package/dist/engine/publisher.js.map +1 -1
- package/dist/engine/soft-delete.js +2 -2
- package/dist/engine/soft-delete.js.map +1 -1
- package/dist/integration/options.d.ts +117 -0
- package/dist/integration/options.d.ts.map +1 -1
- package/dist/integration/options.js +19 -0
- package/dist/integration/options.js.map +1 -1
- package/dist/providers/types.d.ts +9 -3
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/routes/config.d.ts +4 -0
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +1 -0
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/content.d.ts +2 -0
- package/dist/routes/content.d.ts.map +1 -1
- package/dist/routes/content.js +8 -6
- package/dist/routes/content.js.map +1 -1
- package/dist/routes/fronts-publish.d.ts +2 -2
- package/dist/routes/fronts-publish.d.ts.map +1 -1
- package/dist/routes/fronts-publish.js +52 -23
- package/dist/routes/fronts-publish.js.map +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/schema/layout.d.ts +2 -2
- package/dist/ui/api/_content-config.d.ts.map +1 -1
- package/dist/ui/api/_content-config.js +7 -0
- package/dist/ui/api/_content-config.js.map +1 -1
- package/dist/ui/api/fronts/publish-callback.d.ts.map +1 -1
- package/dist/ui/api/fronts/publish-callback.js +2 -6
- package/dist/ui/api/fronts/publish-callback.js.map +1 -1
- package/dist/ui/api/fronts/schedule.d.ts.map +1 -1
- package/dist/ui/api/fronts/schedule.js +2 -6
- package/dist/ui/api/fronts/schedule.js.map +1 -1
- package/dist/ui/client/mount.d.ts.map +1 -1
- package/dist/ui/client/mount.js +1 -0
- package/dist/ui/client/mount.js.map +1 -1
- package/dist/ui/editor/ContentForm.d.ts +3 -2
- package/dist/ui/editor/ContentForm.d.ts.map +1 -1
- package/dist/ui/editor/ContentForm.js +18 -4
- package/dist/ui/editor/ContentForm.js.map +1 -1
- package/dist/ui/editor/content-payload.d.ts +4 -1
- package/dist/ui/editor/content-payload.d.ts.map +1 -1
- package/dist/ui/editor/content-payload.js +9 -1
- package/dist/ui/editor/content-payload.js.map +1 -1
- package/dist/ui/screens/ContentRoute.d.ts +3 -2
- package/dist/ui/screens/ContentRoute.d.ts.map +1 -1
- package/dist/ui/screens/ContentRoute.js +2 -2
- package/dist/ui/screens/ContentRoute.js.map +1 -1
- package/dist/ui/screens/EditorScreen.d.ts +3 -2
- package/dist/ui/screens/EditorScreen.d.ts.map +1 -1
- package/dist/ui/screens/EditorScreen.js +2 -2
- package/dist/ui/screens/EditorScreen.js.map +1 -1
- package/dist/ui/screens/registry.d.ts +3 -2
- package/dist/ui/screens/registry.d.ts.map +1 -1
- package/dist/ui/screens/registry.js +2 -2
- package/dist/ui/screens/registry.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/foundry-dispatch.ts +67 -12
- package/src/engine/fronts-publish-intent.ts +78 -26
- package/src/engine/fronts-publish.ts +223 -5
- package/src/engine/index.ts +4 -0
- package/src/engine/podcast-source.ts +82 -0
- package/src/engine/publication-current-guard.ts +87 -0
- package/src/engine/publication.ts +23 -0
- package/src/engine/publisher.ts +21 -13
- package/src/engine/soft-delete.ts +2 -2
- package/src/integration/options.ts +23 -0
- package/src/providers/types.ts +6 -1
- package/src/routes/config.ts +5 -0
- package/src/routes/content.ts +11 -6
- package/src/routes/fronts-publish.ts +63 -25
- package/src/routes/index.ts +1 -1
- package/src/ui/api/_content-config.ts +11 -0
- package/src/ui/api/fronts/publish-callback.ts +2 -8
- package/src/ui/api/fronts/schedule.ts +2 -8
- package/src/ui/client/mount.tsx +1 -0
- package/src/ui/editor/ContentForm.tsx +45 -3
- package/src/ui/editor/content-payload.ts +8 -0
- package/src/ui/screens/ContentRoute.tsx +4 -1
- package/src/ui/screens/EditorScreen.tsx +4 -1
- package/src/ui/screens/registry.tsx +4 -1
|
@@ -23,7 +23,11 @@
|
|
|
23
23
|
// site's cron) is UNTOUCHED and remains the rollback lever; this path is purely
|
|
24
24
|
// additive and gated by FRONTS_PUBLISH_ENABLED (default ON — a rollback lever,
|
|
25
25
|
// not a dark-staging gate).
|
|
26
|
+
import { FrontsScheduleOverflowError } from './fronts-publish-intent.js';
|
|
27
|
+
import { podcastPublishBlocker } from './podcast-source.js';
|
|
26
28
|
import { publishOne } from './publication.js';
|
|
29
|
+
import { assertCurrentPublicationSnapshot, PublicationCurrentSnapshotError, snapshotRecord, } from './publication-current-guard.js';
|
|
30
|
+
import { getContentSnapshot } from './publisher.js';
|
|
27
31
|
/** The five lifecycle states foundryd reports for a Fronts publish intent. */
|
|
28
32
|
export const FRONTS_PUBLISH_STATUSES = [
|
|
29
33
|
'queued',
|
|
@@ -68,12 +72,15 @@ export async function listFrontsPublishSchedule(db, options) {
|
|
|
68
72
|
.prepare(`SELECT id, type, slug, title, channel, publish_at, fronts_publish_status
|
|
69
73
|
FROM content_items
|
|
70
74
|
WHERE status = 'scheduled'
|
|
75
|
+
AND deleted_at IS NULL
|
|
71
76
|
AND publish_at IS NOT NULL
|
|
72
77
|
AND publish_at <= ?
|
|
73
78
|
ORDER BY publish_at ASC
|
|
74
79
|
LIMIT ?`)
|
|
75
|
-
.bind(options.toSeconds, limit)
|
|
80
|
+
.bind(options.toSeconds, limit + 1)
|
|
76
81
|
.all();
|
|
82
|
+
if ((result.results?.length ?? 0) > limit)
|
|
83
|
+
throw new FrontsScheduleOverflowError(limit);
|
|
77
84
|
return (result.results ?? []).map((row) => ({
|
|
78
85
|
id: row.id,
|
|
79
86
|
type: row.type,
|
|
@@ -145,9 +152,87 @@ export async function applyFrontsPublishCallback(db, input) {
|
|
|
145
152
|
let attemptId = null;
|
|
146
153
|
let ledgerError = null;
|
|
147
154
|
const shouldPublish = input.status === 'live' && hasReceipt(input.receipt);
|
|
155
|
+
if (shouldPublish && item.status === 'published') {
|
|
156
|
+
const current = await getContentSnapshot(db, input.contentId);
|
|
157
|
+
if (!current ||
|
|
158
|
+
!(await matchesCommittedCallback(db, input.contentId, current, await hashReceiptIdentity(input.receipt), input))) {
|
|
159
|
+
return {
|
|
160
|
+
ok: false,
|
|
161
|
+
deduped: false,
|
|
162
|
+
status: input.status,
|
|
163
|
+
published: false,
|
|
164
|
+
attemptId: null,
|
|
165
|
+
contentFound: true,
|
|
166
|
+
ledgerError: null,
|
|
167
|
+
rejection: {
|
|
168
|
+
code: 'publish_snapshot_changed',
|
|
169
|
+
status: 409,
|
|
170
|
+
message: 'The committed publication does not match this callback.',
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
148
175
|
if (shouldPublish && item.status !== 'published') {
|
|
176
|
+
const reject = (code, status, message, blockers) => ({
|
|
177
|
+
ok: false,
|
|
178
|
+
deduped: false,
|
|
179
|
+
status: input.status,
|
|
180
|
+
published: false,
|
|
181
|
+
attemptId: null,
|
|
182
|
+
contentFound: true,
|
|
183
|
+
ledgerError: null,
|
|
184
|
+
rejection: { code, status, message, ...(blockers ? { blockers } : {}) },
|
|
185
|
+
});
|
|
186
|
+
const expectedSnapshot = await getContentSnapshot(db, input.contentId);
|
|
187
|
+
const expectedItem = snapshotRecord(expectedSnapshot?.item);
|
|
188
|
+
if (!expectedSnapshot ||
|
|
189
|
+
expectedItem.deleted_at != null ||
|
|
190
|
+
expectedItem.status !== 'scheduled') {
|
|
191
|
+
return reject('content_not_scheduled', 404, 'Content is no longer scheduled for publication.');
|
|
192
|
+
}
|
|
193
|
+
if ((input.version != null && input.version !== expectedItem.canonical_version) ||
|
|
194
|
+
(input.publishAt != null && input.publishAt !== expectedItem.publish_at)) {
|
|
195
|
+
return reject('publish_snapshot_changed', 409, 'The scheduled publication has been superseded.');
|
|
196
|
+
}
|
|
197
|
+
if (typeof expectedItem.publish_at !== 'number' ||
|
|
198
|
+
!Number.isFinite(expectedItem.publish_at) ||
|
|
199
|
+
expectedItem.publish_at > now) {
|
|
200
|
+
return reject('publish_not_ready', 503, 'The current scheduled publication time has not arrived.', ['publish_not_due']);
|
|
201
|
+
}
|
|
202
|
+
const blocker = expectedItem.type === 'podcast'
|
|
203
|
+
? podcastPublishBlocker(snapshotRecord(expectedSnapshot.content))
|
|
204
|
+
: null;
|
|
205
|
+
if (blocker)
|
|
206
|
+
return reject('publish_not_ready', 503, blocker.message, [blocker.code]);
|
|
207
|
+
if (input.checkReadiness) {
|
|
208
|
+
let timeout;
|
|
209
|
+
try {
|
|
210
|
+
const readiness = await Promise.race([
|
|
211
|
+
input.checkReadiness({
|
|
212
|
+
id: input.contentId,
|
|
213
|
+
type: expectedItem.type,
|
|
214
|
+
status: 'scheduled',
|
|
215
|
+
}),
|
|
216
|
+
new Promise((_resolve, rejectTimeout) => {
|
|
217
|
+
timeout = setTimeout(() => rejectTimeout(new Error('readiness timed out')), 10_000);
|
|
218
|
+
}),
|
|
219
|
+
]);
|
|
220
|
+
if (readiness.ready !== true)
|
|
221
|
+
return reject('publish_not_ready', 503, readiness.message || 'Content is not ready for publication.', readiness.blockers);
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
return reject('publish_not_ready', 503, 'Publish readiness could not be verified.', [
|
|
225
|
+
'readiness_unavailable',
|
|
226
|
+
]);
|
|
227
|
+
}
|
|
228
|
+
finally {
|
|
229
|
+
if (timeout !== undefined)
|
|
230
|
+
clearTimeout(timeout);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
const receiptIdentity = await hashReceiptIdentity(input.receipt);
|
|
234
|
+
const receiptSummary = summarizeReceipt(input.receipt);
|
|
149
235
|
try {
|
|
150
|
-
const receiptSummary = summarizeReceipt(input.receipt);
|
|
151
236
|
const surface = {
|
|
152
237
|
name: 'fronts',
|
|
153
238
|
async prepare() {
|
|
@@ -164,22 +249,36 @@ export async function applyFrontsPublishCallback(db, input) {
|
|
|
164
249
|
...(publishedAt !== null ? { publishedAt } : {}),
|
|
165
250
|
createdBy: 'foundry.fronts-publish',
|
|
166
251
|
surfaces: [surface],
|
|
252
|
+
expectedCurrentSnapshot: expectedSnapshot,
|
|
253
|
+
expectedReceiptIdentity: receiptIdentity,
|
|
167
254
|
});
|
|
168
255
|
attemptId = receipt.attemptId;
|
|
169
256
|
published = true;
|
|
170
257
|
}
|
|
171
258
|
catch (error) {
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
//
|
|
259
|
+
// A concurrently published row may belong to a newer editor/source
|
|
260
|
+
// revision. Only a matching committed snapshot and full receipt prove
|
|
261
|
+
// this callback's success; status='published' alone proves nothing.
|
|
175
262
|
const reread = await db
|
|
176
263
|
.prepare('SELECT status FROM content_items WHERE id = ? LIMIT 1')
|
|
177
264
|
.bind(input.contentId)
|
|
178
265
|
.first();
|
|
179
266
|
if (reread?.status === 'published') {
|
|
267
|
+
if (!(await matchesCommittedCallback(db, input.contentId, expectedSnapshot, receiptIdentity))) {
|
|
268
|
+
return reject('publish_snapshot_changed', 409, 'A different publication superseded this callback.');
|
|
269
|
+
}
|
|
180
270
|
published = true;
|
|
181
271
|
}
|
|
182
272
|
else {
|
|
273
|
+
if (error instanceof PublicationCurrentSnapshotError)
|
|
274
|
+
return reject('publish_snapshot_changed', 409, error.message);
|
|
275
|
+
const current = await getContentSnapshot(db, input.contentId);
|
|
276
|
+
try {
|
|
277
|
+
assertCurrentPublicationSnapshot(current ?? {}, expectedSnapshot);
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return reject('publish_snapshot_changed', 409, 'Scheduled content or media changed before publication.');
|
|
281
|
+
}
|
|
183
282
|
ledgerError = error instanceof Error ? error.message : String(error);
|
|
184
283
|
}
|
|
185
284
|
}
|
|
@@ -232,6 +331,60 @@ export async function applyFrontsPublishCallback(db, input) {
|
|
|
232
331
|
ledgerError,
|
|
233
332
|
};
|
|
234
333
|
}
|
|
334
|
+
async function hashReceiptIdentity(receipt) {
|
|
335
|
+
const bytes = new TextEncoder().encode(JSON.stringify([
|
|
336
|
+
'fronts-publish-receipt.v1',
|
|
337
|
+
receipt?.published_urls ?? null,
|
|
338
|
+
receipt?.platform_post_ids ?? null,
|
|
339
|
+
receipt?.sha256 ?? null,
|
|
340
|
+
]));
|
|
341
|
+
const digest = await crypto.subtle.digest('SHA-256', bytes);
|
|
342
|
+
return Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, '0')).join('');
|
|
343
|
+
}
|
|
344
|
+
async function matchesCommittedCallback(db, contentId, expectedSnapshot, receiptIdentity, input) {
|
|
345
|
+
const current = await db
|
|
346
|
+
.prepare(`SELECT r.id AS revision_id, r.payload_json, a.receipts_json
|
|
347
|
+
FROM content_items c
|
|
348
|
+
JOIN content_revisions r ON r.id = c.published_revision_id AND r.content_id = c.id
|
|
349
|
+
JOIN content_publication_attempts a ON a.revision_id = r.id AND a.content_id = c.id
|
|
350
|
+
WHERE c.id = ? AND c.status = 'published' AND c.deleted_at IS NULL
|
|
351
|
+
AND r.created_by = 'foundry.fronts-publish' AND a.operation = 'publish' AND a.state = 'committed'
|
|
352
|
+
LIMIT 1`)
|
|
353
|
+
.bind(contentId)
|
|
354
|
+
.first();
|
|
355
|
+
if (!current)
|
|
356
|
+
return false;
|
|
357
|
+
try {
|
|
358
|
+
const snapshot = snapshotRecord(JSON.parse(current.payload_json));
|
|
359
|
+
if (snapshot.publication_receipt_identity !== receiptIdentity)
|
|
360
|
+
return false;
|
|
361
|
+
const committedItem = snapshotRecord(snapshot.item);
|
|
362
|
+
const expectedItem = snapshotRecord(expectedSnapshot.item);
|
|
363
|
+
if (expectedItem.status === 'published') {
|
|
364
|
+
if (expectedItem.published_revision_id !== current.revision_id ||
|
|
365
|
+
expectedItem.publish_at != null ||
|
|
366
|
+
(input?.version != null && input.version !== committedItem.canonical_version) ||
|
|
367
|
+
(input?.publishAt != null && input.publishAt !== committedItem.publish_at))
|
|
368
|
+
return false;
|
|
369
|
+
// Commit deliberately changes only these scheduled guard fields.
|
|
370
|
+
// Every source/editor field must still match the immutable revision.
|
|
371
|
+
expectedSnapshot = {
|
|
372
|
+
...expectedSnapshot,
|
|
373
|
+
item: { ...expectedItem, status: 'scheduled', publish_at: committedItem.publish_at },
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
assertCurrentPublicationSnapshot(snapshot, expectedSnapshot);
|
|
377
|
+
const receipts = JSON.parse(current.receipts_json);
|
|
378
|
+
return (Array.isArray(receipts) &&
|
|
379
|
+
receipts.some((value) => {
|
|
380
|
+
const receipt = snapshotRecord(value);
|
|
381
|
+
return receipt.name === 'fronts' && receipt.phase === 'commit' && receipt.status === 'ok';
|
|
382
|
+
}));
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
235
388
|
/** Replay a stored callback outcome by event_id, or null when not yet recorded. */
|
|
236
389
|
async function readStoredOutcome(db, eventId) {
|
|
237
390
|
const row = await db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fronts-publish.js","sourceRoot":"","sources":["../../src/engine/fronts-publish.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fronts-publish.js","sourceRoot":"","sources":["../../src/engine/fronts-publish.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export { type AcceptInviteInput, acceptInvite, type CreateInviteInput, type Crea
|
|
|
16
16
|
export { listMembers, loadMembership, type MemberListEntry, type MembershipRecord, removeMember, setRole, type UpsertMastheadUserInput, upsertMastheadUser, } from './members.js';
|
|
17
17
|
export { canChangeMemberRole, canRemoveMember, type MemberActionDecision, type MembershipSummary, ownerCount, } from './membership-rules.js';
|
|
18
18
|
export { buildOgCardSpec, type OgCardSpec, type OgCardSpecOpts, type OgImageRenderer, } from './og-render.js';
|
|
19
|
+
export { type FrontsPodcastSourceSnapshot, frontsPodcastSourceGeneration, } from './podcast-source.js';
|
|
19
20
|
export { ContentArchiveImportLimitError, type ContentArchiveInput, type ContentArchiveItem, DEFAULT_PENDING_PUBLICATION_ATTEMPT_LIMIT, DEFAULT_PUBLICATION_SURFACE_HOOK_TIMEOUT_MS, type ImportContentArchiveOptions, type ImportContentArchiveResult, type ImportedArchiveItem, importContentArchive, type ListPendingPublicationAttemptsOptions, listPendingPublicationAttempts, MAX_PENDING_PUBLICATION_ATTEMPT_LIMIT, MAX_PUBLICATION_SURFACE_HOOK_TIMEOUT_MS, type PublicationAttempt, type PublicationAttemptState, PublicationInputError, PublicationNotFoundError, type PublicationOperation, PublicationPointerMoveError, type PublicationReconciler, PublicationReconciliationError, type PublicationReconciliationInput, type PublicationSurfaceCommitStatus, type PublicationSurfacePhase, type PublicationSurfaceReceipt, PublicationSurfaceRequirementError, type PublicationSurfaceStatus, type PublishOneInput, type PublishOneReceipt, publishOne, type RetryPublicationSurfacesInput, type RetryPublicationSurfacesReceipt, type RollbackPublicationInput, type RollbackPublicationReceipt, retryPublicationSurfaces, rollbackPublication, type SkippedArchiveItem, } from './publication.js';
|
|
20
21
|
export { acceptsProbeStatus, type ContinuityArchiveItem, type ContinuityDrift, type ContinuityDriftField, type ContinuityPublishedRow, isRetiredItem, payloadDrift, } from './publication-continuity.js';
|
|
21
22
|
export { CanonicalJsonError, canonicalJson, canonicalJsonBytes, canonicalJsonSha256, type JsonValue, } from './publication-receipt/canonical-json.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EACN,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,6BAA6B,EAC7B,KAAK,2BAA2B,GAChC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,eAAe,EACf,KAAK,0BAA0B,EAC/B,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,eAAe,EACf,KAAK,oBAAoB,EACzB,eAAe,GACf,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,YAAY,EACZ,aAAa,EACb,iBAAiB,GACjB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,SAAS,EACT,KAAK,kBAAkB,EACvB,eAAe,GACf,MAAM,eAAe,CAAA;AAEtB,OAAO,EACN,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,GACxB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,eAAe,GACf,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAE5E,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAE3F,OAAO,EACN,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,iBAAiB,EACjB,KAAK,eAAe,EACpB,UAAU,GACV,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACN,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,gCAAgC,EACrC,yBAAyB,GACzB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACN,4BAA4B,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,6BAA6B,EAC7B,KAAK,iCAAiC,EACtC,2BAA2B,EAC3B,uBAAuB,GACvB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACN,cAAc,EACd,KAAK,gBAAgB,EACrB,UAAU,EACV,aAAa,EACb,gBAAgB,GAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACN,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,YAAY,EACZ,eAAe,EACf,KAAK,YAAY,EACjB,iBAAiB,GACjB,MAAM,cAAc,CAAA;AAErB,OAAO,EACN,WAAW,EACX,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,YAAY,EACZ,OAAO,EACP,KAAK,uBAAuB,EAC5B,kBAAkB,GAClB,MAAM,cAAc,CAAA;AAErB,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,UAAU,GACV,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACN,eAAe,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACN,KAAK,2BAA2B,EAChC,6BAA6B,GAC7B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACN,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,yCAAyC,EACzC,2CAA2C,EAC3C,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,KAAK,qCAAqC,EAC1C,8BAA8B,EAC9B,qCAAqC,EACrC,uCAAuC,EACvC,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,8BAA8B,EAC9B,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,kCAAkC,EAClC,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,kBAAkB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,aAAa,EACb,YAAY,GACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACN,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,SAAS,GACd,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,iCAAiC,EACjC,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,gCAAgC,GAChC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACN,KAAK,wBAAwB,EAC7B,sBAAsB,EACtB,wBAAwB,GACxB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACN,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,0BAA0B,GAC1B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACN,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,gCAAgC,EAChC,+BAA+B,EAC/B,mCAAmC,EACnC,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,KAAK,6BAA6B,GAClC,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACN,KAAK,YAAY,EACjB,gCAAgC,EAChC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,UAAU,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,6BAA6B,EAC7B,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,6BAA6B,EAC7B,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,kCAAkC,EAClC,KAAK,UAAU,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EACN,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,+BAA+B,EAC/B,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,GACb,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACN,KAAK,sBAAsB,EAC3B,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,KAAK,eAAe,EACpB,eAAe,GACf,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACN,qBAAqB,EACrB,KAAK,eAAe,EACpB,QAAQ,EACR,YAAY,EACZ,gBAAgB,GAChB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,KAAK,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE/E,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,UAAU,GACV,MAAM,UAAU,CAAA;AAEjB,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,kBAAkB,GAClB,MAAM,WAAW,CAAA;AAElB,OAAO,EACN,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACN,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,GACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,uBAAuB,EACvB,KAAK,0BAA0B,GAC/B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACN,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,KAAK,UAAU,GACf,MAAM,WAAW,CAAA;AAClB,OAAO,EACN,KAAK,WAAW,EAChB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,GAC1B,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,KAAK,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExE,OAAO,EACN,KAAK,gBAAgB,EACrB,WAAW,EACX,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,UAAU,GACV,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACN,2BAA2B,EAC3B,eAAe,EACf,oBAAoB,GACpB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACN,KAAK,yBAAyB,EAC9B,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,GAClB,MAAM,eAAe,CAAA"}
|
package/dist/engine/index.js
CHANGED
|
@@ -36,6 +36,7 @@ export { listMembers, loadMembership, removeMember, setRole, upsertMastheadUser,
|
|
|
36
36
|
export { canChangeMemberRole, canRemoveMember, ownerCount, } from './membership-rules.js';
|
|
37
37
|
// OG-image renderer interface + pure card-spec builder (P4 Task 5).
|
|
38
38
|
export { buildOgCardSpec, } from './og-render.js';
|
|
39
|
+
export { frontsPodcastSourceGeneration, } from './podcast-source.js';
|
|
39
40
|
// Bounded one-item publication kernel.
|
|
40
41
|
export { ContentArchiveImportLimitError, DEFAULT_PENDING_PUBLICATION_ATTEMPT_LIMIT, DEFAULT_PUBLICATION_SURFACE_HOOK_TIMEOUT_MS, importContentArchive, listPendingPublicationAttempts, MAX_PENDING_PUBLICATION_ATTEMPT_LIMIT, MAX_PUBLICATION_SURFACE_HOOK_TIMEOUT_MS, PublicationInputError, PublicationNotFoundError, PublicationPointerMoveError, PublicationReconciliationError, PublicationSurfaceRequirementError, publishOne, retryPublicationSurfaces, rollbackPublication, } from './publication.js';
|
|
41
42
|
export { acceptsProbeStatus, isRetiredItem, payloadDrift, } from './publication-continuity.js';
|
package/dist/engine/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Current CMS evidence used by the signed schedule and media callback guards. */
|
|
2
|
+
export interface FrontsPodcastSourceSnapshot {
|
|
3
|
+
content_id: string;
|
|
4
|
+
slug: string;
|
|
5
|
+
canonical_version: number;
|
|
6
|
+
processing_source_url: string | null;
|
|
7
|
+
processing_source_kind: string | null;
|
|
8
|
+
processing_trigger_token: string | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Stable over polling, machine media callbacks and rescheduling. Canonical
|
|
12
|
+
* editor/source changes invalidate the old production. Neither the raw source
|
|
13
|
+
* token nor URL needs to appear in callback/notification identities.
|
|
14
|
+
*/
|
|
15
|
+
export declare function frontsPodcastSourceGeneration(input: FrontsPodcastSourceSnapshot): Promise<string>;
|
|
16
|
+
export type PodcastPublishBlockerCode = 'missing_podcast_audio' | 'podcast_transcript_pending' | 'podcast_source_duration_unavailable';
|
|
17
|
+
/** Portable minimum; hosts may enforce additional object/access checks. */
|
|
18
|
+
export declare function podcastPublishBlocker(content: {
|
|
19
|
+
audio_r2_key?: unknown;
|
|
20
|
+
transcript?: unknown;
|
|
21
|
+
processing_source_url?: unknown;
|
|
22
|
+
duration_seconds?: unknown;
|
|
23
|
+
} | null | undefined): {
|
|
24
|
+
code: PodcastPublishBlockerCode;
|
|
25
|
+
message: string;
|
|
26
|
+
} | null;
|
|
27
|
+
export declare function validPodcastSourceUrl(value: string | null | undefined): value is string;
|
|
28
|
+
//# sourceMappingURL=podcast-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"podcast-source.d.ts","sourceRoot":"","sources":["../../src/engine/podcast-source.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,WAAW,2BAA2B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CAClD,KAAK,EAAE,2BAA2B,GAChC,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,MAAM,MAAM,yBAAyB,GAClC,uBAAuB,GACvB,4BAA4B,GAC5B,qCAAqC,CAAA;AAExC,2EAA2E;AAC3E,wBAAgB,qBAAqB,CACpC,OAAO,EACJ;IACA,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CACzB,GACD,IAAI,GACJ,SAAS,GACV;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoB7D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAUvF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable over polling, machine media callbacks and rescheduling. Canonical
|
|
3
|
+
* editor/source changes invalidate the old production. Neither the raw source
|
|
4
|
+
* token nor URL needs to appear in callback/notification identities.
|
|
5
|
+
*/
|
|
6
|
+
export async function frontsPodcastSourceGeneration(input) {
|
|
7
|
+
const bytes = new TextEncoder().encode(JSON.stringify([
|
|
8
|
+
'fronts-podcast-source.v1',
|
|
9
|
+
input.content_id,
|
|
10
|
+
input.slug,
|
|
11
|
+
input.canonical_version,
|
|
12
|
+
input.processing_source_url,
|
|
13
|
+
input.processing_source_kind,
|
|
14
|
+
input.processing_trigger_token,
|
|
15
|
+
]));
|
|
16
|
+
const digest = await crypto.subtle.digest('SHA-256', bytes);
|
|
17
|
+
return Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, '0')).join('');
|
|
18
|
+
}
|
|
19
|
+
/** Portable minimum; hosts may enforce additional object/access checks. */
|
|
20
|
+
export function podcastPublishBlocker(content) {
|
|
21
|
+
if (typeof content?.audio_r2_key !== 'string' || !content.audio_r2_key.trim()) {
|
|
22
|
+
return { code: 'missing_podcast_audio', message: 'Podcast audio is not ready.' };
|
|
23
|
+
}
|
|
24
|
+
if (typeof content.transcript !== 'string' || !content.transcript.trim()) {
|
|
25
|
+
return { code: 'podcast_transcript_pending', message: 'Podcast transcript is not ready.' };
|
|
26
|
+
}
|
|
27
|
+
if (typeof content.processing_source_url === 'string' &&
|
|
28
|
+
content.processing_source_url.trim() &&
|
|
29
|
+
(typeof content.duration_seconds !== 'number' ||
|
|
30
|
+
!Number.isFinite(content.duration_seconds) ||
|
|
31
|
+
content.duration_seconds <= 0)) {
|
|
32
|
+
return {
|
|
33
|
+
code: 'podcast_source_duration_unavailable',
|
|
34
|
+
message: 'Podcast source duration is not verified.',
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
export function validPodcastSourceUrl(value) {
|
|
40
|
+
if (!value || !/^https:\/\/\S+$/.test(value) || Array.from(value).length > 2048)
|
|
41
|
+
return false;
|
|
42
|
+
try {
|
|
43
|
+
const url = new URL(value);
|
|
44
|
+
return (url.protocol === 'https:' && !!url.hostname && !url.username && !url.password && !url.hash);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=podcast-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"podcast-source.js","sourceRoot":"","sources":["../../src/engine/podcast-source.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,KAAkC;IAElC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CACrC,IAAI,CAAC,SAAS,CAAC;QACd,0BAA0B;QAC1B,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,iBAAiB;QACvB,KAAK,CAAC,qBAAqB;QAC3B,KAAK,CAAC,sBAAsB;QAC5B,KAAK,CAAC,wBAAwB;KAC9B,CAAC,CACF,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjG,CAAC;AAOD,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CACpC,OAQY;IAEZ,IAAI,OAAO,OAAO,EAAE,YAAY,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/E,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAA;IACjF,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAA;IAC3F,CAAC;IACD,IACC,OAAO,OAAO,CAAC,qBAAqB,KAAK,QAAQ;QACjD,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE;QACpC,CAAC,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ;YAC5C,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC1C,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC,EAC9B,CAAC;QACF,OAAO;YACN,IAAI,EAAE,qCAAqC;YAC3C,OAAO,EAAE,0CAA0C;SACnD,CAAA;IACF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IACrE,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7F,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,OAAO,CACN,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAC1F,CAAA;IACF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAA;IACb,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** A guard lives with its revision, so retries retain the same editorial proof. */
|
|
2
|
+
export declare const CURRENT_PUBLICATION_GUARD = "cms.scheduled-publication-current.v1";
|
|
3
|
+
export declare class PublicationCurrentSnapshotError extends Error {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export declare function snapshotRecord(value: unknown): Record<string, unknown>;
|
|
7
|
+
export declare function assertCurrentPublicationSnapshot(current: Record<string, unknown>, expected: Record<string, unknown>): void;
|
|
8
|
+
/** Uses the immutable revision in the existing pointer CAS; no second write. */
|
|
9
|
+
export declare function currentPublicationSqlGuard(revisionAlias: string): string;
|
|
10
|
+
//# sourceMappingURL=publication-current-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publication-current-guard.d.ts","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,yCAAyC,CAAA;AAE/E,qBAAa,+BAAgC,SAAQ,KAAK;;CAKzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAItE;AAiCD,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAgBN;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiBxE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/** A guard lives with its revision, so retries retain the same editorial proof. */
|
|
2
|
+
export const CURRENT_PUBLICATION_GUARD = 'cms.scheduled-publication-current.v1';
|
|
3
|
+
export class PublicationCurrentSnapshotError extends Error {
|
|
4
|
+
constructor() {
|
|
5
|
+
super('Scheduled content or media changed before publication.');
|
|
6
|
+
this.name = 'PublicationCurrentSnapshotError';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function snapshotRecord(value) {
|
|
10
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
11
|
+
? value
|
|
12
|
+
: {};
|
|
13
|
+
}
|
|
14
|
+
const ITEM_FIELDS = [
|
|
15
|
+
'id',
|
|
16
|
+
'type',
|
|
17
|
+
'slug',
|
|
18
|
+
'status',
|
|
19
|
+
'deleted_at',
|
|
20
|
+
'canonical_version',
|
|
21
|
+
'publish_at',
|
|
22
|
+
];
|
|
23
|
+
const PODCAST_FIELDS = [
|
|
24
|
+
'audio_r2_key',
|
|
25
|
+
'transcript',
|
|
26
|
+
'duration_seconds',
|
|
27
|
+
'processing_source_url',
|
|
28
|
+
'processing_source_kind',
|
|
29
|
+
'processing_trigger_token',
|
|
30
|
+
];
|
|
31
|
+
const VIDEO_FIELDS = [
|
|
32
|
+
'video_id',
|
|
33
|
+
'duration_seconds',
|
|
34
|
+
'processing_source_url',
|
|
35
|
+
'processing_source_kind',
|
|
36
|
+
'processing_trigger_token',
|
|
37
|
+
'processing_correlation_id',
|
|
38
|
+
'processing_state',
|
|
39
|
+
'hls_ready',
|
|
40
|
+
'hls_manifest_url',
|
|
41
|
+
'transcript_ready',
|
|
42
|
+
'transcript_url',
|
|
43
|
+
];
|
|
44
|
+
export function assertCurrentPublicationSnapshot(current, expected) {
|
|
45
|
+
const item = snapshotRecord(current.item);
|
|
46
|
+
const expectedItem = snapshotRecord(expected.item);
|
|
47
|
+
if (item.status !== 'scheduled' ||
|
|
48
|
+
item.deleted_at != null ||
|
|
49
|
+
ITEM_FIELDS.some((field) => item[field] !== expectedItem[field])) {
|
|
50
|
+
throw new PublicationCurrentSnapshotError();
|
|
51
|
+
}
|
|
52
|
+
const fields = item.type === 'podcast' ? PODCAST_FIELDS : item.type === 'video' ? VIDEO_FIELDS : [];
|
|
53
|
+
const content = snapshotRecord(current.content);
|
|
54
|
+
const expectedContent = snapshotRecord(expected.content);
|
|
55
|
+
if (fields.some((field) => content[field] !== expectedContent[field]))
|
|
56
|
+
throw new PublicationCurrentSnapshotError();
|
|
57
|
+
}
|
|
58
|
+
/** Uses the immutable revision in the existing pointer CAS; no second write. */
|
|
59
|
+
export function currentPublicationSqlGuard(revisionAlias) {
|
|
60
|
+
const item = (field) => `json_extract(${revisionAlias}.payload_json, '$.item.${field}')`;
|
|
61
|
+
const content = (field) => `json_extract(${revisionAlias}.payload_json, '$.content.${field}')`;
|
|
62
|
+
const matches = (table, fields) => `EXISTS (
|
|
63
|
+
SELECT 1 FROM ${table} current_media WHERE current_media.content_id = content_items.id
|
|
64
|
+
AND ${fields.map((field) => `current_media.${field} IS ${content(field)}`).join(' AND ')}
|
|
65
|
+
)`;
|
|
66
|
+
return `(json_extract(${revisionAlias}.payload_json, '$.publication_guard') IS NULL OR (
|
|
67
|
+
json_extract(${revisionAlias}.payload_json, '$.publication_guard') = '${CURRENT_PUBLICATION_GUARD}'
|
|
68
|
+
AND content_items.status = 'scheduled' AND content_items.deleted_at IS NULL
|
|
69
|
+
AND ${ITEM_FIELDS.filter((field) => field !== 'deleted_at')
|
|
70
|
+
.map((field) => `content_items.${field} IS ${item(field)}`)
|
|
71
|
+
.join(' AND ')}
|
|
72
|
+
AND (${item('type')} <> 'podcast' OR ${matches('podcast_content', PODCAST_FIELDS)})
|
|
73
|
+
AND (${item('type')} <> 'video' OR ${matches('video_content', VIDEO_FIELDS)})
|
|
74
|
+
))`;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=publication-current-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publication-current-guard.js","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,10 @@ export interface PublishOneInput {
|
|
|
54
54
|
requiredSurfaceNames?: string[];
|
|
55
55
|
packageVersion?: string | null;
|
|
56
56
|
surfaceHookTimeoutMs?: number;
|
|
57
|
+
/** Machine publication must still describe this scheduled editorial/media snapshot. */
|
|
58
|
+
expectedCurrentSnapshot?: Record<string, unknown>;
|
|
59
|
+
/** Digest of the external receipt bound to a guarded machine publication. */
|
|
60
|
+
expectedReceiptIdentity?: string;
|
|
57
61
|
}
|
|
58
62
|
export interface PublishOneReceipt {
|
|
59
63
|
status: 'published';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/engine/publication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,8BAA8B,EAC9B,WAAW,EACX,iBAAiB,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACN,KAAK,eAAe,EAIpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/engine/publication.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ContentMetadataError, MAX_CONTENT_METADATA_BYTES, serializeContentMetadata, } from './content-metadata.js';
|
|
2
|
+
import { assertCurrentPublicationSnapshot, CURRENT_PUBLICATION_GUARD, currentPublicationSqlGuard, } from './publication-current-guard.js';
|
|
2
3
|
import { evaluateArticleBody } from './publish-guard.js';
|
|
3
4
|
import { createContent, ensureUniqueSlug, getContentItem, getContentSnapshot, PublishContentValidationError, } from './publisher.js';
|
|
4
5
|
import { getRevision } from './revisions.js';
|
|
@@ -374,6 +375,15 @@ async function createRevisionAndPublicationAttempt(db, input) {
|
|
|
374
375
|
const snapshot = await getContentSnapshot(db, input.contentId);
|
|
375
376
|
if (!snapshot)
|
|
376
377
|
throw new PublicationNotFoundError(`content not found: ${input.contentId}`);
|
|
378
|
+
if (input.expectedCurrentSnapshot) {
|
|
379
|
+
assertCurrentPublicationSnapshot(snapshot, input.expectedCurrentSnapshot);
|
|
380
|
+
snapshot.publication_guard = CURRENT_PUBLICATION_GUARD;
|
|
381
|
+
if (input.expectedReceiptIdentity !== undefined) {
|
|
382
|
+
if (!/^[a-f0-9]{64}$/.test(input.expectedReceiptIdentity))
|
|
383
|
+
throw new Error('Invalid guarded publication receipt identity');
|
|
384
|
+
snapshot.publication_receipt_identity = input.expectedReceiptIdentity;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
377
387
|
assertPublicationSnapshotBodyValid(snapshot, input.contentId);
|
|
378
388
|
const revisionId = crypto.randomUUID();
|
|
379
389
|
const attemptId = crypto.randomUUID();
|
|
@@ -1020,6 +1030,7 @@ async function movePointerAndBeginCommit(db, attempt, now) {
|
|
|
1020
1030
|
AND target_revision.content_id = ?
|
|
1021
1031
|
AND json_type(target_revision.payload_json, '$.item.slug') = 'text'
|
|
1022
1032
|
AND length(json_extract(target_revision.payload_json, '$.item.slug')) BETWEEN 1 AND 512
|
|
1033
|
+
${attempt.operation === 'publish' ? `AND ${currentPublicationSqlGuard('target_revision')}` : ''}
|
|
1023
1034
|
AND NOT EXISTS (
|
|
1024
1035
|
SELECT 1
|
|
1025
1036
|
FROM content_items other_item
|
|
@@ -1177,6 +1188,8 @@ export async function publishOne(db, input) {
|
|
|
1177
1188
|
packageVersion: input.packageVersion ?? null,
|
|
1178
1189
|
now,
|
|
1179
1190
|
createdBy: input.createdBy,
|
|
1191
|
+
expectedCurrentSnapshot: input.expectedCurrentSnapshot,
|
|
1192
|
+
expectedReceiptIdentity: input.expectedReceiptIdentity,
|
|
1180
1193
|
});
|
|
1181
1194
|
const reconciliationInput = {
|
|
1182
1195
|
operation: 'publish',
|