@enbox/dwn-sdk-js 0.4.10 → 0.4.11
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/browser.mjs +1 -1
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/src/handlers/records-query.js +9 -11
- package/dist/esm/src/handlers/records-query.js.map +1 -1
- package/dist/esm/src/handlers/records-read.js +15 -6
- package/dist/esm/src/handlers/records-read.js.map +1 -1
- package/dist/esm/src/handlers/records-subscribe.js +8 -11
- package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/records-write.js +6 -12
- package/dist/esm/src/handlers/records-write.js.map +1 -1
- package/dist/esm/src/interfaces/records-write-query.js +3 -0
- package/dist/esm/src/interfaces/records-write-query.js.map +1 -1
- package/dist/esm/src/store/message-store-level.js +104 -3
- package/dist/esm/src/store/message-store-level.js.map +1 -1
- package/dist/esm/src/store/storage-controller.js +44 -33
- package/dist/esm/src/store/storage-controller.js.map +1 -1
- package/dist/esm/src/utils/initial-write-attachment.js +48 -0
- package/dist/esm/src/utils/initial-write-attachment.js.map +1 -0
- package/dist/esm/tests/handlers/records-query.spec.js +82 -0
- package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-read.spec.js +25 -0
- package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-subscribe.spec.js +60 -1
- package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/store/message-store.spec.js +105 -0
- package/dist/esm/tests/store/message-store.spec.js.map +1 -1
- package/dist/types/src/handlers/records-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-read.d.ts.map +1 -1
- package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write-query.d.ts.map +1 -1
- package/dist/types/src/store/message-store-level.d.ts +9 -1
- package/dist/types/src/store/message-store-level.d.ts.map +1 -1
- package/dist/types/src/store/storage-controller.d.ts +18 -8
- package/dist/types/src/store/storage-controller.d.ts.map +1 -1
- package/dist/types/src/types/message-store.d.ts +36 -0
- package/dist/types/src/types/message-store.d.ts.map +1 -1
- package/dist/types/src/utils/initial-write-attachment.d.ts +17 -0
- package/dist/types/src/utils/initial-write-attachment.d.ts.map +1 -0
- package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
- package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/handlers/records-query.ts +21 -22
- package/src/handlers/records-read.ts +22 -9
- package/src/handlers/records-subscribe.ts +9 -15
- package/src/handlers/records-write.ts +15 -15
- package/src/index.ts +1 -1
- package/src/interfaces/records-write-query.ts +3 -0
- package/src/store/message-store-level.ts +160 -5
- package/src/store/storage-controller.ts +57 -43
- package/src/types/message-store.ts +37 -0
- package/src/utils/initial-write-attachment.ts +64 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-store-level.js","sourceRoot":"","sources":["../../../../src/store/message-store-level.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-store-level.js","sourceRoot":"","sources":["../../../../src/store/message-store-level.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,9 @@ export class StorageController {
|
|
|
44
44
|
// tombstones carry no visibility facts in their descriptors, so the retained write is the
|
|
45
45
|
// durable source of truth for later prune/replay/replication index reconstruction.
|
|
46
46
|
const indexes = recordsDelete.constructIndexes(initialWrite, newestPreDeleteWrite);
|
|
47
|
-
|
|
47
|
+
// store the tombstone and displace every other message for this record in one atomic commit,
|
|
48
|
+
// retaining the writes needed for replay and future tombstone visibility
|
|
49
|
+
const { position } = await StorageController.commitLatestStateTransition(tenant, existingMessages, { message, indexes }, [newestPreDeleteWrite], this.messageStore, this.dataStore);
|
|
48
50
|
if (message.descriptor.prune) {
|
|
49
51
|
// purge/hard-delete all descendant records. Cascade is intentionally protocol-agnostic:
|
|
50
52
|
// `parentContextId` is a structural link, and a prune removes the whole subtree regardless
|
|
@@ -52,8 +54,6 @@ export class StorageController {
|
|
|
52
54
|
// `$ref`/`uses`) participate in the cascade. See issue #298 for the design discussion.
|
|
53
55
|
await StorageController.purgeRecordDescendants(tenant, message.descriptor.recordId, this.messageStore, this.dataStore);
|
|
54
56
|
}
|
|
55
|
-
// displace every other message for this record, retaining the writes needed for replay and future tombstone visibility
|
|
56
|
-
await StorageController.deleteDisplacedMessagesAndRetainWrites(tenant, existingMessages, message, this.messageStore, this.dataStore, [newestPreDeleteWrite]);
|
|
57
57
|
return { position };
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
@@ -208,46 +208,57 @@ export class StorageController {
|
|
|
208
208
|
await Promise.all(messageCids.map((messageCid) => messageStore.delete(tenant, messageCid)));
|
|
209
209
|
}
|
|
210
210
|
/**
|
|
211
|
-
*
|
|
212
|
-
* the initial write and the caller-supplied writes
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
211
|
+
* Stores the new latest message and displaces every other message in `existingMessages` as ONE
|
|
212
|
+
* atomic message-store commit: the initial write and the caller-supplied writes are retained as
|
|
213
|
+
* non-latest state for future replay and tombstone visibility reconstruction, and the remaining
|
|
214
|
+
* displaced messages are deleted. Readers can never observe an intermediate state where both the
|
|
215
|
+
* new message and a displaced message carry latest-state indexes.
|
|
216
|
+
*
|
|
217
|
+
* Displacement is deliberately NOT a timestamp comparison: a RecordsDelete displaces even a
|
|
218
|
+
* newer RecordsWrite (delete-wins convergence), and on resumable-task replay the new message
|
|
219
|
+
* itself is back in `existingMessages` and must survive — so membership is decided by CID.
|
|
220
|
+
*
|
|
221
|
+
* Displaced messages' unreferenced data is deleted from the data store only AFTER the commit:
|
|
222
|
+
* a crash in between leaves at most an orphaned data blob, never a live row whose data is gone.
|
|
217
223
|
*/
|
|
218
|
-
static async
|
|
219
|
-
const
|
|
224
|
+
static async commitLatestStateTransition(tenant, existingMessages, newMessage, additionalRetainedRecordsWrites, messageStore, dataStore) {
|
|
225
|
+
const newMessageCid = await Message.getCid(newMessage.message);
|
|
220
226
|
const additionalRetainedRecordsWriteCids = new Set();
|
|
221
227
|
for (const retainedRecordsWrite of additionalRetainedRecordsWrites) {
|
|
222
228
|
additionalRetainedRecordsWriteCids.add(await Message.getCid(retainedRecordsWrite));
|
|
223
229
|
}
|
|
224
230
|
// NOTE: under normal operation, there should only be at most two existing records per `recordId` (initial + a potential subsequent write/delete),
|
|
225
|
-
// but the
|
|
231
|
+
// but the plan-then-commit shape below heals any lingering rows a previous partial application left behind.
|
|
232
|
+
const retains = [];
|
|
233
|
+
const deletes = [];
|
|
234
|
+
const displacedMessages = [];
|
|
226
235
|
for (const message of existingMessages) {
|
|
227
236
|
const messageCid = await Message.getCid(message);
|
|
228
|
-
const messageIsDisplaced = messageCid !==
|
|
229
|
-
if (messageIsDisplaced) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
await messageStore.updateMessageAndIndexes(tenant, messageCid, retainedRecordsWriteMessage, indexes);
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
// delete message from message store
|
|
247
|
-
await messageStore.delete(tenant, messageCid);
|
|
248
|
-
}
|
|
237
|
+
const messageIsDisplaced = messageCid !== newMessageCid;
|
|
238
|
+
if (!messageIsDisplaced) {
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
displacedMessages.push(message);
|
|
242
|
+
// Retained writes must stay in the message store and state index so future deletes and
|
|
243
|
+
// replicas can reconstruct tombstone visibility, but they must no longer be latest state.
|
|
244
|
+
const shouldKeepAsNonLatestWrite = await RecordsWrite.isInitialWrite(message) ||
|
|
245
|
+
additionalRetainedRecordsWriteCids.has(messageCid);
|
|
246
|
+
if (shouldKeepAsNonLatestWrite) {
|
|
247
|
+
const retainedRecordsWriteMessage = StorageController.stripInlineData(message);
|
|
248
|
+
const existingRecordsWrite = await RecordsWrite.parse(retainedRecordsWriteMessage);
|
|
249
|
+
const isLatestBaseState = false;
|
|
250
|
+
const indexes = await existingRecordsWrite.constructIndexes(isLatestBaseState);
|
|
251
|
+
retains.push({ messageCid, message: retainedRecordsWriteMessage, indexes });
|
|
249
252
|
}
|
|
253
|
+
else {
|
|
254
|
+
deletes.push(messageCid);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
const putResult = await messageStore.commitLatestState(tenant, { put: newMessage, retains, deletes });
|
|
258
|
+
for (const message of displacedMessages) {
|
|
259
|
+
await StorageController.deleteFromDataStoreIfNeeded(dataStore, tenant, message, newMessage.message);
|
|
250
260
|
}
|
|
261
|
+
return putResult;
|
|
251
262
|
}
|
|
252
263
|
static stripInlineData(message) {
|
|
253
264
|
const retainedMessage = { ...message };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-controller.js","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAiBnF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAEX,YAAY,CAAe;IAC3B,SAAS,CAAY;IAEtC,YAAmB,EAAE,YAAY,EAAE,SAAS,EAG3C;QAEC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAA8B;QAC/E,+CAA+C;QAC/C,MAAM,KAAK,GAAG;YACZ,SAAS,EAAG,gBAAgB,CAAC,OAAO;YACpC,QAAQ,EAAI,OAAO,CAAC,UAAU,CAAC,QAAQ;SACxC,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAE,KAAK,CAAE,CAAC,CAAC;QAExF,8EAA8E;QAC9E,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAE/E,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,sFAAsF;QACtF,yFAAyF;QACzF,iEAAiE;QACjE,IAAI,MAAM,OAAO,CAAC,iCAAiC,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACpF,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,yIAAyI;QACzI,4FAA4F;QAC5F,2IAA2I;QAE3I,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC1E,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC;QAEnG,6FAA6F;QAC7F,4FAA4F;QAC5F,0FAA0F;QAC1F,mFAAmF;QACnF,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-controller.js","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { DwnErrorCode } from '../core/dwn-error.js';
|
|
2
|
+
import { Messages } from './messages.js';
|
|
3
|
+
import { RecordsWrite } from '../interfaces/records-write.js';
|
|
4
|
+
/**
|
|
5
|
+
* Attaches each returned update's retained initial write, resolved for the whole result page in
|
|
6
|
+
* one batched lookup by the stable identity `entryId === recordId` — unlike the mutable
|
|
7
|
+
* latest-state index, that identity holds at every point of the record's lifecycle.
|
|
8
|
+
*
|
|
9
|
+
* An update whose initial write is genuinely missing (store corruption) is omitted with a
|
|
10
|
+
* warning rather than failing the whole reply.
|
|
11
|
+
*/
|
|
12
|
+
export async function attachInitialWrites(input) {
|
|
13
|
+
const updateRecordIds = new Set();
|
|
14
|
+
const initialWriteState = new Map();
|
|
15
|
+
for (const recordsWrite of input.recordsWrites) {
|
|
16
|
+
const isInitialWrite = await RecordsWrite.isInitialWrite(recordsWrite);
|
|
17
|
+
initialWriteState.set(recordsWrite, isInitialWrite);
|
|
18
|
+
if (!isInitialWrite) {
|
|
19
|
+
updateRecordIds.add(recordsWrite.recordId);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (updateRecordIds.size === 0) {
|
|
23
|
+
return input.recordsWrites;
|
|
24
|
+
}
|
|
25
|
+
const initialWriteByRecordId = new Map();
|
|
26
|
+
const { messages } = await input.messageStore.query(input.tenant, [{ entryId: [...updateRecordIds] }]);
|
|
27
|
+
for (const message of messages) {
|
|
28
|
+
const initialWrite = message;
|
|
29
|
+
initialWriteByRecordId.set(initialWrite.recordId, initialWrite);
|
|
30
|
+
}
|
|
31
|
+
const completeRecordsWrites = [];
|
|
32
|
+
for (const recordsWrite of input.recordsWrites) {
|
|
33
|
+
if (initialWriteState.get(recordsWrite) === true) {
|
|
34
|
+
completeRecordsWrites.push(recordsWrite);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const storedInitialWrite = initialWriteByRecordId.get(recordsWrite.recordId);
|
|
38
|
+
if (storedInitialWrite === undefined) {
|
|
39
|
+
console.warn(`${DwnErrorCode.RecordsWriteGetInitialWriteNotFound}: ` +
|
|
40
|
+
`${input.operationName} skipped record ${recordsWrite.recordId}`);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const { message: initialWrite } = Messages.detachEncodedData(storedInitialWrite);
|
|
44
|
+
completeRecordsWrites.push({ ...recordsWrite, initialWrite: initialWrite });
|
|
45
|
+
}
|
|
46
|
+
return completeRecordsWrites;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=initial-write-attachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initial-write-attachment.js","sourceRoot":"","sources":["../../../../src/utils/initial-write-attachment.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAKzC;IACC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;IACrE,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACvE,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,aAAa,CAAC;IAC7B,CAAC;IAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACzE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IACvG,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,OAAiC,CAAC;QACvD,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,qBAAqB,GAA6B,EAAE,CAAC;IAC3D,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CACV,GAAG,YAAY,CAAC,mCAAmC,IAAI;gBACvD,GAAG,KAAK,CAAC,aAAa,mBAAmB,YAAY,CAAC,QAAQ,EAAE,CACjE,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACjF,qBAAqB,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,EAAE,YAAY,EAAE,YAAsC,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC"}
|
|
@@ -727,12 +727,94 @@ export function testRecordsQueryHandler() {
|
|
|
727
727
|
const write2Reply = await dwn.processMessage(alice.did, write2.message);
|
|
728
728
|
expect(write2Reply.status.code).toBe(202);
|
|
729
729
|
// make sure result returned now has `initialWrite` property
|
|
730
|
+
const querySpy = sinon.spy(messageStore, 'query');
|
|
730
731
|
const messageData = await TestDataGenerator.generateRecordsQuery({ author: alice, filter: { recordId: write.message.recordId } });
|
|
731
732
|
const reply = await dwn.processMessage(alice.did, messageData.message);
|
|
732
733
|
expect(reply.status.code).toBe(200);
|
|
733
734
|
expect(reply.entries).toHaveLength(1);
|
|
734
735
|
expect(reply.entries[0].initialWrite).toBeDefined();
|
|
735
736
|
expect(reply.entries[0].initialWrite?.recordId).toBe(write.message.recordId);
|
|
737
|
+
expect(querySpy.getCalls().some((call) => call.args[1].some((filter) => filter.entryId === write.message.recordId ||
|
|
738
|
+
(Array.isArray(filter.entryId) && filter.entryId.includes(write.message.recordId))))).toBe(true);
|
|
739
|
+
});
|
|
740
|
+
it('should omit an update whose initial write is missing without failing the query', async () => {
|
|
741
|
+
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
742
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
743
|
+
const schema = 'https://schema.example/incomplete-initial-write';
|
|
744
|
+
const timestamps = [1, 2, 3].map(seconds => Time.createOffsetTimestamp({ seconds }));
|
|
745
|
+
const writes = await Promise.all(timestamps.map(timestamp => TestDataGenerator.generateRecordsWrite({
|
|
746
|
+
author: alice,
|
|
747
|
+
schema,
|
|
748
|
+
dateCreated: timestamp,
|
|
749
|
+
messageTimestamp: timestamp,
|
|
750
|
+
})));
|
|
751
|
+
for (const write of writes) {
|
|
752
|
+
const writeReply = await dwn.processMessage(alice.did, write.message, { dataStream: write.dataStream });
|
|
753
|
+
expect(writeReply.status.code).toBe(202);
|
|
754
|
+
}
|
|
755
|
+
const update = await RecordsWrite.createFrom({
|
|
756
|
+
recordsWriteMessage: writes[1].message,
|
|
757
|
+
published: true,
|
|
758
|
+
messageTimestamp: Time.createOffsetTimestamp({ seconds: 10 }),
|
|
759
|
+
signer: Jws.createSigner(alice),
|
|
760
|
+
});
|
|
761
|
+
const updateReply = await dwn.processMessage(alice.did, update.message);
|
|
762
|
+
expect(updateReply.status.code).toBe(202);
|
|
763
|
+
// Simulate store corruption: leave the latest update indexed but remove its retained
|
|
764
|
+
// initial-write row (the write path commits both atomically, so only corruption or
|
|
765
|
+
// partial deletion can produce this state).
|
|
766
|
+
await messageStore.delete(alice.did, await Message.getCid(writes[1].message));
|
|
767
|
+
const warningSpy = sinon.stub(console, 'warn');
|
|
768
|
+
const query = await TestDataGenerator.generateRecordsQuery({
|
|
769
|
+
author: alice,
|
|
770
|
+
filter: { schema },
|
|
771
|
+
dateSort: DateSort.CreatedAscending,
|
|
772
|
+
});
|
|
773
|
+
const reply = await dwn.processMessage(alice.did, query.message);
|
|
774
|
+
expect(reply.status.code).toBe(200);
|
|
775
|
+
expect(reply.entries?.map(entry => entry.recordId)).toEqual([
|
|
776
|
+
writes[0].message.recordId,
|
|
777
|
+
writes[2].message.recordId,
|
|
778
|
+
]);
|
|
779
|
+
expect(warningSpy.called).toBe(true);
|
|
780
|
+
const warnings = warningSpy.getCalls().flatMap(call => call.args).join(' ');
|
|
781
|
+
expect(warnings).toContain(DwnErrorCode.RecordsWriteGetInitialWriteNotFound);
|
|
782
|
+
expect(warnings).toContain('RecordsQuery');
|
|
783
|
+
expect(warnings).toContain(writes[1].message.recordId);
|
|
784
|
+
});
|
|
785
|
+
it('should not throw across Query, Read, and Subscribe while a record has two latest-state rows', async () => {
|
|
786
|
+
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
787
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
788
|
+
const schema = 'https://schema.example/two-latest-residue';
|
|
789
|
+
const write = await TestDataGenerator.generateRecordsWrite({ author: alice, schema });
|
|
790
|
+
expect((await dwn.processMessage(alice.did, write.message, { dataStream: write.dataStream })).status.code).toBe(202);
|
|
791
|
+
// Manufacture the residue the legacy two-step write path left behind when it crashed
|
|
792
|
+
// between inserting the update and demoting the initial write: an update marked latest
|
|
793
|
+
// while the initial write's latest-state row was never demoted. The atomic commit makes
|
|
794
|
+
// this state unreachable going forward, but stores that ran the old code can still hold
|
|
795
|
+
// it, and readers must tolerate it rather than crash (the failure that aborted sync).
|
|
796
|
+
const update = await TestDataGenerator.generateFromRecordsWrite({ author: alice, existingWrite: write.recordsWrite });
|
|
797
|
+
const updateWithEncodedData = { ...update.message, encodedData: Encoder.bytesToBase64Url(update.dataBytes) };
|
|
798
|
+
await messageStore.put(alice.did, updateWithEncodedData, await update.recordsWrite.constructIndexes(true));
|
|
799
|
+
// Query returns both versions (the accepted transient duplicate) with the update's
|
|
800
|
+
// initial write attached via its stable entry ID.
|
|
801
|
+
const query = await TestDataGenerator.generateRecordsQuery({ author: alice, filter: { schema } });
|
|
802
|
+
const queryReply = await dwn.processMessage(alice.did, query.message);
|
|
803
|
+
expect(queryReply.status.code).toBe(200);
|
|
804
|
+
expect(queryReply.entries).toHaveLength(2);
|
|
805
|
+
const updateEntry = queryReply.entries.find((entry) => entry.descriptor.messageTimestamp === update.message.descriptor.messageTimestamp);
|
|
806
|
+
expect(updateEntry?.initialWrite?.recordId).toBe(write.message.recordId);
|
|
807
|
+
// Read returns one of the two versions without throwing.
|
|
808
|
+
const read = await RecordsRead.create({ filter: { recordId: write.message.recordId }, signer: Jws.createSigner(alice) });
|
|
809
|
+
const readReply = await dwn.processMessage(alice.did, read.message);
|
|
810
|
+
expect(readReply.status.code).toBe(200);
|
|
811
|
+
expect(readReply.entry.recordsWrite.recordId).toBe(write.message.recordId);
|
|
812
|
+
// Subscribe's initial snapshot also tolerates the state.
|
|
813
|
+
const subscribe = await TestDataGenerator.generateRecordsSubscribe({ author: alice, filter: { schema } });
|
|
814
|
+
const subReply = await dwn.processMessage(alice.did, subscribe.message, { subscriptionHandler: () => { } });
|
|
815
|
+
expect(subReply.status.code).toBe(200);
|
|
816
|
+
expect(subReply.entries.length).toBeGreaterThanOrEqual(1);
|
|
817
|
+
await subReply.subscription.close();
|
|
736
818
|
});
|
|
737
819
|
it('should be able to query by attester', async () => {
|
|
738
820
|
// scenario: 2 records authored by alice, 1st attested by alice, 2nd attested by bob
|