@growth-labs/cms 0.8.32 → 0.8.35

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 (49) hide show
  1. package/README.md +20 -0
  2. package/dist/engine/content-metadata.d.ts +1 -0
  3. package/dist/engine/content-metadata.d.ts.map +1 -1
  4. package/dist/engine/content-metadata.js +32 -0
  5. package/dist/engine/content-metadata.js.map +1 -1
  6. package/dist/engine/publication-current-guard.d.ts +3 -0
  7. package/dist/engine/publication-current-guard.d.ts.map +1 -1
  8. package/dist/engine/publication-current-guard.js +19 -4
  9. package/dist/engine/publication-current-guard.js.map +1 -1
  10. package/dist/engine/publication.d.ts +3 -1
  11. package/dist/engine/publication.d.ts.map +1 -1
  12. package/dist/engine/publication.js +11 -2
  13. package/dist/engine/publication.js.map +1 -1
  14. package/dist/engine/publisher.d.ts +4 -0
  15. package/dist/engine/publisher.d.ts.map +1 -1
  16. package/dist/engine/publisher.js +25 -9
  17. package/dist/engine/publisher.js.map +1 -1
  18. package/dist/foundry-emit.d.ts +11 -0
  19. package/dist/foundry-emit.d.ts.map +1 -1
  20. package/dist/foundry-emit.js +3 -0
  21. package/dist/foundry-emit.js.map +1 -1
  22. package/dist/routes/content-insights.d.ts.map +1 -1
  23. package/dist/routes/content-insights.js +76 -1
  24. package/dist/routes/content-insights.js.map +1 -1
  25. package/dist/routes/content.d.ts +2 -0
  26. package/dist/routes/content.d.ts.map +1 -1
  27. package/dist/routes/content.js +4 -0
  28. package/dist/routes/content.js.map +1 -1
  29. package/dist/routes/foundry-publish.d.ts.map +1 -1
  30. package/dist/routes/foundry-publish.js +146 -28
  31. package/dist/routes/foundry-publish.js.map +1 -1
  32. package/dist/ui/editor/ContentForm.d.ts.map +1 -1
  33. package/dist/ui/editor/ContentForm.js +7 -9
  34. package/dist/ui/editor/ContentForm.js.map +1 -1
  35. package/dist/ui/editor/content-payload.d.ts +5 -0
  36. package/dist/ui/editor/content-payload.d.ts.map +1 -1
  37. package/dist/ui/editor/content-payload.js +13 -0
  38. package/dist/ui/editor/content-payload.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/engine/content-metadata.ts +35 -0
  41. package/src/engine/publication-current-guard.ts +28 -4
  42. package/src/engine/publication.ts +17 -4
  43. package/src/engine/publisher.ts +33 -7
  44. package/src/foundry-emit.ts +3 -0
  45. package/src/routes/content-insights.ts +79 -1
  46. package/src/routes/content.ts +6 -0
  47. package/src/routes/foundry-publish.ts +163 -33
  48. package/src/ui/editor/ContentForm.tsx +8 -13
  49. package/src/ui/editor/content-payload.ts +17 -0
package/README.md CHANGED
@@ -850,3 +850,23 @@ a page size is never a total. Each page carries `observed_at`. Corrupt revisions
850
850
  return a named error, not an empty successful inventory. The read returns no
851
851
  article bodies, unpublished edits or internal machine trigger tokens. Omitting
852
852
  `published` preserves the existing lexical-coverage input.
