@enbox/dwn-sdk-js 0.0.6 → 0.0.8

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 (527) hide show
  1. package/dist/browser.mjs +8 -8
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/generated/precompiled-validators.js +762 -911
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/src/core/abstract-message.js +4 -0
  6. package/dist/esm/src/core/abstract-message.js.map +1 -1
  7. package/dist/esm/src/core/auth.js +22 -33
  8. package/dist/esm/src/core/auth.js.map +1 -1
  9. package/dist/esm/src/core/constants.js +11 -0
  10. package/dist/esm/src/core/constants.js.map +1 -0
  11. package/dist/esm/src/core/core-protocol.js +44 -0
  12. package/dist/esm/src/core/core-protocol.js.map +1 -0
  13. package/dist/esm/src/core/dwn-constant.js +7 -7
  14. package/dist/esm/src/core/dwn-constant.js.map +1 -1
  15. package/dist/esm/src/core/dwn-error.js +10 -12
  16. package/dist/esm/src/core/dwn-error.js.map +1 -1
  17. package/dist/esm/src/core/grant-authorization.js +50 -52
  18. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  19. package/dist/esm/src/core/message.js +85 -116
  20. package/dist/esm/src/core/message.js.map +1 -1
  21. package/dist/esm/src/core/messages-grant-authorization.js +63 -78
  22. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  23. package/dist/esm/src/core/protocol-authorization-action.js +266 -0
  24. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -0
  25. package/dist/esm/src/core/protocol-authorization-validation.js +321 -0
  26. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -0
  27. package/dist/esm/src/core/protocol-authorization.js +144 -741
  28. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  29. package/dist/esm/src/core/protocols-grant-authorization.js +24 -38
  30. package/dist/esm/src/core/protocols-grant-authorization.js.map +1 -1
  31. package/dist/esm/src/core/record-chain.js +64 -0
  32. package/dist/esm/src/core/record-chain.js.map +1 -0
  33. package/dist/esm/src/core/records-grant-authorization.js +53 -72
  34. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  35. package/dist/esm/src/core/resumable-task-manager.js +50 -65
  36. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  37. package/dist/esm/src/core/tenant-gate.js +2 -13
  38. package/dist/esm/src/core/tenant-gate.js.map +1 -1
  39. package/dist/esm/src/dwn.js +108 -101
  40. package/dist/esm/src/dwn.js.map +1 -1
  41. package/dist/esm/src/event-stream/event-emitter-event-log.js +204 -0
  42. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -0
  43. package/dist/esm/src/handlers/messages-read.js +67 -81
  44. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  45. package/dist/esm/src/handlers/messages-subscribe.js +51 -63
  46. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  47. package/dist/esm/src/handlers/messages-sync.js +75 -89
  48. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  49. package/dist/esm/src/handlers/protocols-configure.js +153 -163
  50. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  51. package/dist/esm/src/handlers/protocols-query.js +52 -55
  52. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  53. package/dist/esm/src/handlers/records-count.js +97 -85
  54. package/dist/esm/src/handlers/records-count.js.map +1 -1
  55. package/dist/esm/src/handlers/records-delete.js +75 -93
  56. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  57. package/dist/esm/src/handlers/records-query.js +116 -105
  58. package/dist/esm/src/handlers/records-query.js.map +1 -1
  59. package/dist/esm/src/handlers/records-read.js +130 -132
  60. package/dist/esm/src/handlers/records-read.js.map +1 -1
  61. package/dist/esm/src/handlers/records-subscribe.js +164 -104
  62. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  63. package/dist/esm/src/handlers/records-write.js +213 -280
  64. package/dist/esm/src/handlers/records-write.js.map +1 -1
  65. package/dist/esm/src/index.js +5 -2
  66. package/dist/esm/src/index.js.map +1 -1
  67. package/dist/esm/src/interfaces/messages-read.js +24 -32
  68. package/dist/esm/src/interfaces/messages-read.js.map +1 -1
  69. package/dist/esm/src/interfaces/messages-subscribe.js +28 -41
  70. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  71. package/dist/esm/src/interfaces/messages-sync.js +26 -40
  72. package/dist/esm/src/interfaces/messages-sync.js.map +1 -1
  73. package/dist/esm/src/interfaces/protocols-configure.js +87 -65
  74. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  75. package/dist/esm/src/interfaces/protocols-query.js +55 -68
  76. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  77. package/dist/esm/src/interfaces/records-count.js +50 -66
  78. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  79. package/dist/esm/src/interfaces/records-delete.js +45 -55
  80. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  81. package/dist/esm/src/interfaces/records-query.js +60 -76
  82. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  83. package/dist/esm/src/interfaces/records-read.js +51 -67
  84. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  85. package/dist/esm/src/interfaces/records-subscribe.js +53 -68
  86. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  87. package/dist/esm/src/interfaces/records-write-query.js +102 -0
  88. package/dist/esm/src/interfaces/records-write-query.js.map +1 -0
  89. package/dist/esm/src/interfaces/records-write-signing.js +81 -0
  90. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -0
  91. package/dist/esm/src/interfaces/records-write.js +396 -610
  92. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  93. package/dist/esm/src/jose/algorithms/signing/ed25519.js +10 -19
  94. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  95. package/dist/esm/src/jose/jws/general/builder.js +23 -35
  96. package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
  97. package/dist/esm/src/jose/jws/general/verifier.js +56 -69
  98. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  99. package/dist/esm/src/protocols/permission-grant.js +43 -14
  100. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  101. package/dist/esm/src/protocols/permission-request.js +28 -14
  102. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  103. package/dist/esm/src/protocols/permissions.js +325 -227
  104. package/dist/esm/src/protocols/permissions.js.map +1 -1
  105. package/dist/esm/src/smt/smt-store-level.js +42 -64
  106. package/dist/esm/src/smt/smt-store-level.js.map +1 -1
  107. package/dist/esm/src/smt/smt-store-memory.js +19 -45
  108. package/dist/esm/src/smt/smt-store-memory.js.map +1 -1
  109. package/dist/esm/src/smt/smt-utils.js +28 -45
  110. package/dist/esm/src/smt/smt-utils.js.map +1 -1
  111. package/dist/esm/src/smt/sparse-merkle-tree.js +426 -471
  112. package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -1
  113. package/dist/esm/src/state-index/state-index-level.js +113 -150
  114. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  115. package/dist/esm/src/store/blockstore-level.js +54 -156
  116. package/dist/esm/src/store/blockstore-level.js.map +1 -1
  117. package/dist/esm/src/store/blockstore-mock.js +48 -153
  118. package/dist/esm/src/store/blockstore-mock.js.map +1 -1
  119. package/dist/esm/src/store/data-store-level.js +137 -100
  120. package/dist/esm/src/store/data-store-level.js.map +1 -1
  121. package/dist/esm/src/store/index-level-compound.js +246 -0
  122. package/dist/esm/src/store/index-level-compound.js.map +1 -0
  123. package/dist/esm/src/store/index-level.js +307 -715
  124. package/dist/esm/src/store/index-level.js.map +1 -1
  125. package/dist/esm/src/store/level-wrapper.js +143 -244
  126. package/dist/esm/src/store/level-wrapper.js.map +1 -1
  127. package/dist/esm/src/store/message-store-level.js +71 -94
  128. package/dist/esm/src/store/message-store-level.js.map +1 -1
  129. package/dist/esm/src/store/resumable-task-store-level.js +62 -101
  130. package/dist/esm/src/store/resumable-task-store-level.js.map +1 -1
  131. package/dist/esm/src/store/storage-controller.js +131 -146
  132. package/dist/esm/src/store/storage-controller.js.map +1 -1
  133. package/dist/esm/src/types/permission-types.js.map +1 -1
  134. package/dist/esm/src/types/protocols-types.js +10 -0
  135. package/dist/esm/src/types/protocols-types.js.map +1 -1
  136. package/dist/esm/src/types/records-types.js.map +1 -1
  137. package/dist/esm/src/utils/abort.js +8 -19
  138. package/dist/esm/src/utils/abort.js.map +1 -1
  139. package/dist/esm/src/utils/array.js +15 -49
  140. package/dist/esm/src/utils/array.js.map +1 -1
  141. package/dist/esm/src/utils/cid.js +29 -77
  142. package/dist/esm/src/utils/cid.js.map +1 -1
  143. package/dist/esm/src/utils/data-stream.js +37 -65
  144. package/dist/esm/src/utils/data-stream.js.map +1 -1
  145. package/dist/esm/src/utils/encryption.js +136 -162
  146. package/dist/esm/src/utils/encryption.js.map +1 -1
  147. package/dist/esm/src/utils/filter.js +1 -12
  148. package/dist/esm/src/utils/filter.js.map +1 -1
  149. package/dist/esm/src/utils/hd-key.js +45 -71
  150. package/dist/esm/src/utils/hd-key.js.map +1 -1
  151. package/dist/esm/src/utils/jws.js +9 -20
  152. package/dist/esm/src/utils/jws.js.map +1 -1
  153. package/dist/esm/src/utils/memory-cache.js +12 -23
  154. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  155. package/dist/esm/src/utils/messages.js +21 -33
  156. package/dist/esm/src/utils/messages.js.map +1 -1
  157. package/dist/esm/src/utils/private-key-signer.js +9 -17
  158. package/dist/esm/src/utils/private-key-signer.js.map +1 -1
  159. package/dist/esm/src/utils/protocols.js +62 -70
  160. package/dist/esm/src/utils/protocols.js.map +1 -1
  161. package/dist/esm/src/utils/records.js +103 -166
  162. package/dist/esm/src/utils/records.js.map +1 -1
  163. package/dist/esm/src/utils/secp256k1.js +60 -96
  164. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  165. package/dist/esm/src/utils/secp256r1.js +54 -71
  166. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  167. package/dist/esm/src/utils/time.js +5 -18
  168. package/dist/esm/src/utils/time.js.map +1 -1
  169. package/dist/esm/src/utils/url.js +3 -3
  170. package/dist/esm/src/utils/url.js.map +1 -1
  171. package/dist/esm/tests/core/auth.spec.js +3 -12
  172. package/dist/esm/tests/core/auth.spec.js.map +1 -1
  173. package/dist/esm/tests/core/message.spec.js +50 -59
  174. package/dist/esm/tests/core/message.spec.js.map +1 -1
  175. package/dist/esm/tests/core/protocol-authorization.spec.js +10 -18
  176. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  177. package/dist/esm/tests/dwn.spec.js +65 -89
  178. package/dist/esm/tests/dwn.spec.js.map +1 -1
  179. package/dist/esm/tests/event-emitter-event-log.spec.js +305 -0
  180. package/dist/esm/tests/event-emitter-event-log.spec.js.map +1 -0
  181. package/dist/esm/tests/features/author-delegated-grant.spec.js +337 -347
  182. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  183. package/dist/esm/tests/features/owner-delegated-grant.spec.js +160 -172
  184. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  185. package/dist/esm/tests/features/owner-signature.spec.js +78 -82
  186. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  187. package/dist/esm/tests/features/permissions.spec.js +449 -184
  188. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  189. package/dist/esm/tests/features/protocol-composition.spec.js +981 -360
  190. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  191. package/dist/esm/tests/features/protocol-create-action.spec.js +45 -54
  192. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  193. package/dist/esm/tests/features/protocol-delete-action.spec.js +99 -108
  194. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  195. package/dist/esm/tests/features/protocol-update-action.spec.js +108 -117
  196. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  197. package/dist/esm/tests/features/records-immutable.spec.js +315 -0
  198. package/dist/esm/tests/features/records-immutable.spec.js.map +1 -0
  199. package/dist/esm/tests/features/records-prune.spec.js +178 -194
  200. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  201. package/dist/esm/tests/features/records-record-limit.spec.js +542 -0
  202. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -0
  203. package/dist/esm/tests/features/records-tags.spec.js +456 -463
  204. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  205. package/dist/esm/tests/features/resumable-tasks.spec.js +88 -98
  206. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  207. package/dist/esm/tests/handlers/messages-read.spec.js +215 -210
  208. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  209. package/dist/esm/tests/handlers/messages-subscribe.spec.js +309 -171
  210. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  211. package/dist/esm/tests/handlers/messages-sync.spec.js +272 -199
  212. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  213. package/dist/esm/tests/handlers/protocols-configure.spec.js +247 -241
  214. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  215. package/dist/esm/tests/handlers/protocols-query.spec.js +159 -172
  216. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  217. package/dist/esm/tests/handlers/records-count.spec.js +101 -105
  218. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  219. package/dist/esm/tests/handlers/records-delete.spec.js +266 -279
  220. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  221. package/dist/esm/tests/handlers/records-query.spec.js +984 -996
  222. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  223. package/dist/esm/tests/handlers/records-read.spec.js +542 -671
  224. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  225. package/dist/esm/tests/handlers/records-subscribe.spec.js +433 -302
  226. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  227. package/dist/esm/tests/handlers/records-write.spec.js +1216 -1140
  228. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  229. package/dist/esm/tests/interfaces/messages-get.spec.js +39 -48
  230. package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -1
  231. package/dist/esm/tests/interfaces/messages-subscribe.spec.js +4 -13
  232. package/dist/esm/tests/interfaces/messages-subscribe.spec.js.map +1 -1
  233. package/dist/esm/tests/interfaces/protocols-configure.spec.js +212 -88
  234. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  235. package/dist/esm/tests/interfaces/protocols-query.spec.js +8 -17
  236. package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -1
  237. package/dist/esm/tests/interfaces/records-delete.spec.js +8 -17
  238. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  239. package/dist/esm/tests/interfaces/records-query.spec.js +20 -29
  240. package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -1
  241. package/dist/esm/tests/interfaces/records-read.spec.js +42 -51
  242. package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -1
  243. package/dist/esm/tests/interfaces/records-subscribe.spec.js +16 -25
  244. package/dist/esm/tests/interfaces/records-subscribe.spec.js.map +1 -1
  245. package/dist/esm/tests/interfaces/records-write.spec.js +190 -219
  246. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  247. package/dist/esm/tests/jose/jws/general.spec.js +36 -45
  248. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
  249. package/dist/esm/tests/protocols/permission-grant.spec.js +44 -50
  250. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
  251. package/dist/esm/tests/protocols/permission-request.spec.js +23 -32
  252. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  253. package/dist/esm/tests/protocols/permissions.spec.js +49 -55
  254. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  255. package/dist/esm/tests/scenarios/aggregator.spec.js +127 -138
  256. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  257. package/dist/esm/tests/scenarios/deleted-record.spec.js +372 -36
  258. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  259. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +55 -64
  260. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  261. package/dist/esm/tests/scenarios/nested-roles.spec.js +66 -76
  262. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  263. package/dist/esm/tests/scenarios/subscriptions.spec.js +451 -354
  264. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  265. package/dist/esm/tests/smt/smt-store-level.spec.js +76 -87
  266. package/dist/esm/tests/smt/smt-store-level.spec.js.map +1 -1
  267. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +344 -353
  268. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +1 -1
  269. package/dist/esm/tests/state-index/state-index-level.spec.js +117 -126
  270. package/dist/esm/tests/state-index/state-index-level.spec.js.map +1 -1
  271. package/dist/esm/tests/store/blockstore-level.spec.js +44 -99
  272. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -1
  273. package/dist/esm/tests/store/blockstore-mock.spec.js +40 -120
  274. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  275. package/dist/esm/tests/store/data-store-level.spec.js +160 -108
  276. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  277. package/dist/esm/tests/store/index-level.spec.js +404 -414
  278. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  279. package/dist/esm/tests/store/message-store-level.spec.js +13 -22
  280. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  281. package/dist/esm/tests/store/message-store.spec.js +229 -238
  282. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  283. package/dist/esm/tests/test-event-stream.js +12 -13
  284. package/dist/esm/tests/test-event-stream.js.map +1 -1
  285. package/dist/esm/tests/test-stores.js +16 -13
  286. package/dist/esm/tests/test-stores.js.map +1 -1
  287. package/dist/esm/tests/test-suite.js +8 -15
  288. package/dist/esm/tests/test-suite.js.map +1 -1
  289. package/dist/esm/tests/utils/cid.spec.js +24 -33
  290. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  291. package/dist/esm/tests/utils/data-stream.spec.js +48 -57
  292. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  293. package/dist/esm/tests/utils/encryption-callbacks.spec.js +45 -54
  294. package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -1
  295. package/dist/esm/tests/utils/encryption.spec.js +229 -82
  296. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  297. package/dist/esm/tests/utils/filters.spec.js +46 -55
  298. package/dist/esm/tests/utils/filters.spec.js.map +1 -1
  299. package/dist/esm/tests/utils/hd-key.spec.js +10 -19
  300. package/dist/esm/tests/utils/hd-key.spec.js.map +1 -1
  301. package/dist/esm/tests/utils/jws.spec.js +3 -12
  302. package/dist/esm/tests/utils/jws.spec.js.map +1 -1
  303. package/dist/esm/tests/utils/memory-cache.spec.js +9 -18
  304. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  305. package/dist/esm/tests/utils/messages.spec.js +18 -20
  306. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  307. package/dist/esm/tests/utils/poller.js +22 -33
  308. package/dist/esm/tests/utils/poller.js.map +1 -1
  309. package/dist/esm/tests/utils/private-key-signer.spec.js +15 -24
  310. package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -1
  311. package/dist/esm/tests/utils/records.spec.js +14 -27
  312. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  313. package/dist/esm/tests/utils/secp256k1.spec.js +16 -25
  314. package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -1
  315. package/dist/esm/tests/utils/secp256r1.spec.js +18 -27
  316. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  317. package/dist/esm/tests/utils/test-data-generator.js +446 -467
  318. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  319. package/dist/esm/tests/validation/json-schemas/definitions.spec.js +2 -11
  320. package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -1
  321. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +4 -13
  322. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -1
  323. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +8 -17
  324. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -1
  325. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +3 -12
  326. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -1
  327. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +4 -13
  328. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  329. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +2 -11
  330. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -1
  331. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js +2 -11
  332. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js.map +1 -1
  333. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +44 -24
  334. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  335. package/dist/types/generated/precompiled-validators.d.ts +49 -40
  336. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  337. package/dist/types/src/core/constants.d.ts +11 -0
  338. package/dist/types/src/core/constants.d.ts.map +1 -0
  339. package/dist/types/src/core/core-protocol.d.ts +89 -0
  340. package/dist/types/src/core/core-protocol.d.ts.map +1 -0
  341. package/dist/types/src/core/dwn-error.d.ts +9 -12
  342. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  343. package/dist/types/src/core/grant-authorization.d.ts +6 -2
  344. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  345. package/dist/types/src/core/protocol-authorization-action.d.ts +42 -0
  346. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -0
  347. package/dist/types/src/core/protocol-authorization-validation.d.ts +81 -0
  348. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -0
  349. package/dist/types/src/core/protocol-authorization.d.ts +24 -106
  350. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  351. package/dist/types/src/core/record-chain.d.ts +24 -0
  352. package/dist/types/src/core/record-chain.d.ts.map +1 -0
  353. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  354. package/dist/types/src/dwn.d.ts +19 -7
  355. package/dist/types/src/dwn.d.ts.map +1 -1
  356. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +50 -0
  357. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -0
  358. package/dist/types/src/handlers/messages-read.d.ts +3 -8
  359. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  360. package/dist/types/src/handlers/messages-subscribe.d.ts +6 -10
  361. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  362. package/dist/types/src/handlers/messages-sync.d.ts +3 -8
  363. package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
  364. package/dist/types/src/handlers/protocols-configure.d.ts +3 -10
  365. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  366. package/dist/types/src/handlers/protocols-query.d.ts +3 -8
  367. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
  368. package/dist/types/src/handlers/records-count.d.ts +3 -6
  369. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  370. package/dist/types/src/handlers/records-delete.d.ts +3 -8
  371. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  372. package/dist/types/src/handlers/records-query.d.ts +3 -8
  373. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  374. package/dist/types/src/handlers/records-read.d.ts +3 -8
  375. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  376. package/dist/types/src/handlers/records-subscribe.d.ts +8 -10
  377. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  378. package/dist/types/src/handlers/records-write.d.ts +4 -24
  379. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  380. package/dist/types/src/index.d.ts +8 -4
  381. package/dist/types/src/index.d.ts.map +1 -1
  382. package/dist/types/src/interfaces/messages-subscribe.d.ts +5 -0
  383. package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
  384. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  385. package/dist/types/src/interfaces/records-subscribe.d.ts +5 -0
  386. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  387. package/dist/types/src/interfaces/records-write-query.d.ts +33 -0
  388. package/dist/types/src/interfaces/records-write-query.d.ts.map +1 -0
  389. package/dist/types/src/interfaces/records-write-signing.d.ts +34 -0
  390. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -0
  391. package/dist/types/src/interfaces/records-write.d.ts +13 -53
  392. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  393. package/dist/types/src/protocols/permission-grant.d.ts +1 -1
  394. package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
  395. package/dist/types/src/protocols/permission-request.d.ts +1 -1
  396. package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
  397. package/dist/types/src/protocols/permissions.d.ts +40 -3
  398. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  399. package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
  400. package/dist/types/src/store/data-store-level.d.ts +20 -4
  401. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  402. package/dist/types/src/store/index-level-compound.d.ts +70 -0
  403. package/dist/types/src/store/index-level-compound.d.ts.map +1 -0
  404. package/dist/types/src/store/index-level.d.ts +4 -58
  405. package/dist/types/src/store/index-level.d.ts.map +1 -1
  406. package/dist/types/src/store/storage-controller.d.ts +4 -4
  407. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  408. package/dist/types/src/types/message-types.d.ts +3 -3
  409. package/dist/types/src/types/message-types.d.ts.map +1 -1
  410. package/dist/types/src/types/messages-types.d.ts +12 -3
  411. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  412. package/dist/types/src/types/method-handler.d.ts +24 -3
  413. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  414. package/dist/types/src/types/permission-types.d.ts +7 -0
  415. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  416. package/dist/types/src/types/protocols-types.d.ts +41 -1
  417. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  418. package/dist/types/src/types/records-types.d.ts +16 -6
  419. package/dist/types/src/types/records-types.d.ts.map +1 -1
  420. package/dist/types/src/types/subscriptions.d.ts +151 -13
  421. package/dist/types/src/types/subscriptions.d.ts.map +1 -1
  422. package/dist/types/src/utils/hd-key.d.ts +1 -9
  423. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  424. package/dist/types/src/utils/messages.d.ts +7 -5
  425. package/dist/types/src/utils/messages.d.ts.map +1 -1
  426. package/dist/types/src/utils/protocols.d.ts +5 -0
  427. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  428. package/dist/types/src/utils/records.d.ts +1 -11
  429. package/dist/types/src/utils/records.d.ts.map +1 -1
  430. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  431. package/dist/types/tests/event-emitter-event-log.spec.d.ts +2 -0
  432. package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +1 -0
  433. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  434. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  435. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  436. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  437. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  438. package/dist/types/tests/features/records-immutable.spec.d.ts +2 -0
  439. package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -0
  440. package/dist/types/tests/features/records-record-limit.spec.d.ts +2 -0
  441. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -0
  442. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  443. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  444. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  445. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  446. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -1
  447. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  448. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  449. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  450. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  451. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  452. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  453. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  454. package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
  455. package/dist/types/tests/test-event-stream.d.ts +11 -12
  456. package/dist/types/tests/test-event-stream.d.ts.map +1 -1
  457. package/dist/types/tests/test-suite.d.ts +2 -2
  458. package/dist/types/tests/test-suite.d.ts.map +1 -1
  459. package/dist/types/tests/utils/test-data-generator.d.ts +18 -0
  460. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  461. package/package.json +5 -4
  462. package/src/core/constants.ts +11 -0
  463. package/src/core/core-protocol.ts +129 -0
  464. package/src/core/dwn-error.ts +15 -12
  465. package/src/core/grant-authorization.ts +20 -3
  466. package/src/core/protocol-authorization-action.ts +377 -0
  467. package/src/core/protocol-authorization-validation.ts +487 -0
  468. package/src/core/protocol-authorization.ts +111 -856
  469. package/src/core/record-chain.ts +99 -0
  470. package/src/core/records-grant-authorization.ts +6 -8
  471. package/src/dwn.ts +58 -73
  472. package/src/event-stream/event-emitter-event-log.ts +283 -0
  473. package/src/handlers/messages-read.ts +8 -9
  474. package/src/handlers/messages-subscribe.ts +24 -28
  475. package/src/handlers/messages-sync.ts +10 -16
  476. package/src/handlers/protocols-configure.ts +47 -32
  477. package/src/handlers/protocols-query.ts +6 -9
  478. package/src/handlers/records-count.ts +11 -10
  479. package/src/handlers/records-delete.ts +12 -21
  480. package/src/handlers/records-query.ts +12 -12
  481. package/src/handlers/records-read.ts +34 -22
  482. package/src/handlers/records-subscribe.ts +47 -26
  483. package/src/handlers/records-write.ts +47 -104
  484. package/src/index.ts +9 -5
  485. package/src/interfaces/messages-subscribe.ts +7 -1
  486. package/src/interfaces/protocols-configure.ts +73 -8
  487. package/src/interfaces/records-count.ts +1 -1
  488. package/src/interfaces/records-delete.ts +1 -1
  489. package/src/interfaces/records-query.ts +1 -1
  490. package/src/interfaces/records-read.ts +1 -1
  491. package/src/interfaces/records-subscribe.ts +8 -1
  492. package/src/interfaces/records-write-query.ts +139 -0
  493. package/src/interfaces/records-write-signing.ts +123 -0
  494. package/src/interfaces/records-write.ts +66 -261
  495. package/src/protocols/permission-grant.ts +1 -1
  496. package/src/protocols/permission-request.ts +1 -1
  497. package/src/protocols/permissions.ts +148 -6
  498. package/src/state-index/state-index-level.ts +5 -7
  499. package/src/store/data-store-level.ts +124 -34
  500. package/src/store/index-level-compound.ts +324 -0
  501. package/src/store/index-level.ts +68 -341
  502. package/src/store/storage-controller.ts +11 -11
  503. package/src/types/message-types.ts +3 -3
  504. package/src/types/messages-types.ts +12 -3
  505. package/src/types/method-handler.ts +26 -4
  506. package/src/types/mitt.d.ts +28 -0
  507. package/src/types/permission-types.ts +7 -0
  508. package/src/types/protocols-types.ts +46 -0
  509. package/src/types/records-types.ts +16 -6
  510. package/src/types/subscriptions.ts +178 -14
  511. package/src/utils/hd-key.ts +0 -9
  512. package/src/utils/messages.ts +17 -37
  513. package/src/utils/protocols.ts +8 -0
  514. package/src/utils/records.ts +8 -59
  515. package/dist/esm/src/event-stream/event-emitter-stream.js +0 -60
  516. package/dist/esm/src/event-stream/event-emitter-stream.js.map +0 -1
  517. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +0 -77
  518. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +0 -1
  519. package/dist/esm/tests/event-stream/event-stream.spec.js +0 -123
  520. package/dist/esm/tests/event-stream/event-stream.spec.js.map +0 -1
  521. package/dist/types/src/event-stream/event-emitter-stream.d.ts +0 -23
  522. package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +0 -1
  523. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts +0 -2
  524. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +0 -1
  525. package/dist/types/tests/event-stream/event-stream.spec.d.ts +0 -2
  526. package/dist/types/tests/event-stream/event-stream.spec.d.ts.map +0 -1
  527. package/src/event-stream/event-emitter-stream.ts +0 -69
