@growth-labs/cms 0.5.15 → 0.5.16
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/dist/engine/d1.d.ts +21 -0
- package/dist/engine/d1.d.ts.map +1 -1
- package/dist/engine/index.d.ts +2 -1
- 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/published-content.d.ts.map +1 -1
- package/dist/engine/published-content.js +20 -9
- package/dist/engine/published-content.js.map +1 -1
- package/dist/engine/read-session.d.ts +24 -0
- package/dist/engine/read-session.d.ts.map +1 -0
- package/dist/engine/read-session.js +43 -0
- package/dist/engine/read-session.js.map +1 -0
- package/package.json +1 -1
- package/src/engine/d1.ts +22 -0
- package/src/engine/index.ts +2 -1
- package/src/engine/published-content.ts +32 -19
- package/src/engine/read-session.ts +43 -0
package/dist/engine/d1.d.ts
CHANGED
|
@@ -12,5 +12,26 @@ export interface D1PreparedStatement {
|
|
|
12
12
|
export interface D1Database {
|
|
13
13
|
prepare(query: string): D1PreparedStatement;
|
|
14
14
|
batch(statements: D1PreparedStatement[]): Promise<D1Result[]>;
|
|
15
|
+
/**
|
|
16
|
+
* The D1 Sessions API entry point (present on real workerd bindings; absent
|
|
17
|
+
* on some local shims). A session routes reads to the nearest read replica
|
|
18
|
+
* with sequential consistency inside the session; writes still reach the
|
|
19
|
+
* primary. Optional so structural fakes without it remain assignable —
|
|
20
|
+
* callers must feature-check (see `openReadSession`).
|
|
21
|
+
*/
|
|
22
|
+
withSession?(constraint?: string): D1DatabaseSession;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The session handle returned by `withSession`. Structurally the same
|
|
26
|
+
* prepare/batch surface the engine reads through — it deliberately omits
|
|
27
|
+
* `withSession` itself (sessions do not nest). `getBookmark` returns the
|
|
28
|
+
* session's latest observed commit token (null until the first query
|
|
29
|
+
* completes) — D1's mechanism for carrying consistency across sessions,
|
|
30
|
+
* requests, or a write on the raw binding followed by a session read.
|
|
31
|
+
*/
|
|
32
|
+
export interface D1DatabaseSession {
|
|
33
|
+
prepare(query: string): D1PreparedStatement;
|
|
34
|
+
batch(statements: D1PreparedStatement[]): Promise<D1Result[]>;
|
|
35
|
+
getBookmark?(): string | null;
|
|
15
36
|
}
|
|
16
37
|
//# sourceMappingURL=d1.d.ts.map
|
package/dist/engine/d1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1.d.ts","sourceRoot":"","sources":["../../src/engine/d1.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAA;IAC/C,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACvE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;CACxD;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAA;IAC3C,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"d1.d.ts","sourceRoot":"","sources":["../../src/engine/d1.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAA;IAC/C,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACvE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;CACxD;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAA;IAC3C,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7D;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAA;CACpD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAA;IAC3C,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7D,WAAW,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;CAC7B"}
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { type ApiKeyListEntry, type CreateApiKeyInput, type CreateApiKeyResult,
|
|
|
7
7
|
export { type ContentMetadata, ContentMetadataError, type ContentMetadataPrimitive, type ContentMetadataValue, MAX_CONTENT_METADATA_BYTES, parseContentMetadata, serializeContentMetadata, } from './content-metadata.js';
|
|
8
8
|
export { type ContributorInput, type ContributorRecord, listContributors, setContributors, } from './contributors.js';
|
|
9
9
|
export { runScheduledPublish, type ScheduledPublishResult } from './cron.js';
|
|
10
|
-
export type { D1Database, D1PreparedStatement, D1Result } from './d1.js';
|
|
10
|
+
export type { D1Database, D1DatabaseSession, D1PreparedStatement, D1Result } from './d1.js';
|
|
11
11
|
export { applyFoundryCallback, type CallbackInput, type DispatchResult, dispatchToFoundry, type ProcessingState, verifyHmac, } from './foundry-dispatch.js';
|
|
12
12
|
export { htmlToMarkdown, type ParsedImportItem, parseGhost, parseMarkdown, parseSubstackCsv, } from './import-parsers.js';
|
|
13
13
|
export { type AcceptInviteInput, acceptInvite, type CreateInviteInput, type CreateInviteResult, createInvite, hashInviteToken, type InviteRecord, loadInviteByToken, } from './invites.js';
|
|
@@ -18,6 +18,7 @@ export { ContentArchiveImportLimitError, type ContentArchiveInput, type ContentA
|
|
|
18
18
|
export { evaluateArticleBody, type PublishGuardOptions, type PublishGuardOutcome, publishGuardResponseOrNull, } from './publish-guard.js';
|
|
19
19
|
export { getPublishedContentById, getPublishedContentBySlug, type ListPublishedContentOptions, listPublishedContent, MAX_PUBLISHED_CONTENT_PAGE_BYTES, MAX_PUBLISHED_CONTENT_PAGE_SIZE, MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES, type PublishedContent, type PublishedContentCursor, type PublishedContentPage, PublishedContentReadError, type PublishedContentReadErrorCode, } from './published-content.js';
|
|
20
20
|
export { type ArticleInput, assertContentBodyValidForPublish, type BaseContentInput, type ContentItemRecord, type CreateContentInput, claimScheduledForPublish, countWords, createContent, createRevision, duplicateContentItem, ensureUniqueSlug, estimateReadTime, evaluateContentBodyForPublish, getContentItem, getContentRelations, getContentSnapshot, getContentTagPairs, MAX_ITEM_TAG_COUNT, MAX_ITEM_TAGS_TOTAL_BYTES, MAX_TAG_LABEL_BYTES, type NewsletterInput, type PodcastInput, PublishContentValidationError, publishContent, scheduleContent, setContentRelations, setContentTags, TagInputError, type UpdateContentInput, unpublishContent, updateContentItem, VerifiedMediaDurationConflictError, type VideoInput, } from './publisher.js';
|
|
21
|
+
export { openReadSession } from './read-session.js';
|
|
21
22
|
export { type ClearManualReadStateOptions, type ContentStateKey, clearManualReadState, clearReaderHistory, DEFAULT_READER_STATE_BATCH_SIZE, deleteReaderState, exportReaderStatePage, getReaderState, getReaderStateBatch, listReaderState, MAX_READER_STATE_BATCH_SIZE, READER_AUTOMATIC_COMPLETION_BPS, type ReaderBehavioralConsent, type ReaderPreferences, type ReaderPreferenceValue, ReaderStateConflictError, ReaderStateDurableStateError, type ReaderStateExportPage, ReaderStateInputError, type ReaderStateListOptions, type ReaderStateMutationResult, type ReaderStatePage, type ReaderStateRecord, type ReaderStateScope, type RecordReaderOpenOptions, type RecordReaderProgressOptions, recordReaderOpen, recordReaderProgress, recordReaderUnlock, type SetManualReadStateOptions, type SetReaderPreferencesOptions, type SetSavedStateOptions, setManualReadState, setReaderPreferences, setSavedState, } from './reader-state.js';
|
|
22
23
|
export { type ContentRevisionPayload, createRevisionWithDelta, getRevision, listRevisions, type RevisionSummary, restoreRevision, } from './revisions.js';
|
|
23
24
|
export { decodeHeadingEntities, type SanitizeOptions, sanitize, sanitizeBody, stripOverEscapes, } from './sanitize.js';
|
|
@@ -1 +1 @@
|
|
|
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,mBAAmB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/index.js
CHANGED
|
@@ -39,6 +39,7 @@ export { evaluateArticleBody, publishGuardResponseOrNull, } from './publish-guar
|
|
|
39
39
|
export { getPublishedContentById, getPublishedContentBySlug, listPublishedContent, MAX_PUBLISHED_CONTENT_PAGE_BYTES, MAX_PUBLISHED_CONTENT_PAGE_SIZE, MAX_PUBLISHED_CONTENT_PAYLOAD_BYTES, PublishedContentReadError, } from './published-content.js';
|
|
40
40
|
// The publishing engine — content data-access core.
|
|
41
41
|
export { assertContentBodyValidForPublish, claimScheduledForPublish, countWords, createContent, createRevision, duplicateContentItem, ensureUniqueSlug, estimateReadTime, evaluateContentBodyForPublish, getContentItem, getContentRelations, getContentSnapshot, getContentTagPairs, MAX_ITEM_TAG_COUNT, MAX_ITEM_TAGS_TOTAL_BYTES, MAX_TAG_LABEL_BYTES, PublishContentValidationError, publishContent, scheduleContent, setContentRelations, setContentTags, TagInputError, unpublishContent, updateContentItem, VerifiedMediaDurationConflictError, } from './publisher.js';
|
|
42
|
+
export { openReadSession } from './read-session.js';
|
|
42
43
|
// Verified-user/site reader product state. Analytics remains observation-only.
|
|
43
44
|
export { clearManualReadState, clearReaderHistory, DEFAULT_READER_STATE_BATCH_SIZE, deleteReaderState, exportReaderStatePage, getReaderState, getReaderStateBatch, listReaderState, MAX_READER_STATE_BATCH_SIZE, READER_AUTOMATIC_COMPLETION_BPS, ReaderStateConflictError, ReaderStateDurableStateError, ReaderStateInputError, recordReaderOpen, recordReaderProgress, recordReaderUnlock, setManualReadState, setReaderPreferences, setSavedState, } from './reader-state.js';
|
|
44
45
|
// Revision engine — snapshot + word-delta history + restore.
|
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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"}
|
|
@@ -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;
|
|
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;CACtC;AAED,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAA;CACzC;AAwQD,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;AAkFD,wBAAsB,oBAAoB,CACzC,EAAE,EAAE,UAAU,EACd,OAAO,GAAE,2BAAgC,GACvC,OAAO,CAAC,oBAAoB,CAAC,CAoI/B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ContentMetadataError, parseContentMetadata, } from './content-metadata.js';
|
|
2
|
+
import { openReadSession } from './read-session.js';
|
|
2
3
|
import { TagInputError, validateRevisionTaxonomy } from './taxonomy.js';
|
|
3
4
|
const CONTENT_TYPES = new Set(['article', 'video', 'podcast', 'newsletter', 'page']);
|
|
4
5
|
const CONTENT_STATUSES = new Set(['draft', 'scheduled', 'review', 'published', 'archived']);
|
|
@@ -217,7 +218,8 @@ function wrapReadError(error) {
|
|
|
217
218
|
export async function getPublishedContentById(db, contentId) {
|
|
218
219
|
assertLookupValue(contentId, 'contentId', 256);
|
|
219
220
|
try {
|
|
220
|
-
const
|
|
221
|
+
const reader = openReadSession(db);
|
|
222
|
+
const row = await reader
|
|
221
223
|
.prepare(`${SELECT_PUBLISHED_CONTENT}
|
|
222
224
|
LEFT JOIN content_revisions cr
|
|
223
225
|
ON cr.id = ci.published_revision_id
|
|
@@ -238,7 +240,8 @@ LIMIT 1`)
|
|
|
238
240
|
export async function getPublishedContentBySlug(db, slug) {
|
|
239
241
|
assertLookupValue(slug, 'slug', 512);
|
|
240
242
|
try {
|
|
241
|
-
const
|
|
243
|
+
const reader = openReadSession(db);
|
|
244
|
+
const result = await reader
|
|
242
245
|
.prepare(`${SELECT_PUBLISHED_CONTENT_BY_SLUG}
|
|
243
246
|
WHERE ci.status = 'published'
|
|
244
247
|
AND ci.deleted_at IS NULL
|
|
@@ -333,7 +336,8 @@ export async function listPublishedContent(db, options = {}) {
|
|
|
333
336
|
values.push(normalized.cursor.publishedAt, normalized.cursor.publishedAt, normalized.cursor.contentId);
|
|
334
337
|
}
|
|
335
338
|
try {
|
|
336
|
-
const
|
|
339
|
+
const reader = openReadSession(db);
|
|
340
|
+
const outlineResult = await reader
|
|
337
341
|
.prepare(`${SELECT_PUBLISHED_CONTENT_OUTLINE}
|
|
338
342
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
339
343
|
WHERE ${predicates.join('\n AND ')}
|
|
@@ -367,18 +371,22 @@ LIMIT ?`)
|
|
|
367
371
|
return { items: [], nextCursor: null };
|
|
368
372
|
// Hydrate the selected outlines in bound-variable-safe chunks. Each chunk
|
|
369
373
|
// binds two variables per outline; capping at MAX_HYDRATE_CHUNK_OUTLINES
|
|
370
|
-
// keeps every statement at or under D1's 100-variable limit.
|
|
371
|
-
//
|
|
372
|
-
//
|
|
373
|
-
|
|
374
|
+
// keeps every statement at or under D1's 100-variable limit. Chunks are
|
|
375
|
+
// independent point lookups pinned to exact (id, revision) pairs, so they
|
|
376
|
+
// run concurrently — one round-trip wave instead of a sequential chain.
|
|
377
|
+
// Rows merge into one pointer-keyed map, so ordering and the per-item
|
|
378
|
+
// integrity checks below are identical to a single-statement hydrate.
|
|
379
|
+
const chunks = [];
|
|
374
380
|
for (let offset = 0; offset < selected.length; offset += MAX_HYDRATE_CHUNK_OUTLINES) {
|
|
375
|
-
|
|
381
|
+
chunks.push(selected.slice(offset, offset + MAX_HYDRATE_CHUNK_OUTLINES));
|
|
382
|
+
}
|
|
383
|
+
const chunkResults = await Promise.all(chunks.map((chunk) => {
|
|
376
384
|
const chunkPredicates = chunk.map(() => '(ci.id = ? AND ci.published_revision_id = ?)');
|
|
377
385
|
const chunkValues = chunk.flatMap((outline) => [
|
|
378
386
|
outline.content_id,
|
|
379
387
|
outline.pointer_revision_id,
|
|
380
388
|
]);
|
|
381
|
-
|
|
389
|
+
return reader
|
|
382
390
|
.prepare(`${SELECT_PUBLISHED_CONTENT}
|
|
383
391
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
384
392
|
WHERE ci.status = 'published'
|
|
@@ -386,6 +394,9 @@ WHERE ci.status = 'published'
|
|
|
386
394
|
AND (${chunkPredicates.join(' OR ')})`)
|
|
387
395
|
.bind(...chunkValues)
|
|
388
396
|
.all();
|
|
397
|
+
}));
|
|
398
|
+
const rowsByPointer = new Map();
|
|
399
|
+
for (const chunkResult of chunkResults) {
|
|
389
400
|
for (const row of chunkResult.results ?? []) {
|
|
390
401
|
rowsByPointer.set(`${row.content_id}\0${row.pointer_revision_id}`, row);
|
|
391
402
|
}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { D1Database } from './d1.js';
|
|
2
|
+
/**
|
|
3
|
+
* Route reads through a D1 read-replica session when the runtime supports it.
|
|
4
|
+
*
|
|
5
|
+
* `first-unconstrained` sends the first query to the nearest replica and
|
|
6
|
+
* threads the session bookmark through every subsequent query, so reads are
|
|
7
|
+
* sequentially consistent within the session while avoiding the cross-region
|
|
8
|
+
* primary round-trip that dominates SSR wall time (450ms × N sequential
|
|
9
|
+
* statements). Requires read replication to be enabled on the database
|
|
10
|
+
* (`read_replication.mode: auto`); without it — or on runtimes whose binding
|
|
11
|
+
* has no `withSession` — this returns the binding unchanged, which is exactly
|
|
12
|
+
* the pre-session behavior. That fallback is silent by design: the synthetic
|
|
13
|
+
* render canaries that page on slow pages are the loud surface for a
|
|
14
|
+
* replication regression.
|
|
15
|
+
*
|
|
16
|
+
* Reads only: callers that write must keep using the raw binding. (D1 forwards
|
|
17
|
+
* session writes to the primary, so a stray write through a session is routed
|
|
18
|
+
* correctly — but the engine's read model never writes.) A write through the
|
|
19
|
+
* raw binding is NOT immediately visible to this session's replica reads;
|
|
20
|
+
* public serving tolerates that eventual consistency, and admin
|
|
21
|
+
* read-after-write flows use the engine's primary-bound reads instead.
|
|
22
|
+
*/
|
|
23
|
+
export declare function openReadSession(db: D1Database): D1Database;
|
|
24
|
+
//# sourceMappingURL=read-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-session.d.ts","sourceRoot":"","sources":["../../src/engine/read-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAczC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CAO1D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// One read session per D1 binding IDENTITY. workerd binding objects are
|
|
2
|
+
// isolate-stable, so on a warm isolate this session is shared by every request
|
|
3
|
+
// for the isolate's lifetime — deliberately: D1 session bookmarks only
|
|
4
|
+
// advance, so every read through the session is monotonic (it observes a
|
|
5
|
+
// database state at least as new as any state previously observed through the
|
|
6
|
+
// session). That is a strictly stronger guarantee than per-request sessions
|
|
7
|
+
// would give, and it is what keeps cursor pagination coherent across the
|
|
8
|
+
// multiple statements of a corpus load. On runtimes that hand out fresh
|
|
9
|
+
// binding objects per request the cache simply misses and each request gets
|
|
10
|
+
// its own session, which is also correct.
|
|
11
|
+
const sessionsByBinding = new WeakMap();
|
|
12
|
+
/**
|
|
13
|
+
* Route reads through a D1 read-replica session when the runtime supports it.
|
|
14
|
+
*
|
|
15
|
+
* `first-unconstrained` sends the first query to the nearest replica and
|
|
16
|
+
* threads the session bookmark through every subsequent query, so reads are
|
|
17
|
+
* sequentially consistent within the session while avoiding the cross-region
|
|
18
|
+
* primary round-trip that dominates SSR wall time (450ms × N sequential
|
|
19
|
+
* statements). Requires read replication to be enabled on the database
|
|
20
|
+
* (`read_replication.mode: auto`); without it — or on runtimes whose binding
|
|
21
|
+
* has no `withSession` — this returns the binding unchanged, which is exactly
|
|
22
|
+
* the pre-session behavior. That fallback is silent by design: the synthetic
|
|
23
|
+
* render canaries that page on slow pages are the loud surface for a
|
|
24
|
+
* replication regression.
|
|
25
|
+
*
|
|
26
|
+
* Reads only: callers that write must keep using the raw binding. (D1 forwards
|
|
27
|
+
* session writes to the primary, so a stray write through a session is routed
|
|
28
|
+
* correctly — but the engine's read model never writes.) A write through the
|
|
29
|
+
* raw binding is NOT immediately visible to this session's replica reads;
|
|
30
|
+
* public serving tolerates that eventual consistency, and admin
|
|
31
|
+
* read-after-write flows use the engine's primary-bound reads instead.
|
|
32
|
+
*/
|
|
33
|
+
export function openReadSession(db) {
|
|
34
|
+
if (typeof db.withSession !== 'function')
|
|
35
|
+
return db;
|
|
36
|
+
const cached = sessionsByBinding.get(db);
|
|
37
|
+
if (cached)
|
|
38
|
+
return cached;
|
|
39
|
+
const session = db.withSession('first-unconstrained');
|
|
40
|
+
sessionsByBinding.set(db, session);
|
|
41
|
+
return session;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=read-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-session.js","sourceRoot":"","sources":["../../src/engine/read-session.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,+EAA+E;AAC/E,uEAAuE;AACvE,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,4EAA4E;AAC5E,0CAA0C;AAC1C,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAsB,CAAA;AAE3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAAC,EAAc;IAC7C,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,UAAU;QAAE,OAAO,EAAE,CAAA;IACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACxC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAA;IACrD,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAClC,OAAO,OAAO,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
package/src/engine/d1.ts
CHANGED
|
@@ -26,4 +26,26 @@ export interface D1PreparedStatement {
|
|
|
26
26
|
export interface D1Database {
|
|
27
27
|
prepare(query: string): D1PreparedStatement
|
|
28
28
|
batch(statements: D1PreparedStatement[]): Promise<D1Result[]>
|
|
29
|
+
/**
|
|
30
|
+
* The D1 Sessions API entry point (present on real workerd bindings; absent
|
|
31
|
+
* on some local shims). A session routes reads to the nearest read replica
|
|
32
|
+
* with sequential consistency inside the session; writes still reach the
|
|
33
|
+
* primary. Optional so structural fakes without it remain assignable —
|
|
34
|
+
* callers must feature-check (see `openReadSession`).
|
|
35
|
+
*/
|
|
36
|
+
withSession?(constraint?: string): D1DatabaseSession
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The session handle returned by `withSession`. Structurally the same
|
|
41
|
+
* prepare/batch surface the engine reads through — it deliberately omits
|
|
42
|
+
* `withSession` itself (sessions do not nest). `getBookmark` returns the
|
|
43
|
+
* session's latest observed commit token (null until the first query
|
|
44
|
+
* completes) — D1's mechanism for carrying consistency across sessions,
|
|
45
|
+
* requests, or a write on the raw binding followed by a session read.
|
|
46
|
+
*/
|
|
47
|
+
export interface D1DatabaseSession {
|
|
48
|
+
prepare(query: string): D1PreparedStatement
|
|
49
|
+
batch(statements: D1PreparedStatement[]): Promise<D1Result[]>
|
|
50
|
+
getBookmark?(): string | null
|
|
29
51
|
}
|
package/src/engine/index.ts
CHANGED
|
@@ -73,7 +73,7 @@ export {
|
|
|
73
73
|
// Scheduled-publish sweep.
|
|
74
74
|
export { runScheduledPublish, type ScheduledPublishResult } from './cron.js'
|
|
75
75
|
// The injected D1 surface the engine operates over.
|
|
76
|
-
export type { D1Database, D1PreparedStatement, D1Result } from './d1.js'
|
|
76
|
+
export type { D1Database, D1DatabaseSession, D1PreparedStatement, D1Result } from './d1.js'
|
|
77
77
|
// Foundry dispatch + HMAC callback engine (P3 Task 5 / bead-08).
|
|
78
78
|
export {
|
|
79
79
|
applyFoundryCallback,
|
|
@@ -226,6 +226,7 @@ export {
|
|
|
226
226
|
VerifiedMediaDurationConflictError,
|
|
227
227
|
type VideoInput,
|
|
228
228
|
} from './publisher.js'
|
|
229
|
+
export { openReadSession } from './read-session.js'
|
|
229
230
|
// Verified-user/site reader product state. Analytics remains observation-only.
|
|
230
231
|
export {
|
|
231
232
|
type ClearManualReadStateOptions,
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
parseContentMetadata,
|
|
6
6
|
} from './content-metadata.js'
|
|
7
7
|
import type { D1Database } from './d1.js'
|
|
8
|
+
import { openReadSession } from './read-session.js'
|
|
8
9
|
import type { ContentRevisionPayload } from './revisions.js'
|
|
9
10
|
import { TagInputError, validateRevisionTaxonomy } from './taxonomy.js'
|
|
10
11
|
|
|
@@ -342,7 +343,8 @@ export async function getPublishedContentById(
|
|
|
342
343
|
): Promise<PublishedContent | null> {
|
|
343
344
|
assertLookupValue(contentId, 'contentId', 256)
|
|
344
345
|
try {
|
|
345
|
-
const
|
|
346
|
+
const reader = openReadSession(db)
|
|
347
|
+
const row = await reader
|
|
346
348
|
.prepare(
|
|
347
349
|
`${SELECT_PUBLISHED_CONTENT}
|
|
348
350
|
LEFT JOIN content_revisions cr
|
|
@@ -368,7 +370,8 @@ export async function getPublishedContentBySlug(
|
|
|
368
370
|
): Promise<PublishedContent | null> {
|
|
369
371
|
assertLookupValue(slug, 'slug', 512)
|
|
370
372
|
try {
|
|
371
|
-
const
|
|
373
|
+
const reader = openReadSession(db)
|
|
374
|
+
const result = await reader
|
|
372
375
|
.prepare(
|
|
373
376
|
`${SELECT_PUBLISHED_CONTENT_BY_SLUG}
|
|
374
377
|
WHERE ci.status = 'published'
|
|
@@ -504,7 +507,8 @@ export async function listPublishedContent(
|
|
|
504
507
|
)
|
|
505
508
|
}
|
|
506
509
|
try {
|
|
507
|
-
const
|
|
510
|
+
const reader = openReadSession(db)
|
|
511
|
+
const outlineResult = await reader
|
|
508
512
|
.prepare(
|
|
509
513
|
`${SELECT_PUBLISHED_CONTENT_OUTLINE}
|
|
510
514
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
@@ -550,27 +554,36 @@ LIMIT ?`,
|
|
|
550
554
|
|
|
551
555
|
// Hydrate the selected outlines in bound-variable-safe chunks. Each chunk
|
|
552
556
|
// binds two variables per outline; capping at MAX_HYDRATE_CHUNK_OUTLINES
|
|
553
|
-
// keeps every statement at or under D1's 100-variable limit.
|
|
554
|
-
//
|
|
555
|
-
//
|
|
556
|
-
|
|
557
|
+
// keeps every statement at or under D1's 100-variable limit. Chunks are
|
|
558
|
+
// independent point lookups pinned to exact (id, revision) pairs, so they
|
|
559
|
+
// run concurrently — one round-trip wave instead of a sequential chain.
|
|
560
|
+
// Rows merge into one pointer-keyed map, so ordering and the per-item
|
|
561
|
+
// integrity checks below are identical to a single-statement hydrate.
|
|
562
|
+
const chunks: PublishedContentOutlineRow[][] = []
|
|
557
563
|
for (let offset = 0; offset < selected.length; offset += MAX_HYDRATE_CHUNK_OUTLINES) {
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
564
|
+
chunks.push(selected.slice(offset, offset + MAX_HYDRATE_CHUNK_OUTLINES))
|
|
565
|
+
}
|
|
566
|
+
const chunkResults = await Promise.all(
|
|
567
|
+
chunks.map((chunk) => {
|
|
568
|
+
const chunkPredicates = chunk.map(() => '(ci.id = ? AND ci.published_revision_id = ?)')
|
|
569
|
+
const chunkValues = chunk.flatMap((outline) => [
|
|
570
|
+
outline.content_id,
|
|
571
|
+
outline.pointer_revision_id,
|
|
572
|
+
])
|
|
573
|
+
return reader
|
|
574
|
+
.prepare(
|
|
575
|
+
`${SELECT_PUBLISHED_CONTENT}
|
|
567
576
|
JOIN content_revisions cr ON cr.id = ci.published_revision_id
|
|
568
577
|
WHERE ci.status = 'published'
|
|
569
578
|
AND ci.deleted_at IS NULL
|
|
570
579
|
AND (${chunkPredicates.join(' OR ')})`,
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
580
|
+
)
|
|
581
|
+
.bind(...chunkValues)
|
|
582
|
+
.all<PublishedContentRow>()
|
|
583
|
+
}),
|
|
584
|
+
)
|
|
585
|
+
const rowsByPointer = new Map<string, PublishedContentRow>()
|
|
586
|
+
for (const chunkResult of chunkResults) {
|
|
574
587
|
for (const row of chunkResult.results ?? []) {
|
|
575
588
|
rowsByPointer.set(`${row.content_id}\0${row.pointer_revision_id}`, row)
|
|
576
589
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { D1Database } from './d1.js'
|
|
2
|
+
|
|
3
|
+
// One read session per D1 binding IDENTITY. workerd binding objects are
|
|
4
|
+
// isolate-stable, so on a warm isolate this session is shared by every request
|
|
5
|
+
// for the isolate's lifetime — deliberately: D1 session bookmarks only
|
|
6
|
+
// advance, so every read through the session is monotonic (it observes a
|
|
7
|
+
// database state at least as new as any state previously observed through the
|
|
8
|
+
// session). That is a strictly stronger guarantee than per-request sessions
|
|
9
|
+
// would give, and it is what keeps cursor pagination coherent across the
|
|
10
|
+
// multiple statements of a corpus load. On runtimes that hand out fresh
|
|
11
|
+
// binding objects per request the cache simply misses and each request gets
|
|
12
|
+
// its own session, which is also correct.
|
|
13
|
+
const sessionsByBinding = new WeakMap<object, D1Database>()
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Route reads through a D1 read-replica session when the runtime supports it.
|
|
17
|
+
*
|
|
18
|
+
* `first-unconstrained` sends the first query to the nearest replica and
|
|
19
|
+
* threads the session bookmark through every subsequent query, so reads are
|
|
20
|
+
* sequentially consistent within the session while avoiding the cross-region
|
|
21
|
+
* primary round-trip that dominates SSR wall time (450ms × N sequential
|
|
22
|
+
* statements). Requires read replication to be enabled on the database
|
|
23
|
+
* (`read_replication.mode: auto`); without it — or on runtimes whose binding
|
|
24
|
+
* has no `withSession` — this returns the binding unchanged, which is exactly
|
|
25
|
+
* the pre-session behavior. That fallback is silent by design: the synthetic
|
|
26
|
+
* render canaries that page on slow pages are the loud surface for a
|
|
27
|
+
* replication regression.
|
|
28
|
+
*
|
|
29
|
+
* Reads only: callers that write must keep using the raw binding. (D1 forwards
|
|
30
|
+
* session writes to the primary, so a stray write through a session is routed
|
|
31
|
+
* correctly — but the engine's read model never writes.) A write through the
|
|
32
|
+
* raw binding is NOT immediately visible to this session's replica reads;
|
|
33
|
+
* public serving tolerates that eventual consistency, and admin
|
|
34
|
+
* read-after-write flows use the engine's primary-bound reads instead.
|
|
35
|
+
*/
|
|
36
|
+
export function openReadSession(db: D1Database): D1Database {
|
|
37
|
+
if (typeof db.withSession !== 'function') return db
|
|
38
|
+
const cached = sessionsByBinding.get(db)
|
|
39
|
+
if (cached) return cached
|
|
40
|
+
const session = db.withSession('first-unconstrained')
|
|
41
|
+
sessionsByBinding.set(db, session)
|
|
42
|
+
return session
|
|
43
|
+
}
|