@amalgm/shell 0.1.53 → 0.1.55

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-apply-host.js","sourceRoot":"","sources":["../src/entity-apply-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /** Persistent SQLite effects for Live's Inbox -> Apply -> Verify rail. */
2
+ import { type ApplyCompletion, type CloudEntityRecord, type EntityApplyIntent, type EntityApplyStorePort, type EntityApplyWorkPage } from "@amalgm/live";
3
+ import Database from "better-sqlite3";
4
+ export interface ApplyGroundRow {
5
+ readonly resourceId: string;
6
+ readonly rootUUID: string;
7
+ readonly record: CloudEntityRecord;
8
+ readonly relativePath: string;
9
+ readonly absolutePath: string;
10
+ readonly deviceNumber: number;
11
+ readonly inode: number;
12
+ readonly byteSize: number | null;
13
+ readonly modifiedTimeMs: number | null;
14
+ readonly changedTimeMs: number | null;
15
+ readonly filesystemMode: number | null;
16
+ readonly contentVerifiedAtMs: number | null;
17
+ }
18
+ export interface EntityApplySqliteStoreOptions {
19
+ readonly now?: () => number;
20
+ readonly onIntentFinished?: (intent: EntityApplyIntent) => void;
21
+ /** Machine materialization policy is an effect boundary, not a portable
22
+ * Apply decision. A retained Inbox row may remain cloud-only until policy
23
+ * makes its accepted entity locally relevant. */
24
+ readonly isLocallyEligible?: (target: CloudEntityRecord) => boolean;
25
+ }
26
+ /**
27
+ * Apply has one persistent database owner. Verify hands this owner the exact
28
+ * rows it just proved; completion writes those rows, cursors, Inbox resolution,
29
+ * and intent removal in one SQLite transaction.
30
+ */
31
+ export declare class EntityApplySqliteStore implements EntityApplyStorePort {
32
+ #private;
33
+ constructor(database: Database.Database, options?: EntityApplySqliteStoreOptions);
34
+ readApplyWork(limit: number, afterCursor: string | null): EntityApplyWorkPage;
35
+ hasLocalWorkAfter(authorityId: string, entityId: string, targetSequence: number): boolean;
36
+ beginIntent(intent: EntityApplyIntent): void;
37
+ setIntentPhase(intent: EntityApplyIntent): void;
38
+ cancelIntent(intent: EntityApplyIntent): void;
39
+ stageVerification(intent: EntityApplyIntent, rows: readonly ApplyGroundRow[], removals?: readonly string[]): void;
40
+ completeIntent(intent: EntityApplyIntent, completion: ApplyCompletion): void;
41
+ close(): void;
42
+ }
@@ -0,0 +1,367 @@
1
+ /** Persistent SQLite effects for Live's Inbox -> Apply -> Verify rail. */
2
+ import { assertApplyIntent, assertRecord, decodeAcceptedEntityRecord, } from "@amalgm/live";
3
+ const GROUND_COLUMNS = [
4
+ "uuid", "resource_id", "root_uuid", "type", "parent_uuid", "name", "status", "version",
5
+ "payload_version", "transport_version", "relative_path", "absolute_path", "device_number",
6
+ "inode", "byte_size", "modified_time_ms", "changed_time_ms", "filesystem_mode",
7
+ "content_verified_at_ms",
8
+ ].join(", ");
9
+ const rowValues = (row) => [
10
+ row.record.uuid,
11
+ row.resourceId,
12
+ row.rootUUID,
13
+ row.record.type,
14
+ row.record.parentUUID,
15
+ row.record.name,
16
+ row.record.status,
17
+ row.record.version,
18
+ row.record.payloadVersion,
19
+ row.record.transportVersion,
20
+ row.relativePath,
21
+ row.absolutePath,
22
+ row.deviceNumber,
23
+ row.inode,
24
+ row.byteSize,
25
+ row.modifiedTimeMs,
26
+ row.changedTimeMs,
27
+ row.filesystemMode,
28
+ row.contentVerifiedAtMs,
29
+ ];
30
+ const sameIntent = (left, right) => left.authorityId === right.authorityId
31
+ && left.entityId === right.entityId
32
+ && left.fromSequence === right.fromSequence
33
+ && left.throughSequence === right.throughSequence
34
+ && left.targetMutationId === right.targetMutationId
35
+ && left.targetState === right.targetState
36
+ && left.targetType === right.targetType;
37
+ /**
38
+ * Apply has one persistent database owner. Verify hands this owner the exact
39
+ * rows it just proved; completion writes those rows, cursors, Inbox resolution,
40
+ * and intent removal in one SQLite transaction.
41
+ */
42
+ export class EntityApplySqliteStore {
43
+ #database;
44
+ #now;
45
+ #onIntentFinished;
46
+ #isLocallyEligible;
47
+ #verified = new Map();
48
+ #candidateEntities;
49
+ #state;
50
+ #inboxAfter;
51
+ #intent;
52
+ #intentByEntity;
53
+ #authorityForEntity;
54
+ #targetRecord;
55
+ #localRelevance;
56
+ #localWork;
57
+ #insertIntent;
58
+ #updateIntent;
59
+ #deleteIntent;
60
+ #resolveInbox;
61
+ #upsertState;
62
+ #upsertEntity;
63
+ #upsertNotebook;
64
+ #deleteEntity;
65
+ #deleteNotebook;
66
+ #entitySlot;
67
+ constructor(database, options = {}) {
68
+ this.#database = database;
69
+ this.#now = options.now ?? Date.now;
70
+ this.#onIntentFinished = options.onIntentFinished ?? (() => undefined);
71
+ this.#isLocallyEligible = options.isLocallyEligible ?? (() => true);
72
+ database.pragma("busy_timeout = 5000");
73
+ database.pragma("journal_mode = WAL");
74
+ database.pragma("synchronous = FULL");
75
+ database.exec(`
76
+ CREATE TABLE IF NOT EXISTS entity_apply_state (
77
+ entity_id TEXT PRIMARY KEY,
78
+ authority_id TEXT NOT NULL,
79
+ resolved_through INTEGER NOT NULL CHECK(resolved_through >= 0),
80
+ materialized_sequence INTEGER,
81
+ materialized_record_json TEXT,
82
+ CHECK((materialized_sequence IS NULL AND materialized_record_json IS NULL)
83
+ OR (materialized_sequence > 0 AND materialized_record_json IS NOT NULL))
84
+ );
85
+ CREATE TABLE IF NOT EXISTS entity_apply_intents (
86
+ entity_id TEXT PRIMARY KEY,
87
+ authority_id TEXT NOT NULL,
88
+ intent_json TEXT NOT NULL
89
+ );
90
+ CREATE INDEX IF NOT EXISTS record_inbox_apply
91
+ ON record_inbox(authority_id, entity_id, global_sequence);
92
+ `);
93
+ const inboxColumns = new Set(database.prepare("PRAGMA table_info(record_inbox)").all().map(({ name }) => name));
94
+ if (!inboxColumns.has("resolved_at")) {
95
+ database.exec("ALTER TABLE record_inbox ADD COLUMN resolved_at INTEGER");
96
+ }
97
+ this.#candidateEntities = database.prepare(`
98
+ SELECT entity_id AS entityId FROM entity_apply_intents
99
+ UNION
100
+ SELECT inbox.entity_id AS entityId
101
+ FROM record_inbox inbox
102
+ LEFT JOIN entity_apply_state state ON state.entity_id = inbox.entity_id
103
+ WHERE inbox.global_sequence > COALESCE(state.resolved_through, 0)
104
+ ORDER BY entityId
105
+ `);
106
+ this.#state = database.prepare(`
107
+ SELECT resolved_through AS resolvedThrough,
108
+ materialized_sequence AS materializedSequence,
109
+ materialized_record_json AS materializedRecordJson
110
+ FROM entity_apply_state WHERE authority_id = ? AND entity_id = ?
111
+ `);
112
+ this.#inboxAfter = database.prepare(`
113
+ SELECT record_json AS recordJson FROM record_inbox
114
+ WHERE authority_id = ? AND entity_id = ? AND global_sequence > ?
115
+ ORDER BY global_sequence
116
+ `);
117
+ this.#intent = database.prepare(`
118
+ SELECT intent_json AS intentJson FROM entity_apply_intents
119
+ WHERE authority_id = ? AND entity_id = ?
120
+ `);
121
+ this.#intentByEntity = database.prepare(`
122
+ SELECT intent_json AS intentJson FROM entity_apply_intents WHERE entity_id = ?
123
+ `);
124
+ this.#authorityForEntity = database.prepare(`
125
+ SELECT authority_id AS authorityId FROM record_inbox
126
+ WHERE entity_id = ? ORDER BY global_sequence DESC LIMIT 1
127
+ `);
128
+ this.#targetRecord = database.prepare(`
129
+ SELECT record_json AS recordJson FROM record_inbox
130
+ WHERE authority_id = ? AND entity_id = ? AND global_sequence = ?
131
+ `);
132
+ this.#localRelevance = database.prepare(`
133
+ SELECT 1 AS present FROM entities WHERE uuid = ?
134
+ UNION ALL
135
+ SELECT 1 AS present FROM detection_notebook WHERE uuid = ?
136
+ LIMIT 1
137
+ `);
138
+ this.#localWork = database.prepare(`
139
+ SELECT 1 AS present FROM record_outbox
140
+ WHERE authority_id = ? AND entity_id = ?
141
+ AND (status = 'pending' OR global_sequence > ?)
142
+ LIMIT 1
143
+ `);
144
+ this.#insertIntent = database.prepare(`
145
+ INSERT INTO entity_apply_intents(entity_id, authority_id, intent_json)
146
+ VALUES (?, ?, ?)
147
+ `);
148
+ this.#updateIntent = database.prepare(`
149
+ UPDATE entity_apply_intents SET intent_json = ?
150
+ WHERE authority_id = ? AND entity_id = ?
151
+ `);
152
+ this.#deleteIntent = database.prepare(`
153
+ DELETE FROM entity_apply_intents WHERE authority_id = ? AND entity_id = ?
154
+ `);
155
+ this.#resolveInbox = database.prepare(`
156
+ UPDATE record_inbox SET resolved_at = ?
157
+ WHERE authority_id = ? AND entity_id = ?
158
+ AND global_sequence > ? AND global_sequence <= ?
159
+ `);
160
+ this.#upsertState = database.prepare(`
161
+ INSERT INTO entity_apply_state(
162
+ entity_id, authority_id, resolved_through,
163
+ materialized_sequence, materialized_record_json
164
+ ) VALUES (?, ?, ?, ?, ?)
165
+ ON CONFLICT(entity_id) DO UPDATE SET
166
+ authority_id = excluded.authority_id,
167
+ resolved_through = excluded.resolved_through,
168
+ materialized_sequence = excluded.materialized_sequence,
169
+ materialized_record_json = excluded.materialized_record_json
170
+ `);
171
+ const upsert = (table) => database.prepare(`
172
+ INSERT INTO ${table}(${GROUND_COLUMNS})
173
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
174
+ ON CONFLICT(uuid) DO UPDATE SET
175
+ resource_id = excluded.resource_id,
176
+ root_uuid = excluded.root_uuid,
177
+ type = excluded.type,
178
+ parent_uuid = excluded.parent_uuid,
179
+ name = excluded.name,
180
+ status = excluded.status,
181
+ version = excluded.version,
182
+ payload_version = excluded.payload_version,
183
+ transport_version = excluded.transport_version,
184
+ relative_path = excluded.relative_path,
185
+ absolute_path = excluded.absolute_path,
186
+ device_number = excluded.device_number,
187
+ inode = excluded.inode,
188
+ byte_size = excluded.byte_size,
189
+ modified_time_ms = excluded.modified_time_ms,
190
+ changed_time_ms = excluded.changed_time_ms,
191
+ filesystem_mode = excluded.filesystem_mode,
192
+ content_verified_at_ms = excluded.content_verified_at_ms
193
+ `);
194
+ this.#upsertEntity = upsert("entities");
195
+ this.#upsertNotebook = upsert("detection_notebook");
196
+ this.#deleteEntity = database.prepare("DELETE FROM entities WHERE uuid = ?");
197
+ this.#deleteNotebook = database.prepare("DELETE FROM detection_notebook WHERE uuid = ?");
198
+ this.#entitySlot = database.prepare(`
199
+ SELECT uuid, type, payload_version AS payloadVersion,
200
+ absolute_path AS absolutePath FROM entities
201
+ WHERE resource_id = ? AND root_uuid = ? AND relative_path = ?
202
+ `);
203
+ }
204
+ readApplyWork(limit, afterCursor) {
205
+ const all = this.#candidateEntities.all()
206
+ .map(({ entityId }) => entityId)
207
+ .filter((entityId) => afterCursor === null || entityId > afterCursor);
208
+ const materializable = [];
209
+ for (const entityId of all) {
210
+ const intent = this.#readIntent(entityId);
211
+ const authorityId = intent?.authorityId ?? this.#authorityFor(entityId);
212
+ const state = this.#state.get(authorityId, entityId);
213
+ const resolvedThrough = state?.resolvedThrough ?? 0;
214
+ const records = this.#inboxAfter.all(authorityId, entityId, resolvedThrough).map(({ recordJson }) => decodeAcceptedEntityRecord(recordJson));
215
+ if (records.length === 0)
216
+ continue;
217
+ const target = records.at(-1);
218
+ const local = this.#localRelevance.get(entityId, entityId) !== undefined
219
+ || (target.change.result.parentUUID !== null
220
+ && this.#localRelevance.get(target.change.result.parentUUID, target.change.result.parentUUID) !== undefined);
221
+ if (!local || !this.#isLocallyEligible(target.change.result))
222
+ continue;
223
+ materializable.push({
224
+ authorityId,
225
+ entityId,
226
+ resolvedThrough,
227
+ materialized: state?.materializedSequence && state.materializedRecordJson
228
+ ? {
229
+ globalSequence: state.materializedSequence,
230
+ record: assertRecord(JSON.parse(state.materializedRecordJson)),
231
+ }
232
+ : null,
233
+ records,
234
+ intent,
235
+ });
236
+ }
237
+ const work = materializable.slice(0, limit);
238
+ return {
239
+ work,
240
+ nextCursor: materializable.length > work.length ? work.at(-1).entityId : null,
241
+ };
242
+ }
243
+ hasLocalWorkAfter(authorityId, entityId, targetSequence) {
244
+ return this.#localWork.get(authorityId, entityId, targetSequence) !== undefined;
245
+ }
246
+ beginIntent(intent) {
247
+ assertApplyIntent(intent);
248
+ const existing = this.#readIntent(intent.entityId, intent.authorityId);
249
+ if (existing) {
250
+ if (!sameIntent(existing, intent) || existing.phase !== intent.phase) {
251
+ throw new Error(`entity ${intent.entityId} already has a different Apply intent`);
252
+ }
253
+ return;
254
+ }
255
+ this.#insertIntent.run(intent.entityId, intent.authorityId, JSON.stringify(intent));
256
+ }
257
+ setIntentPhase(intent) {
258
+ assertApplyIntent(intent);
259
+ const existing = this.#requireIntent(intent);
260
+ if (!sameIntent(existing, intent))
261
+ throw new Error("Apply phase update changed intent identity");
262
+ const updated = this.#updateIntent.run(JSON.stringify(intent), intent.authorityId, intent.entityId);
263
+ if (updated.changes !== 1)
264
+ throw new Error("Apply intent phase was not durable");
265
+ }
266
+ cancelIntent(intent) {
267
+ const existing = this.#requireIntent(intent);
268
+ if (!sameIntent(existing, intent))
269
+ throw new Error("Apply cancel changed intent identity");
270
+ this.#verified.delete(intent.entityId);
271
+ this.#deleteIntent.run(intent.authorityId, intent.entityId);
272
+ this.#onIntentFinished(intent);
273
+ }
274
+ stageVerification(intent, rows, removals = []) {
275
+ this.#requireIntent(intent);
276
+ this.#verified.set(intent.entityId, Object.freeze({
277
+ rows: Object.freeze([...rows]),
278
+ removals: Object.freeze([...new Set(removals)]),
279
+ }));
280
+ }
281
+ completeIntent(intent, completion) {
282
+ try {
283
+ const existing = this.#requireIntent(intent);
284
+ if (!sameIntent(existing, intent) || existing.phase !== "revealed") {
285
+ throw new Error("Apply completion does not match its revealed intent");
286
+ }
287
+ const prior = this.#state.get(intent.authorityId, intent.entityId);
288
+ const verified = this.#verified.get(intent.entityId);
289
+ if (completion.kind === "materialized" && !verified) {
290
+ throw new Error("Apply completion has no exact Verify evidence");
291
+ }
292
+ const targetRow = this.#targetRecord.get(intent.authorityId, intent.entityId, intent.throughSequence);
293
+ if (!targetRow)
294
+ throw new Error("Apply target disappeared from its retained Inbox");
295
+ const target = decodeAcceptedEntityRecord(targetRow.recordJson);
296
+ this.#database.transaction(() => {
297
+ if (completion.kind === "materialized") {
298
+ for (const uuid of verified.removals) {
299
+ this.#deleteEntity.run(uuid);
300
+ this.#deleteNotebook.run(uuid);
301
+ }
302
+ for (const row of verified.rows) {
303
+ this.#deleteEntity.run(row.record.uuid);
304
+ }
305
+ for (const row of verified.rows) {
306
+ if (row.record.status === "active") {
307
+ try {
308
+ this.#upsertEntity.run(...rowValues(row));
309
+ }
310
+ catch (error) {
311
+ const occupant = this.#entitySlot.get(row.resourceId, row.rootUUID, row.relativePath);
312
+ throw new Error(`Apply projection could not place ${row.record.uuid} at `
313
+ + `${row.rootUUID}:${row.relativePath}; occupied by `
314
+ + `${occupant?.uuid ?? "no retained row"} (${occupant?.absolutePath ?? "unknown"}); `
315
+ + `incoming=${row.record.type}:${row.record.payloadVersion ?? "none"}; `
316
+ + `occupant=${occupant?.type ?? "none"}:${occupant?.payloadVersion ?? "none"}`, { cause: error });
317
+ }
318
+ }
319
+ else {
320
+ this.#deleteEntity.run(row.record.uuid);
321
+ }
322
+ this.#upsertNotebook.run(...rowValues(row));
323
+ }
324
+ }
325
+ this.#resolveInbox.run(this.#now(), intent.authorityId, intent.entityId, intent.fromSequence, intent.throughSequence);
326
+ this.#upsertState.run(intent.entityId, intent.authorityId, intent.throughSequence, completion.kind === "materialized"
327
+ ? intent.throughSequence
328
+ : prior?.materializedSequence ?? null, completion.kind === "materialized"
329
+ ? JSON.stringify(target.change.result)
330
+ : prior?.materializedRecordJson ?? null);
331
+ const removed = this.#deleteIntent.run(intent.authorityId, intent.entityId);
332
+ if (removed.changes !== 1)
333
+ throw new Error("Apply intent disappeared before completion");
334
+ })();
335
+ this.#verified.delete(intent.entityId);
336
+ }
337
+ finally {
338
+ this.#onIntentFinished(intent);
339
+ }
340
+ }
341
+ close() {
342
+ this.#database.close();
343
+ }
344
+ #authorityFor(entityId) {
345
+ const row = this.#authorityForEntity.get(entityId);
346
+ if (!row)
347
+ throw new Error(`entity ${entityId} has no accepted Inbox authority`);
348
+ return row.authorityId;
349
+ }
350
+ #readIntent(entityId, authorityId) {
351
+ const row = authorityId
352
+ ? this.#intent.get(authorityId, entityId)
353
+ : this.#intentByEntity.get(entityId);
354
+ if (!row)
355
+ return null;
356
+ const intent = JSON.parse(row.intentJson);
357
+ assertApplyIntent(intent);
358
+ return intent;
359
+ }
360
+ #requireIntent(intent) {
361
+ const existing = this.#readIntent(intent.entityId, intent.authorityId);
362
+ if (!existing)
363
+ throw new Error(`entity ${intent.entityId} has no durable Apply intent`);
364
+ return existing;
365
+ }
366
+ }
367
+ //# sourceMappingURL=entity-apply-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-apply-store.js","sourceRoot":"","sources":["../src/entity-apply-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** Persistent SQLite effects for Live's entity Record rail. No delivery policy lives here. */
2
+ import { type AcceptedEntityRecord, type DeliveredEntityRecord, type EntityRecordStorePort, type PendingEntityRecord, type ReceiveEntityDeliveriesResult } from "@amalgm/live";
3
+ import Database from "better-sqlite3";
4
+ export declare class EntityRecordSqliteStore implements EntityRecordStorePort {
5
+ #private;
6
+ constructor(database: Database.Database, now?: () => number);
7
+ readPending(): readonly PendingEntityRecord[];
8
+ stampAccepted(row: PendingEntityRecord, accepted: AcceptedEntityRecord): void;
9
+ readDeliveryCursor(authorityId: string): number;
10
+ readEntityCursors(authorityId: string): ReadonlyMap<string, number>;
11
+ receive(input: {
12
+ readonly authorityId: string;
13
+ readonly deliveries: readonly DeliveredEntityRecord[];
14
+ readonly advanceDeliveryCursor: boolean;
15
+ }): ReceiveEntityDeliveriesResult;
16
+ close(): void;
17
+ }
@@ -0,0 +1,144 @@
1
+ /** Persistent SQLite effects for Live's entity Record rail. No delivery policy lives here. */
2
+ import { acceptOutboxRow, decodeAcceptedEntityRecord, decodeLocalEntityRecord, encodeEntityRecord, receiveEntityRecord, } from "@amalgm/live";
3
+ class ReceiveGap extends Error {
4
+ result;
5
+ constructor(result) {
6
+ super("entity record receive gap");
7
+ this.result = result;
8
+ }
9
+ }
10
+ export class EntityRecordSqliteStore {
11
+ #database;
12
+ #now;
13
+ #pending;
14
+ #stamp;
15
+ #outboxReceipt;
16
+ #deliveryCursor;
17
+ #entityCursor;
18
+ #entityCursors;
19
+ #inboxRecord;
20
+ #insertInbox;
21
+ #advanceEntityCursor;
22
+ #advanceDeliveryCursor;
23
+ constructor(database, now = Date.now) {
24
+ this.#database = database;
25
+ this.#now = now;
26
+ this.#pending = database.prepare(`
27
+ SELECT local_sequence AS localSequence, record_json AS recordJson
28
+ FROM record_outbox WHERE status = 'pending' ORDER BY local_sequence
29
+ `);
30
+ this.#stamp = database.prepare(`
31
+ UPDATE record_outbox
32
+ SET status = 'accepted', global_sequence = ?, accepted_at = ?
33
+ WHERE mutation_id = ? AND status = 'pending'
34
+ `);
35
+ this.#outboxReceipt = database.prepare(`
36
+ SELECT status, global_sequence AS globalSequence
37
+ FROM record_outbox WHERE mutation_id = ?
38
+ `);
39
+ this.#deliveryCursor = database.prepare(`
40
+ SELECT received_through AS receivedThrough
41
+ FROM authority_delivery_cursors WHERE authority_id = ?
42
+ `);
43
+ this.#entityCursor = database.prepare(`
44
+ SELECT authority_id AS authorityId, received_through AS receivedThrough
45
+ FROM entity_receive_cursors WHERE entity_id = ?
46
+ `);
47
+ this.#entityCursors = database.prepare(`
48
+ SELECT entity_id AS entityId, received_through AS receivedThrough
49
+ FROM entity_receive_cursors WHERE authority_id = ?
50
+ `);
51
+ this.#inboxRecord = database.prepare(`
52
+ SELECT record_json AS recordJson FROM record_inbox
53
+ WHERE authority_id = ? AND entity_id = ? AND global_sequence = ?
54
+ `);
55
+ this.#insertInbox = database.prepare(`
56
+ INSERT INTO record_inbox(
57
+ authority_id, entity_id, global_sequence, delivery_sequence,
58
+ mutation_id, record_json, received_at
59
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
60
+ `);
61
+ this.#advanceEntityCursor = database.prepare(`
62
+ INSERT INTO entity_receive_cursors(authority_id, entity_id, received_through)
63
+ VALUES (?, ?, ?)
64
+ ON CONFLICT(entity_id) DO UPDATE SET
65
+ received_through = excluded.received_through
66
+ `);
67
+ this.#advanceDeliveryCursor = database.prepare(`
68
+ INSERT INTO authority_delivery_cursors(authority_id, received_through)
69
+ VALUES (?, ?)
70
+ ON CONFLICT(authority_id) DO UPDATE SET
71
+ received_through = MAX(received_through, excluded.received_through)
72
+ `);
73
+ }
74
+ readPending() {
75
+ return this.#pending.all().map((row) => ({
76
+ localSequence: row.localSequence,
77
+ record: decodeLocalEntityRecord(row.recordJson),
78
+ status: "pending",
79
+ globalSequence: null,
80
+ }));
81
+ }
82
+ stampAccepted(row, accepted) {
83
+ const receipt = acceptOutboxRow(row, accepted);
84
+ if (receipt.status !== "accepted")
85
+ throw new Error("authority acknowledgement was not accepted");
86
+ this.#database.transaction(() => {
87
+ const updated = this.#stamp.run(accepted.globalSequence, accepted.acceptedAt, accepted.mutationId);
88
+ if (updated.changes === 1)
89
+ return;
90
+ const existing = this.#outboxReceipt.get(accepted.mutationId);
91
+ if (existing?.status !== "accepted"
92
+ || existing.globalSequence !== accepted.globalSequence) {
93
+ throw new Error("outbox acknowledgement did not match its retained row");
94
+ }
95
+ })();
96
+ }
97
+ readDeliveryCursor(authorityId) {
98
+ const row = this.#deliveryCursor.get(authorityId);
99
+ return row?.receivedThrough ?? 0;
100
+ }
101
+ readEntityCursors(authorityId) {
102
+ return new Map(this.#entityCursors.all(authorityId).map((row) => [row.entityId, row.receivedThrough]));
103
+ }
104
+ receive(input) {
105
+ try {
106
+ return this.#database.transaction(() => {
107
+ for (const delivery of input.deliveries) {
108
+ if (delivery.record.authorityId !== input.authorityId) {
109
+ throw new Error(`entity record authority ${delivery.record.authorityId} does not match ${input.authorityId}`);
110
+ }
111
+ const cursor = this.#entityCursor.get(delivery.record.entityId);
112
+ if (cursor && cursor.authorityId !== delivery.record.authorityId) {
113
+ throw new Error(`entity ${delivery.record.entityId} cannot change authority channels`);
114
+ }
115
+ const existingRow = this.#inboxRecord.get(delivery.record.authorityId, delivery.record.entityId, delivery.record.globalSequence);
116
+ const decision = receiveEntityRecord(cursor?.receivedThrough ?? 0, delivery.record, existingRow ? decodeAcceptedEntityRecord(existingRow.recordJson) : null);
117
+ if (decision.kind === "gap") {
118
+ throw new ReceiveGap({ kind: "gap", gap: decision });
119
+ }
120
+ if (decision.kind === "duplicate")
121
+ continue;
122
+ this.#insertInbox.run(delivery.record.authorityId, delivery.record.entityId, delivery.record.globalSequence, delivery.deliverySequence, delivery.record.mutationId, encodeEntityRecord(delivery.record), this.#now());
123
+ this.#advanceEntityCursor.run(delivery.record.authorityId, delivery.record.entityId, decision.receivedThrough);
124
+ }
125
+ if (input.advanceDeliveryCursor && input.deliveries.length > 0) {
126
+ this.#advanceDeliveryCursor.run(input.authorityId, Math.max(...input.deliveries.map((delivery) => delivery.deliverySequence)));
127
+ }
128
+ return {
129
+ kind: "stored",
130
+ deliveryCursor: this.readDeliveryCursor(input.authorityId),
131
+ };
132
+ })();
133
+ }
134
+ catch (error) {
135
+ if (error instanceof ReceiveGap)
136
+ return error.result;
137
+ throw error;
138
+ }
139
+ }
140
+ close() {
141
+ this.#database.close();
142
+ }
143
+ }
144
+ //# sourceMappingURL=entity-record-store.js.map