@@ -1,27 +1,18 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import freeForAll from '../vectors/protocol-definitions/free-for-all.json' with { type: 'json' };
11
2
  import threadProtocol from '../vectors/protocol-definitions/thread-role.json' with { type: 'json' };
12
3
  import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
13
4
  import { Poller } from '../utils/poller.js';
14
5
  import { TestDataGenerator } from '../utils/test-data-generator.js';
15
- import { TestEventStream } from '../test-event-stream.js';
6
+ import { TestEventLog } from '../test-event-stream.js';
16
7
  import { TestStores } from '../test-stores.js';
17
8
  import { DataStream, Dwn, DwnInterfaceName, DwnMethodName, Jws, Message, PermissionGrant, PermissionsProtocol, Time } from '../../src/index.js';
18
9
  import { DidKey, UniversalResolver } from '@enbox/dids';
19
10
  // NOTE: We use `Poller.pollUntilSuccessOrTimeout` to poll for the expected results.
20
- // In some cases, the EventStream is a coordinated pub/sub system and the message events are emitted over the network
11
+ // In some cases, the EventLog is a coordinated pub/sub system and the message events are emitted over the network
21
12
  // this means that the messages are not processed immediately and we need to wait for the messages to be processed
22
13
  // before we can assert the results. The `pollUntilSuccessOrTimeout` function is a utility function that will poll until the expected results are met.