853
+
854
+
855
+ ### Pinned Foundry article publication
856
+
857
+ From 0.8.33, `POST /api/cms/foundry/articles/:external_id/publish` can include
858
+ `{"expected_request_sha256":"<64 lowercase hex characters>"}`. The hash names the
859
+ exact bytes of the preceding v2 PUT. Sign this body through the existing Foundry
860
+ HMAC contract; it is part of the signed request. A stale pin returns
861
+ `409 article_revision_changed` before publishing the replacement.
862
+
863
+ The publication still requires its existing `foundryPublish.autoPublish` opt-in,
864
+ native editorial checks and configured live surfaces. The recorded PUT's immutable
865
+ History snapshot supplies the existing publication guard and pointer CAS. An editor
866
+ change during publication prevents the public pointer from advancing and aborts
867
+ prepared surfaces. The published revision retains `publication_receipt_identity`
868
+ for the pinned request. Pinning a revision grants no publication authority.
869
+
870
+ Existing no-body publication remains supported. An automatic strategy executor
871
+ must send its pinned request hash and must not retry without the pin when a site
872
+ runs an older package or refuses the request.
@@ -12,4 +12,5 @@ export declare class ContentMetadataError extends Error {
12
12
  export declare function serializeContentMetadata(value: ContentMetadata | undefined): string;
13
13
  export declare function parseContentMetadata(raw: unknown): ContentMetadata;
14
14
  export declare const ContentMetadataSchema: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>, ContentMetadata, Record<string, unknown>>;
15
+ export declare function mergePinnedArticleMetadata(recorded: ContentMetadata, incoming: ContentMetadata): ContentMetadata;
15
16
  //# sourceMappingURL=content-metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-metadata.d.ts","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAC7B,wBAAwB,GACxB,oBAAoB,EAAE,GACtB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;CAAE,CAAA;AAC1C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAElE,eAAO,MAAM,0BAA0B,QAAY,CAAA;AAKnD,qBAAa,oBAAqB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,iCAAiC;gBAApE,IAAI,EAAE,0BAA0B,GAAG,iCAAiC,EAC7E,OAAO,EAAE,MAAM;CAKhB;AA0DD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAiBnF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAwBlE;AAED,eAAO,MAAM,qBAAqB,gKAaoB,CAAA"}
1
+ {"version":3,"file":"content-metadata.d.ts","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAC7B,wBAAwB,GACxB,oBAAoB,EAAE,GACtB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;CAAE,CAAA;AAC1C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAElE,eAAO,MAAM,0BAA0B,QAAY,CAAA;AAKnD,qBAAa,oBAAqB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,iCAAiC;gBAApE,IAAI,EAAE,0BAA0B,GAAG,iCAAiC,EAC7E,OAAO,EAAE,MAAM;CAKhB;AA0DD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAiBnF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAwBlE;AAED,eAAO,MAAM,qBAAqB,gKAaoB,CAAA;AAKtD,wBAAgB,0BAA0B,CACzC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,eAAe,GACvB,eAAe,CA2BjB"}
@@ -92,4 +92,36 @@ export const ContentMetadataSchema = z
92
92
  }
93
93
  })
94
94
  .transform((metadata) => metadata);
95
+ // A prepared improvement supplies partial credits. Keep recorded names and
96
+ // their provenance when preparation has no new credit, rather than replacing
97
+ // the entire source record with UNKNOWN fields.
98
+ export function mergePinnedArticleMetadata(recorded, incoming) {
99
+ const merged = { ...recorded, ...incoming };
100
+ const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
101
+ if (!isObject(recorded.credits) || !isObject(incoming.credits))
102
+ return merged;
103
+ const prior = recorded.credits;
104
+ const updates = incoming.credits;
105
+ const credits = { ...prior, ...updates };
106
+ for (const role of ['originalWriter', 'presenter', 'editor']) {
107
+ const statusKey = `${role}Status`;
108
+ const name = updates[role];
109
+ const status = updates[statusKey];
110
+ const missingName = name === undefined || (typeof name === 'string' && name.trim() === '');
111
+ if (prior[role] !== undefined &&
112
+ (status === 'UNKNOWN' || (missingName && status === undefined))) {
113
+ credits[role] = prior[role];
114
+ if (prior[statusKey] !== undefined)
115
+ credits[statusKey] = prior[statusKey];
116
+ else
117
+ delete credits[statusKey];
118
+ }
119
+ else if (!missingName && name !== prior[role] && status === undefined) {
120
+ // A different name cannot inherit the previous person's verification.
121
+ credits[statusKey] = 'UNKNOWN';
122
+ }
123
+ }
124
+ merged.credits = credits;
125
+ return merged;
126
+ }
95
127
  //# sourceMappingURL=content-metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-metadata.js","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-metadata.js","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /** A guard lives with its revision, so retries retain the same editorial proof. */
