@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,19 +1,10 @@
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 messageProtocolDefinition from '../vectors/protocol-definitions/message.json' with { type: 'json' };
11
2
  import nestedProtocolDefinition from '../vectors/protocol-definitions/nested.json' with { type: 'json' };
12
3
  import sinon from 'sinon';
13
4
  import { DwnInterfaceName } from '../../src/enums/dwn-interface-method.js';
14
5
  import { Message } from '../../src/core/message.js';
15
6
  import { TestDataGenerator } from '../utils/test-data-generator.js';
16
- import { TestEventStream } from '../test-event-stream.js';
7
+ import { TestEventLog } from '../test-event-stream.js';
17
8
  import { TestStores } from '../test-stores.js';
18
9
  import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
19
10
  import { DataStream, Dwn, DwnConstant, DwnErrorCode, Jws, ProtocolsConfigure, RecordsDelete, RecordsQuery, RecordsWrite, SortDirection } from '../../src/index.js';
@@ -25,41 +16,40 @@ export function testRecordsPrune() {
25
16
  let dataStore;
26
17
  let resumableTaskStore;
27
18
  let stateIndex;
28
- let eventStream;
19
+ let eventLog;
29
20
  let dwn;
30
21
  // important to follow the `before` and `after` pattern to initialize and clean the stores in tests
31
22
  // so that different test suites can reuse the same backend store for testing
32
- beforeAll(() => __awaiter(this, void 0, void 0, function* () {
23
+ beforeAll(async () => {
33
24
  didResolver = new UniversalResolver({ didResolvers: [DidKey] });
34
25
  const stores = TestStores.get();
35
26
  messageStore = stores.messageStore;
36
27
  dataStore = stores.dataStore;
37
28
  resumableTaskStore = stores.resumableTaskStore;
38
29
  stateIndex = stores.stateIndex;
39
- eventStream = TestEventStream.get();
40
- dwn = yield Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventStream, resumableTaskStore });
41
- }));
42
- beforeEach(() => __awaiter(this, void 0, void 0, function* () {
30
+ eventLog = TestEventLog.get();
31
+ dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventLog, resumableTaskStore });
32
+ });
33
+ beforeEach(async () => {
43
34
  sinon.restore(); // wipe all previous stubs/spies/mocks/fakes
44
35
  // clean up before each test rather than after so that a test does not depend on other tests to do the clean up
45
- yield messageStore.clear();
46
- yield dataStore.clear();
47
- yield resumableTaskStore.clear();
48
- yield stateIndex.clear();
49
- }));
50
- afterAll(() => __awaiter(this, void 0, void 0, function* () {
51
- yield dwn.close();
52
- }));
53
- it('should prune all descendants when given RecordsDelete with `prune` set to `true`', () => __awaiter(this, void 0, void 0, function* () {
54
- var _a;
55
- const alice = yield TestDataGenerator.generateDidKeyPersona();
36
+ await messageStore.clear();
37
+ await dataStore.clear();
38
+ await resumableTaskStore.clear();
39
+ await stateIndex.clear();
40
+ });
41
+ afterAll(async () => {
42
+ await dwn.close();
43
+ });
44
+ it('should prune all descendants when given RecordsDelete with `prune` set to `true`', async () => {
45
+ const alice = await TestDataGenerator.generateDidKeyPersona();
56
46
  // install a protocol with foo <- bar <- baz structure
57
47
  const nestedProtocol = nestedProtocolDefinition;
58
- const protocolsConfig = yield ProtocolsConfigure.create({
48
+ const protocolsConfig = await ProtocolsConfigure.create({
59
49
  definition: nestedProtocol,
60
50
  signer: Jws.createSigner(alice)
61
51
  });
62
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
52
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
63
53
  expect(protocolsConfigureReply.status.code).toBe(202);
64
54
  // writes 2 foos, 2 bars under foo1, and 2 bazes under bar1
65
55
  // write 2 foos
@@ -72,11 +62,11 @@ export function testRecordsPrune() {
72
62
  dataFormat: nestedProtocol.types.foo.dataFormats[0],
73
63
  data: fooData
74
64
  };
75
- const foo1 = yield RecordsWrite.create(fooOptions);
76
- const foo1WriteResponse = yield dwn.processMessage(alice.did, foo1.message, { dataStream: DataStream.fromBytes(fooData) });
65
+ const foo1 = await RecordsWrite.create(fooOptions);
66
+ const foo1WriteResponse = await dwn.processMessage(alice.did, foo1.message, { dataStream: DataStream.fromBytes(fooData) });
77
67
  expect(foo1WriteResponse.status.code).toBe(202);
78
- const foo2 = yield RecordsWrite.create(fooOptions);
79
- const foo2WriteResponse = yield dwn.processMessage(alice.did, foo2.message, { dataStream: DataStream.fromBytes(fooData) });
68
+ const foo2 = await RecordsWrite.create(fooOptions);
69
+ const foo2WriteResponse = await dwn.processMessage(alice.did, foo2.message, { dataStream: DataStream.fromBytes(fooData) });
80
70
  expect(foo2WriteResponse.status.code).toBe(202);
81
71
  // write 2 bars under foo1 with data large enough to be required to be stored in the data store so we can test purge in data store
82
72
  const barData = TestDataGenerator.randomBytes(DwnConstant.maxDataSizeAllowedToBeEncoded + 1);
@@ -89,11 +79,11 @@ export function testRecordsPrune() {
89
79
  parentContextId: foo1.message.contextId,
90
80
  data: barData
91
81
  };
92
- const bar1 = yield RecordsWrite.create(Object.assign({}, barOptions));
93
- const bar1WriteResponse = yield dwn.processMessage(alice.did, bar1.message, { dataStream: DataStream.fromBytes(barData) });
82
+ const bar1 = await RecordsWrite.create({ ...barOptions });
83
+ const bar1WriteResponse = await dwn.processMessage(alice.did, bar1.message, { dataStream: DataStream.fromBytes(barData) });
94
84
  expect(bar1WriteResponse.status.code).toBe(202);
95
- const bar2 = yield RecordsWrite.create(Object.assign({}, barOptions));
96
- const bar2WriteResponse = yield dwn.processMessage(alice.did, bar2.message, { dataStream: DataStream.fromBytes(barData) });
85
+ const bar2 = await RecordsWrite.create({ ...barOptions });
86
+ const bar2WriteResponse = await dwn.processMessage(alice.did, bar2.message, { dataStream: DataStream.fromBytes(barData) });
97
87
  expect(bar2WriteResponse.status.code).toBe(202);
98
88
  // write 2 bazes under bar1, each has more than 1 message associated with the record so we can test multi-message purge
99
89
  const bazData = TestDataGenerator.randomBytes(100);
@@ -106,95 +96,94 @@ export function testRecordsPrune() {
106
96
  parentContextId: bar1.message.contextId,
107
97
  data: bazData
108
98
  };
109
- const baz1 = yield RecordsWrite.create(Object.assign({}, bazOptions));
110
- const baz1WriteResponse = yield dwn.processMessage(alice.did, baz1.message, { dataStream: DataStream.fromBytes(bazData) });
99
+ const baz1 = await RecordsWrite.create({ ...bazOptions });
100
+ const baz1WriteResponse = await dwn.processMessage(alice.did, baz1.message, { dataStream: DataStream.fromBytes(bazData) });
111
101
  expect(baz1WriteResponse.status.code).toBe(202);
112
- const baz2 = yield RecordsWrite.create(Object.assign({}, bazOptions));
113
- const baz2WriteResponse = yield dwn.processMessage(alice.did, baz2.message, { dataStream: DataStream.fromBytes(bazData) });
102
+ const baz2 = await RecordsWrite.create({ ...bazOptions });
103
+ const baz2WriteResponse = await dwn.processMessage(alice.did, baz2.message, { dataStream: DataStream.fromBytes(bazData) });
114
104
  expect(baz2WriteResponse.status.code).toBe(202);
115
105
  // make latest state of baz1 a `RecordsWrite`
116
106
  const newBaz1Data = TestDataGenerator.randomBytes(100);
117
- const baz1Update = yield RecordsWrite.createFrom({
107
+ const baz1Update = await RecordsWrite.createFrom({
118
108
  signer: Jws.createSigner(alice),
119
109
  recordsWriteMessage: baz1.message,
120
110
  data: newBaz1Data
121
111
  });
122
- const baz1UpdateResponse = yield dwn.processMessage(alice.did, baz1Update.message, { dataStream: DataStream.fromBytes(newBaz1Data) });
112
+ const baz1UpdateResponse = await dwn.processMessage(alice.did, baz1Update.message, { dataStream: DataStream.fromBytes(newBaz1Data) });
123
113
  expect(baz1UpdateResponse.status.code).toBe(202);
124
114
  // make latest state of baz2 a `RecordsDelete`
125
- const baz2Delete = yield RecordsDelete.create({
115
+ const baz2Delete = await RecordsDelete.create({
126
116
  signer: Jws.createSigner(alice),
127
117
  recordId: baz2.message.recordId
128
118
  });
129
- const baz2DeleteResponse = yield dwn.processMessage(alice.did, baz2Delete.message);
119
+ const baz2DeleteResponse = await dwn.processMessage(alice.did, baz2Delete.message);
130
120
  expect(baz2DeleteResponse.status.code).toBe(202);
131
121
  // sanity test messages are inserted in message store
132
122
  const queryFilter = [{
133
123
  interface: DwnInterfaceName.Records,
134
124
  protocol: nestedProtocol.protocol
135
125
  }];
136
- const queryResult = yield messageStore.query(alice.did, queryFilter);
126
+ const queryResult = await messageStore.query(alice.did, queryFilter);
137
127
  expect(queryResult.messages.length).toBe(8); // 2 foos, 2 bars, 2 bazes x 2 messages each
138
128
  // sanity test events are inserted in state index
139
129
  // NOTE: getLeaves returns ALL messageCids (including ProtocolsConfigure), so count is 9 not 8
140
- const events = yield stateIndex.getLeaves(alice.did, []);
130
+ const events = await stateIndex.getLeaves(alice.did, []);
141
131
  expect(events.length).toBe(9);
142
132
  // sanity test data is inserted in data store
143
- const bar1DataGetResult = yield dataStore.get(alice.did, bar1.message.recordId, bar1.message.descriptor.dataCid);
144
- const bar2DataGetResult = yield dataStore.get(alice.did, bar2.message.recordId, bar2.message.descriptor.dataCid);
133
+ const bar1DataGetResult = await dataStore.get(alice.did, bar1.message.recordId, bar1.message.descriptor.dataCid);
134
+ const bar2DataGetResult = await dataStore.get(alice.did, bar2.message.recordId, bar2.message.descriptor.dataCid);
145
135
  expect(bar1DataGetResult).toBeDefined();
146
136
  expect(bar2DataGetResult).toBeDefined();
147
137
  // Delete foo1 with prune enabled
148
- const foo1Delete = yield RecordsDelete.create({
138
+ const foo1Delete = await RecordsDelete.create({
149
139
  recordId: foo1.message.recordId,
150
140
  prune: true,
151
141
  signer: Jws.createSigner(alice)
152
142
  });
153
- const deleteReply = yield dwn.processMessage(alice.did, foo1Delete.message);
143
+ const deleteReply = await dwn.processMessage(alice.did, foo1Delete.message);
154
144
  expect(deleteReply.status.code).toBe(202);
155
145
  // verify all bar and baz message are permanently deleted
156
- const queryResult2 = yield messageStore.query(alice.did, queryFilter, { messageTimestamp: SortDirection.Ascending });
146
+ const queryResult2 = await messageStore.query(alice.did, queryFilter, { messageTimestamp: SortDirection.Ascending });
157
147
  expect(queryResult2.messages.length).toBe(3); // foo2 RecordsWrite, foo1 RecordsWrite and RecordsDelete
158
148
  expect(queryResult2.messages[0]).toEqual(expect.objectContaining(foo1.message));
159
149
  expect(queryResult2.messages[1]).toEqual(expect.objectContaining(foo2.message));
160
150
  expect(queryResult2.messages[2]).toEqual(expect.objectContaining(foo1Delete.message));
161
151
  // verify all bar and baz events are permanently deleted
162
152
  // NOTE: getLeaves returns ALL messageCids (including ProtocolsConfigure), so count is 4 not 3
163
- const events2 = yield stateIndex.getLeaves(alice.did, []);
153
+ const events2 = await stateIndex.getLeaves(alice.did, []);
164
154
  expect(events2.length).toBe(4);
165
- const foo1RecordsWriteCid = yield Message.getCid(foo1.message);
166
- const foo2RecordsWriteCid = yield Message.getCid(foo2.message);
167
- const foo2RecordsDeleteCid = yield Message.getCid(foo1Delete.message);
155
+ const foo1RecordsWriteCid = await Message.getCid(foo1.message);
156
+ const foo2RecordsWriteCid = await Message.getCid(foo2.message);
157
+ const foo2RecordsDeleteCid = await Message.getCid(foo1Delete.message);
168
158
  expect(events2).toEqual(expect.arrayContaining([foo1RecordsWriteCid, foo2RecordsWriteCid, foo2RecordsDeleteCid]));
169
159
  // verify all bar data are permanently deleted
170
- const bar1DataGetResult2 = yield dataStore.get(alice.did, bar1.message.recordId, bar1.message.descriptor.dataCid);
171
- const bar2DataGetResult2 = yield dataStore.get(alice.did, bar2.message.recordId, bar2.message.descriptor.dataCid);
160
+ const bar1DataGetResult2 = await dataStore.get(alice.did, bar1.message.recordId, bar1.message.descriptor.dataCid);
161
+ const bar2DataGetResult2 = await dataStore.get(alice.did, bar2.message.recordId, bar2.message.descriptor.dataCid);
172
162
  expect(bar1DataGetResult2).toBeUndefined();
173
163
  expect(bar2DataGetResult2).toBeUndefined();
174
164
  // sanity test an external query will no longer return the deleted records
175
- const queryData = yield RecordsQuery.create({
165
+ const queryData = await RecordsQuery.create({
176
166
  signer: Jws.createSigner(alice),
177
167
  filter: { protocol: nestedProtocol.protocol }
178
168
  });
179
- const reply2 = yield dwn.processMessage(alice.did, queryData.message);
169
+ const reply2 = await dwn.processMessage(alice.did, queryData.message);
180
170
  expect(reply2.status.code).toBe(200);
181
- expect((_a = reply2.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(1); // only foo2 is left
171
+ expect(reply2.entries?.length).toBe(1); // only foo2 is left
182
172
  expect(reply2.entries[0]).toEqual(expect.objectContaining(foo2.message));
183
- }));
184
- it('should allow pruning against a deleted record that is not already pruned', () => __awaiter(this, void 0, void 0, function* () {
173
+ });
174
+ it('should allow pruning against a deleted record that is not already pruned', async () => {
185
175
  // Scenario:
186
176
  // 1. Alice has a record `foo` with a descendent chain
187
177
  // 2. Alice deletes the record `foo` WITHOUT prune, leaving the descendants intact
188
178
  // 3. Verify that Alice is able to perform a prune on `foo` to delete all its descendants
189
- var _a, _b, _c;
190
- const alice = yield TestDataGenerator.generateDidKeyPersona();
179
+ const alice = await TestDataGenerator.generateDidKeyPersona();
191
180
  // install a protocol with foo <- bar <- baz structure
192
181
  const nestedProtocol = nestedProtocolDefinition;
193
- const protocolsConfig = yield ProtocolsConfigure.create({
182
+ const protocolsConfig = await ProtocolsConfigure.create({
194
183
  definition: nestedProtocol,
195
184
  signer: Jws.createSigner(alice)
196
185
  });
197
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
186
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
198
187
  expect(protocolsConfigureReply.status.code).toBe(202);
199
188
  // 1. Alice has a record `foo` with a descendent chain
200
189
  // write foo <- bar <- baz records
@@ -207,8 +196,8 @@ export function testRecordsPrune() {
207
196
  dataFormat: nestedProtocol.types.foo.dataFormats[0],
208
197
  data: fooData
209
198
  };
210
- const foo = yield RecordsWrite.create(fooOptions);
211
- const fooWriteResponse = yield dwn.processMessage(alice.did, foo.message, { dataStream: DataStream.fromBytes(fooData) });
199
+ const foo = await RecordsWrite.create(fooOptions);
200
+ const fooWriteResponse = await dwn.processMessage(alice.did, foo.message, { dataStream: DataStream.fromBytes(fooData) });
212
201
  expect(fooWriteResponse.status.code).toBe(202);
213
202
  const barData = TestDataGenerator.randomBytes(100);
214
203
  const barOptions = {
@@ -220,8 +209,8 @@ export function testRecordsPrune() {
220
209
  parentContextId: foo.message.contextId,
221
210
  data: barData
222
211
  };
223
- const bar = yield RecordsWrite.create(Object.assign({}, barOptions));
224
- const barWriteResponse = yield dwn.processMessage(alice.did, bar.message, { dataStream: DataStream.fromBytes(barData) });
212
+ const bar = await RecordsWrite.create({ ...barOptions });
213
+ const barWriteResponse = await dwn.processMessage(alice.did, bar.message, { dataStream: DataStream.fromBytes(barData) });
225
214
  expect(barWriteResponse.status.code).toBe(202);
226
215
  const bazData = TestDataGenerator.randomBytes(100);
227
216
  const bazOptions = {
@@ -233,71 +222,70 @@ export function testRecordsPrune() {
233
222
  parentContextId: bar.message.contextId,
234
223
  data: bazData
235
224
  };
236
- const baz = yield RecordsWrite.create(Object.assign({}, bazOptions));
237
- const bazWriteResponse = yield dwn.processMessage(alice.did, baz.message, { dataStream: DataStream.fromBytes(bazData) });
225
+ const baz = await RecordsWrite.create({ ...bazOptions });
226
+ const bazWriteResponse = await dwn.processMessage(alice.did, baz.message, { dataStream: DataStream.fromBytes(bazData) });
238
227
  expect(bazWriteResponse.status.code).toBe(202);
239
228
  // sanity records are inserted in message store
240
229
  const queryFilter = [{
241
230
  interface: DwnInterfaceName.Records,
242
231
  protocol: nestedProtocol.protocol
243
232
  }];
244
- const messagesBeforeDelete = yield messageStore.query(alice.did, queryFilter);
233
+ const messagesBeforeDelete = await messageStore.query(alice.did, queryFilter);
245
234
  expect(messagesBeforeDelete.messages.length).toBe(3);
246
235
  // sanity verify RecordsQuery returns no records
247
- const recordsQuery = yield RecordsQuery.create({
236
+ const recordsQuery = await RecordsQuery.create({
248
237
  signer: Jws.createSigner(alice),
249
238
  filter: { protocol: nestedProtocol.protocol }
250
239
  });
251
- const recordsQueryBeforeDeleteReply = yield dwn.processMessage(alice.did, recordsQuery.message);
240
+ const recordsQueryBeforeDeleteReply = await dwn.processMessage(alice.did, recordsQuery.message);
252
241
  expect(recordsQueryBeforeDeleteReply.status.code).toBe(200);
253
- expect((_a = recordsQueryBeforeDeleteReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(3);
242
+ expect(recordsQueryBeforeDeleteReply.entries?.length).toBe(3);
254
243
  // 2. Alice deletes the record `foo` WITHOUT prune, leaving the descendants intact
255
- const fooDelete = yield RecordsDelete.create({
244
+ const fooDelete = await RecordsDelete.create({
256
245
  recordId: foo.message.recordId,
257
246
  // prune : true, // intentionally showing that this is a RecordsDelete WITHOUT pruning
258
247
  signer: Jws.createSigner(alice)
259
248
  });
260
- const deleteReply = yield dwn.processMessage(alice.did, fooDelete.message);
249
+ const deleteReply = await dwn.processMessage(alice.did, fooDelete.message);
261
250
  expect(deleteReply.status.code).toBe(202);
262
251
  // verify bar and baz messages still exists
263
- const messagesAfterDelete = yield messageStore.query(alice.did, queryFilter, { messageTimestamp: SortDirection.Ascending });
252
+ const messagesAfterDelete = await messageStore.query(alice.did, queryFilter, { messageTimestamp: SortDirection.Ascending });
264
253
  expect(messagesAfterDelete.messages.length).toBe(4); // RecordsWrite for foo, bar, baz, and RecordsDelete for foo
265
254
  // sanity verify RecordsQuery returns the descendants
266
- const recordsQueryAfterDeleteReply = yield dwn.processMessage(alice.did, recordsQuery.message);
255
+ const recordsQueryAfterDeleteReply = await dwn.processMessage(alice.did, recordsQuery.message);
267
256
  expect(recordsQueryAfterDeleteReply.status.code).toBe(200);
268
- expect((_b = recordsQueryAfterDeleteReply.entries) === null || _b === void 0 ? void 0 : _b.length).toBe(2);
257
+ expect(recordsQueryAfterDeleteReply.entries?.length).toBe(2);
269
258
  // 3. Verify that Alice is able to perform a prune on `foo` to delete all its descendants
270
- const fooPrune = yield RecordsDelete.create({
259
+ const fooPrune = await RecordsDelete.create({
271
260
  recordId: foo.message.recordId,
272
261
  prune: true,
273
262
  signer: Jws.createSigner(alice)
274
263
  });
275
- const pruneReply = yield dwn.processMessage(alice.did, fooPrune.message);
264
+ const pruneReply = await dwn.processMessage(alice.did, fooPrune.message);
276
265
  expect(pruneReply.status.code).toBe(202);
277
266
  // verify bar and baz messages are permanently deleted
278
- const messagesAfterPrune = yield messageStore.query(alice.did, queryFilter, { messageTimestamp: SortDirection.Ascending });
267
+ const messagesAfterPrune = await messageStore.query(alice.did, queryFilter, { messageTimestamp: SortDirection.Ascending });
279
268
  expect(messagesAfterPrune.messages.length).toBe(2); // just RecordsWrite and RecordsDelete for foo
280
269
  expect(messagesAfterPrune.messages[0]).toEqual(expect.objectContaining(foo.message));
281
270
  expect(messagesAfterPrune.messages[1]).toEqual(expect.objectContaining(fooPrune.message));
282
271
  // sanity verify RecordsQuery returns no records
283
- const recordsQueryAfterPruneReply = yield dwn.processMessage(alice.did, recordsQuery.message);
272
+ const recordsQueryAfterPruneReply = await dwn.processMessage(alice.did, recordsQuery.message);
284
273
  expect(recordsQueryAfterPruneReply.status.code).toBe(200);
285
- expect((_c = recordsQueryAfterPruneReply.entries) === null || _c === void 0 ? void 0 : _c.length).toBe(0);
286
- }));
287
- it('should return 404 when attempting to prune against a record that is already pruned', () => __awaiter(this, void 0, void 0, function* () {
274
+ expect(recordsQueryAfterPruneReply.entries?.length).toBe(0);
275
+ });
276
+ it('should return 404 when attempting to prune against a record that is already pruned', async () => {
288
277
  // Scenario:
289
278
  // 1. Alice has a record `foo` with a descendent chain
290
279
  // 2. Alice prunes the record `foo`
291
280
  // 3. Verify that Alice is unable to perform a prune on `foo` again
292
- var _a;
293
- const alice = yield TestDataGenerator.generateDidKeyPersona();
281
+ const alice = await TestDataGenerator.generateDidKeyPersona();
294
282
  // install a protocol with foo <- bar <- baz structure
295
283
  const nestedProtocol = nestedProtocolDefinition;
296
- const protocolsConfig = yield ProtocolsConfigure.create({
284
+ const protocolsConfig = await ProtocolsConfigure.create({
297
285
  definition: nestedProtocol,
298
286
  signer: Jws.createSigner(alice)
299
287
  });
300
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
288
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
301
289
  expect(protocolsConfigureReply.status.code).toBe(202);
302
290
  // 1. Alice has a record `foo` with a descendent chain
303
291
  // write foo <- bar <- baz records
@@ -310,8 +298,8 @@ export function testRecordsPrune() {
310
298
  dataFormat: nestedProtocol.types.foo.dataFormats[0],
311
299
  data: fooData
312
300
  };
313
- const foo = yield RecordsWrite.create(fooOptions);
314
- const fooWriteResponse = yield dwn.processMessage(alice.did, foo.message, { dataStream: DataStream.fromBytes(fooData) });
301
+ const foo = await RecordsWrite.create(fooOptions);
302
+ const fooWriteResponse = await dwn.processMessage(alice.did, foo.message, { dataStream: DataStream.fromBytes(fooData) });
315
303
  expect(fooWriteResponse.status.code).toBe(202);
316
304
  const barData = TestDataGenerator.randomBytes(100);
317
305
  const barOptions = {
@@ -323,8 +311,8 @@ export function testRecordsPrune() {
323
311
  parentContextId: foo.message.contextId,
324
312
  data: barData
325
313
  };
326
- const bar = yield RecordsWrite.create(Object.assign({}, barOptions));
327
- const barWriteResponse = yield dwn.processMessage(alice.did, bar.message, { dataStream: DataStream.fromBytes(barData) });
314
+ const bar = await RecordsWrite.create({ ...barOptions });
315
+ const barWriteResponse = await dwn.processMessage(alice.did, bar.message, { dataStream: DataStream.fromBytes(barData) });
328
316
  expect(barWriteResponse.status.code).toBe(202);
329
317
  const bazData = TestDataGenerator.randomBytes(100);
330
318
  const bazOptions = {
@@ -336,51 +324,50 @@ export function testRecordsPrune() {
336
324
  parentContextId: bar.message.contextId,
337
325
  data: bazData
338
326
  };
339
- const baz = yield RecordsWrite.create(Object.assign({}, bazOptions));
340
- const bazWriteResponse = yield dwn.processMessage(alice.did, baz.message, { dataStream: DataStream.fromBytes(bazData) });
327
+ const baz = await RecordsWrite.create({ ...bazOptions });
328
+ const bazWriteResponse = await dwn.processMessage(alice.did, baz.message, { dataStream: DataStream.fromBytes(bazData) });
341
329
  expect(bazWriteResponse.status.code).toBe(202);
342
330
  // sanity records are inserted in message store
343
331
  const queryFilter = [{
344
332
  interface: DwnInterfaceName.Records,
345
333
  protocol: nestedProtocol.protocol
346
334
  }];
347
- const queryResult = yield messageStore.query(alice.did, queryFilter);
335
+ const queryResult = await messageStore.query(alice.did, queryFilter);
348
336
  expect(queryResult.messages.length).toBe(3);
349
337
  // sanity verify RecordsQuery returns no records
350
- const recordsQuery = yield RecordsQuery.create({
338
+ const recordsQuery = await RecordsQuery.create({
351
339
  signer: Jws.createSigner(alice),
352
340
  filter: { protocol: nestedProtocol.protocol }
353
341
  });
354
- const recordsQueryBeforeDeleteReply = yield dwn.processMessage(alice.did, recordsQuery.message);
342
+ const recordsQueryBeforeDeleteReply = await dwn.processMessage(alice.did, recordsQuery.message);
355
343
  expect(recordsQueryBeforeDeleteReply.status.code).toBe(200);
356
- expect((_a = recordsQueryBeforeDeleteReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(3);
344
+ expect(recordsQueryBeforeDeleteReply.entries?.length).toBe(3);
357
345
  // 2. Alice prunes the record `foo`
358
- const fooPrune1 = yield RecordsDelete.create({
346
+ const fooPrune1 = await RecordsDelete.create({
359
347
  recordId: foo.message.recordId,
360
348
  prune: true,
361
349
  signer: Jws.createSigner(alice)
362
350
  });
363
- const prune1Reply = yield dwn.processMessage(alice.did, fooPrune1.message);
351
+ const prune1Reply = await dwn.processMessage(alice.did, fooPrune1.message);
364
352
  expect(prune1Reply.status.code).toBe(202);
365
353
  // 3. Verify that Alice is unable to perform a prune on `foo` again
366
- const fooPrune2 = yield RecordsDelete.create({
354
+ const fooPrune2 = await RecordsDelete.create({
367
355
  recordId: foo.message.recordId,
368
356
  prune: true,
369
357
  signer: Jws.createSigner(alice)
370
358
  });
371
- const prune2Reply = yield dwn.processMessage(alice.did, fooPrune2.message);
359
+ const prune2Reply = await dwn.processMessage(alice.did, fooPrune2.message);
372
360
  expect(prune2Reply.status.code).toBe(404);
373
- }));
361
+ });
374
362
  describe('prune and co-prune protocol action', () => {
375
- it('should only allow a non-owner author to prune if `prune` is allowed and set to `true` in RecordsDelete', () => __awaiter(this, void 0, void 0, function* () {
363
+ it('should only allow a non-owner author to prune if `prune` is allowed and set to `true` in RecordsDelete', async () => {
376
364
  // Scenario:
377
365
  // 1. Alice installs a protocol allowing others to add and prune records.
378
366
  // 2. Bob writes a record + a descendant in Alice's DWN.
379
367
  // 3. Verify Bob cannot prune the records if `prune` is not set to `true` in RecordsDelete.
380
368
  // 4. Verify Bob can prune the records by setting `prune` to `true` in RecordsDelete.
381
- var _a;
382
- const alice = yield TestDataGenerator.generateDidKeyPersona();
383
- const bob = yield TestDataGenerator.generateDidKeyPersona();
369
+ const alice = await TestDataGenerator.generateDidKeyPersona();
370
+ const bob = await TestDataGenerator.generateDidKeyPersona();
384
371
  // 1. Alice installs a protocol allowing others to add and prune records.
385
372
  const protocolDefinition = {
386
373
  protocol: 'http://post-protocol.xyz',
@@ -417,11 +404,11 @@ export function testRecordsPrune() {
417
404
  }
418
405
  }
419
406
  };
420
- const protocolsConfig = yield ProtocolsConfigure.create({
407
+ const protocolsConfig = await ProtocolsConfigure.create({
421
408
  definition: protocolDefinition,
422
409
  signer: Jws.createSigner(alice)
423
410
  });
424
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
411
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
425
412
  expect(protocolsConfigureReply.status.code).toBe(202);
426
413
  // 2. Bob writes a record + a descendant in Alice's DWN.
427
414
  const postData = TestDataGenerator.randomBytes(100);
@@ -432,8 +419,8 @@ export function testRecordsPrune() {
432
419
  dataFormat: 'application/json',
433
420
  data: postData
434
421
  };
435
- const post = yield RecordsWrite.create(postOptions);
436
- const postWriteResponse = yield dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
422
+ const post = await RecordsWrite.create(postOptions);
423
+ const postWriteResponse = await dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
437
424
  expect(postWriteResponse.status.code).toBe(202);
438
425
  const attachmentData = TestDataGenerator.randomBytes(100);
439
426
  const attachmentOptions = {
@@ -444,50 +431,49 @@ export function testRecordsPrune() {
444
431
  dataFormat: 'application/octet-stream',
445
432
  data: attachmentData
446
433
  };
447
- const attachment = yield RecordsWrite.create(attachmentOptions);
448
- const attachmentWriteResponse = yield dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
434
+ const attachment = await RecordsWrite.create(attachmentOptions);
435
+ const attachmentWriteResponse = await dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
449
436
  expect(attachmentWriteResponse.status.code).toBe(202);
450
437
  // 3. Verify Bob cannot prune the records if `prune` is not set to `true` in RecordsDelete.
451
- const unauthorizedPostPrune = yield RecordsDelete.create({
438
+ const unauthorizedPostPrune = await RecordsDelete.create({
452
439
  recordId: post.message.recordId,
453
440
  // prune : true, // intentionally not setting `prune` to true
454
441
  signer: Jws.createSigner(bob)
455
442
  });
456
- const unauthorizedPostPruneReply = yield dwn.processMessage(alice.did, unauthorizedPostPrune.message);
443
+ const unauthorizedPostPruneReply = await dwn.processMessage(alice.did, unauthorizedPostPrune.message);
457
444
  expect(unauthorizedPostPruneReply.status.code).toBe(401);
458
445
  expect(unauthorizedPostPruneReply.status.detail).toContain(DwnErrorCode.ProtocolAuthorizationActionNotAllowed);
459
446
  // 4. Verify Bob can prune the records by setting `prune` to `true` in RecordsDelete.
460
- const postPrune = yield RecordsDelete.create({
447
+ const postPrune = await RecordsDelete.create({
461
448
  recordId: post.message.recordId,
462
449
  prune: true,
463
450
  signer: Jws.createSigner(bob)
464
451
  });
465
- const pruneReply = yield dwn.processMessage(alice.did, postPrune.message);
452
+ const pruneReply = await dwn.processMessage(alice.did, postPrune.message);
466
453
  expect(pruneReply.status.code).toBe(202);
467
454
  // sanity test `RecordsQuery` no longer returns the deleted record
468
- const recordsQuery = yield RecordsQuery.create({
455
+ const recordsQuery = await RecordsQuery.create({
469
456
  signer: Jws.createSigner(bob),
470
457
  filter: { protocol: protocolDefinition.protocol }
471
458
  });
472
- const recordsQueryReply = yield dwn.processMessage(alice.did, recordsQuery.message);
459
+ const recordsQueryReply = await dwn.processMessage(alice.did, recordsQuery.message);
473
460
  expect(recordsQueryReply.status.code).toBe(200);
474
- expect((_a = recordsQueryReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(0);
475
- }));
476
- it('should not allow a non-owner author to prune if `prune` is not an authorized action', () => __awaiter(this, void 0, void 0, function* () {
461
+ expect(recordsQueryReply.entries?.length).toBe(0);
462
+ });
463
+ it('should not allow a non-owner author to prune if `prune` is not an authorized action', async () => {
477
464
  // Scenario:
478
465
  // 1. Alice installs a protocol allowing others to add records but not prune.
479
466
  // 2. Bob writes a record + a descendant in Alice's DWN.
480
467
  // 3. Verify Bob cannot prune the records.
481
- var _a;
482
- const alice = yield TestDataGenerator.generateDidKeyPersona();
483
- const bob = yield TestDataGenerator.generateDidKeyPersona();
468
+ const alice = await TestDataGenerator.generateDidKeyPersona();
469
+ const bob = await TestDataGenerator.generateDidKeyPersona();
484
470
  // 1. Alice installs a protocol allowing others to add records but not prune.
485
471
  const protocolDefinition = messageProtocolDefinition;
486
- const protocolsConfig = yield ProtocolsConfigure.create({
472
+ const protocolsConfig = await ProtocolsConfigure.create({
487
473
  definition: protocolDefinition,
488
474
  signer: Jws.createSigner(alice)
489
475
  });
490
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
476
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
491
477
  expect(protocolsConfigureReply.status.code).toBe(202);
492
478
  // 2. Bob writes a record + a descendant in Alice's DWN.
493
479
  const messageData = TestDataGenerator.randomBytes(100);
@@ -499,8 +485,8 @@ export function testRecordsPrune() {
499
485
  dataFormat: protocolDefinition.types.message.dataFormats[0],
500
486
  data: messageData
501
487
  };
502
- const message = yield RecordsWrite.create(messageOptions);
503
- const messageWriteResponse = yield dwn.processMessage(alice.did, message.message, { dataStream: DataStream.fromBytes(messageData) });
488
+ const message = await RecordsWrite.create(messageOptions);
489
+ const messageWriteResponse = await dwn.processMessage(alice.did, message.message, { dataStream: DataStream.fromBytes(messageData) });
504
490
  expect(messageWriteResponse.status.code).toBe(202);
505
491
  const attachmentData = TestDataGenerator.randomBytes(100);
506
492
  const attachmentOptions = {
@@ -511,37 +497,36 @@ export function testRecordsPrune() {
511
497
  dataFormat: 'application/octet-stream',
512
498
  data: attachmentData
513
499
  };
514
- const attachment = yield RecordsWrite.create(attachmentOptions);
515
- const attachmentWriteResponse = yield dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
500
+ const attachment = await RecordsWrite.create(attachmentOptions);
501
+ const attachmentWriteResponse = await dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
516
502
  expect(attachmentWriteResponse.status.code).toBe(202);
517
503
  // 3. Verify Bob cannot prune the records.
518
- const messagePrune = yield RecordsDelete.create({
504
+ const messagePrune = await RecordsDelete.create({
519
505
  recordId: message.message.recordId,
520
506
  prune: true,
521
507
  signer: Jws.createSigner(bob)
522
508
  });
523
- const deleteReply = yield dwn.processMessage(alice.did, messagePrune.message);
509
+ const deleteReply = await dwn.processMessage(alice.did, messagePrune.message);
524
510
  expect(deleteReply.status.code).toBe(401);
525
511
  expect(deleteReply.status.detail).toContain(DwnErrorCode.ProtocolAuthorizationActionNotAllowed);
526
512
  // sanity test `RecordsQuery` still returns the records
527
- const recordsQuery = yield RecordsQuery.create({
513
+ const recordsQuery = await RecordsQuery.create({
528
514
  signer: Jws.createSigner(alice),
529
515
  filter: { protocol: protocolDefinition.protocol }
530
516
  });
531
- const recordsQueryReply = yield dwn.processMessage(alice.did, recordsQuery.message);
517
+ const recordsQueryReply = await dwn.processMessage(alice.did, recordsQuery.message);
532
518
  expect(recordsQueryReply.status.code).toBe(200);
533
- expect((_a = recordsQueryReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(2);
534
- }));
535
- it('should allow a non-author to prune if `co-prune` is allowed and `prune` is set to `true` in RecordsDelete', () => __awaiter(this, void 0, void 0, function* () {
519
+ expect(recordsQueryReply.entries?.length).toBe(2);
520
+ });
521
+ it('should allow a non-author to prune if `co-prune` is allowed and `prune` is set to `true` in RecordsDelete', async () => {
536
522
  // Scenario:
537
523
  // 1. Alice installs a protocol allowing others to add and prune records.
538
524
  // 2. Bob writes a record + a descendant in Alice's DWN.
539
525
  // 3. Verify Carol cannot prune the records if `prune` is not set to `true` in RecordsDelete.
540
526
  // 4. Verify Carol can prune the records by setting `prune` to `true` in RecordsDelete.
541
- var _a;
542
- const alice = yield TestDataGenerator.generateDidKeyPersona();
543
- const bob = yield TestDataGenerator.generateDidKeyPersona();
544
- const carol = yield TestDataGenerator.generateDidKeyPersona();
527
+ const alice = await TestDataGenerator.generateDidKeyPersona();
528
+ const bob = await TestDataGenerator.generateDidKeyPersona();
529
+ const carol = await TestDataGenerator.generateDidKeyPersona();
545
530
  // 1. Alice installs a protocol allowing others to add and prune records.
546
531
  const protocolDefinition = {
547
532
  protocol: 'http://post-protocol.xyz',
@@ -576,11 +561,11 @@ export function testRecordsPrune() {
576
561
  }
577
562
  }
578
563
  };
579
- const protocolsConfig = yield ProtocolsConfigure.create({
564
+ const protocolsConfig = await ProtocolsConfigure.create({
580
565
  definition: protocolDefinition,
581
566
  signer: Jws.createSigner(alice)
582
567
  });
583
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
568
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
584
569
  expect(protocolsConfigureReply.status.code).toBe(202);
585
570
  // 2. Bob writes a record + a descendant in Alice's DWN.
586
571
  const postData = TestDataGenerator.randomBytes(100);
@@ -591,8 +576,8 @@ export function testRecordsPrune() {
591
576
  dataFormat: 'application/json',
592
577
  data: postData
593
578
  };
594
- const post = yield RecordsWrite.create(postOptions);
595
- const postWriteResponse = yield dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
579
+ const post = await RecordsWrite.create(postOptions);
580
+ const postWriteResponse = await dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
596
581
  expect(postWriteResponse.status.code).toBe(202);
597
582
  const attachmentData = TestDataGenerator.randomBytes(100);
598
583
  const attachmentOptions = {
@@ -603,44 +588,43 @@ export function testRecordsPrune() {
603
588
  dataFormat: 'application/octet-stream',
604
589
  data: attachmentData
605
590
  };
606
- const attachment = yield RecordsWrite.create(attachmentOptions);
607
- const attachmentWriteResponse = yield dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
591
+ const attachment = await RecordsWrite.create(attachmentOptions);
592
+ const attachmentWriteResponse = await dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
608
593
  expect(attachmentWriteResponse.status.code).toBe(202);
609
594
  // 3. Verify Carol cannot prune the records if `prune` is not set to `true` in RecordsDelete.
610
- const unauthorizedPostPrune = yield RecordsDelete.create({
595
+ const unauthorizedPostPrune = await RecordsDelete.create({
611
596
  recordId: post.message.recordId,
612
597
  // prune : true, // intentionally not setting `prune` to true
613
598
  signer: Jws.createSigner(carol)
614
599
  });
615
- const unauthorizedPostPruneReply = yield dwn.processMessage(alice.did, unauthorizedPostPrune.message);
600
+ const unauthorizedPostPruneReply = await dwn.processMessage(alice.did, unauthorizedPostPrune.message);
616
601
  expect(unauthorizedPostPruneReply.status.code).toBe(401);
617
602
  expect(unauthorizedPostPruneReply.status.detail).toContain(DwnErrorCode.ProtocolAuthorizationActionNotAllowed);
618
603
  // 4. Verify Carol can prune the records by setting `prune` to `true` in RecordsDelete.
619
- const postPrune = yield RecordsDelete.create({
604
+ const postPrune = await RecordsDelete.create({
620
605
  recordId: post.message.recordId,
621
606
  prune: true,
622
607
  signer: Jws.createSigner(carol)
623
608
  });
624
- const deleteReply = yield dwn.processMessage(alice.did, postPrune.message);
609
+ const deleteReply = await dwn.processMessage(alice.did, postPrune.message);
625
610
  expect(deleteReply.status.code).toBe(202);
626
611
  // sanity test `RecordsQuery` no longer returns the deleted record
627
- const recordsQuery = yield RecordsQuery.create({
612
+ const recordsQuery = await RecordsQuery.create({
628
613
  signer: Jws.createSigner(bob),
629
614
  filter: { protocol: protocolDefinition.protocol }
630
615
  });
631
- const recordsQueryReply = yield dwn.processMessage(alice.did, recordsQuery.message);
616
+ const recordsQueryReply = await dwn.processMessage(alice.did, recordsQuery.message);
632
617
  expect(recordsQueryReply.status.code).toBe(200);
633
- expect((_a = recordsQueryReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(0);
634
- }));
635
- it('should not allow a non-author to prune if `prune` is allowed but `co-prune` is not allowed', () => __awaiter(this, void 0, void 0, function* () {
618
+ expect(recordsQueryReply.entries?.length).toBe(0);
619
+ });
620
+ it('should not allow a non-author to prune if `prune` is allowed but `co-prune` is not allowed', async () => {
636
621
  // Scenario:
637
622
  // 1. Alice installs a protocol allowing others to add records AND only author to prune.
638
623
  // 2. Bob writes a record + a descendant in Alice's DWN.
639
624
  // 3. Verify Carol cannot prune the records.
640
- var _a;
641
- const alice = yield TestDataGenerator.generateDidKeyPersona();
642
- const bob = yield TestDataGenerator.generateDidKeyPersona();
643
- const carol = yield TestDataGenerator.generateDidKeyPersona();
625
+ const alice = await TestDataGenerator.generateDidKeyPersona();
626
+ const bob = await TestDataGenerator.generateDidKeyPersona();
627
+ const carol = await TestDataGenerator.generateDidKeyPersona();
644
628
  // 1. Alice installs a protocol allowing others to add records AND only author to prune.
645
629
  const protocolDefinition = {
646
630
  protocol: 'http://post-protocol.xyz',
@@ -677,11 +661,11 @@ export function testRecordsPrune() {
677
661
  }
678
662
  }
679
663
  };
680
- const protocolsConfig = yield ProtocolsConfigure.create({
664
+ const protocolsConfig = await ProtocolsConfigure.create({
681
665
  definition: protocolDefinition,
682
666
  signer: Jws.createSigner(alice)
683
667
  });
684
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
668
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
685
669
  expect(protocolsConfigureReply.status.code).toBe(202);
686
670
  // 2. Bob writes a record + a descendant in Alice's DWN.
687
671
  const postData = TestDataGenerator.randomBytes(100);
@@ -692,8 +676,8 @@ export function testRecordsPrune() {
692
676
  dataFormat: 'application/json',
693
677
  data: postData
694
678
  };
695
- const post = yield RecordsWrite.create(postOptions);
696
- const postWriteResponse = yield dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
679
+ const post = await RecordsWrite.create(postOptions);
680
+ const postWriteResponse = await dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
697
681
  expect(postWriteResponse.status.code).toBe(202);
698
682
  const attachmentData = TestDataGenerator.randomBytes(100);
699
683
  const attachmentOptions = {
@@ -704,34 +688,34 @@ export function testRecordsPrune() {
704
688
  dataFormat: 'application/octet-stream',
705
689
  data: attachmentData
706
690
  };
707
- const attachment = yield RecordsWrite.create(attachmentOptions);
708
- const attachmentWriteResponse = yield dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
691
+ const attachment = await RecordsWrite.create(attachmentOptions);
692
+ const attachmentWriteResponse = await dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
709
693
  expect(attachmentWriteResponse.status.code).toBe(202);
710
694
  // 3. Verify Carol cannot prune the records.
711
- const postPrune = yield RecordsDelete.create({
695
+ const postPrune = await RecordsDelete.create({
712
696
  recordId: post.message.recordId,
713
697
  prune: true,
714
698
  signer: Jws.createSigner(carol)
715
699
  });
716
- const deleteReply = yield dwn.processMessage(alice.did, postPrune.message);
700
+ const deleteReply = await dwn.processMessage(alice.did, postPrune.message);
717
701
  expect(deleteReply.status.code).toBe(401);
718
702
  expect(deleteReply.status.detail).toContain(DwnErrorCode.ProtocolAuthorizationActionNotAllowed);
719
703
  // sanity test `RecordsQuery` still returns the records
720
- const recordsQuery = yield RecordsQuery.create({
704
+ const recordsQuery = await RecordsQuery.create({
721
705
  signer: Jws.createSigner(bob),
722
706
  filter: { protocol: protocolDefinition.protocol }
723
707
  });
724
- const recordsQueryReply = yield dwn.processMessage(alice.did, recordsQuery.message);
708
+ const recordsQueryReply = await dwn.processMessage(alice.did, recordsQuery.message);
725
709
  expect(recordsQueryReply.status.code).toBe(200);
726
- expect((_a = recordsQueryReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(2);
727
- }));
728
- it('should throw if only `delete` is allowed but received a RecordsDelete with `prune` set to `true`', () => __awaiter(this, void 0, void 0, function* () {
710
+ expect(recordsQueryReply.entries?.length).toBe(2);
711
+ });
712
+ it('should throw if only `delete` is allowed but received a RecordsDelete with `prune` set to `true`', async () => {
729
713
  // Scenario:
730
714
  // 1. Alice installs a protocol allowing others to add and delete (not prune) records.
731
715
  // 2. Bob writes a record + a descendant in Alice's DWN.
732
716
  // 3. Verify Bob cannot prune the records.
733
- const alice = yield TestDataGenerator.generateDidKeyPersona();
734
- const bob = yield TestDataGenerator.generateDidKeyPersona();
717
+ const alice = await TestDataGenerator.generateDidKeyPersona();
718
+ const bob = await TestDataGenerator.generateDidKeyPersona();
735
719
  // 1. Alice installs a protocol allowing others to add and delete (not prune) records.
736
720
  const protocolDefinition = {
737
721
  protocol: 'http://post-protocol.xyz',
@@ -766,11 +750,11 @@ export function testRecordsPrune() {
766
750
  }
767
751
  }
768
752
  };
769
- const protocolsConfig = yield ProtocolsConfigure.create({
753
+ const protocolsConfig = await ProtocolsConfigure.create({
770
754
  definition: protocolDefinition,
771
755
  signer: Jws.createSigner(alice)
772
756
  });
773
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
757
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
774
758
  expect(protocolsConfigureReply.status.code).toBe(202);
775
759
  // 2. Bob writes a record + a descendant in Alice's DWN.
776
760
  const postData = TestDataGenerator.randomBytes(100);
@@ -781,8 +765,8 @@ export function testRecordsPrune() {
781
765
  dataFormat: 'application/json',
782
766
  data: postData
783
767
  };
784
- const post = yield RecordsWrite.create(postOptions);
785
- const postWriteResponse = yield dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
768
+ const post = await RecordsWrite.create(postOptions);
769
+ const postWriteResponse = await dwn.processMessage(alice.did, post.message, { dataStream: DataStream.fromBytes(postData) });
786
770
  expect(postWriteResponse.status.code).toBe(202);
787
771
  const attachmentData = TestDataGenerator.randomBytes(100);
788
772
  const attachmentOptions = {
@@ -793,21 +777,21 @@ export function testRecordsPrune() {
793
777
  dataFormat: 'application/octet-stream',
794
778
  data: attachmentData
795
779
  };
796
- const attachment = yield RecordsWrite.create(attachmentOptions);
797
- const attachmentWriteResponse = yield dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
780
+ const attachment = await RecordsWrite.create(attachmentOptions);
781
+ const attachmentWriteResponse = await dwn.processMessage(alice.did, attachment.message, { dataStream: DataStream.fromBytes(attachmentData) });
798
782
  expect(attachmentWriteResponse.status.code).toBe(202);
799
783
  // 3. Verify Bob cannot prune the records.
800
- const unauthorizedPostPrune = yield RecordsDelete.create({
784
+ const unauthorizedPostPrune = await RecordsDelete.create({
801
785
  recordId: post.message.recordId,
802
786
  prune: true,
803
787
  signer: Jws.createSigner(bob)
804
788
  });
805
- const unauthorizedPostPruneReply = yield dwn.processMessage(alice.did, unauthorizedPostPrune.message);
789
+ const unauthorizedPostPruneReply = await dwn.processMessage(alice.did, unauthorizedPostPrune.message);
806
790
  expect(unauthorizedPostPruneReply.status.code).toBe(401);
807
791
  expect(unauthorizedPostPruneReply.status.detail).toContain(DwnErrorCode.ProtocolAuthorizationActionNotAllowed);
808
- }));
809
- it('should not allow creation of a protocol definition with action rule containing `prune` without `create`', () => __awaiter(this, void 0, void 0, function* () {
810
- const alice = yield TestDataGenerator.generateDidKeyPersona();
792
+ });
793
+ it('should not allow creation of a protocol definition with action rule containing `prune` without `create`', async () => {
794
+ const alice = await TestDataGenerator.generateDidKeyPersona();
811
795
  const protocolDefinition = {
812
796
  protocol: 'http://prune-without-create.xyz',
813
797
  published: true,
@@ -829,9 +813,9 @@ export function testRecordsPrune() {
829
813
  definition: protocolDefinition,
830
814
  signer: Jws.createSigner(alice)
831
815
  });
832
- yield expect(protocolsConfigureCreatePromise)
816
+ await expect(protocolsConfigureCreatePromise)
833
817
  .rejects.toThrow(DwnErrorCode.ProtocolsConfigureInvalidActionPruneWithoutCreate);
834
- }));
818
+ });
835
819
  });
836
820
  });
837
821
  }