23
14
  // It is also important to note that in some cases where we are testing a negative case (the message not arriving at the subscriber)
24
- // we add an alternate subscription to await results within to give the EventStream ample time to process the message.
15
+ // we add an alternate subscription to await results within to give the EventLog ample time to process the message.
25
16
  // Additionally in some of these cases the order in which messages are sent to be processed or checked may matter, and they are noted as such.
26
17
  export function testSubscriptionScenarios() {
27
18
  describe('subscriptions', () => {
@@ -30,138 +21,147 @@ export function testSubscriptionScenarios() {
30
21
  let dataStore;
31
22
  let resumableTaskStore;
32
23
  let stateIndex;
33
- let eventStream;
24
+ let eventLog;
34
25
  let dwn;
35
26
  // important to follow the `beforeAll` and `afterAll` pattern to initialize and clean the stores in tests
36
27
  // so that different test suites can reuse the same backend store for testing
37
- beforeAll(() => __awaiter(this, void 0, void 0, function* () {
28
+ beforeAll(async () => {
38
29
  didResolver = new UniversalResolver({ didResolvers: [DidKey] });
39
30
  const stores = TestStores.get();
40
31
  messageStore = stores.messageStore;
41
32
  dataStore = stores.dataStore;
42
33
  resumableTaskStore = stores.resumableTaskStore;
43
34
  stateIndex = stores.stateIndex;
44
- eventStream = TestEventStream.get();
45
- dwn = yield Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventStream, resumableTaskStore });
46
- }));
47
- beforeEach(() => __awaiter(this, void 0, void 0, function* () {
35
+ eventLog = TestEventLog.get();
36
+ dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventLog, resumableTaskStore });
37
+ });
38
+ beforeEach(async () => {
48
39
  // clean up before each test rather than after so that a test does not depend on other tests to do the clean up
49
- yield messageStore.clear();
50
- yield dataStore.clear();
51
- yield resumableTaskStore.clear();
52
- yield stateIndex.clear();
53
- }));
54
- afterAll(() => __awaiter(this, void 0, void 0, function* () {
55
- yield dwn.close();
56
- }));
40
+ await messageStore.clear();
41
+ await dataStore.clear();
42
+ await resumableTaskStore.clear();
43
+ await stateIndex.clear();
44
+ });
45
+ afterAll(async () => {
46
+ await dwn.close();
47
+ });
57
48
  describe('messages subscribe', () => {
58
- it('all messages', () => __awaiter(this, void 0, void 0, function* () {
49
+ it('all messages', async () => {
59
50
  // Scenario: Alice subscribes to all messages and creates 3 messages. Alice then expects to receive all 3 messages.
60
- var _a, _b;
61
- const alice = yield TestDataGenerator.generateDidKeyPersona();
51
+ const alice = await TestDataGenerator.generateDidKeyPersona();
52
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
62
53
  // create a handler that adds the messageCid of each message to an array.
63
54
  const messageCids = [];
64
- const handler = (event) => __awaiter(this, void 0, void 0, function* () {
65
- const { message } = event;
66
- const messageCid = yield Message.getCid(message);
55
+ const handler = async (msg) => {
56
+ if (msg.type !== 'event') {
57
+ return;
58
+ }
59
+ const { message } = msg.event;
60
+ const messageCid = await Message.getCid(message);
67
61
  messageCids.push(messageCid);
68
- });
62
+ };
69
63
  // subscribe to all messages
70
- const messagesSubscription = yield TestDataGenerator.generateMessagesSubscribe({ author: alice });
71
- const messagesSubscriptionReply = yield dwn.processMessage(alice.did, messagesSubscription.message, { subscriptionHandler: handler });
64
+ const messagesSubscription = await TestDataGenerator.generateMessagesSubscribe({ author: alice });
65
+ const messagesSubscriptionReply = await dwn.processMessage(alice.did, messagesSubscription.message, { subscriptionHandler: handler });
72
66
  expect(messagesSubscriptionReply.status.code).toBe(200);
73
- expect((_a = messagesSubscriptionReply.subscription) === null || _a === void 0 ? void 0 : _a.id).toBe(yield Message.getCid(messagesSubscription.message));
67
+ expect(messagesSubscriptionReply.subscription?.id).toBe(await Message.getCid(messagesSubscription.message));
74
68
  // generate various messages
75
- const write1 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
76
- const write1MessageCid = yield Message.getCid(write1.message);
77
- const write1Reply = yield dwn.processMessage(alice.did, write1.message, { dataStream: write1.dataStream });
69
+ const write1 = await TestDataGenerator.generateRecordsWrite({ author: alice });
70
+ const write1MessageCid = await Message.getCid(write1.message);
71
+ const write1Reply = await dwn.processMessage(alice.did, write1.message, { dataStream: write1.dataStream });
78
72
  expect(write1Reply.status.code).toBe(202);
79
- const protocol1 = yield TestDataGenerator.generateProtocolsConfigure({ author: alice });
80
- const protocol1MessageCid = yield Message.getCid(protocol1.message);
81
- const protocol1Reply = yield dwn.processMessage(alice.did, protocol1.message);
73
+ const protocol1 = await TestDataGenerator.generateProtocolsConfigure({ author: alice });
74
+ const protocol1MessageCid = await Message.getCid(protocol1.message);
75
+ const protocol1Reply = await dwn.processMessage(alice.did, protocol1.message);
82
76
  expect(protocol1Reply.status.code).toBe(202);
83
- const deleteWrite1 = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1.message.recordId });
84
- const delete1MessageCid = yield Message.getCid(deleteWrite1.message);
85
- const deleteWrite1Reply = yield dwn.processMessage(alice.did, deleteWrite1.message);
77
+ const deleteWrite1 = await TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1.message.recordId });
78
+ const delete1MessageCid = await Message.getCid(deleteWrite1.message);
79
+ const deleteWrite1Reply = await dwn.processMessage(alice.did, deleteWrite1.message);
86
80
  expect(deleteWrite1Reply.status.code).toBe(202);
87
81
  // poll until the messages are received by the handler
88
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
82
+ await Poller.pollUntilSuccessOrTimeout(async () => {
89
83
  expect(messageCids.length).toBe(3);
90
84
  expect(messageCids).toEqual([write1MessageCid, protocol1MessageCid, delete1MessageCid]);
91
- }));
85
+ });
92
86
  // clean up the subscription handler
93
- yield ((_b = messagesSubscriptionReply.subscription) === null || _b === void 0 ? void 0 : _b.close());
94
- }));
95
- it('filters by interface type', () => __awaiter(this, void 0, void 0, function* () {
87
+ await messagesSubscriptionReply.subscription?.close();
88
+ });
89
+ it('filters by interface type', async () => {
96
90
  // scenario:
97
91
  // alice subscribes to 2 different message interfaces Records and Protocols
98
92
  // alice creates (2) messages, RecordsWrite and ProtocolsConfigure
99
93
  // alice checks that each handler received the appropriate message
100
94
  // alice deletes the record
101
95
  // alice checks that the Records handler received the delete message
102
- var _a, _b;
103
- const alice = yield TestDataGenerator.generateDidKeyPersona();
96
+ const alice = await TestDataGenerator.generateDidKeyPersona();
97
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
104
98
  // subscribe to the Records interface
105
- const recordsInterfaceSubscription = yield TestDataGenerator.generateMessagesSubscribe({
99
+ const recordsInterfaceSubscription = await TestDataGenerator.generateMessagesSubscribe({
106
100
  author: alice,
107
101
  filters: [{ interface: DwnInterfaceName.Records }]
108
102
  });
109
103
  const recordsMessageCids = [];
110
- const recordsSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
111
- const { message } = event;
112
- const messageCid = yield Message.getCid(message);
104
+ const recordsSubscribeHandler = async (msg) => {
105
+ if (msg.type !== 'event') {
106
+ return;
107
+ }
108
+ const { message } = msg.event;
109
+ const messageCid = await Message.getCid(message);
113
110
  recordsMessageCids.push(messageCid);
114
- });
115
- const recordsInterfaceSubscriptionReply = yield dwn.processMessage(alice.did, recordsInterfaceSubscription.message, { subscriptionHandler: recordsSubscribeHandler });
111
+ };
112
+ const recordsInterfaceSubscriptionReply = await dwn.processMessage(alice.did, recordsInterfaceSubscription.message, { subscriptionHandler: recordsSubscribeHandler });
116
113
  expect(recordsInterfaceSubscriptionReply.status.code).toBe(200);
117
114
  expect(recordsInterfaceSubscriptionReply.subscription).toBeDefined();
118
115
  // subscribe to the Protocols interface
119
- const protocolsInterfaceSubscription = yield TestDataGenerator.generateMessagesSubscribe({
116
+ const protocolsInterfaceSubscription = await TestDataGenerator.generateMessagesSubscribe({
120
117
  author: alice,
121
118
  filters: [{ interface: DwnInterfaceName.Protocols }]
122
119
  });
123
120
  const protocolsMessageCids = [];
124
- const protocolsSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
125
- const { message } = event;
126
- const messageCid = yield Message.getCid(message);
121
+ const protocolsSubscribeHandler = async (msg) => {
122
+ if (msg.type !== 'event') {
123
+ return;
124
+ }
125
+ const { message } = msg.event;
126
+ const messageCid = await Message.getCid(message);
127
127
  protocolsMessageCids.push(messageCid);
128
- });
129
- const protocolsInterfaceSubscriptionReply = yield dwn.processMessage(alice.did, protocolsInterfaceSubscription.message, { subscriptionHandler: protocolsSubscribeHandler });
128
+ };
129
+ const protocolsInterfaceSubscriptionReply = await dwn.processMessage(alice.did, protocolsInterfaceSubscription.message, { subscriptionHandler: protocolsSubscribeHandler });
130
130
  expect(protocolsInterfaceSubscriptionReply.status.code).toBe(200);
131
131
  expect(protocolsInterfaceSubscriptionReply.subscription).toBeDefined();
132
132
  // create one of each message types a RecordsWrite and a ProtocolsConfigure
133
- const record = yield TestDataGenerator.generateRecordsWrite({ author: alice });
134
- const recordReply = yield dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
133
+ const record = await TestDataGenerator.generateRecordsWrite({ author: alice });
134
+ const recordReply = await dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
135
135
  expect(recordReply.status.code).toBe(202, 'RecordsWrite');
136
- const protocol = yield TestDataGenerator.generateProtocolsConfigure({ author: alice });
137
- const protocolReply = yield dwn.processMessage(alice.did, protocol.message);
136
+ const protocol = await TestDataGenerator.generateProtocolsConfigure({ author: alice });
137
+ const protocolReply = await dwn.processMessage(alice.did, protocol.message);
138
138
  expect(protocolReply.status.code).toBe(202, 'ProtocolConfigure');
139
139
  // Poll until the messages are received by the handler
140
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
140
+ await Poller.pollUntilSuccessOrTimeout(async () => {
141
141
  // check record message
142
142
  expect(recordsMessageCids.length).toBe(1);
143
- expect(recordsMessageCids).toEqual(expect.arrayContaining([yield Message.getCid(record.message)]));
143
+ expect(recordsMessageCids).toEqual(expect.arrayContaining([await Message.getCid(record.message)]));
144
144
  // check protocols message
145
145
  expect(protocolsMessageCids.length).toBe(1);
146
- expect(protocolsMessageCids).toEqual(expect.arrayContaining([yield Message.getCid(protocol.message)]));
147
- }));
146
+ expect(protocolsMessageCids).toEqual(expect.arrayContaining([await Message.getCid(protocol.message)]));
147
+ });
148
148
  // delete the record
