@growth-labs/cms 0.5.16 → 0.5.17
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.
|
@@ -29,6 +29,16 @@ export interface ListPublishedContentOptions {
|
|
|
29
29
|
channel?: string;
|
|
30
30
|
limit?: number;
|
|
31
31
|
cursor?: PublishedContentCursor | null;
|
|
32
|
+
/**
|
|
33
|
+
* `false` strips `content.body_markdown` / `content.body_html` from each
|
|
34
|
+
* payload IN SQL, so corpus snapshots (lists, navs, hubs) stop hauling the
|
|
35
|
+
* full article bodies — measured 17.2 MB → 0.4 MB for a 203-article corpus.
|
|
36
|
+
* Precomputed `content.word_count` / `content.read_time_minutes` survive,
|
|
37
|
+
* so summaries keep read-time without the body. Routes that render a body
|
|
38
|
+
* fetch it per item (`getPublishedContentBySlug`). Defaults to `true`
|
|
39
|
+
* (full payloads, byte-identical to prior behavior).
|
|
40
|
+
*/
|
|
41
|
+
bodies?: boolean;
|
|
32
42
|
}
|
|
33
43
|
export interface PublishedContentPage {
|
|
34
44
|
items: PublishedContent[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"published-content.d.ts","sourceRoot":"","sources":["../../src/engine/published-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACN,KAAK,eAAe,EAGpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAS5D,eAAO,MAAM,+BAA+B,MAAM,CAAA;AAClD,eAAO,MAAM,mCAAmC,QAAkB,CAAA;AAClE,eAAO,MAAM,gCAAgC,QAAkB,CAAA;AAU/D,MAAM,MAAM,6BAA6B,GACtC,iCAAiC,GACjC,4BAA4B,GAC5B,6BAA6B,GAC7B,2BAA2B,GAC3B,kCAAkC,GAClC,0BAA0B,GAC1B,uBAAuB,CAAA;AAE1B,qBAAa,yBAA0B,SAAQ,KAAK;IAElD,QAAQ,CAAC,IAAI,EAAE,6BAA6B;gBAAnC,IAAI,EAAE,6BAA6B,EAC5C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY;CAKvB;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,EAAE,eAAe,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC3C,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"published-content.d.ts","sourceRoot":"","sources":["../../src/engine/published-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACN,KAAK,eAAe,EAGpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAS5D,eAAO,MAAM,+BAA+B,MAAM,CAAA;AAClD,eAAO,MAAM,mCAAmC,QAAkB,CAAA;AAClE,eAAO,MAAM,gCAAgC,QAAkB,CAAA;AAU/D,MAAM,MAAM,6BAA6B,GACtC,iCAAiC,GACjC,4BAA4B,GAC5B,6BAA6B,GAC7B,2BAA2B,GAC3B,kCAAkC,GAClC,0BAA0B,GAC1B,uBAAuB,CAAA;AAE1B,qBAAa,yBAA0B,SAAQ,KAAK;IAElD,QAAQ,CAAC,IAAI,EAAE,6BAA6B;gBAAnC,IAAI,EAAE,6BAA6B,EAC5C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY;CAKvB;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,EAAE,eAAe,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC3C,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;IACtC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAA;CACzC;AA8SD,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAsBlC;AAED,wBAAsB,yBAAyB,CAC9C,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA6BlC;AA8FD,wBAAsB,oBAAoB,CACzC,EAAE,EAAE,UAAU,EACd,OAAO,GAAE,2BAAgC,GACvC,OAAO,CAAC,oBAAoB,CAAC,CAoI/B"}
|
|
@@ -4,7 +4,7 @@ import { TagInputError, validateRevisionTaxonomy } from './taxonomy.js';
|
|
|
4
4
|
const CONTENT_TYPES = new Set(['article', 'video', 'podcast', 'newsletter', 'page']);
|
|
5
5
|
const CONTENT_STATUSES = new Set(['draft', 'scheduled', 'review', 'published', 'archived']);
|
|
6
6
|
const CONTENT_VISIBILITIES = new Set(['free', 'premium']);
|
|
7
|
-
const LIST_OPTION_KEYS = new Set(['type', 'channel', 'limit', 'cursor']);
|
|
7
|
+
const LIST_OPTION_KEYS = new Set(['type', 'channel', 'limit', 'cursor', 'bodies']);
|
|
8
8
|
const CURSOR_KEYS = new Set(['publishedAt', 'contentId']);
|
|
9
9
|
export const MAX_PUBLISHED_CONTENT_PAGE_SIZE = 100;
|
|
10
10
|
export const MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES = 4 * 1024 * 1024;
|
|
@@ -39,6 +39,26 @@ SELECT
|
|
|
39
39
|
length(CAST(cr.payload_json AS BLOB)) AS payload_bytes
|
|
40
40
|
FROM content_items ci
|
|
41
41
|
`;
|
|
42
|
+
// bodies:false variant — the SAME row shape with the body fields removed in
|
|
43
|
+
// SQL. Every byte accounting downstream (page budget, per-item cap, the
|
|
44
|
+
// changed-during-read integrity check) uses the STRIPPED length consistently,
|
|
45
|
+
// so the contracts hold with no special cases.
|
|
46
|
+
const BODYLESS_PAYLOAD_EXPR = `json_remove(cr.payload_json, '$.content.body_markdown', '$.content.body_html')`;
|
|
47
|
+
const SELECT_PUBLISHED_CONTENT_BODYLESS = `
|
|
48
|
+
SELECT
|
|
49
|
+
ci.id AS content_id,
|
|
50
|
+
ci.published_revision_id AS pointer_revision_id,
|
|
51
|
+
ci.published_at AS canonical_published_at,
|
|
52
|
+
cr.id AS revision_id,
|
|
53
|
+
cr.content_id AS revision_content_id,
|
|
54
|
+
CASE
|
|
55
|
+
WHEN length(CAST(${BODYLESS_PAYLOAD_EXPR} AS BLOB)) <= ${MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES}
|
|
56
|
+
THEN ${BODYLESS_PAYLOAD_EXPR}
|
|
57
|
+
ELSE NULL
|
|
58
|
+
END AS payload_json,
|
|
59
|
+
length(CAST(${BODYLESS_PAYLOAD_EXPR} AS BLOB)) AS payload_bytes
|
|
60
|
+
FROM content_items ci
|
|
61
|
+
`;
|
|
42
62
|
const SELECT_PUBLISHED_CONTENT_OUTLINE = `
|
|
43
63
|
SELECT
|
|
44
64
|
ci.id AS content_id,
|
|
@@ -47,6 +67,14 @@ SELECT
|
|
|
47
67
|
length(CAST(cr.payload_json AS BLOB)) AS payload_bytes
|
|
48
68
|
FROM content_items ci
|
|
49
69
|
`;
|
|
70
|
+
const SELECT_PUBLISHED_CONTENT_OUTLINE_BODYLESS = `
|
|
71
|
+
SELECT
|
|
72
|
+
ci.id AS content_id,
|
|
73
|
+
ci.published_revision_id AS pointer_revision_id,
|
|
74
|
+
ci.published_at AS canonical_published_at,
|
|
75
|
+
length(CAST(${BODYLESS_PAYLOAD_EXPR} AS BLOB)) AS payload_bytes
|
|
76
|
+
FROM content_items ci
|
|
77
|
+
`;
|
|
50
78
|
const SELECT_PUBLISHED_CONTENT_BY_SLUG = `
|
|
51
79
|
SELECT
|
|
52
80
|
ci.id AS content_id,
|
|
@@ -77,7 +105,7 @@ function byteLength(value) {
|
|
|
77
105
|
function invalidPayload(message) {
|
|
78
106
|
throw new PublishedContentReadError('published_payload_invalid', message);
|
|
79
107
|
}
|
|
80
|
-
function validatePayload(raw, row) {
|
|
108
|
+
function validatePayload(raw, row, requireBodies = true) {
|
|
81
109
|
if (byteLength(raw) > MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES) {
|
|
82
110
|
throw new PublishedContentReadError('published_payload_limit_exceeded', `published revision payload exceeds ${MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES} bytes`);
|
|
83
111
|
}
|
|
@@ -152,7 +180,11 @@ function validatePayload(raw, row) {
|
|
|
152
180
|
if (!content)
|
|
153
181
|
return invalidPayload('published revision content is missing');
|
|
154
182
|
if (['article', 'newsletter', 'page'].includes(item.type) &&
|
|
155
|
-
typeof content.body_markdown !== 'string'
|
|
183
|
+
typeof content.body_markdown !== 'string' &&
|
|
184
|
+
// A bodies:false read strips the body fields in SQL; absent is the
|
|
185
|
+
// expected shape there, but a present-yet-non-string body is still
|
|
186
|
+
// corrupt in every mode.
|
|
187
|
+
(requireBodies || content.body_markdown !== undefined)) {
|
|
156
188
|
return invalidPayload('published revision body Markdown is invalid');
|
|
157
189
|
}
|
|
158
190
|
if (item.type === 'video' && typeof content.video_id !== 'string') {
|
|
@@ -163,7 +195,7 @@ function validatePayload(raw, row) {
|
|
|
163
195
|
}
|
|
164
196
|
return decoded;
|
|
165
197
|
}
|
|
166
|
-
function decodePublishedContent(row) {
|
|
198
|
+
function decodePublishedContent(row, requireBodies = true) {
|
|
167
199
|
if (!row.revision_id || !row.revision_content_id || row.payload_bytes === null) {
|
|
168
200
|
throw new PublishedContentReadError('published_revision_missing', 'canonical publication pointer does not resolve to a revision');
|
|
169
201
|
}
|
|
@@ -182,7 +214,7 @@ function decodePublishedContent(row) {
|
|
|
182
214
|
if (!Number.isSafeInteger(row.canonical_published_at) || row.canonical_published_at < 0) {
|
|
183
215
|
throw new PublishedContentReadError('published_payload_invalid', 'canonical published_at is invalid');
|
|
184
216
|
}
|
|
185
|
-
const payload = validatePayload(row.payload_json, row);
|
|
217
|
+
const payload = validatePayload(row.payload_json, row, requireBodies);
|
|
186
218
|
const item = payload.item;
|
|
187
219
|
let metadata;
|
|
188
220
|
try {
|
|
@@ -307,8 +339,16 @@ function normalizeListOptions(options) {
|
|
|
307
339
|
contentId: options.cursor.contentId,
|
|
308
340
|
};
|
|
309
341
|
}
|
|
342
|
+
let bodies = true;
|
|
343
|
+
if (options.bodies !== undefined) {
|
|
344
|
+
if (typeof options.bodies !== 'boolean') {
|
|
345
|
+
throw new PublishedContentReadError('published_content_input_invalid', 'bodies must be a boolean');
|
|
346
|
+
}
|
|
347
|
+
bodies = options.bodies;
|
|
348
|
+
}
|
|
310
349
|
return {
|
|
311
350
|
limit,
|
|
351
|
+
bodies,
|
|
312
352
|
type,
|
|
313
353
|
channel,
|
|
314
354
|
cursor,
|
|
@@ -338,7 +378,7 @@ export async function listPublishedContent(db, options = {}) {
|
|
|
338
378
|
try {
|
|
339
379
|
const reader = openReadSession(db);
|
|
340
380
|
const outlineResult = await reader
|
|
341
|
-
.prepare(`${SELECT_PUBLISHED_CONTENT_OUTLINE}
|
|
381
|
+
.prepare(`${normalized.bodies ? SELECT_PUBLISHED_CONTENT_OUTLINE : SELECT_PUBLISHED_CONTENT_OUTLINE_BODYLESS}
|
|
342
382
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
343
383
|
WHERE ${predicates.join('\n AND ')}
|
|
344
384
|
ORDER BY ci.published_at DESC, ci.id DESC
|
|
@@ -387,7 +427,7 @@ LIMIT ?`)
|
|
|
387
427
|
outline.pointer_revision_id,
|
|
388
428
|
]);
|
|
389
429
|
return reader
|
|
390
|
-
.prepare(`${SELECT_PUBLISHED_CONTENT}
|
|
430
|
+
.prepare(`${normalized.bodies ? SELECT_PUBLISHED_CONTENT : SELECT_PUBLISHED_CONTENT_BODYLESS}
|
|
391
431
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
392
432
|
WHERE ci.status = 'published'
|
|
393
433
|
AND ci.deleted_at IS NULL
|
|
@@ -409,7 +449,7 @@ WHERE ci.status = 'published'
|
|
|
409
449
|
byteLength(row.payload_json) !== outline.payload_bytes) {
|
|
410
450
|
throw new PublishedContentReadError('published_read_failed', 'published revision changed during its bounded read');
|
|
411
451
|
}
|
|
412
|
-
return decodePublishedContent(row);
|
|
452
|
+
return decodePublishedContent(row, normalized.bodies);
|
|
413
453
|
});
|
|
414
454
|
const hasMore = outlines.length > selected.length;
|
|
415
455
|
const last = items.at(-1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"published-content.js","sourceRoot":"","sources":["../../src/engine/published-content.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"published-content.js","sourceRoot":"","sources":["../../src/engine/published-content.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@ import { TagInputError, validateRevisionTaxonomy } from './taxonomy.js'
|
|
|
12
12
|
const CONTENT_TYPES = new Set<ContentType>(['article', 'video', 'podcast', 'newsletter', 'page'])
|
|
13
13
|
const CONTENT_STATUSES = new Set(['draft', 'scheduled', 'review', 'published', 'archived'])
|
|
14
14
|
const CONTENT_VISIBILITIES = new Set(['free', 'premium'])
|
|
15
|
-
const LIST_OPTION_KEYS = new Set(['type', 'channel', 'limit', 'cursor'])
|
|
15
|
+
const LIST_OPTION_KEYS = new Set(['type', 'channel', 'limit', 'cursor', 'bodies'])
|
|
16
16
|
const CURSOR_KEYS = new Set(['publishedAt', 'contentId'])
|
|
17
17
|
|
|
18
18
|
export const MAX_PUBLISHED_CONTENT_PAGE_SIZE = 100
|
|
@@ -68,6 +68,16 @@ export interface ListPublishedContentOptions {
|
|
|
68
68
|
channel?: string
|
|
69
69
|
limit?: number
|
|
70
70
|
cursor?: PublishedContentCursor | null
|
|
71
|
+
/**
|
|
72
|
+
* `false` strips `content.body_markdown` / `content.body_html` from each
|
|
73
|
+
* payload IN SQL, so corpus snapshots (lists, navs, hubs) stop hauling the
|
|
74
|
+
* full article bodies — measured 17.2 MB → 0.4 MB for a 203-article corpus.
|
|
75
|
+
* Precomputed `content.word_count` / `content.read_time_minutes` survive,
|
|
76
|
+
* so summaries keep read-time without the body. Routes that render a body
|
|
77
|
+
* fetch it per item (`getPublishedContentBySlug`). Defaults to `true`
|
|
78
|
+
* (full payloads, byte-identical to prior behavior).
|
|
79
|
+
*/
|
|
80
|
+
bodies?: boolean
|
|
71
81
|
}
|
|
72
82
|
|
|
73
83
|
export interface PublishedContentPage {
|
|
@@ -108,6 +118,27 @@ SELECT
|
|
|
108
118
|
FROM content_items ci
|
|
109
119
|
`
|
|
110
120
|
|
|
121
|
+
// bodies:false variant — the SAME row shape with the body fields removed in
|
|
122
|
+
// SQL. Every byte accounting downstream (page budget, per-item cap, the
|
|
123
|
+
// changed-during-read integrity check) uses the STRIPPED length consistently,
|
|
124
|
+
// so the contracts hold with no special cases.
|
|
125
|
+
const BODYLESS_PAYLOAD_EXPR = `json_remove(cr.payload_json, '$.content.body_markdown', '$.content.body_html')`
|
|
126
|
+
const SELECT_PUBLISHED_CONTENT_BODYLESS = `
|
|
127
|
+
SELECT
|
|
128
|
+
ci.id AS content_id,
|
|
129
|
+
ci.published_revision_id AS pointer_revision_id,
|
|
130
|
+
ci.published_at AS canonical_published_at,
|
|
131
|
+
cr.id AS revision_id,
|
|
132
|
+
cr.content_id AS revision_content_id,
|
|
133
|
+
CASE
|
|
134
|
+
WHEN length(CAST(${BODYLESS_PAYLOAD_EXPR} AS BLOB)) <= ${MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES}
|
|
135
|
+
THEN ${BODYLESS_PAYLOAD_EXPR}
|
|
136
|
+
ELSE NULL
|
|
137
|
+
END AS payload_json,
|
|
138
|
+
length(CAST(${BODYLESS_PAYLOAD_EXPR} AS BLOB)) AS payload_bytes
|
|
139
|
+
FROM content_items ci
|
|
140
|
+
`
|
|
141
|
+
|
|
111
142
|
const SELECT_PUBLISHED_CONTENT_OUTLINE = `
|
|
112
143
|
SELECT
|
|
113
144
|
ci.id AS content_id,
|
|
@@ -117,6 +148,15 @@ SELECT
|
|
|
117
148
|
FROM content_items ci
|
|
118
149
|
`
|
|
119
150
|
|
|
151
|
+
const SELECT_PUBLISHED_CONTENT_OUTLINE_BODYLESS = `
|
|
152
|
+
SELECT
|
|
153
|
+
ci.id AS content_id,
|
|
154
|
+
ci.published_revision_id AS pointer_revision_id,
|
|
155
|
+
ci.published_at AS canonical_published_at,
|
|
156
|
+
length(CAST(${BODYLESS_PAYLOAD_EXPR} AS BLOB)) AS payload_bytes
|
|
157
|
+
FROM content_items ci
|
|
158
|
+
`
|
|
159
|
+
|
|
120
160
|
const SELECT_PUBLISHED_CONTENT_BY_SLUG = `
|
|
121
161
|
SELECT
|
|
122
162
|
ci.id AS content_id,
|
|
@@ -150,7 +190,11 @@ function invalidPayload(message: string): never {
|
|
|
150
190
|
throw new PublishedContentReadError('published_payload_invalid', message)
|
|
151
191
|
}
|
|
152
192
|
|
|
153
|
-
function validatePayload(
|
|
193
|
+
function validatePayload(
|
|
194
|
+
raw: string,
|
|
195
|
+
row: PublishedContentRow,
|
|
196
|
+
requireBodies = true,
|
|
197
|
+
): ContentRevisionPayload {
|
|
154
198
|
if (byteLength(raw) > MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES) {
|
|
155
199
|
throw new PublishedContentReadError(
|
|
156
200
|
'published_payload_limit_exceeded',
|
|
@@ -234,7 +278,11 @@ function validatePayload(raw: string, row: PublishedContentRow): ContentRevision
|
|
|
234
278
|
if (!content) return invalidPayload('published revision content is missing')
|
|
235
279
|
if (
|
|
236
280
|
['article', 'newsletter', 'page'].includes(item.type as string) &&
|
|
237
|
-
typeof content.body_markdown !== 'string'
|
|
281
|
+
typeof content.body_markdown !== 'string' &&
|
|
282
|
+
// A bodies:false read strips the body fields in SQL; absent is the
|
|
283
|
+
// expected shape there, but a present-yet-non-string body is still
|
|
284
|
+
// corrupt in every mode.
|
|
285
|
+
(requireBodies || content.body_markdown !== undefined)
|
|
238
286
|
) {
|
|
239
287
|
return invalidPayload('published revision body Markdown is invalid')
|
|
240
288
|
}
|
|
@@ -248,7 +296,7 @@ function validatePayload(raw: string, row: PublishedContentRow): ContentRevision
|
|
|
248
296
|
return decoded as unknown as ContentRevisionPayload
|
|
249
297
|
}
|
|
250
298
|
|
|
251
|
-
function decodePublishedContent(row: PublishedContentRow): PublishedContent {
|
|
299
|
+
function decodePublishedContent(row: PublishedContentRow, requireBodies = true): PublishedContent {
|
|
252
300
|
if (!row.revision_id || !row.revision_content_id || row.payload_bytes === null) {
|
|
253
301
|
throw new PublishedContentReadError(
|
|
254
302
|
'published_revision_missing',
|
|
@@ -286,7 +334,7 @@ function decodePublishedContent(row: PublishedContentRow): PublishedContent {
|
|
|
286
334
|
)
|
|
287
335
|
}
|
|
288
336
|
|
|
289
|
-
const payload = validatePayload(row.payload_json, row)
|
|
337
|
+
const payload = validatePayload(row.payload_json, row, requireBodies)
|
|
290
338
|
const item = payload.item
|
|
291
339
|
let metadata: ContentMetadata
|
|
292
340
|
try {
|
|
@@ -400,6 +448,7 @@ LIMIT 2`,
|
|
|
400
448
|
|
|
401
449
|
function normalizeListOptions(options: unknown): {
|
|
402
450
|
limit: number
|
|
451
|
+
bodies: boolean
|
|
403
452
|
type?: ContentType
|
|
404
453
|
channel?: string
|
|
405
454
|
cursor?: PublishedContentCursor
|
|
@@ -470,8 +519,19 @@ function normalizeListOptions(options: unknown): {
|
|
|
470
519
|
contentId: options.cursor.contentId,
|
|
471
520
|
}
|
|
472
521
|
}
|
|
522
|
+
let bodies = true
|
|
523
|
+
if (options.bodies !== undefined) {
|
|
524
|
+
if (typeof options.bodies !== 'boolean') {
|
|
525
|
+
throw new PublishedContentReadError(
|
|
526
|
+
'published_content_input_invalid',
|
|
527
|
+
'bodies must be a boolean',
|
|
528
|
+
)
|
|
529
|
+
}
|
|
530
|
+
bodies = options.bodies
|
|
531
|
+
}
|
|
473
532
|
return {
|
|
474
533
|
limit,
|
|
534
|
+
bodies,
|
|
475
535
|
type,
|
|
476
536
|
channel,
|
|
477
537
|
cursor,
|
|
@@ -510,7 +570,7 @@ export async function listPublishedContent(
|
|
|
510
570
|
const reader = openReadSession(db)
|
|
511
571
|
const outlineResult = await reader
|
|
512
572
|
.prepare(
|
|
513
|
-
`${SELECT_PUBLISHED_CONTENT_OUTLINE}
|
|
573
|
+
`${normalized.bodies ? SELECT_PUBLISHED_CONTENT_OUTLINE : SELECT_PUBLISHED_CONTENT_OUTLINE_BODYLESS}
|
|
514
574
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
515
575
|
WHERE ${predicates.join('\n AND ')}
|
|
516
576
|
ORDER BY ci.published_at DESC, ci.id DESC
|
|
@@ -572,7 +632,7 @@ LIMIT ?`,
|
|
|
572
632
|
])
|
|
573
633
|
return reader
|
|
574
634
|
.prepare(
|
|
575
|
-
`${SELECT_PUBLISHED_CONTENT}
|
|
635
|
+
`${normalized.bodies ? SELECT_PUBLISHED_CONTENT : SELECT_PUBLISHED_CONTENT_BODYLESS}
|
|
576
636
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
577
637
|
WHERE ci.status = 'published'
|
|
578
638
|
AND ci.deleted_at IS NULL
|
|
@@ -601,7 +661,7 @@ WHERE ci.status = 'published'
|
|
|
601
661
|
'published revision changed during its bounded read',
|
|
602
662
|
)
|
|
603
663
|
}
|
|
604
|
-
return decodePublishedContent(row)
|
|
664
|
+
return decodePublishedContent(row, normalized.bodies)
|
|
605
665
|
})
|
|
606
666
|
const hasMore = outlines.length > selected.length
|
|
607
667
|
const last = items.at(-1)
|