2
2
  export declare const CURRENT_PUBLICATION_GUARD = "cms.scheduled-publication-current.v1";
3
+ export declare const CURRENT_FOUNDRY_ARTICLE_GUARD = "cms.foundry-article-current.v1";
3
4
  export declare const CURRENT_MEDIA_PUBLICATION_GUARD = "cms.published-media-current.v1";
4
5
  export declare const MEDIA_PUBLICATION_ITEM_FIELDS: readonly ["id", "type", "slug", "status", "deleted_at", "canonical_version", "visibility", "published_revision_id", "published_at", "publish_at", "publish_tz", "fronts_publish_status", "fronts_publish_trigger_token"];
5
6
  /** Bound to the capture CAS, separately from the reusable media generation. */
@@ -12,6 +13,8 @@ export declare const PUBLISHED_VIDEO_MEDIA_FIELDS: readonly ["video_id", "durati
12
13
  export declare const PUBLISHED_PODCAST_MEDIA_FIELDS: readonly ["audio_r2_key", "transcript", "duration_seconds", "processing_source_url", "processing_source_kind", "processing_trigger_token"];
13
14
  export declare function assertCurrentMediaPublicationSnapshot(current: Record<string, unknown>, expected: Record<string, unknown>): void;
14
15
  export declare function assertCurrentPublicationSnapshot(current: Record<string, unknown>, expected: Record<string, unknown>): void;
16
+ /** Native article publication pins an existing Foundry History snapshot. */
17
+ export declare function assertCurrentFoundryArticleSnapshot(current: Record<string, unknown>, expected: Record<string, unknown>): void;
15
18
  /** Uses the immutable revision in the existing pointer CAS; no second write. */
16
19
  export declare function currentPublicationSqlGuard(revisionAlias: string): string;
17
20
  //# sourceMappingURL=publication-current-guard.d.ts.map
@@ -1 +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;AAC/E,eAAO,MAAM,+BAA+B,mCAAmC,CAAA;AAE/E,eAAO,MAAM,6BAA6B,0NAchC,CAAA;AAEV,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,GACtB,MAAM,GAAG,IAAI,CAUf;AAED,qBAAa,+BAAgC,SAAQ,KAAK;;CAKzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAItE;AAiCD,eAAO,MAAM,4BAA4B,0XAQ/B,CAAA;AACV,eAAO,MAAM,8BAA8B,4IAAiB,CAAA;AAK5D,wBAAgB,qCAAqC,CACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAiBN;AAED,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,CAkCxE"}
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;AAC/E,eAAO,MAAM,6BAA6B,mCAAmC,CAAA;AAC7E,eAAO,MAAM,+BAA+B,mCAAmC,CAAA;AAE/E,eAAO,MAAM,6BAA6B,0NAchC,CAAA;AAEV,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,GACtB,MAAM,GAAG,IAAI,CAUf;AAED,qBAAa,+BAAgC,SAAQ,KAAK;;CAKzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAItE;AAiCD,eAAO,MAAM,4BAA4B,0XAQ/B,CAAA;AACV,eAAO,MAAM,8BAA8B,4IAAiB,CAAA;AAK5D,wBAAgB,qCAAqC,CACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAiBN;AAyBD,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAEN;AAED,4EAA4E;AAC5E,wBAAgB,mCAAmC,CAClD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAKN;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAqCxE"}
@@ -1,5 +1,6 @@
1
1
  /** A guard lives with its revision, so retries retain the same editorial proof. */
2
2
  export const CURRENT_PUBLICATION_GUARD = 'cms.scheduled-publication-current.v1';
3
+ export const CURRENT_FOUNDRY_ARTICLE_GUARD = 'cms.foundry-article-current.v1';
3
4
  export const CURRENT_MEDIA_PUBLICATION_GUARD = 'cms.published-media-current.v1';
4
5
  export const MEDIA_PUBLICATION_ITEM_FIELDS = [
5
6
  'id',
@@ -94,10 +95,11 @@ export function assertCurrentMediaPublicationSnapshot(current, expected) {
94
95
  throw new PublicationCurrentSnapshotError();
95
96
  }
96
97
  }
97
- export function assertCurrentPublicationSnapshot(current, expected) {
98
+ function assertCurrentSnapshot(current, expected, expectedStatus) {
98
99
  const item = snapshotRecord(current.item);
99
100
  const expectedItem = snapshotRecord(expected.item);
100
- if (item.status !== 'scheduled' ||
101
+ if (item.status !== expectedStatus ||
102
+ expectedItem.status !== expectedStatus ||
101
103
  item.deleted_at != null ||
102
104
  ITEM_FIELDS.some((field) => item[field] !== expectedItem[field])) {
103
105
  throw new PublicationCurrentSnapshotError();
@@ -108,6 +110,16 @@ export function assertCurrentPublicationSnapshot(current, expected) {
108
110
  if (fields.some((field) => content[field] !== expectedContent[field]))
109
111
  throw new PublicationCurrentSnapshotError();
110
112
  }
113
+ export function assertCurrentPublicationSnapshot(current, expected) {
114
+ assertCurrentSnapshot(current, expected, 'scheduled');
115
+ }
116
+ /** Native article publication pins an existing Foundry History snapshot. */
117
+ export function assertCurrentFoundryArticleSnapshot(current, expected) {
118
+ const item = snapshotRecord(expected.item);
119
+ if (item.type !== 'article' || !['draft', 'published'].includes(String(item.status)))
120
+ throw new PublicationCurrentSnapshotError();
121
+ assertCurrentSnapshot(current, expected, item.status);
122
+ }
111
123
  /** Uses the immutable revision in the existing pointer CAS; no second write. */
112
124
  export function currentPublicationSqlGuard(revisionAlias) {
113
125
  const item = (field) => `json_extract(${revisionAlias}.payload_json, '$.item.${field}')`;
@@ -124,8 +136,11 @@ export function currentPublicationSqlGuard(revisionAlias) {
124
136
  .join(' AND ')}
125
137
  )`;
126
138
  return `(json_extract(${revisionAlias}.payload_json, '$.publication_guard') IS NULL OR (
127
- json_extract(${revisionAlias}.payload_json, '$.publication_guard') = '${CURRENT_PUBLICATION_GUARD}'
128
- AND content_items.status = 'scheduled' AND content_items.deleted_at IS NULL
139
+ ((json_extract(${revisionAlias}.payload_json, '$.publication_guard') = '${CURRENT_PUBLICATION_GUARD}' AND content_items.status = 'scheduled')
140
+ OR (json_extract(${revisionAlias}.payload_json, '$.publication_guard') = '${CURRENT_FOUNDRY_ARTICLE_GUARD}'
141
+ AND content_items.type = 'article' AND content_items.status IN ('draft','published')
142
+ AND content_items.status IS ${item('status')}))
143
+ AND content_items.deleted_at IS NULL
129
144
  AND ${ITEM_FIELDS.filter((field) => field !== 'deleted_at')
130
145
  .map((field) => `content_items.${field} IS ${item(field)}`)
131
146
  .join(' AND ')}
@@ -1 +1 @@
1
- {"version":3,"file":"publication-current-guard.js","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,MAAM,yBAAyB,GAAG,sCAAsC,CAAA;AAC/E,MAAM,CAAC,MAAM,+BAA+B,GAAG,gCAAgC,CAAA;AAE/E,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC5C,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,mBAAmB;IACnB,YAAY;IACZ,uBAAuB;IACvB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,uBAAuB;IACvB,8BAA8B;CACrB,CAAA;AAEV,+EAA+E;AAC/E,MAAM,UAAU,4BAA4B,CAC3C,IAA6B,EAC7B,gBAAwB;IAExB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;QACxF,OAAO,IAAI,CAAA;IACZ,OAAO,IAAI,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,CAAC;QACV,kBAAkB,EAAE,gBAAgB;QACpC,IAAI,EAAE,MAAM,CAAC,WAAW,CACvB,6BAA6B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAC1E;KACD,CAAC,CAAA;AACH,CAAC;AAED,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACzD;QACC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAA;IAC9C,CAAC;CACD;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACjE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,EAAE,CAAA;AACN,CAAC;AAED,MAAM,WAAW,GAAG;IACnB,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,mBAAmB;IACnB,YAAY;CACH,CAAA;AACV,MAAM,cAAc,GAAG;IACtB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB;IACxB,0BAA0B;CACjB,CAAA;AACV,MAAM,YAAY,GAAG;IACpB,UAAU;IACV,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;CACP,CAAA;AAEV,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC3C,GAAG,YAAY;IACf,gBAAgB;IAChB,gBAAgB;IAChB,uBAAuB;IACvB,yBAAyB;IACzB,0BAA0B;IAC1B,kBAAkB;CACT,CAAA;AACV,MAAM,CAAC,MAAM,8BAA8B,GAAG,cAAc,CAAA;AAC5D,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,wBAAwB,GAAG,CAAC,GAAG,YAAY,EAAE,gBAAgB,CAAU,CAAA;AAE7E,MAAM,UAAU,qCAAqC,CACpD,OAAgC,EAChC,QAAiC;IAEjC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,8BAA8B,CAAA;IAChG,IACC,IAAI,CAAC,MAAM,KAAK,WAAW;QAC3B,IAAI,CAAC,UAAU,IAAI,IAAI;QACvB,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,6BAA6B,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;QAClF,CAAC,GAAG,MAAM,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAC/C,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,CACpD,EACA,CAAC;QACF,MAAM,IAAI,+BAA+B,EAAE,CAAA;IAC5C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC/C,OAAgC,EAChC,QAAiC;IAEjC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,IACC,IAAI,CAAC,MAAM,KAAK,WAAW;QAC3B,IAAI,CAAC,UAAU,IAAI,IAAI;QACvB,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,EAC/D,CAAC;QACF,MAAM,IAAI,+BAA+B,EAAE,CAAA;IAC5C,CAAC;IACD,MAAM,MAAM,GACX,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IACrF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACxD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,IAAI,+BAA+B,EAAE,CAAA;AAC7C,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,0BAA0B,CAAC,aAAqB;IAC/D,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,gBAAgB,aAAa,0BAA0B,KAAK,IAAI,CAAA;IAChG,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CACjC,gBAAgB,aAAa,6BAA6B,KAAK,IAAI,CAAA;IACpE,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAyB,EAAE,EAAE,CAAC;kBAC7C,KAAK;QACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,KAAK,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;GACvF,CAAA;IACF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CACnC,gBAAgB,aAAa,uDAAuD,KAAK,IAAI,CAAA;IAC9F,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,MAAyB,EAAE,EAAE,CAAC;kBAClD,KAAK;QACf,CAAC,GAAG,MAAM,EAAE,8BAA8B,CAAC;SAC/C,GAAG,CACH,CAAC,KAAK,EAAE,EAAE,CACT,iBAAiB,KAAK,oBAAoB,aAAa,0DAA0D,KAAK,IAAI,CAC3H;SACA,IAAI,CAAC,OAAO,CAAC;GACd,CAAA;IACF,OAAO,iBAAiB,aAAa;iBACrB,aAAa,4CAA4C,yBAAyB;;QAE3F,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,YAAY,CAAC;SACzD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAC1D,IAAI,CAAC,OAAO,CAAC;SACR,IAAI,CAAC,MAAM,CAAC,oBAAoB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC;SAC1E,IAAI,CAAC,MAAM,CAAC,kBAAkB,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC;;iBAE5D,aAAa,4CAA4C,+BAA+B;;QAEjG,6BAA6B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,KAAK,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;UACzG,SAAS,CAAC,MAAM,CAAC,kBAAkB,YAAY,CAAC,eAAe,EAAE,wBAAwB,CAAC;QAC5F,SAAS,CAAC,MAAM,CAAC,oBAAoB,YAAY,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;IACxG,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"publication-current-guard.js","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,9 @@ 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. */
57
+ /** Foundry publication must still describe its exact recorded article PUT. */
58
+ expectedFoundryArticleSnapshot?: Record<string, unknown>;
59
+ /** Scheduled publication retains its existing editorial/media guard. */
58
60
  expectedCurrentSnapshot?: Record<string, unknown>;
59
61
  /** Digest of the external receipt bound to a guarded machine publication. */
60
62
  expectedReceiptIdentity?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/engine/publication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/engine/publication.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ContentMetadataError, MAX_CONTENT_METADATA_BYTES, serializeContentMetadata, } from './content-metadata.js';
2
2
  import { frontsPodcastSourceGeneration, podcastPublishBlocker } from './podcast-source.js';
3
- import { assertCurrentMediaPublicationSnapshot, assertCurrentPublicationSnapshot, CURRENT_MEDIA_PUBLICATION_GUARD, CURRENT_PUBLICATION_GUARD, currentPublicationSqlGuard, MEDIA_PUBLICATION_ITEM_FIELDS, PUBLISHED_PODCAST_MEDIA_FIELDS, PUBLISHED_VIDEO_MEDIA_FIELDS, PublicationCurrentSnapshotError, snapshotRecord, } from './publication-current-guard.js';
3
+ import { assertCurrentFoundryArticleSnapshot, assertCurrentMediaPublicationSnapshot, assertCurrentPublicationSnapshot, CURRENT_FOUNDRY_ARTICLE_GUARD, CURRENT_MEDIA_PUBLICATION_GUARD, CURRENT_PUBLICATION_GUARD, currentPublicationSqlGuard, MEDIA_PUBLICATION_ITEM_FIELDS, PUBLISHED_PODCAST_MEDIA_FIELDS, PUBLISHED_VIDEO_MEDIA_FIELDS, PublicationCurrentSnapshotError, snapshotRecord, } from './publication-current-guard.js';
4
4
  import { evaluateArticleBody } from './publish-guard.js';
5
5
  import { createContent, ensureUniqueSlug, getContentItem, getContentSnapshot, PUBLISH_METADATA_STAMP_SQL, PublishContentValidationError, publicationMetadataForSnapshot, publishMetadataStampBinds, } from './publisher.js';
6
6
  import { getRevision } from './revisions.js';
@@ -379,11 +379,19 @@ async function createRevisionAndPublicationAttempt(db, input) {
379
379
  if (!current)
380
380
  throw new PublicationNotFoundError(`content not found: ${input.contentId}`);
381
381
  const snapshot = input.mediaReplacement?.payload ?? current;
382
- if (input.expectedCurrentSnapshot) {
382
+ if (input.expectedCurrentSnapshot || input.expectedFoundryArticleSnapshot) {
383
+ if (input.expectedCurrentSnapshot && input.expectedFoundryArticleSnapshot)
384
+ throw new Error('Conflicting publication snapshot guards');
385
+ if (input.expectedFoundryArticleSnapshot && input.mediaReplacement)
386
+ throw new Error('Foundry article snapshot cannot guard a media replacement');
383
387
  if (input.mediaReplacement) {
384
388
  assertCurrentMediaPublicationSnapshot(current, input.expectedCurrentSnapshot);
385
389
  snapshot.publication_guard = CURRENT_MEDIA_PUBLICATION_GUARD;
386
390
  }
391
+ else if (input.expectedFoundryArticleSnapshot) {
392
+ assertCurrentFoundryArticleSnapshot(snapshot, input.expectedFoundryArticleSnapshot);
393
+ snapshot.publication_guard = CURRENT_FOUNDRY_ARTICLE_GUARD;
394
+ }
387
395
  else {
388
396
  assertCurrentPublicationSnapshot(snapshot, input.expectedCurrentSnapshot);
389
397
  snapshot.publication_guard = CURRENT_PUBLICATION_GUARD;
@@ -1481,6 +1489,7 @@ export async function publishOne(db, input) {
1481
1489
  packageVersion: input.packageVersion ?? null,
1482
1490
  now,
1483
1491
  createdBy: input.createdBy,
1492
+ expectedFoundryArticleSnapshot: input.expectedFoundryArticleSnapshot,
1484
1493
  expectedCurrentSnapshot: input.expectedCurrentSnapshot,
1485
1494
  expectedReceiptIdentity: input.expectedReceiptIdentity,
1486
1495
  });