149
- const recordDelete = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: record.message.recordId });
150
- const recordDeleteReply = yield dwn.processMessage(alice.did, recordDelete.message);
149
+ const recordDelete = await TestDataGenerator.generateRecordsDelete({ author: alice, recordId: record.message.recordId });
150
+ const recordDeleteReply = await dwn.processMessage(alice.did, recordDelete.message);
151
151
  expect(recordDeleteReply.status.code).toBe(202, 'RecordsDelete');
152
152
  // poll until the delete message is received by the handler
153
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
153
+ await Poller.pollUntilSuccessOrTimeout(async () => {
154
154
  // check record messages to include the delete message
155
155
  expect(recordsMessageCids.length).toBe(2);
156
- expect(recordsMessageCids).toEqual(expect.arrayContaining([yield Message.getCid(recordDelete.message)]));
156
+ expect(recordsMessageCids).toEqual(expect.arrayContaining([await Message.getCid(recordDelete.message)]));
157
157
  // check that the protocols message array does not include the delete message
158
158
  expect(protocolsMessageCids.length).toBe(1); // unchanged
159
- }));
159
+ });
160
160
  // clean up the subscriptions
161
- yield ((_a = recordsInterfaceSubscriptionReply.subscription) === null || _a === void 0 ? void 0 : _a.close());
162
- yield ((_b = protocolsInterfaceSubscriptionReply.subscription) === null || _b === void 0 ? void 0 : _b.close());
163
- }));
164
- it('filters by method type', () => __awaiter(this, void 0, void 0, function* () {
161
+ await recordsInterfaceSubscriptionReply.subscription?.close();
162
+ await protocolsInterfaceSubscriptionReply.subscription?.close();
163
+ });
164
+ it('filters by method type', async () => {
165
165
  // scenario:
166
166
  // Alice creates a subscription filtered to RecordsWrite messages
167
167
  // Alice creates a second subscription filtered to RecordsDelete messages
@@ -172,66 +172,73 @@ export function testSubscriptionScenarios() {
172
172
  // Alice also writes a new record with a RecordsWrite
173
173
  // Alice checks that the RecordsWrite handler received the new record, but not the delete message
174
174
  // Alice checks the RecordsDelete handler received the delete message
175
- const alice = yield TestDataGenerator.generateDidKeyPersona();
175
+ const alice = await TestDataGenerator.generateDidKeyPersona();
176
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
176
177
  // subscribe to records write
177
- const recordsWriteSubscription = yield TestDataGenerator.generateMessagesSubscribe({
178
+ const recordsWriteSubscription = await TestDataGenerator.generateMessagesSubscribe({
178
179
  author: alice,
179
180
  filters: [{ interface: DwnInterfaceName.Records, method: DwnMethodName.Write }]
180
181
  });
181
182
  const recordsWriteMessageCids = [];
182
- const recordsSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
183
- const { message } = event;
184
- const messageCid = yield Message.getCid(message);
183
+ const recordsSubscribeHandler = async (msg) => {
184
+ if (msg.type !== 'event') {
185
+ return;
186
+ }
187
+ const { message } = msg.event;
188
+ const messageCid = await Message.getCid(message);
185
189
  recordsWriteMessageCids.push(messageCid);
186
- });
187
- const recordsWriteSubscriptionReply = yield dwn.processMessage(alice.did, recordsWriteSubscription.message, { subscriptionHandler: recordsSubscribeHandler });
190
+ };
191
+ const recordsWriteSubscriptionReply = await dwn.processMessage(alice.did, recordsWriteSubscription.message, { subscriptionHandler: recordsSubscribeHandler });
188
192
  expect(recordsWriteSubscriptionReply.status.code).toBe(200);
189
193
  expect(recordsWriteSubscriptionReply.subscription).toBeDefined();
190
194
  // subscribe to records delete
191
- const recordsDeleteSubscription = yield TestDataGenerator.generateMessagesSubscribe({
195
+ const recordsDeleteSubscription = await TestDataGenerator.generateMessagesSubscribe({
192
196
  author: alice,
193
197
  filters: [{ interface: DwnInterfaceName.Records, method: DwnMethodName.Delete }]
194
198
  });
195
199
  const recordsDeleteMessageCids = [];
196
- const recordsDeleteSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
197
- const { message } = event;
198
- const messageCid = yield Message.getCid(message);
200
+ const recordsDeleteSubscribeHandler = async (msg) => {
201
+ if (msg.type !== 'event') {
202
+ return;
203
+ }
204
+ const { message } = msg.event;
205
+ const messageCid = await Message.getCid(message);
199
206
  recordsDeleteMessageCids.push(messageCid);
200
- });
201
- const recordsDeleteSubscriptionReply = yield dwn.processMessage(alice.did, recordsDeleteSubscription.message, { subscriptionHandler: recordsDeleteSubscribeHandler });
207
+ };
208
+ const recordsDeleteSubscriptionReply = await dwn.processMessage(alice.did, recordsDeleteSubscription.message, { subscriptionHandler: recordsDeleteSubscribeHandler });
202
209
  expect(recordsDeleteSubscriptionReply.status.code).toBe(200);
203
210
  expect(recordsDeleteSubscriptionReply.subscription).toBeDefined();
204
211
  // create and updates the record, this creates two RecordsWrite messages
205
- const record = yield TestDataGenerator.generateRecordsWrite({ author: alice });
206
- const recordReply = yield dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
212
+ const record = await TestDataGenerator.generateRecordsWrite({ author: alice });
213
+ const recordReply = await dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
207
214
  expect(recordReply.status.code).toBe(202, 'RecordsWrite');
208
- const record1MessageCid = yield Message.getCid(record.message);
209
- const recordUpdate = yield TestDataGenerator.generateFromRecordsWrite({ author: alice, existingWrite: record.recordsWrite });
210
- const recordUpdateReply = yield dwn.processMessage(alice.did, recordUpdate.message, { dataStream: recordUpdate.dataStream });
215
+ const record1MessageCid = await Message.getCid(record.message);
216
+ const recordUpdate = await TestDataGenerator.generateFromRecordsWrite({ author: alice, existingWrite: record.recordsWrite });
217
+ const recordUpdateReply = await dwn.processMessage(alice.did, recordUpdate.message, { dataStream: recordUpdate.dataStream });
211
218
  expect(recordUpdateReply.status.code).toBe(202, 'RecordsUpdate');
212
- const recordUpdateMessageCid = yield Message.getCid(recordUpdate.message);
219
+ const recordUpdateMessageCid = await Message.getCid(recordUpdate.message);
213
220
  // Poll until the messages are received by the handler
214
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
221
+ await Poller.pollUntilSuccessOrTimeout(async () => {
215
222
  // check the array for both the RecordsWrite messages
216
223
  expect(recordsWriteMessageCids.length).toBe(2);
217
224
  expect(recordsWriteMessageCids).toEqual(expect.arrayContaining([
218
225
  record1MessageCid,
219
226
  recordUpdateMessageCid,
220
227
  ]));
221
- }));
228
+ });
222
229
  // confirm that the delete array is empty
223
230
  expect(recordsDeleteMessageCids.length).toBe(0);
224
231
  // delete the record
225
- const recordDelete = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: record.message.recordId });
226
- const recordDeleteReply = yield dwn.processMessage(alice.did, recordDelete.message);
232
+ const recordDelete = await TestDataGenerator.generateRecordsDelete({ author: alice, recordId: record.message.recordId });
233
+ const recordDeleteReply = await dwn.processMessage(alice.did, recordDelete.message);
227
234
  expect(recordDeleteReply.status.code).toBe(202, 'RecordsDelete');
228
- const recordDeleteMessageCid = yield Message.getCid(recordDelete.message);
235
+ const recordDeleteMessageCid = await Message.getCid(recordDelete.message);
229
236
  // write a second record
230
- const record2 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
231
- const record2Reply = yield dwn.processMessage(alice.did, record2.message, { dataStream: record2.dataStream });
237
+ const record2 = await TestDataGenerator.generateRecordsWrite({ author: alice });
238
+ const record2Reply = await dwn.processMessage(alice.did, record2.message, { dataStream: record2.dataStream });
232
239
  expect(record2Reply.status.code).toBe(202, 'RecordsWrite');
