@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.
- package/README.md +20 -0
- package/dist/engine/content-metadata.d.ts +1 -0
- package/dist/engine/content-metadata.d.ts.map +1 -1
- package/dist/engine/content-metadata.js +32 -0
- package/dist/engine/content-metadata.js.map +1 -1
- package/dist/engine/publication-current-guard.d.ts +3 -0
- package/dist/engine/publication-current-guard.d.ts.map +1 -1
- package/dist/engine/publication-current-guard.js +19 -4
- package/dist/engine/publication-current-guard.js.map +1 -1
- package/dist/engine/publication.d.ts +3 -1
- package/dist/engine/publication.d.ts.map +1 -1
- package/dist/engine/publication.js +11 -2
- package/dist/engine/publication.js.map +1 -1
- package/dist/engine/publisher.d.ts +4 -0
- package/dist/engine/publisher.d.ts.map +1 -1
- package/dist/engine/publisher.js +25 -9
- package/dist/engine/publisher.js.map +1 -1
- package/dist/foundry-emit.d.ts +11 -0
- package/dist/foundry-emit.d.ts.map +1 -1
- package/dist/foundry-emit.js +3 -0
- package/dist/foundry-emit.js.map +1 -1
- package/dist/routes/content-insights.d.ts.map +1 -1
- package/dist/routes/content-insights.js +76 -1
- package/dist/routes/content-insights.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 +4 -0
- package/dist/routes/content.js.map +1 -1
- package/dist/routes/foundry-publish.d.ts.map +1 -1
- package/dist/routes/foundry-publish.js +146 -28
- package/dist/routes/foundry-publish.js.map +1 -1
- package/dist/ui/editor/ContentForm.d.ts.map +1 -1
- package/dist/ui/editor/ContentForm.js +7 -9
- package/dist/ui/editor/ContentForm.js.map +1 -1
- package/dist/ui/editor/content-payload.d.ts +5 -0
- package/dist/ui/editor/content-payload.d.ts.map +1 -1
- package/dist/ui/editor/content-payload.js +13 -0
- package/dist/ui/editor/content-payload.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/content-metadata.ts +35 -0
- package/src/engine/publication-current-guard.ts +28 -4
- package/src/engine/publication.ts +17 -4
- package/src/engine/publisher.ts +33 -7
- package/src/foundry-emit.ts +3 -0
- package/src/routes/content-insights.ts +79 -1
- package/src/routes/content.ts +6 -0
- package/src/routes/foundry-publish.ts +163 -33
- package/src/ui/editor/ContentForm.tsx +8 -13
- 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;
|
|
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
|
-
|
|
98
|
+
function assertCurrentSnapshot(current, expected, expectedStatus) {
|
|
98
99
|
const item = snapshotRecord(current.item);
|
|
99
100
|
const expectedItem = snapshotRecord(expected.item);
|
|
100
|
-
if (item.status !==
|
|
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
|
-
|
|
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":"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
|
|
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
|
-
/**
|
|
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":"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,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
|
});
|