@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.
Files changed (55) hide show
  1. package/dist/browser.mjs +1 -1
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/src/handlers/records-query.js +9 -11
  4. package/dist/esm/src/handlers/records-query.js.map +1 -1
  5. package/dist/esm/src/handlers/records-read.js +15 -6
  6. package/dist/esm/src/handlers/records-read.js.map +1 -1
  7. package/dist/esm/src/handlers/records-subscribe.js +8 -11
  8. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  9. package/dist/esm/src/handlers/records-write.js +6 -12
  10. package/dist/esm/src/handlers/records-write.js.map +1 -1
  11. package/dist/esm/src/interfaces/records-write-query.js +3 -0
  12. package/dist/esm/src/interfaces/records-write-query.js.map +1 -1
  13. package/dist/esm/src/store/message-store-level.js +104 -3
  14. package/dist/esm/src/store/message-store-level.js.map +1 -1
  15. package/dist/esm/src/store/storage-controller.js +44 -33
  16. package/dist/esm/src/store/storage-controller.js.map +1 -1
  17. package/dist/esm/src/utils/initial-write-attachment.js +48 -0
  18. package/dist/esm/src/utils/initial-write-attachment.js.map +1 -0
  19. package/dist/esm/tests/handlers/records-query.spec.js +82 -0
  20. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  21. package/dist/esm/tests/handlers/records-read.spec.js +25 -0
  22. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  23. package/dist/esm/tests/handlers/records-subscribe.spec.js +60 -1
  24. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  25. package/dist/esm/tests/store/message-store.spec.js +105 -0
  26. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  27. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  28. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  29. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  30. package/dist/types/src/index.d.ts +1 -1
  31. package/dist/types/src/index.d.ts.map +1 -1
  32. package/dist/types/src/interfaces/records-write-query.d.ts.map +1 -1
  33. package/dist/types/src/store/message-store-level.d.ts +9 -1
  34. package/dist/types/src/store/message-store-level.d.ts.map +1 -1
  35. package/dist/types/src/store/storage-controller.d.ts +18 -8
  36. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  37. package/dist/types/src/types/message-store.d.ts +36 -0
  38. package/dist/types/src/types/message-store.d.ts.map +1 -1
  39. package/dist/types/src/utils/initial-write-attachment.d.ts +17 -0
  40. package/dist/types/src/utils/initial-write-attachment.d.ts.map +1 -0
  41. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  42. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  43. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  44. package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/handlers/records-query.ts +21 -22
  47. package/src/handlers/records-read.ts +22 -9
  48. package/src/handlers/records-subscribe.ts +9 -15
  49. package/src/handlers/records-write.ts +15 -15
  50. package/src/index.ts +1 -1
  51. package/src/interfaces/records-write-query.ts +3 -0
  52. package/src/store/message-store-level.ts +160 -5
  53. package/src/store/storage-controller.ts +57 -43
  54. package/src/types/message-store.ts +37 -0
  55. 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
- const { position } = await this.messageStore.put(tenant, message, indexes);
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
- * Deletes all messages in `existingMessages` that the `retainedMessage` displaces, while keeping
212
- * the initial write and the caller-supplied writes as non-latest state for future replay and
213
- * tombstone visibility reconstruction. Displacement is deliberately NOT a timestamp comparison:
214
- * a RecordsDelete displaces even a newer RecordsWrite (delete-wins convergence), and on
215
- * resumable-task replay the retained message itself is back in `existingMessages` and must
216
- * survive — so membership is decided by CID.
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 deleteDisplacedMessagesAndRetainWrites(tenant, existingMessages, retainedMessage, messageStore, dataStore, additionalRetainedRecordsWrites) {
219
- const retainedMessageCid = await Message.getCid(retainedMessage);
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 DWN may crash before `delete()` is called below, so we use a loop as a tactic to clean up lingering data as needed
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 !== retainedMessageCid;
229
- if (messageIsDisplaced) {
230
- // the easiest implementation here is delete each old messages
231
- // and re-create it with the right index (isLatestBaseState = 'false') if the message is a retained write,
232
- // but there is room for better/more efficient implementation here
233
- await StorageController.deleteFromDataStoreIfNeeded(dataStore, tenant, message, retainedMessage);
234
- // Retained writes must stay in the message store and state index so future deletes and
235
- // replicas can reconstruct tombstone visibility, but they must no longer be latest state.
236
- const shouldKeepAsNonLatestWrite = await RecordsWrite.isInitialWrite(message) ||
237
- additionalRetainedRecordsWriteCids.has(messageCid);
238
- if (shouldKeepAsNonLatestWrite) {
239
- const retainedRecordsWriteMessage = StorageController.stripInlineData(message);
240
- const existingRecordsWrite = await RecordsWrite.parse(retainedRecordsWriteMessage);
241
- const isLatestBaseState = false;
242
- const indexes = await existingRecordsWrite.constructIndexes(isLatestBaseState);
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":"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"}
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