233
- const record2MessageCid = yield Message.getCid(record2.message);
234
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
240
+ const record2MessageCid = await Message.getCid(record2.message);
241
+ await Poller.pollUntilSuccessOrTimeout(async () => {
235
242
  // ensure the new record is in the recordsWrite array, but not the delete
236
243
  expect(recordsWriteMessageCids.length).toBe(3);
237
244
  expect(recordsWriteMessageCids).toEqual(expect.arrayContaining([
@@ -244,9 +251,9 @@ export function testSubscriptionScenarios() {
244
251
  expect(recordsDeleteMessageCids).toEqual(expect.arrayContaining([
245
252
  recordDeleteMessageCid,
246
253
  ]));
247
- }));
248
- }));
249
- it('filters by a protocol across different message types', () => __awaiter(this, void 0, void 0, function* () {
254
+ });
255
+ });
256
+ it('filters by a protocol across different message types', async () => {
250
257
  // NOTE: This test validates the ability to filter by a specific protocol across different message types.
251
258
  // This will return any of the `RecordsWrite`, `RecordsDelete` and `ProtocolConfigure` messages that are associated with the protocol
252
259
  // Additionally this will return permission-protocol `RecordsWrite` messages that are associated with the protocol.
@@ -260,51 +267,57 @@ export function testSubscriptionScenarios() {
260
267
  // alice then deletes the records for each protocol
261
268
  // alice revokes bob's permissions for both protocols
262
269
  // now when checking the handler arrays, the delete and revocation messages should be present
263
- const alice = yield TestDataGenerator.generateDidKeyPersona();
264
- const bob = yield TestDataGenerator.generateDidKeyPersona();
270
+ const alice = await TestDataGenerator.generateDidKeyPersona();
271
+ const bob = await TestDataGenerator.generateDidKeyPersona();
265
272
  const proto1Messages = [];
266
- const proto1Handler = (event) => __awaiter(this, void 0, void 0, function* () {
267
- const { message } = event;
268
- proto1Messages.push(yield Message.getCid(message));
269
- });
270
- const proto1Subscription = yield TestDataGenerator.generateMessagesSubscribe({
273
+ const proto1Handler = async (msg) => {
274
+ if (msg.type !== 'event') {
275
+ return;
276
+ }
277
+ const { message } = msg.event;
278
+ proto1Messages.push(await Message.getCid(message));
279
+ };
280
+ const proto1Subscription = await TestDataGenerator.generateMessagesSubscribe({
271
281
  author: alice,
272
282
  filters: [{ protocol: 'http://proto1' }]
273
283
  });
274
- const proto1SubscriptionReply = yield dwn.processMessage(alice.did, proto1Subscription.message, {
284
+ const proto1SubscriptionReply = await dwn.processMessage(alice.did, proto1Subscription.message, {
275
285
  subscriptionHandler: proto1Handler
276
286
  });
277
287
  expect(proto1SubscriptionReply.status.code).toBe(200);
278
288
  expect(proto1SubscriptionReply.subscription).toBeDefined();
279
289
  const proto2Messages = [];
280
- const proto2Handler = (event) => __awaiter(this, void 0, void 0, function* () {
281
- const { message } = event;
282
- proto2Messages.push(yield Message.getCid(message));
283
- });
284
- const proto2Subscription = yield TestDataGenerator.generateMessagesSubscribe({
290
+ const proto2Handler = async (msg) => {
291
+ if (msg.type !== 'event') {
292
+ return;
293
+ }
294
+ const { message } = msg.event;
295
+ proto2Messages.push(await Message.getCid(message));
296
+ };
297
+ const proto2Subscription = await TestDataGenerator.generateMessagesSubscribe({
285
298
  author: alice,
286
299
  filters: [{ protocol: 'http://proto2' }]
287
300
  });
288
- const proto2SubscriptionReply = yield dwn.processMessage(alice.did, proto2Subscription.message, {
301
+ const proto2SubscriptionReply = await dwn.processMessage(alice.did, proto2Subscription.message, {
289
302
  subscriptionHandler: proto2Handler
290
303
  });
291
304
  expect(proto2SubscriptionReply.status.code).toBe(200);
292
305
  expect(proto2SubscriptionReply.subscription).toBeDefined();
293
306
  // configure proto1
294
- const protoConf1 = yield TestDataGenerator.generateProtocolsConfigure({
307
+ const protoConf1 = await TestDataGenerator.generateProtocolsConfigure({
295
308
  author: alice,
296
- protocolDefinition: Object.assign(Object.assign({}, freeForAll), { protocol: 'http://proto1' })
309
+ protocolDefinition: { ...freeForAll, protocol: 'http://proto1' }
297
310
  });
298
311
  const proto1 = protoConf1.message.descriptor.definition.protocol;
299
- const protoConf1Response = yield dwn.processMessage(alice.did, protoConf1.message);
312
+ const protoConf1Response = await dwn.processMessage(alice.did, protoConf1.message);
300
313
  expect(protoConf1Response.status.code).toBe(202);
301
314
  // configure proto2
302
- const protoConf2 = yield TestDataGenerator.generateProtocolsConfigure({
315
+ const protoConf2 = await TestDataGenerator.generateProtocolsConfigure({
303
316
  author: alice,
304
- protocolDefinition: Object.assign(Object.assign({}, freeForAll), { protocol: 'http://proto2' })
317
+ protocolDefinition: { ...freeForAll, protocol: 'http://proto2' }
305
318
  });
306
319
  const proto2 = protoConf2.message.descriptor.definition.protocol;
307
- const protoConf2Response = yield dwn.processMessage(alice.did, protoConf2.message);
320
+ const protoConf2Response = await dwn.processMessage(alice.did, protoConf2.message);
308
321
  expect(protoConf2Response.status.code).toBe(202);
309
322
  const postProperties = {
310
323
  protocolPath: 'post',
@@ -312,158 +325,165 @@ export function testSubscriptionScenarios() {
312
325
  dataFormat: freeForAll.types.post.dataFormats[0],
313
326
  };
314
327
  // create a record for proto1
315
- const write1proto1 = yield TestDataGenerator.generateRecordsWrite(Object.assign({ author: alice, protocol: proto1 }, postProperties));
316
- const write1Response = yield dwn.processMessage(alice.did, write1proto1.message, { dataStream: write1proto1.dataStream });
328
+ const write1proto1 = await TestDataGenerator.generateRecordsWrite({ author: alice, protocol: proto1, ...postProperties });
329
+ const write1Response = await dwn.processMessage(alice.did, write1proto1.message, { dataStream: write1proto1.dataStream });
317
330
  expect(write1Response.status.code).toBe(202);
318
331
  // create a record for proto2
319
- const write1proto2 = yield TestDataGenerator.generateRecordsWrite(Object.assign({ author: alice, protocol: proto2 }, postProperties));
320
- const write1Proto2Response = yield dwn.processMessage(alice.did, write1proto2.message, { dataStream: write1proto2.dataStream });
332
+ const write1proto2 = await TestDataGenerator.generateRecordsWrite({ author: alice, protocol: proto2, ...postProperties });
333
+ const write1Proto2Response = await dwn.processMessage(alice.did, write1proto2.message, { dataStream: write1proto2.dataStream });
321
334
  expect(write1Proto2Response.status.code).toBe(202);
322
335
  // bob requests permissions for proto1
323
- const requestProto1 = yield PermissionsProtocol.createRequest({
336
+ const requestProto1 = await PermissionsProtocol.createRequest({
324
337
  signer: Jws.createSigner(bob),
325
338
  scope: { interface: DwnInterfaceName.Records, method: DwnMethodName.Write, protocol: proto1 },
326
339
  delegated: false,
327
340
  });
328
- const requestProto1Response = yield dwn.processMessage(alice.did, requestProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(requestProto1.permissionRequestBytes) });
341
+ const requestProto1Response = await dwn.processMessage(alice.did, requestProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(requestProto1.permissionRequestBytes) });
329
342
  expect(requestProto1Response.status.code).toBe(202);
330
343
  // bob requests permissions for proto2
331
- const requestProto2 = yield PermissionsProtocol.createRequest({
344
+ const requestProto2 = await PermissionsProtocol.createRequest({
332
345
  signer: Jws.createSigner(bob),
333
346
  scope: { interface: DwnInterfaceName.Records, method: DwnMethodName.Write, protocol: proto2 },
334
347
  delegated: false,
335
348
  });
336
- const requestProto2Response = yield dwn.processMessage(alice.did, requestProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(requestProto2.permissionRequestBytes) });
349
+ const requestProto2Response = await dwn.processMessage(alice.did, requestProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(requestProto2.permissionRequestBytes) });
337
350
  expect(requestProto2Response.status.code).toBe(202);
338
351
  // alice grants permissions for proto1
339
- const grantProto1 = yield PermissionsProtocol.createGrant({
352
+ const grantProto1 = await PermissionsProtocol.createGrant({
340
353
  signer: Jws.createSigner(alice),
341
354
  scope: requestProto1.permissionRequestData.scope,
342
355
  dateExpires: Time.createOffsetTimestamp({ seconds: 5 }),
343
356
  grantedTo: bob.did,
344
357
  });
345
- const grantProto1Response = yield dwn.processMessage(alice.did, grantProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(grantProto1.permissionGrantBytes) });
358
+ const grantProto1Response = await dwn.processMessage(alice.did, grantProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(grantProto1.permissionGrantBytes) });
346
359
  expect(grantProto1Response.status.code).toBe(202);
347
360
  // alice grants permissions for proto2
348
- const grantProto2 = yield PermissionsProtocol.createGrant({
361
+ const grantProto2 = await PermissionsProtocol.createGrant({
349
362
  signer: Jws.createSigner(alice),
350
363
  scope: requestProto2.permissionRequestData.scope,
351
364
  dateExpires: Time.createOffsetTimestamp({ seconds: 5 }),
352
365
  grantedTo: bob.did,
353
366
  });
354
- const grantProto2Response = yield dwn.processMessage(alice.did, grantProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(grantProto2.permissionGrantBytes) });
367
+ const grantProto2Response = await dwn.processMessage(alice.did, grantProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(grantProto2.permissionGrantBytes) });
355
368
  expect(grantProto2Response.status.code).toBe(202);
356
369
  // poll until the messages are received by the handlers
357
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
370
+ await Poller.pollUntilSuccessOrTimeout(async () => {
358
371
  // check for proto1 messages
359
372
  expect(proto1Messages.length).toBe(4);
360
373
  expect(proto1Messages).toEqual(expect.arrayContaining([
361
- yield Message.getCid(protoConf1.message),
362
- yield Message.getCid(write1proto1.message),
363
- yield Message.getCid(requestProto1.recordsWrite.message),
364
- yield Message.getCid(grantProto1.recordsWrite.message),
374
+ await Message.getCid(protoConf1.message),
375
+ await Message.getCid(write1proto1.message),
376
+ await Message.getCid(requestProto1.recordsWrite.message),
377
+ await Message.getCid(grantProto1.recordsWrite.message),
365
378
  ]));
366
379
  // check for proto2 messages
367
380
  expect(proto2Messages.length).toBe(4);
368
381
  expect(proto2Messages).toEqual(expect.arrayContaining([
369
- yield Message.getCid(protoConf2.message),
370
- yield Message.getCid(write1proto2.message),
371
- yield Message.getCid(requestProto2.recordsWrite.message),
372
- yield Message.getCid(grantProto2.recordsWrite.message),
382
+ await Message.getCid(protoConf2.message),
383
+ await Message.getCid(write1proto2.message),
384
+ await Message.getCid(requestProto2.recordsWrite.message),
385
+ await Message.getCid(grantProto2.recordsWrite.message),
373
386
  ]));
374
- }));
387
+ });
375
388
  // delete proto1 message
376
- const deleteProto1Message = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1proto1.message.recordId });
377
- const deleteProto1MessageReply = yield dwn.processMessage(alice.did, deleteProto1Message.message);
389
+ const deleteProto1Message = await TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1proto1.message.recordId });
390
+ const deleteProto1MessageReply = await dwn.processMessage(alice.did, deleteProto1Message.message);
378
391
  expect(deleteProto1MessageReply.status.code).toBe(202);
379
392
  // delete proto2 message
380
- const deleteProto2Message = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1proto2.message.recordId });
381
- const deleteProto2MessageReply = yield dwn.processMessage(alice.did, deleteProto2Message.message);
393
+ const deleteProto2Message = await TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1proto2.message.recordId });
394
+ const deleteProto2MessageReply = await dwn.processMessage(alice.did, deleteProto2Message.message);
382
395
  expect(deleteProto2MessageReply.status.code).toBe(202);
383
396
  // revoke permissions for proto1
384
- const revokeProto1 = yield PermissionsProtocol.createRevocation({
397
+ const revokeProto1 = await PermissionsProtocol.createRevocation({
385
398
  signer: Jws.createSigner(alice),
386
- grant: yield PermissionGrant.parse(grantProto1.dataEncodedMessage),
399
+ grant: PermissionGrant.parse(grantProto1.dataEncodedMessage),
387
400
  });
388
- const revokeProto1Response = yield dwn.processMessage(alice.did, revokeProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(revokeProto1.permissionRevocationBytes) });
401
+ const revokeProto1Response = await dwn.processMessage(alice.did, revokeProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(revokeProto1.permissionRevocationBytes) });
389
402
  expect(revokeProto1Response.status.code).toBe(202);
390
403
  // revoke permissions for proto2
391
- const revokeProto2 = yield PermissionsProtocol.createRevocation({
404
+ const revokeProto2 = await PermissionsProtocol.createRevocation({
392
405
  signer: Jws.createSigner(alice),
393
- grant: yield PermissionGrant.parse(grantProto2.dataEncodedMessage),
406
+ grant: PermissionGrant.parse(grantProto2.dataEncodedMessage),
394
407
  });
395
- const revokeProto2Response = yield dwn.processMessage(alice.did, revokeProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(revokeProto2.permissionRevocationBytes) });
408
+ const revokeProto2Response = await dwn.processMessage(alice.did, revokeProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(revokeProto2.permissionRevocationBytes) });
396
409
  expect(revokeProto2Response.status.code).toBe(202);
397
410
  // poll until the messages are received by the handlers
398
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
411
+ await Poller.pollUntilSuccessOrTimeout(async () => {
399
412
  // check for the delete and revocation in proto1 messages
400
413
  expect(proto1Messages.length).toBe(6); // 2 additional messages
401
414
  expect(proto1Messages).toEqual(expect.arrayContaining([
402
- yield Message.getCid(deleteProto1Message.message),
403
- yield Message.getCid(revokeProto1.recordsWrite.message),
415
+ await Message.getCid(deleteProto1Message.message),
416
+ await Message.getCid(revokeProto1.recordsWrite.message),
404
417
  ]));
405
418
  // check for the delete and revocation in proto2 messages
406
419
  expect(proto2Messages.length).toBe(6); // 2 additional messages
407
420
  expect(proto2Messages).toEqual(expect.arrayContaining([
408
- yield Message.getCid(deleteProto2Message.message),
409
- yield Message.getCid(revokeProto2.recordsWrite.message),
421
+ await Message.getCid(deleteProto2Message.message),
422
+ await Message.getCid(revokeProto2.recordsWrite.message),
410
423
  ]));
411
- }));
412
- }));
413
- it('does not emit events after subscription is closed', () => __awaiter(this, void 0, void 0, function* () {
424
+ });
425
+ });
426
+ it('does not emit events after subscription is closed', async () => {
414
427
  // scenario: create two subscriptions.
415
428
  // write a message, check that both subscriptions receive the message.
416
429
  // close one subscription, write two more messages, check that only the open subscription receives the messages.
417
430
  // we purposely leave one subscription open to ensure that the messages are being processed by an external pub/sub system
418
- const alice = yield TestDataGenerator.generateDidKeyPersona();
431
+ const alice = await TestDataGenerator.generateDidKeyPersona();
432
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
419
433
  // messageCids of subscription 1 messages
420
434
  const sub1MessageCids = [];
421
- const handler1 = (event) => __awaiter(this, void 0, void 0, function* () {
422
- const { message } = event;
423
- const messageCid = yield Message.getCid(message);
435
+ const handler1 = async (msg) => {
436
+ if (msg.type !== 'event') {
437
+ return;
438
+ }
439
+ const { message } = msg.event;
440
+ const messageCid = await Message.getCid(message);
424
441
  sub1MessageCids.push(messageCid);
425
- });
442
+ };
426
443
  // messageCids of subscription 2 messages
427
444
  const sub2MessageCids = [];
428
- const handler2 = (event) => __awaiter(this, void 0, void 0, function* () {
429
- const { message } = event;
430
- const messageCid = yield Message.getCid(message);
445
+ const handler2 = async (msg) => {
446
+ if (msg.type !== 'event') {
447
+ return;
448
+ }
449
+ const { message } = msg.event;
450
+ const messageCid = await Message.getCid(message);
431
451
  sub2MessageCids.push(messageCid);
432
- });
452
+ };
433
453
  // subscribe to all messages
434
- const messagesSubscription1 = yield TestDataGenerator.generateMessagesSubscribe({ author: alice });
435
- const messagesSubscription1Reply = yield dwn.processMessage(alice.did, messagesSubscription1.message, { subscriptionHandler: handler1 });
454
+ const messagesSubscription1 = await TestDataGenerator.generateMessagesSubscribe({ author: alice });
455
+ const messagesSubscription1Reply = await dwn.processMessage(alice.did, messagesSubscription1.message, { subscriptionHandler: handler1 });
436
456
  expect(messagesSubscription1Reply.status.code).toBe(200);
437
- const messagesSubscription2 = yield TestDataGenerator.generateMessagesSubscribe({ author: alice });
438
- const messagesSubscription2Reply = yield dwn.processMessage(alice.did, messagesSubscription2.message, { subscriptionHandler: handler2 });
457
+ const messagesSubscription2 = await TestDataGenerator.generateMessagesSubscribe({ author: alice });
458
+ const messagesSubscription2Reply = await dwn.processMessage(alice.did, messagesSubscription2.message, { subscriptionHandler: handler2 });
439
459
  expect(messagesSubscription2Reply.status.code).toBe(200);
440
460
  // no event message exist yet
441
461
  expect(sub1MessageCids.length).toBe(0);
442
462
  expect(sub2MessageCids.length).toBe(0);
443
463
  // write a record
444
- const record1 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
445
- const record1Reply = yield dwn.processMessage(alice.did, record1.message, { dataStream: record1.dataStream });
464
+ const record1 = await TestDataGenerator.generateRecordsWrite({ author: alice });
465
+ const record1Reply = await dwn.processMessage(alice.did, record1.message, { dataStream: record1.dataStream });
446
466
  expect(record1Reply.status.code).toBe(202);
447
- const record1MessageCid = yield Message.getCid(record1.message);
448
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
467
+ const record1MessageCid = await Message.getCid(record1.message);
468
+ await Poller.pollUntilSuccessOrTimeout(async () => {
449
469
  // both subscriptions should have received the message
450
470
  expect(sub1MessageCids.length).toBe(1); // message exists
451
471
  expect(sub1MessageCids).toEqual([record1MessageCid]);
452
472
  expect(sub2MessageCids.length).toBe(1); // message exists
453
473
  expect(sub2MessageCids).toEqual([record1MessageCid]);
454
- }));
474
+ });
455
475
  // unsubscribe from subscription 2
456
- yield messagesSubscription2Reply.subscription.close();
476
+ await messagesSubscription2Reply.subscription.close();
457
477
  // write two more message.
458
- const record2 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
459
- const record2Reply = yield dwn.processMessage(alice.did, record2.message, { dataStream: record2.dataStream });
478
+ const record2 = await TestDataGenerator.generateRecordsWrite({ author: alice });
479
+ const record2Reply = await dwn.processMessage(alice.did, record2.message, { dataStream: record2.dataStream });
460
480
  expect(record2Reply.status.code).toBe(202);
461
- const record2MessageCid = yield Message.getCid(record2.message);
462
- const record3 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
463
- const record3Reply = yield dwn.processMessage(alice.did, record3.message, { dataStream: record3.dataStream });
481
+ const record2MessageCid = await Message.getCid(record2.message);
482
+ const record3 = await TestDataGenerator.generateRecordsWrite({ author: alice });
483
+ const record3Reply = await dwn.processMessage(alice.did, record3.message, { dataStream: record3.dataStream });
464
484
  expect(record3Reply.status.code).toBe(202);
465
- const record3MessageCid = yield Message.getCid(record3.message);
466
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
485
+ const record3MessageCid = await Message.getCid(record3.message);
486
+ await Poller.pollUntilSuccessOrTimeout(async () => {
467
487
  expect(sub1MessageCids.length).toBe(3); // all three messages exist
468
488
  expect(sub1MessageCids).toEqual([
469
489
  record1MessageCid,
@@ -472,109 +492,122 @@ export function testSubscriptionScenarios() {
472
492
  ]);
473
493
  expect(sub2MessageCids.length).toBe(1); // only the first message exists
474
494
  expect(sub2MessageCids).toEqual([record1MessageCid]);
475
- }));
476
- }));
495
+ });
496
+ });
477
497
  });
478
498
  describe('records subscribe', () => {
479
- it('allows for anonymous subscriptions to published records', () => __awaiter(this, void 0, void 0, function* () {
499
+ it('allows for anonymous subscriptions to published records', async () => {
480
500
  // scenario:
481
501
  // a user creates an anonymous subscription filtered to a schema to alice's DWN
482
502
  // alice writes two records, one not published and one published
483
503
  // alice checks that the anonymous subscription handler only received the published record
484
504
  // NOTE we create a control subscription to capture all messages
485
505
  // this is to ensure that the messages are not received by the anonymous subscription handler, but have had ample time to be processed
486
- const alice = yield TestDataGenerator.generateDidKeyPersona();
506
+ const alice = await TestDataGenerator.generateDidKeyPersona();
507
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
487
508
  // create a control handler to capture ALL messages in the protocol with alice as the author
488
509
  const allMessages = [];
489
- const allHandler = (event) => __awaiter(this, void 0, void 0, function* () {
490
- const { message } = event;
491
- allMessages.push(yield Message.getCid(message));
492
- });
493
- const allSubscription = yield TestDataGenerator.generateMessagesSubscribe({
510
+ const allHandler = async (msg) => {
511
+ if (msg.type !== 'event') {
512
+ return;
513
+ }
514
+ const { message } = msg.event;
515
+ allMessages.push(await Message.getCid(message));
516
+ };
517
+ const allSubscription = await TestDataGenerator.generateMessagesSubscribe({
494
518
  author: alice,
495
519
  });
496
- const allSubscriptionReply = yield dwn.processMessage(alice.did, allSubscription.message, { subscriptionHandler: allHandler });
520
+ const allSubscriptionReply = await dwn.processMessage(alice.did, allSubscription.message, { subscriptionHandler: allHandler });
497
521
  expect(allSubscriptionReply.status.code).toBe(200);
498
522
  // we create an anonymous subscription to capture only published messages
499
523
  const publishedMessages = [];
500
- const anonymousSubscriptionHandler = (event) => __awaiter(this, void 0, void 0, function* () {
501
- const { message } = event;
502
- publishedMessages.push(yield Message.getCid(message));
503
- });
504
- const anonymousSubscription = yield TestDataGenerator.generateRecordsSubscribe({
524
+ const anonymousSubscriptionHandler = async (msg) => {
525
+ if (msg.type !== 'event') {
526
+ return;
527
+ }
528
+ const { message } = msg.event;
529
+ publishedMessages.push(await Message.getCid(message));
530
+ };
531
+ const anonymousSubscription = await TestDataGenerator.generateRecordsSubscribe({
505
532
  anonymous: true,
506
533
  filter: { schema: 'http://schema1' }
507
534
  });
508
- const anonymousSubscriptionReply = yield dwn.processMessage(alice.did, anonymousSubscription.message, {
535
+ const anonymousSubscriptionReply = await dwn.processMessage(alice.did, anonymousSubscription.message, {
509
536
  subscriptionHandler: anonymousSubscriptionHandler
510
537
  });
511
538
  expect(anonymousSubscriptionReply.status.code).toBe(200);
512
539
  expect(anonymousSubscriptionReply.subscription).toBeDefined();
513
540
  // we create a non published record, this will only show up in the control subscription
514
- const writeNotPublished = yield TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1' });
515
- const writeNotPublishedReply = yield dwn.processMessage(alice.did, writeNotPublished.message, { dataStream: writeNotPublished.dataStream });
541
+ const writeNotPublished = await TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1' });
542
+ const writeNotPublishedReply = await dwn.processMessage(alice.did, writeNotPublished.message, { dataStream: writeNotPublished.dataStream });
516
543
  expect(writeNotPublishedReply.status.code).toBe(202);
517
544
  // we create a published record, this will show up in both the control and anonymous subscription
518
- const write1 = yield TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1', published: true });
519
- const write1Reply = yield dwn.processMessage(alice.did, write1.message, { dataStream: write1.dataStream });
545
+ const write1 = await TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1', published: true });
546
+ const write1Reply = await dwn.processMessage(alice.did, write1.message, { dataStream: write1.dataStream });
520
547
  expect(write1Reply.status.code).toBe(202);
521
548
  // we create another published record, this will show up in both the control and anonymous subscription
522
- const write2 = yield TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1', published: true });
523
- const write2Reply = yield dwn.processMessage(alice.did, write2.message, { dataStream: write2.dataStream });
549
+ const write2 = await TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1', published: true });
550
+ const write2Reply = await dwn.processMessage(alice.did, write2.message, { dataStream: write2.dataStream });
524
551
  expect(write2Reply.status.code).toBe(202);
525
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
552
+ await Poller.pollUntilSuccessOrTimeout(async () => {
526
553
  // publishedMessages array should only contain the two published messages
527
554
  expect(publishedMessages.length).toBe(2);
528
555
  expect(publishedMessages).toEqual(expect.arrayContaining([
529
- yield Message.getCid(write1.message),
530
- yield Message.getCid(write2.message),
556
+ await Message.getCid(write1.message),
557
+ await Message.getCid(write2.message),
531
558
  ]));
532
559
  // allMessages array should contain all three messages
533
560
  expect(allMessages.length).toBe(3);
534
561
  expect(allMessages).toEqual(expect.arrayContaining([
535
- yield Message.getCid(writeNotPublished.message),
536
- yield Message.getCid(write1.message),
537
- yield Message.getCid(write2.message),
562
+ await Message.getCid(writeNotPublished.message),
563
+ await Message.getCid(write1.message),
564
+ await Message.getCid(write2.message),
538
565
  ]));
539
- }));
540
- }));
541
- it('allows authorized subscriptions to records intended for a recipient', () => __awaiter(this, void 0, void 0, function* () {
542
- const alice = yield TestDataGenerator.generateDidKeyPersona();
566
+ });
567
+ });
568
+ it('allows authorized subscriptions to records intended for a recipient', async () => {
569
+ const alice = await TestDataGenerator.generateDidKeyPersona();
543
570
  // alice installs a freeForAll protocol
544
- const protocolConfigure = yield TestDataGenerator.generateProtocolsConfigure({
571
+ const protocolConfigure = await TestDataGenerator.generateProtocolsConfigure({
545
572
  author: alice,
546
- protocolDefinition: Object.assign({}, freeForAll)
573
+ protocolDefinition: { ...freeForAll }
547
574
  });
548
- const protocolConfigureReply = yield dwn.processMessage(alice.did, protocolConfigure.message);
575
+ const protocolConfigureReply = await dwn.processMessage(alice.did, protocolConfigure.message);
549
576
  expect(protocolConfigureReply.status.code).toBe(202);
550
- const bob = yield TestDataGenerator.generateDidKeyPersona();
551
- const carol = yield TestDataGenerator.generateDidKeyPersona();
577
+ const bob = await TestDataGenerator.generateDidKeyPersona();
578
+ const carol = await TestDataGenerator.generateDidKeyPersona();
552
579
  // bob subscribes to all records he's authorized to see, with alice as the recipient
553
580
  const bobSubscribeAlice = [];
554
- const bobSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
555
- const { message } = event;
556
- bobSubscribeAlice.push(yield Message.getCid(message));
557
- });
558
- const bobSubscribeToAlice = yield TestDataGenerator.generateRecordsSubscribe({
581
+ const bobSubscribeHandler = async (msg) => {
582
+ if (msg.type !== 'event') {
583
+ return;
584
+ }
585
+ const { message } = msg.event;
586
+ bobSubscribeAlice.push(await Message.getCid(message));
587
+ };
588
+ const bobSubscribeToAlice = await TestDataGenerator.generateRecordsSubscribe({
559
589
  author: bob,
560
590
  filter: { protocol: freeForAll.protocol, recipient: alice.did }
561
591
  });
562
- const bobSubscribeReply = yield dwn.processMessage(alice.did, bobSubscribeToAlice.message, {
592
+ const bobSubscribeReply = await dwn.processMessage(alice.did, bobSubscribeToAlice.message, {
563
593
  subscriptionHandler: bobSubscribeHandler
564
594
  });
565
595
  expect(bobSubscribeReply.status.code).toBe(200);
566
596
  expect(bobSubscribeReply.subscription).toBeDefined();
567
597
  // carol subscribes to any messages that she or alice are the recipients of
568
598
  const carolSubscribeCarolAndAlice = [];
569
- const carolSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
570
- const { message } = event;
571
- carolSubscribeCarolAndAlice.push(yield Message.getCid(message));
572
- });
573
- const carolSubscribeToCarolAndAlice = yield TestDataGenerator.generateRecordsSubscribe({
599
+ const carolSubscribeHandler = async (msg) => {
600
+ if (msg.type !== 'event') {
601
+ return;
602
+ }
603
+ const { message } = msg.event;
604
+ carolSubscribeCarolAndAlice.push(await Message.getCid(message));
605
+ };
606
+ const carolSubscribeToCarolAndAlice = await TestDataGenerator.generateRecordsSubscribe({
574
607
  author: carol,
575
608
  filter: { protocol: freeForAll.protocol, recipient: [alice.did, carol.did] }
576
609
  });
577
- const carolSubscribeReply = yield dwn.processMessage(alice.did, carolSubscribeToCarolAndAlice.message, {
610
+ const carolSubscribeReply = await dwn.processMessage(alice.did, carolSubscribeToCarolAndAlice.message, {
578
611
  subscriptionHandler: carolSubscribeHandler
579
612
  });
580
613
  expect(carolSubscribeReply.status.code).toBe(200);
@@ -586,83 +619,114 @@ export function testSubscriptionScenarios() {
586
619
  dataFormat: freeForAll.types.post.dataFormats[0],
587
620
  };
588
621
  // write a private and public message for alice from bob
589
- const publicBobToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: alice.did, published: true }));
590
- const publicBobToAliceReply = yield dwn.processMessage(alice.did, publicBobToAlice.message, { dataStream: publicBobToAlice.dataStream });
622
+ const publicBobToAlice = await TestDataGenerator.generateRecordsWrite({
623
+ ...recordParams,
624
+ author: bob,
625
+ recipient: alice.did,
626
+ published: true
627
+ });
628
+ const publicBobToAliceReply = await dwn.processMessage(alice.did, publicBobToAlice.message, { dataStream: publicBobToAlice.dataStream });
591
629
  expect(publicBobToAliceReply.status.code).toBe(202);
592
- const privateBobToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: alice.did, published: false }));
593
- const privateBobToAliceReply = yield dwn.processMessage(alice.did, privateBobToAlice.message, { dataStream: privateBobToAlice.dataStream });
630
+ const privateBobToAlice = await TestDataGenerator.generateRecordsWrite({
631
+ ...recordParams,
632
+ author: bob,
633
+ recipient: alice.did,
634
+ published: false
635
+ });
636
+ const privateBobToAliceReply = await dwn.processMessage(alice.did, privateBobToAlice.message, { dataStream: privateBobToAlice.dataStream });
594
637
  expect(privateBobToAliceReply.status.code).toBe(202);
595
638
  // write a private message for alice from carol
596
- const privateCarolToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: carol, recipient: alice.did, published: false }));
597
- const privateCarolToAliceReply = yield dwn.processMessage(alice.did, privateCarolToAlice.message, {
639
+ const privateCarolToAlice = await TestDataGenerator.generateRecordsWrite({
640
+ ...recordParams,
641
+ author: carol,
642
+ recipient: alice.did,
643
+ published: false
644
+ });
645
+ const privateCarolToAliceReply = await dwn.processMessage(alice.did, privateCarolToAlice.message, {
598
646
  dataStream: privateCarolToAlice.dataStream
599
647
  });
600
648
  expect(privateCarolToAliceReply.status.code).toBe(202);
601
649
  // write a public and private message from bob to carol
602
- const publicBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: true }));
603
- const publicBobToCarolReply = yield dwn.processMessage(alice.did, publicBobToCarol.message, {
650
+ const publicBobToCarol = await TestDataGenerator.generateRecordsWrite({
651
+ ...recordParams,
652
+ author: bob,
653
+ recipient: carol.did,
654
+ published: true
655
+ });
656
+ const publicBobToCarolReply = await dwn.processMessage(alice.did, publicBobToCarol.message, {
604
657
  dataStream: publicBobToCarol.dataStream
605
658
  });
606
659
  expect(publicBobToCarolReply.status.code).toBe(202);
607
- const privateBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: false }));
608
- const privateBobToCarolReply = yield dwn.processMessage(alice.did, privateBobToCarol.message, {
660
+ const privateBobToCarol = await TestDataGenerator.generateRecordsWrite({
661
+ ...recordParams,
662
+ author: bob,
663
+ recipient: carol.did,
664
+ published: false
665
+ });
666
+ const privateBobToCarolReply = await dwn.processMessage(alice.did, privateBobToCarol.message, {
609
667
  dataStream: privateBobToCarol.dataStream
610
668
  });
611
669
  expect(privateBobToCarolReply.status.code).toBe(202);
612
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
670
+ await Poller.pollUntilSuccessOrTimeout(async () => {
613
671
  // carol should have received the message intended for her
614
672
  expect(carolSubscribeCarolAndAlice.length).toBe(4);
615
673
  expect(carolSubscribeCarolAndAlice).toEqual(expect.arrayContaining([
616
- yield Message.getCid(publicBobToAlice.message),
617
- yield Message.getCid(privateCarolToAlice.message),
618
- yield Message.getCid(publicBobToCarol.message),
619
- yield Message.getCid(privateBobToCarol.message),
674
+ await Message.getCid(publicBobToAlice.message),
675
+ await Message.getCid(privateCarolToAlice.message),
676
+ await Message.getCid(publicBobToCarol.message),
677
+ await Message.getCid(privateBobToCarol.message),
620
678
  ]));
621
679
  // bob should have received the two messages intended for him
622
680
  expect(bobSubscribeAlice.length).toBe(2);
623
681
  expect(bobSubscribeAlice).toEqual(expect.arrayContaining([
624
- yield Message.getCid(privateBobToAlice.message),
625
- yield Message.getCid(publicBobToAlice.message),
682
+ await Message.getCid(privateBobToAlice.message),
683
+ await Message.getCid(publicBobToAlice.message),
626
684
  ]));
627
- }));
628
- }));
629
- it('allows for authorized subscriptions to records authored by an author(s)', () => __awaiter(this, void 0, void 0, function* () {
630
- const alice = yield TestDataGenerator.generateDidKeyPersona();
685
+ });
686
+ });
687
+ it('allows for authorized subscriptions to records authored by an author(s)', async () => {
688
+ const alice = await TestDataGenerator.generateDidKeyPersona();
631
689
  // alice installs a freeForAll protocol
632
- const protocolConfigure = yield TestDataGenerator.generateProtocolsConfigure({
690
+ const protocolConfigure = await TestDataGenerator.generateProtocolsConfigure({
633
691
  author: alice,
634
- protocolDefinition: Object.assign({}, freeForAll)
692
+ protocolDefinition: { ...freeForAll }
635
693
  });
636
- const protocolConfigureReply = yield dwn.processMessage(alice.did, protocolConfigure.message);
694
+ const protocolConfigureReply = await dwn.processMessage(alice.did, protocolConfigure.message);
637
695
  expect(protocolConfigureReply.status.code).toBe(202);
638
- const bob = yield TestDataGenerator.generateDidKeyPersona();
639
- const carol = yield TestDataGenerator.generateDidKeyPersona();
696
+ const bob = await TestDataGenerator.generateDidKeyPersona();
697
+ const carol = await TestDataGenerator.generateDidKeyPersona();
640
698
  // bob subscribes to all records he's authorized to see, with alice as the author
641
699
  const bobSubscribeAlice = [];
642
- const bobSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
643
- const { message } = event;
644
- bobSubscribeAlice.push(yield Message.getCid(message));
645
- });
646
- const bobSubscribeToAlice = yield TestDataGenerator.generateRecordsSubscribe({
700
+ const bobSubscribeHandler = async (msg) => {
701
+ if (msg.type !== 'event') {
702
+ return;
703
+ }
704
+ const { message } = msg.event;
705
+ bobSubscribeAlice.push(await Message.getCid(message));
706
+ };
707
+ const bobSubscribeToAlice = await TestDataGenerator.generateRecordsSubscribe({
647
708
  author: bob,
648
709
  filter: { protocol: freeForAll.protocol, author: alice.did }
649
710
  });
650
- const bobSubscribeReply = yield dwn.processMessage(alice.did, bobSubscribeToAlice.message, {
711
+ const bobSubscribeReply = await dwn.processMessage(alice.did, bobSubscribeToAlice.message, {
651
712
  subscriptionHandler: bobSubscribeHandler
652
713
  });
653
714
  expect(bobSubscribeReply.status.code).toBe(200);
654
715
  expect(bobSubscribeReply.subscription).toBeDefined();
655
716
  // carol subscribes to any messages that she or alice are the authors of
656
717
  const carolSubscribeCarolAndAlice = [];
657
- const carolSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
658
- const { message } = event;
659
- carolSubscribeCarolAndAlice.push(yield Message.getCid(message));
660
- });
661
- const carolSubscribeToCarolAndAlice = yield TestDataGenerator.generateRecordsSubscribe({
718
+ const carolSubscribeHandler = async (msg) => {
719
+ if (msg.type !== 'event') {
720
+ return;
721
+ }
722
+ const { message } = msg.event;
723
+ carolSubscribeCarolAndAlice.push(await Message.getCid(message));
724
+ };
725
+ const carolSubscribeToCarolAndAlice = await TestDataGenerator.generateRecordsSubscribe({
662
726
  author: carol,
663
727
  filter: { protocol: freeForAll.protocol, author: [alice.did, carol.did] }
664
728
  });
665
- const carolSubscribeReply = yield dwn.processMessage(alice.did, carolSubscribeToCarolAndAlice.message, {
729
+ const carolSubscribeReply = await dwn.processMessage(alice.did, carolSubscribeToCarolAndAlice.message, {
666
730
  subscriptionHandler: carolSubscribeHandler
667
731
  });
668
732
  expect(carolSubscribeReply.status.code).toBe(200);
@@ -674,57 +738,87 @@ export function testSubscriptionScenarios() {
674
738
  dataFormat: freeForAll.types.post.dataFormats[0],
675
739
  };
676
740
  //control: write a public message to bob (will not show up)
677
- const publicAliceToBob = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: alice, recipient: bob.did, published: true }));
678
- const publicAliceToBobReply = yield dwn.processMessage(alice.did, publicAliceToBob.message, {
741
+ const publicAliceToBob = await TestDataGenerator.generateRecordsWrite({
742
+ ...recordParams,
743
+ author: alice,
744
+ recipient: bob.did,
745
+ published: true
746
+ });
747
+ const publicAliceToBobReply = await dwn.processMessage(alice.did, publicAliceToBob.message, {
679
748
  dataStream: publicAliceToBob.dataStream
680
749
  });
681
750
  expect(publicAliceToBobReply.status.code).toBe(202);
682
751
  // write a private and public message from alice to carol
683
- const publicAliceToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: alice, recipient: carol.did, published: true }));
684
- const publicAliceToCarolReply = yield dwn.processMessage(alice.did, publicAliceToCarol.message, {
752
+ const publicAliceToCarol = await TestDataGenerator.generateRecordsWrite({
753
+ ...recordParams,
754
+ author: alice,
755
+ recipient: carol.did,
756
+ published: true
757
+ });
758
+ const publicAliceToCarolReply = await dwn.processMessage(alice.did, publicAliceToCarol.message, {
685
759
  dataStream: publicAliceToCarol.dataStream
686
760
  });
687
761
  expect(publicAliceToCarolReply.status.code).toBe(202);
688
- const privateAliceToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: alice, recipient: carol.did, published: false }));
689
- const privateAliceToCarolReply = yield dwn.processMessage(alice.did, privateAliceToCarol.message, {
762
+ const privateAliceToCarol = await TestDataGenerator.generateRecordsWrite({
763
+ ...recordParams,
764
+ author: alice,
765
+ recipient: carol.did,
766
+ published: false
767
+ });
768
+ const privateAliceToCarolReply = await dwn.processMessage(alice.did, privateAliceToCarol.message, {
690
769
  dataStream: privateAliceToCarol.dataStream
691
770
  });
692
771
  expect(privateAliceToCarolReply.status.code).toBe(202);
693
772
  // write a private message for alice from carol
694
- const privateCarolToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: carol, recipient: alice.did, published: false }));
695
- const privateCarolToAliceReply = yield dwn.processMessage(alice.did, privateCarolToAlice.message, {
773
+ const privateCarolToAlice = await TestDataGenerator.generateRecordsWrite({
774
+ ...recordParams,
775
+ author: carol,
776
+ recipient: alice.did,
777
+ published: false
778
+ });
779
+ const privateCarolToAliceReply = await dwn.processMessage(alice.did, privateCarolToAlice.message, {
696
780
  dataStream: privateCarolToAlice.dataStream
697
781
  });
698
782
  expect(privateCarolToAliceReply.status.code).toBe(202);
699
783
  // write a public and private message from bob to carol
700
- const publicBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: true }));
701
- const publicBobToCarolReply = yield dwn.processMessage(alice.did, publicBobToCarol.message, {
784
+ const publicBobToCarol = await TestDataGenerator.generateRecordsWrite({
785
+ ...recordParams,
786
+ author: bob,
787
+ recipient: carol.did,
788
+ published: true
789
+ });
790
+ const publicBobToCarolReply = await dwn.processMessage(alice.did, publicBobToCarol.message, {
702
791
  dataStream: publicBobToCarol.dataStream
703
792
  });
704
793
  expect(publicBobToCarolReply.status.code).toBe(202);
705
- const privateBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: false }));
706
- const privateBobToCarolReply = yield dwn.processMessage(alice.did, privateBobToCarol.message, {
794
+ const privateBobToCarol = await TestDataGenerator.generateRecordsWrite({
795
+ ...recordParams,
796
+ author: bob,
797
+ recipient: carol.did,
798
+ published: false
799
+ });
800
+ const privateBobToCarolReply = await dwn.processMessage(alice.did, privateBobToCarol.message, {
707
801
  dataStream: privateBobToCarol.dataStream
708
802
  });
709
803
  expect(privateBobToCarolReply.status.code).toBe(202);
710
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
804
+ await Poller.pollUntilSuccessOrTimeout(async () => {
711
805
  // carol should have received the message intended for her
712
806
  expect(carolSubscribeCarolAndAlice.length).toBe(4);
713
807
  expect(carolSubscribeCarolAndAlice).toEqual(expect.arrayContaining([
714
- yield Message.getCid(publicAliceToCarol.message),
715
- yield Message.getCid(privateAliceToCarol.message),
716
- yield Message.getCid(publicAliceToBob.message),
717
- yield Message.getCid(privateCarolToAlice.message),
808
+ await Message.getCid(publicAliceToCarol.message),
809
+ await Message.getCid(privateAliceToCarol.message),
810
+ await Message.getCid(publicAliceToBob.message),
811
+ await Message.getCid(privateCarolToAlice.message),
718
812
  ]));
719
813
  // bob should have received the two messages intended for him
720
814
  expect(bobSubscribeAlice.length).toBe(2);
721
815
  expect(bobSubscribeAlice).toEqual(expect.arrayContaining([
722
- yield Message.getCid(publicAliceToBob.message),
723
- yield Message.getCid(publicAliceToCarol.message)
816
+ await Message.getCid(publicAliceToBob.message),
817
+ await Message.getCid(publicAliceToCarol.message)
724
818
  ]));
725
- }));
726
- }));
727
- it('filters by protocol & contextId across multiple protocolPaths', () => __awaiter(this, void 0, void 0, function* () {
819
+ });
820
+ });
821
+ it('filters by protocol & contextId across multiple protocolPaths', async () => {
728
822
  // scenario: subscribe to multiple protocolPaths for a given protocol and contextId
729
823
  // alice installs a protocol and creates a thread
730
824
  // alice subscribes to update to that thread, it's participant as well as thread chats
@@ -732,99 +826,102 @@ export function testSubscriptionScenarios() {
732
826
  // alice, bob, and carol all create messages
733
827
  // alice deletes carol participant message
734
828
  // alice checks that the correct messages were omitted
735
- const alice = yield TestDataGenerator.generateDidKeyPersona();
736
- const bob = yield TestDataGenerator.generateDidKeyPersona();
737
- const carol = yield TestDataGenerator.generateDidKeyPersona();
829
+ const alice = await TestDataGenerator.generateDidKeyPersona();
830
+ const bob = await TestDataGenerator.generateDidKeyPersona();
831
+ const carol = await TestDataGenerator.generateDidKeyPersona();
738
832
  // create protocol
739
- const protocolConfigure = yield TestDataGenerator.generateProtocolsConfigure({
833
+ const protocolConfigure = await TestDataGenerator.generateProtocolsConfigure({
740
834
  author: alice,
741
- protocolDefinition: Object.assign({}, threadProtocol)
835
+ protocolDefinition: { ...threadProtocol }
742
836
  });
743
- const protocolConfigureReply = yield dwn.processMessage(alice.did, protocolConfigure.message);
837
+ const protocolConfigureReply = await dwn.processMessage(alice.did, protocolConfigure.message);
744
838
  expect(protocolConfigureReply.status.code).toBe(202);
745
839
  const protocol = protocolConfigure.message.descriptor.definition.protocol;
746
840
  // alice creates thread
747
- const thread = yield TestDataGenerator.generateRecordsWrite({
841
+ const thread = await TestDataGenerator.generateRecordsWrite({
748
842
  author: alice,
749
843
  protocol: protocol,
750
844
  protocolPath: 'thread'
751
845
  });
752
- const threadReply = yield dwn.processMessage(alice.did, thread.message, { dataStream: thread.dataStream });
846
+ const threadReply = await dwn.processMessage(alice.did, thread.message, { dataStream: thread.dataStream });
753
847
  expect(threadReply.status.code).toBe(202);
754
848
  // subscribe to this thread's messages
755
849
  const messages = [];
756
850
  const initialWrites = [];
757
- const subscriptionHandler = (event) => __awaiter(this, void 0, void 0, function* () {
758
- const { message, initialWrite } = event;
851
+ const subscriptionHandler = async (msg) => {
852
+ if (msg.type !== 'event') {
853
+ return;
854
+ }
855
+ const { message, initialWrite } = msg.event;
759
856
  if (initialWrite !== undefined) {
760
- initialWrites.push(yield Message.getCid(initialWrite));
857
+ initialWrites.push(await Message.getCid(initialWrite));
761
858
  }
762
- messages.push(yield Message.getCid(message));
763
- });
764
- const threadSubscription = yield TestDataGenerator.generateRecordsSubscribe({
859
+ messages.push(await Message.getCid(message));
860
+ };
861
+ const threadSubscription = await TestDataGenerator.generateRecordsSubscribe({
765
862
  author: alice,
766
863
  filter: { protocol: protocol, protocolPath: 'thread', contextId: thread.message.contextId }, // thread updates
767
864
  });
768
- const threadSubscriptionReply = yield dwn.processMessage(alice.did, threadSubscription.message, {
865
+ const threadSubscriptionReply = await dwn.processMessage(alice.did, threadSubscription.message, {
769
866
  subscriptionHandler
770
867
  });
771
868
  expect(threadSubscriptionReply.status.code).toBe(200);
772
869
  expect(threadSubscriptionReply.subscription).toBeDefined();
773
- const participantSubscription = yield TestDataGenerator.generateRecordsSubscribe({
870
+ const participantSubscription = await TestDataGenerator.generateRecordsSubscribe({
774
871
  author: alice,
775
872
  filter: { protocol: protocol, protocolPath: 'thread/participant', contextId: thread.message.contextId }, // participant updates
776
873
  });
777
- const participantSubscriptionReply = yield dwn.processMessage(alice.did, participantSubscription.message, {
874
+ const participantSubscriptionReply = await dwn.processMessage(alice.did, participantSubscription.message, {
778
875
  subscriptionHandler
779
876
  });
780
877
  expect(participantSubscriptionReply.status.code).toBe(200);
781
878
  expect(participantSubscriptionReply.subscription).toBeDefined();
782
- const chatSubscription = yield TestDataGenerator.generateRecordsSubscribe({
879
+ const chatSubscription = await TestDataGenerator.generateRecordsSubscribe({
783
880
  author: alice,
784
881
  filter: { protocol: protocol, protocolPath: 'thread/chat', contextId: thread.message.contextId } // chat updates
785
882
  });
786
- const chatSubscriptionReply = yield dwn.processMessage(alice.did, chatSubscription.message, {
883
+ const chatSubscriptionReply = await dwn.processMessage(alice.did, chatSubscription.message, {
787
884
  subscriptionHandler
788
885
  });
789
886
  expect(chatSubscriptionReply.status.code).toBe(200);
790
887
  expect(chatSubscriptionReply.subscription).toBeDefined();
791
888
  // add bob as participant
792
- const bobParticipant = yield TestDataGenerator.generateRecordsWrite({
889
+ const bobParticipant = await TestDataGenerator.generateRecordsWrite({
793
890
  author: alice,
794
891
  recipient: bob.did,
795
892
  parentContextId: thread.message.contextId,
796
893
  protocol: protocol,
797
894
  protocolPath: 'thread/participant'
798
895
  });
799
- const bobParticipantReply = yield dwn.processMessage(alice.did, bobParticipant.message, { dataStream: bobParticipant.dataStream });
896
+ const bobParticipantReply = await dwn.processMessage(alice.did, bobParticipant.message, { dataStream: bobParticipant.dataStream });
800
897
  expect(bobParticipantReply.status.code).toBe(202);
801
898
  // add carol as participant
802
- const carolParticipant = yield TestDataGenerator.generateRecordsWrite({
899
+ const carolParticipant = await TestDataGenerator.generateRecordsWrite({
803
900
  author: alice,
804
901
  recipient: carol.did,
805
902
  parentContextId: thread.message.contextId,
806
903
  protocol: protocol,
807
904
  protocolPath: 'thread/participant'
808
905
  });
809
- const carolParticipantReply = yield dwn.processMessage(alice.did, carolParticipant.message, { dataStream: carolParticipant.dataStream });
906
+ const carolParticipantReply = await dwn.processMessage(alice.did, carolParticipant.message, { dataStream: carolParticipant.dataStream });
810
907
  expect(carolParticipantReply.status.code).toBe(202);
811
908
  // add another thread as a control, will not show up in handled message events
812
- const additionalThread = yield TestDataGenerator.generateRecordsWrite({
909
+ const additionalThread = await TestDataGenerator.generateRecordsWrite({
813
910
  author: alice,
814
911
  protocol: protocol,
815
912
  protocolPath: 'thread'
816
913
  });
817
- const additionalThreadReply = yield dwn.processMessage(alice.did, additionalThread.message, { dataStream: additionalThread.dataStream });
914
+ const additionalThreadReply = await dwn.processMessage(alice.did, additionalThread.message, { dataStream: additionalThread.dataStream });
818
915
  expect(additionalThreadReply.status.code).toBe(202);
819
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
916
+ await Poller.pollUntilSuccessOrTimeout(async () => {
820
917
  expect(messages.length).toBe(2);
821
918
  expect(messages).toEqual(expect.arrayContaining([
822
- yield Message.getCid(bobParticipant.message),
823
- yield Message.getCid(carolParticipant.message),
919
+ await Message.getCid(bobParticipant.message),
920
+ await Message.getCid(carolParticipant.message),
824
921
  ]));
825
- }));
922
+ });
826
923
  // add a message to protocol1
827
- const message1 = yield TestDataGenerator.generateRecordsWrite({
924
+ const message1 = await TestDataGenerator.generateRecordsWrite({
828
925
  author: bob,
829
926
  recipient: alice.did,
830
927
  parentContextId: thread.message.contextId,
@@ -832,9 +929,9 @@ export function testSubscriptionScenarios() {
832
929
  protocolPath: 'thread/chat',
833
930
  protocolRole: 'thread/participant',
834
931
  });
835
- const message1Reply = yield dwn.processMessage(alice.did, message1.message, { dataStream: message1.dataStream });
932
+ const message1Reply = await dwn.processMessage(alice.did, message1.message, { dataStream: message1.dataStream });
836
933
  expect(message1Reply.status.code).toBe(202);
837
- const message2 = yield TestDataGenerator.generateRecordsWrite({
934
+ const message2 = await TestDataGenerator.generateRecordsWrite({
838
935
  author: bob,
839
936
  recipient: alice.did,
840
937
  parentContextId: thread.message.contextId,
@@ -842,9 +939,9 @@ export function testSubscriptionScenarios() {
842
939
  protocolPath: 'thread/chat',
843
940
  protocolRole: 'thread/participant',
844
941
  });
845
- const message2Reply = yield dwn.processMessage(alice.did, message2.message, { dataStream: message2.dataStream });
942
+ const message2Reply = await dwn.processMessage(alice.did, message2.message, { dataStream: message2.dataStream });
846
943
  expect(message2Reply.status.code).toBe(202);
847
- const message3 = yield TestDataGenerator.generateRecordsWrite({
944
+ const message3 = await TestDataGenerator.generateRecordsWrite({
848
945
  author: carol,
849
946
  recipient: alice.did,
850
947
  parentContextId: thread.message.contextId,
@@ -852,34 +949,34 @@ export function testSubscriptionScenarios() {
852
949
  protocolPath: 'thread/chat',
853
950
  protocolRole: 'thread/participant',
854
951
  });
855
- const message3Reply = yield dwn.processMessage(alice.did, message3.message, { dataStream: message3.dataStream });
952
+ const message3Reply = await dwn.processMessage(alice.did, message3.message, { dataStream: message3.dataStream });
856
953
  expect(message3Reply.status.code).toBe(202);
857
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
954
+ await Poller.pollUntilSuccessOrTimeout(async () => {
858
955
  expect(messages.length).toBe(5);
859
956
  expect(messages).toEqual(expect.arrayContaining([
860
- yield Message.getCid(message1.message),
861
- yield Message.getCid(message2.message),
862
- yield Message.getCid(message3.message),
957
+ await Message.getCid(message1.message),
958
+ await Message.getCid(message2.message),
959
+ await Message.getCid(message3.message),
863
960
  ]));
864
- }));
961
+ });
865
962
  // delete carol participant
866
- const deleteCarol = yield TestDataGenerator.generateRecordsDelete({
963
+ const deleteCarol = await TestDataGenerator.generateRecordsDelete({
867
964
  author: alice,
868
965
  recordId: carolParticipant.message.recordId
869
966
  });
870
- const deleteCarolReply = yield dwn.processMessage(alice.did, deleteCarol.message);
967
+ const deleteCarolReply = await dwn.processMessage(alice.did, deleteCarol.message);
871
968
  expect(deleteCarolReply.status.code).toBe(202);
872
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
969
+ await Poller.pollUntilSuccessOrTimeout(async () => {
873
970
  expect(messages.length).toBe(6);
874
971
  expect(messages).toEqual(expect.arrayContaining([
875
- yield Message.getCid(deleteCarol.message)
972
+ await Message.getCid(deleteCarol.message)
876
973
  ]));
877
974
  // check the initial write was included with the delete
878
975
  expect(initialWrites).toEqual(expect.arrayContaining([
879
- yield Message.getCid(carolParticipant.message)
976
+ await Message.getCid(carolParticipant.message)
880
977
  ]));
881
- }));
882
- }));
978
+ });
979
+ });
883
980
  });
884
981
  });
885
982
  }