@enbox/dwn-sdk-js 0.0.6 → 0.0.7

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 (361) 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 +1 -2
  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/dwn-constant.js +7 -7
  10. package/dist/esm/src/core/dwn-constant.js.map +1 -1
  11. package/dist/esm/src/core/dwn-error.js +1 -0
  12. package/dist/esm/src/core/dwn-error.js.map +1 -1
  13. package/dist/esm/src/core/grant-authorization.js +37 -52
  14. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  15. package/dist/esm/src/core/message.js +85 -116
  16. package/dist/esm/src/core/message.js.map +1 -1
  17. package/dist/esm/src/core/messages-grant-authorization.js +63 -78
  18. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  19. package/dist/esm/src/core/protocol-authorization-action.js +266 -0
  20. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -0
  21. package/dist/esm/src/core/protocol-authorization-validation.js +254 -0
  22. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -0
  23. package/dist/esm/src/core/protocol-authorization.js +122 -740
  24. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  25. package/dist/esm/src/core/protocols-grant-authorization.js +24 -38
  26. package/dist/esm/src/core/protocols-grant-authorization.js.map +1 -1
  27. package/dist/esm/src/core/record-chain.js +64 -0
  28. package/dist/esm/src/core/record-chain.js.map +1 -0
  29. package/dist/esm/src/core/records-grant-authorization.js +55 -72
  30. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  31. package/dist/esm/src/core/resumable-task-manager.js +50 -65
  32. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  33. package/dist/esm/src/core/tenant-gate.js +2 -13
  34. package/dist/esm/src/core/tenant-gate.js.map +1 -1
  35. package/dist/esm/src/dwn.js +69 -86
  36. package/dist/esm/src/dwn.js.map +1 -1
  37. package/dist/esm/src/event-stream/event-emitter-stream.js +17 -31
  38. package/dist/esm/src/event-stream/event-emitter-stream.js.map +1 -1
  39. package/dist/esm/src/handlers/messages-read.js +67 -77
  40. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  41. package/dist/esm/src/handlers/messages-subscribe.js +51 -61
  42. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  43. package/dist/esm/src/handlers/messages-sync.js +75 -85
  44. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  45. package/dist/esm/src/handlers/protocols-configure.js +135 -155
  46. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  47. package/dist/esm/src/handlers/protocols-query.js +52 -51
  48. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  49. package/dist/esm/src/handlers/records-count.js +96 -82
  50. package/dist/esm/src/handlers/records-count.js.map +1 -1
  51. package/dist/esm/src/handlers/records-delete.js +78 -88
  52. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  53. package/dist/esm/src/handlers/records-query.js +116 -101
  54. package/dist/esm/src/handlers/records-query.js.map +1 -1
  55. package/dist/esm/src/handlers/records-read.js +124 -131
  56. package/dist/esm/src/handlers/records-read.js.map +1 -1
  57. package/dist/esm/src/handlers/records-subscribe.js +150 -103
  58. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  59. package/dist/esm/src/handlers/records-write.js +250 -259
  60. package/dist/esm/src/handlers/records-write.js.map +1 -1
  61. package/dist/esm/src/interfaces/messages-read.js +24 -32
  62. package/dist/esm/src/interfaces/messages-read.js.map +1 -1
  63. package/dist/esm/src/interfaces/messages-subscribe.js +27 -41
  64. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  65. package/dist/esm/src/interfaces/messages-sync.js +26 -40
  66. package/dist/esm/src/interfaces/messages-sync.js.map +1 -1
  67. package/dist/esm/src/interfaces/protocols-configure.js +63 -63
  68. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  69. package/dist/esm/src/interfaces/protocols-query.js +55 -68
  70. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  71. package/dist/esm/src/interfaces/records-count.js +50 -66
  72. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  73. package/dist/esm/src/interfaces/records-delete.js +45 -55
  74. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  75. package/dist/esm/src/interfaces/records-query.js +60 -76
  76. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  77. package/dist/esm/src/interfaces/records-read.js +51 -67
  78. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  79. package/dist/esm/src/interfaces/records-subscribe.js +52 -68
  80. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  81. package/dist/esm/src/interfaces/records-write-query.js +102 -0
  82. package/dist/esm/src/interfaces/records-write-query.js.map +1 -0
  83. package/dist/esm/src/interfaces/records-write-signing.js +92 -0
  84. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -0
  85. package/dist/esm/src/interfaces/records-write.js +407 -602
  86. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  87. package/dist/esm/src/jose/algorithms/signing/ed25519.js +10 -19
  88. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  89. package/dist/esm/src/jose/jws/general/builder.js +23 -35
  90. package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
  91. package/dist/esm/src/jose/jws/general/verifier.js +56 -69
  92. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  93. package/dist/esm/src/protocols/permission-grant.js +44 -15
  94. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  95. package/dist/esm/src/protocols/permission-request.js +29 -15
  96. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  97. package/dist/esm/src/protocols/permissions.js +216 -226
  98. package/dist/esm/src/protocols/permissions.js.map +1 -1
  99. package/dist/esm/src/smt/smt-store-level.js +42 -64
  100. package/dist/esm/src/smt/smt-store-level.js.map +1 -1
  101. package/dist/esm/src/smt/smt-store-memory.js +19 -45
  102. package/dist/esm/src/smt/smt-store-memory.js.map +1 -1
  103. package/dist/esm/src/smt/smt-utils.js +28 -45
  104. package/dist/esm/src/smt/smt-utils.js.map +1 -1
  105. package/dist/esm/src/smt/sparse-merkle-tree.js +426 -471
  106. package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -1
  107. package/dist/esm/src/state-index/state-index-level.js +115 -150
  108. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  109. package/dist/esm/src/store/blockstore-level.js +54 -156
  110. package/dist/esm/src/store/blockstore-level.js.map +1 -1
  111. package/dist/esm/src/store/blockstore-mock.js +48 -153
  112. package/dist/esm/src/store/blockstore-mock.js.map +1 -1
  113. package/dist/esm/src/store/data-store-level.js +59 -99
  114. package/dist/esm/src/store/data-store-level.js.map +1 -1
  115. package/dist/esm/src/store/index-level-compound.js +246 -0
  116. package/dist/esm/src/store/index-level-compound.js.map +1 -0
  117. package/dist/esm/src/store/index-level.js +295 -713
  118. package/dist/esm/src/store/index-level.js.map +1 -1
  119. package/dist/esm/src/store/level-wrapper.js +143 -244
  120. package/dist/esm/src/store/level-wrapper.js.map +1 -1
  121. package/dist/esm/src/store/message-store-level.js +71 -94
  122. package/dist/esm/src/store/message-store-level.js.map +1 -1
  123. package/dist/esm/src/store/resumable-task-store-level.js +62 -101
  124. package/dist/esm/src/store/resumable-task-store-level.js.map +1 -1
  125. package/dist/esm/src/store/storage-controller.js +129 -144
  126. package/dist/esm/src/store/storage-controller.js.map +1 -1
  127. package/dist/esm/src/utils/abort.js +8 -19
  128. package/dist/esm/src/utils/abort.js.map +1 -1
  129. package/dist/esm/src/utils/array.js +15 -49
  130. package/dist/esm/src/utils/array.js.map +1 -1
  131. package/dist/esm/src/utils/cid.js +29 -77
  132. package/dist/esm/src/utils/cid.js.map +1 -1
  133. package/dist/esm/src/utils/data-stream.js +37 -65
  134. package/dist/esm/src/utils/data-stream.js.map +1 -1
  135. package/dist/esm/src/utils/encryption.js +136 -162
  136. package/dist/esm/src/utils/encryption.js.map +1 -1
  137. package/dist/esm/src/utils/filter.js +1 -12
  138. package/dist/esm/src/utils/filter.js.map +1 -1
  139. package/dist/esm/src/utils/hd-key.js +45 -63
  140. package/dist/esm/src/utils/hd-key.js.map +1 -1
  141. package/dist/esm/src/utils/jws.js +9 -20
  142. package/dist/esm/src/utils/jws.js.map +1 -1
  143. package/dist/esm/src/utils/memory-cache.js +12 -23
  144. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  145. package/dist/esm/src/utils/messages.js +9 -3
  146. package/dist/esm/src/utils/messages.js.map +1 -1
  147. package/dist/esm/src/utils/private-key-signer.js +9 -17
  148. package/dist/esm/src/utils/private-key-signer.js.map +1 -1
  149. package/dist/esm/src/utils/protocols.js +62 -70
  150. package/dist/esm/src/utils/protocols.js.map +1 -1
  151. package/dist/esm/src/utils/records.js +100 -125
  152. package/dist/esm/src/utils/records.js.map +1 -1
  153. package/dist/esm/src/utils/secp256k1.js +60 -96
  154. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  155. package/dist/esm/src/utils/secp256r1.js +54 -71
  156. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  157. package/dist/esm/src/utils/time.js +5 -18
  158. package/dist/esm/src/utils/time.js.map +1 -1
  159. package/dist/esm/src/utils/url.js +3 -3
  160. package/dist/esm/src/utils/url.js.map +1 -1
  161. package/dist/esm/tests/core/auth.spec.js +3 -12
  162. package/dist/esm/tests/core/auth.spec.js.map +1 -1
  163. package/dist/esm/tests/core/message.spec.js +50 -59
  164. package/dist/esm/tests/core/message.spec.js.map +1 -1
  165. package/dist/esm/tests/core/protocol-authorization.spec.js +9 -18
  166. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  167. package/dist/esm/tests/dwn.spec.js +45 -58
  168. package/dist/esm/tests/dwn.spec.js.map +1 -1
  169. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +24 -33
  170. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +1 -1
  171. package/dist/esm/tests/event-stream/event-stream.spec.js +46 -55
  172. package/dist/esm/tests/event-stream/event-stream.spec.js.map +1 -1
  173. package/dist/esm/tests/features/author-delegated-grant.spec.js +326 -343
  174. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  175. package/dist/esm/tests/features/owner-delegated-grant.spec.js +153 -169
  176. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  177. package/dist/esm/tests/features/owner-signature.spec.js +67 -78
  178. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  179. package/dist/esm/tests/features/permissions.spec.js +446 -181
  180. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  181. package/dist/esm/tests/features/protocol-composition.spec.js +346 -356
  182. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  183. package/dist/esm/tests/features/protocol-create-action.spec.js +42 -51
  184. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  185. package/dist/esm/tests/features/protocol-delete-action.spec.js +94 -103
  186. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  187. package/dist/esm/tests/features/protocol-update-action.spec.js +105 -114
  188. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  189. package/dist/esm/tests/features/records-prune.spec.js +175 -191
  190. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  191. package/dist/esm/tests/features/records-tags.spec.js +441 -460
  192. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  193. package/dist/esm/tests/features/resumable-tasks.spec.js +82 -91
  194. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  195. package/dist/esm/tests/handlers/messages-read.spec.js +206 -207
  196. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  197. package/dist/esm/tests/handlers/messages-subscribe.spec.js +145 -154
  198. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  199. package/dist/esm/tests/handlers/messages-sync.spec.js +174 -183
  200. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  201. package/dist/esm/tests/handlers/protocols-configure.spec.js +244 -238
  202. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  203. package/dist/esm/tests/handlers/protocols-query.spec.js +156 -169
  204. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  205. package/dist/esm/tests/handlers/records-count.spec.js +93 -102
  206. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  207. package/dist/esm/tests/handlers/records-delete.spec.js +252 -264
  208. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  209. package/dist/esm/tests/handlers/records-query.spec.js +917 -988
  210. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  211. package/dist/esm/tests/handlers/records-read.spec.js +549 -564
  212. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  213. package/dist/esm/tests/handlers/records-subscribe.spec.js +269 -278
  214. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  215. package/dist/esm/tests/handlers/records-write.spec.js +1057 -1082
  216. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  217. package/dist/esm/tests/interfaces/messages-get.spec.js +39 -48
  218. package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -1
  219. package/dist/esm/tests/interfaces/messages-subscribe.spec.js +4 -13
  220. package/dist/esm/tests/interfaces/messages-subscribe.spec.js.map +1 -1
  221. package/dist/esm/tests/interfaces/protocols-configure.spec.js +212 -88
  222. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  223. package/dist/esm/tests/interfaces/protocols-query.spec.js +8 -17
  224. package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -1
  225. package/dist/esm/tests/interfaces/records-delete.spec.js +8 -17
  226. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  227. package/dist/esm/tests/interfaces/records-query.spec.js +20 -29
  228. package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -1
  229. package/dist/esm/tests/interfaces/records-read.spec.js +42 -51
  230. package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -1
  231. package/dist/esm/tests/interfaces/records-subscribe.spec.js +16 -25
  232. package/dist/esm/tests/interfaces/records-subscribe.spec.js.map +1 -1
  233. package/dist/esm/tests/interfaces/records-write.spec.js +152 -165
  234. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  235. package/dist/esm/tests/jose/jws/general.spec.js +36 -45
  236. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
  237. package/dist/esm/tests/protocols/permission-grant.spec.js +44 -50
  238. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
  239. package/dist/esm/tests/protocols/permission-request.spec.js +23 -32
  240. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  241. package/dist/esm/tests/protocols/permissions.spec.js +49 -55
  242. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  243. package/dist/esm/tests/scenarios/aggregator.spec.js +124 -135
  244. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  245. package/dist/esm/tests/scenarios/deleted-record.spec.js +23 -32
  246. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  247. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +52 -61
  248. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  249. package/dist/esm/tests/scenarios/nested-roles.spec.js +63 -73
  250. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  251. package/dist/esm/tests/scenarios/subscriptions.spec.js +377 -333
  252. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  253. package/dist/esm/tests/smt/smt-store-level.spec.js +76 -87
  254. package/dist/esm/tests/smt/smt-store-level.spec.js.map +1 -1
  255. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +344 -353
  256. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +1 -1
  257. package/dist/esm/tests/state-index/state-index-level.spec.js +117 -126
  258. package/dist/esm/tests/state-index/state-index-level.spec.js.map +1 -1
  259. package/dist/esm/tests/store/blockstore-level.spec.js +44 -99
  260. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -1
  261. package/dist/esm/tests/store/blockstore-mock.spec.js +40 -120
  262. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  263. package/dist/esm/tests/store/data-store-level.spec.js +86 -95
  264. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  265. package/dist/esm/tests/store/index-level.spec.js +404 -414
  266. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  267. package/dist/esm/tests/store/message-store-level.spec.js +13 -22
  268. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  269. package/dist/esm/tests/store/message-store.spec.js +229 -238
  270. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  271. package/dist/esm/tests/test-event-stream.js +3 -3
  272. package/dist/esm/tests/test-event-stream.js.map +1 -1
  273. package/dist/esm/tests/test-stores.js +16 -13
  274. package/dist/esm/tests/test-stores.js.map +1 -1
  275. package/dist/esm/tests/test-suite.js +2 -11
  276. package/dist/esm/tests/test-suite.js.map +1 -1
  277. package/dist/esm/tests/utils/cid.spec.js +24 -33
  278. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  279. package/dist/esm/tests/utils/data-stream.spec.js +48 -57
  280. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  281. package/dist/esm/tests/utils/encryption-callbacks.spec.js +45 -54
  282. package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -1
  283. package/dist/esm/tests/utils/encryption.spec.js +229 -82
  284. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  285. package/dist/esm/tests/utils/filters.spec.js +46 -55
  286. package/dist/esm/tests/utils/filters.spec.js.map +1 -1
  287. package/dist/esm/tests/utils/hd-key.spec.js +10 -19
  288. package/dist/esm/tests/utils/hd-key.spec.js.map +1 -1
  289. package/dist/esm/tests/utils/jws.spec.js +3 -12
  290. package/dist/esm/tests/utils/jws.spec.js.map +1 -1
  291. package/dist/esm/tests/utils/memory-cache.spec.js +9 -18
  292. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  293. package/dist/esm/tests/utils/messages.spec.js +6 -15
  294. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  295. package/dist/esm/tests/utils/poller.js +22 -33
  296. package/dist/esm/tests/utils/poller.js.map +1 -1
  297. package/dist/esm/tests/utils/private-key-signer.spec.js +15 -24
  298. package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -1
  299. package/dist/esm/tests/utils/records.spec.js +10 -19
  300. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  301. package/dist/esm/tests/utils/secp256k1.spec.js +16 -25
  302. package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -1
  303. package/dist/esm/tests/utils/secp256r1.spec.js +18 -27
  304. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  305. package/dist/esm/tests/utils/test-data-generator.js +414 -468
  306. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  307. package/dist/esm/tests/validation/json-schemas/definitions.spec.js +2 -11
  308. package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -1
  309. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +4 -13
  310. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -1
  311. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +8 -17
  312. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -1
  313. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +3 -12
  314. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -1
  315. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +4 -13
  316. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  317. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +2 -11
  318. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -1
  319. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js +2 -11
  320. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js.map +1 -1
  321. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +7 -16
  322. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  323. package/dist/types/src/core/protocol-authorization-action.d.ts +42 -0
  324. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -0
  325. package/dist/types/src/core/protocol-authorization-validation.d.ts +60 -0
  326. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -0
  327. package/dist/types/src/core/protocol-authorization.d.ts +10 -100
  328. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  329. package/dist/types/src/core/record-chain.d.ts +24 -0
  330. package/dist/types/src/core/record-chain.d.ts.map +1 -0
  331. package/dist/types/src/handlers/records-write.d.ts +2 -1
  332. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  333. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  334. package/dist/types/src/interfaces/records-write-query.d.ts +33 -0
  335. package/dist/types/src/interfaces/records-write-query.d.ts.map +1 -0
  336. package/dist/types/src/interfaces/records-write-signing.d.ts +35 -0
  337. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -0
  338. package/dist/types/src/interfaces/records-write.d.ts +10 -44
  339. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  340. package/dist/types/src/store/index-level-compound.d.ts +70 -0
  341. package/dist/types/src/store/index-level-compound.d.ts.map +1 -0
  342. package/dist/types/src/store/index-level.d.ts +0 -58
  343. package/dist/types/src/store/index-level.d.ts.map +1 -1
  344. package/dist/types/src/utils/protocols.d.ts +5 -0
  345. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  346. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  347. package/package.json +2 -2
  348. package/src/core/protocol-authorization-action.ts +377 -0
  349. package/src/core/protocol-authorization-validation.ts +391 -0
  350. package/src/core/protocol-authorization.ts +60 -849
  351. package/src/core/record-chain.ts +99 -0
  352. package/src/handlers/records-read.ts +1 -1
  353. package/src/handlers/records-write.ts +37 -21
  354. package/src/interfaces/protocols-configure.ts +33 -5
  355. package/src/interfaces/records-write-query.ts +139 -0
  356. package/src/interfaces/records-write-signing.ts +143 -0
  357. package/src/interfaces/records-write.ts +49 -221
  358. package/src/store/index-level-compound.ts +324 -0
  359. package/src/store/index-level.ts +24 -306
  360. package/src/utils/protocols.ts +8 -0
  361. package/src/utils/records.ts +1 -1
@@ -1,20 +1,9 @@
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
  /**
11
2
  * A tenant gate that treats every DID as an active tenant.
12
3
  */
13
4
  export class AllowAllTenantGate {
14
- isActiveTenant(_did) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- return { isActiveTenant: true };
17
- });
5
+ async isActiveTenant(_did) {
6
+ return { isActiveTenant: true };
18
7
  }
19
8
  }
20
9
  //# sourceMappingURL=tenant-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-gate.js","sourceRoot":"","sources":["../../../../src/core/tenant-gate.ts"],"names":[],"mappings":";;;;;;;;;AAyBA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAChB,cAAc,CAAC,IAAY;;YACtC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"tenant-gate.js","sourceRoot":"","sources":["../../../../src/core/tenant-gate.ts"],"names":[],"mappings":"AAyBA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACtB,KAAK,CAAC,cAAc,CAAC,IAAY;QACtC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -1,12 +1,3 @@
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 { AllowAllTenantGate } from './core/tenant-gate.js';
11
2
  import { Message } from './core/message.js';
12
3
  import { messageReplyFromError } from './core/message-reply.js';
@@ -26,6 +17,16 @@ import { StorageController } from './store/storage-controller.js';
26
17
  import { DidDht, DidJwk, DidKey, DidResolverCacheLevel, DidWeb, UniversalResolver } from '@enbox/dids';
27
18
  import { DwnInterfaceName, DwnMethodName } from './enums/dwn-interface-method.js';
28
19
  export class Dwn {
20
+ methodHandlers;
21
+ didResolver;
22
+ messageStore;
23
+ dataStore;
24
+ resumableTaskStore;
25
+ stateIndex;
26
+ tenantGate;
27
+ eventStream;
28
+ storageController;
29
+ resumableTaskManager;
29
30
  constructor(config) {
30
31
  this.didResolver = config.didResolver;
31
32
  this.tenantGate = config.tenantGate;
@@ -59,42 +60,33 @@ export class Dwn {
59
60
  /**
60
61
  * Creates an instance of the DWN.
61
62
  */
62
- static create(config) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- var _a, _b;
65
- (_a = config.didResolver) !== null && _a !== void 0 ? _a : (config.didResolver = new UniversalResolver({
66
- didResolvers: [DidDht, DidJwk, DidKey, DidWeb],
67
- cache: new DidResolverCacheLevel({ location: 'RESOLVERCACHE' }),
68
- }));
69
- (_b = config.tenantGate) !== null && _b !== void 0 ? _b : (config.tenantGate = new AllowAllTenantGate());
70
- const dwn = new Dwn(config);
71
- yield dwn.open();
72
- return dwn;
63
+ static async create(config) {
64
+ config.didResolver ??= new UniversalResolver({
65
+ didResolvers: [DidDht, DidJwk, DidKey, DidWeb],
66
+ cache: new DidResolverCacheLevel({ location: 'RESOLVERCACHE' }),
73
67
  });
68
+ config.tenantGate ??= new AllowAllTenantGate();
69
+ const dwn = new Dwn(config);
70
+ await dwn.open();
71
+ return dwn;
74
72
  }
75
73
  /**
76
74
  * Initializes the DWN instance and opens the connection to it.
77
75
  */
78
- open() {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- var _a;
81
- yield this.messageStore.open();
82
- yield this.dataStore.open();
83
- yield this.resumableTaskStore.open();
84
- yield this.stateIndex.open();
85
- yield ((_a = this.eventStream) === null || _a === void 0 ? void 0 : _a.open());
86
- yield this.resumableTaskManager.resumeTasksAndWaitForCompletion();
87
- });
76
+ async open() {
77
+ await this.messageStore.open();
78
+ await this.dataStore.open();
79
+ await this.resumableTaskStore.open();
80
+ await this.stateIndex.open();
81
+ await this.eventStream?.open();
82
+ await this.resumableTaskManager.resumeTasksAndWaitForCompletion();
88
83
  }
89
- close() {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- var _a;
92
- yield ((_a = this.eventStream) === null || _a === void 0 ? void 0 : _a.close());
93
- yield this.messageStore.close();
94
- yield this.dataStore.close();
95
- yield this.resumableTaskStore.close();
96
- yield this.stateIndex.close();
97
- });
84
+ async close() {
85
+ await this.eventStream?.close();
86
+ await this.messageStore.close();
87
+ await this.dataStore.close();
88
+ await this.resumableTaskStore.close();
89
+ await this.stateIndex.close();
98
90
  }
99
91
  /**
100
92
  * Returns the internal storage components for advanced operations that
@@ -110,40 +102,34 @@ export class Dwn {
110
102
  eventStream: this.eventStream,
111
103
  };
112
104
  }
113
- processMessage(tenant_1, rawMessage_1) {
114
- return __awaiter(this, arguments, void 0, function* (tenant, rawMessage, options = {}) {
115
- var _a;
116
- const errorMessageReply = (_a = yield this.validateTenant(tenant)) !== null && _a !== void 0 ? _a : yield this.validateMessageIntegrity(rawMessage);
117
- if (errorMessageReply !== undefined) {
118
- return errorMessageReply;
119
- }
120
- const { dataStream, subscriptionHandler } = options;
121
- const handlerKey = rawMessage.descriptor.interface + rawMessage.descriptor.method;
122
- const methodHandlerReply = yield this.methodHandlers[handlerKey].handle({
123
- tenant,
124
- message: rawMessage,
125
- dataStream,
126
- subscriptionHandler
127
- });
128
- return methodHandlerReply;
105
+ async processMessage(tenant, rawMessage, options = {}) {
106
+ const errorMessageReply = await this.validateTenant(tenant) ?? await this.validateMessageIntegrity(rawMessage);
107
+ if (errorMessageReply !== undefined) {
108
+ return errorMessageReply;
109
+ }
110
+ const { dataStream, subscriptionHandler } = options;
111
+ const handlerKey = rawMessage.descriptor.interface + rawMessage.descriptor.method;
112
+ const methodHandlerReply = await this.methodHandlers[handlerKey].handle({
113
+ tenant,
114
+ message: rawMessage,
115
+ dataStream,
116
+ subscriptionHandler
129
117
  });
118
+ return methodHandlerReply;
130
119
  }
131
120
  /**
132
121
  * Checks tenant gate to see if tenant is allowed.
133
122
  * @param tenant The tenant DID to route the given message to.
134
123
  * @returns GenericMessageReply if the message has an integrity error, otherwise undefined.
135
124
  */
136
- validateTenant(tenant) {
137
- return __awaiter(this, void 0, void 0, function* () {
138
- var _a;
139
- const result = yield this.tenantGate.isActiveTenant(tenant);
140
- if (!result.isActiveTenant) {
141
- const detail = (_a = result.detail) !== null && _a !== void 0 ? _a : `DID ${tenant} is not an active tenant.`;
142
- return {
143
- status: { code: 401, detail }
144
- };
145
- }
146
- });
125
+ async validateTenant(tenant) {
126
+ const result = await this.tenantGate.isActiveTenant(tenant);
127
+ if (!result.isActiveTenant) {
128
+ const detail = result.detail ?? `DID ${tenant} is not an active tenant.`;
129
+ return {
130
+ status: { code: 401, detail }
131
+ };
132
+ }
147
133
  }
148
134
  /**
149
135
  * Validates structure of DWN message
@@ -153,26 +139,23 @@ export class Dwn {
153
139
 
154
140
  * @returns GenericMessageReply if the message has an integrity error, otherwise undefined.
155
141
  */
156
- validateMessageIntegrity(rawMessage) {
157
- return __awaiter(this, void 0, void 0, function* () {
158
- var _a, _b;
159
- // Verify interface and method
160
- const dwnInterface = (_a = rawMessage === null || rawMessage === void 0 ? void 0 : rawMessage.descriptor) === null || _a === void 0 ? void 0 : _a.interface;
161
- const dwnMethod = (_b = rawMessage === null || rawMessage === void 0 ? void 0 : rawMessage.descriptor) === null || _b === void 0 ? void 0 : _b.method;
162
- if (dwnInterface === undefined || dwnMethod === undefined) {
163
- return {
164
- status: { code: 400, detail: `Both interface and method must be present, interface: ${dwnInterface}, method: ${dwnMethod}` }
165
- };
166
- }
167
- // validate message structure
168
- try {
169
- // consider to push this down to individual handlers
170
- Message.validateJsonSchema(rawMessage);
171
- }
172
- catch (error) {
173
- return messageReplyFromError(error, 400);
174
- }
175
- });
142
+ async validateMessageIntegrity(rawMessage) {
143
+ // Verify interface and method
144
+ const dwnInterface = rawMessage?.descriptor?.interface;
145
+ const dwnMethod = rawMessage?.descriptor?.method;
146
+ if (dwnInterface === undefined || dwnMethod === undefined) {
147
+ return {
148
+ status: { code: 400, detail: `Both interface and method must be present, interface: ${dwnInterface}, method: ${dwnMethod}` }
149
+ };
150
+ }
151
+ // validate message structure
152
+ try {
153
+ // consider to push this down to individual handlers
154
+ Message.validateJsonSchema(rawMessage);
155
+ }
156
+ catch (error) {
157
+ return messageReplyFromError(error, 400);
158
+ }
176
159
  }
177
160
  }
178
161
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"dwn.js","sourceRoot":"","sources":["../../../src/dwn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dwn.js","sourceRoot":"","sources":["../../../src/dwn.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,11 @@
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 { EventEmitter } from 'events';
11
2
  import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
12
3
  const EVENTS_LISTENER_CHANNEL = 'events';
13
4
  ;
14
5
  export class EventEmitterStream {
6
+ eventEmitter;
7
+ isOpen = false;
15
8
  constructor(config = {}) {
16
- this.isOpen = false;
17
- /**
18
- * we subscribe to the `EventEmitter` error handler with a provided handler or set one which logs the errors.
19
- */
20
- this.errorHandler = (error) => { console.error('event emitter error', error); };
21
9
  // we capture the rejections and currently just log the errors that are produced
22
10
  this.eventEmitter = new EventEmitter({ captureRejections: true });
23
11
  // number of listeners per particular eventName before a warning is emitted
@@ -29,25 +17,23 @@ export class EventEmitterStream {
29
17
  }
30
18
  this.eventEmitter.on('error', this.errorHandler);
31
19
  }
32
- subscribe(tenant, id, listener) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- this.eventEmitter.on(`${tenant}_${EVENTS_LISTENER_CHANNEL}`, listener);
35
- return {
36
- id,
37
- close: () => __awaiter(this, void 0, void 0, function* () { this.eventEmitter.off(`${tenant}_${EVENTS_LISTENER_CHANNEL}`, listener); })
38
- };
39
- });
20
+ /**
21
+ * we subscribe to the `EventEmitter` error handler with a provided handler or set one which logs the errors.
22
+ */
23
+ errorHandler = (error) => { console.error('event emitter error', error); };
24
+ async subscribe(tenant, id, listener) {
25
+ this.eventEmitter.on(`${tenant}_${EVENTS_LISTENER_CHANNEL}`, listener);
26
+ return {
27
+ id,
28
+ close: async () => { this.eventEmitter.off(`${tenant}_${EVENTS_LISTENER_CHANNEL}`, listener); }
29
+ };
40
30
  }
41
- open() {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- this.isOpen = true;
44
- });
31
+ async open() {
32
+ this.isOpen = true;
45
33
  }
46
- close() {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- this.isOpen = false;
49
- this.eventEmitter.removeAllListeners();
50
- });
34
+ async close() {
35
+ this.isOpen = false;
36
+ this.eventEmitter.removeAllListeners();
51
37
  }
52
38
  emit(tenant, event, indexes) {
53
39
  if (!this.isOpen) {
@@ -1 +1 @@
1
- {"version":3,"file":"event-emitter-stream.js","sourceRoot":"","sources":["../../../../src/event-stream/event-emitter-stream.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAQxC,CAAC;AAEF,MAAM,OAAO,kBAAkB;IAI7B,YAAY,SAAmC,EAAE;QAFzC,WAAM,GAAY,KAAK,CAAC;QAkBhC;;WAEG;QACK,iBAAY,GAAwB,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAlBtG,gFAAgF;QAChF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QAElE,2EAA2E;QAC3E,yCAAyC;QACzC,6DAA6D;QAC7D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAOK,SAAS,CAAC,MAAc,EAAE,EAAU,EAAE,QAAuB;;YACjE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,uBAAuB,EAAE,EAAE,QAAQ,CAAC,CAAC;YACvE,OAAO;gBACL,EAAE;gBACF,KAAK,EAAE,GAAwB,EAAE,gDAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,uBAAuB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;aAC/G,CAAC;QACJ,CAAC;KAAA;IAEK,IAAI;;YACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;KAAA;IAEK,KAAK;;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;QACzC,CAAC;KAAA;IAED,IAAI,CAAC,MAAc,EAAE,KAAmB,EAAE,OAAkB;QAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,QAAQ,CAC5B,YAAY,CAAC,8BAA8B,EAC3C,qDAAqD,CACtD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;CACF"}
1
+ {"version":3,"file":"event-emitter-stream.js","sourceRoot":"","sources":["../../../../src/event-stream/event-emitter-stream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAQxC,CAAC;AAEF,MAAM,OAAO,kBAAkB;IACrB,YAAY,CAAe;IAC3B,MAAM,GAAY,KAAK,CAAC;IAEhC,YAAY,SAAmC,EAAE;QAC/C,gFAAgF;QAChF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QAElE,2EAA2E;QAC3E,yCAAyC;QACzC,6DAA6D;QAC7D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,YAAY,GAAwB,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAExG,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,EAAU,EAAE,QAAuB;QACjE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,uBAAuB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO;YACL,EAAE;YACF,KAAK,EAAE,KAAK,IAAmB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,uBAAuB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC/G,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,KAAmB,EAAE,OAAkB;QAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,QAAQ,CAC5B,YAAY,CAAC,8BAA8B,EAC3C,qDAAqD,CACtD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;CACF"}
@@ -1,12 +1,3 @@
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 { authenticate } from '../core/auth.js';
11
2
  import { DataStream } from '../utils/data-stream.js';
12
3
  import { Encoder } from '../utils/encoder.js';
@@ -17,86 +8,85 @@ import { PermissionsProtocol } from '../protocols/permissions.js';
17
8
  import { Records } from '../utils/records.js';
18
9
  import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
19
10
  export class MessagesReadHandler {
11
+ didResolver;
12
+ messageStore;
13
+ dataStore;
20
14
  constructor(didResolver, messageStore, dataStore) {
21
15
  this.didResolver = didResolver;
22
16
  this.messageStore = messageStore;
23
17
  this.dataStore = dataStore;
24
18
  }
25
- handle(_a) {
26
- return __awaiter(this, arguments, void 0, function* ({ tenant, message }) {
27
- let messagesRead;
28
- try {
29
- messagesRead = yield MessagesRead.parse(message);
19
+ async handle({ tenant, message }) {
20
+ let messagesRead;
21
+ try {
22
+ messagesRead = await MessagesRead.parse(message);
23
+ }
24
+ catch (e) {
25
+ return messageReplyFromError(e, 400);
26
+ }
27
+ try {
28
+ await authenticate(message.authorization, this.didResolver);
29
+ }
30
+ catch (e) {
31
+ return messageReplyFromError(e, 401);
32
+ }
33
+ const messageResult = await this.messageStore.get(tenant, message.descriptor.messageCid);
34
+ if (messageResult === undefined) {
35
+ return { status: { code: 404, detail: 'Not Found' } };
36
+ }
37
+ try {
38
+ await MessagesReadHandler.authorizeMessagesRead(tenant, messagesRead, messageResult, this.messageStore);
39
+ }
40
+ catch (error) {
41
+ return messageReplyFromError(error, 401);
42
+ }
43
+ // If the message is a RecordsWrite, we include the data in the response if it is available
44
+ const entry = { message: messageResult, messageCid: message.descriptor.messageCid };
45
+ if (Records.isRecordsWrite(messageResult)) {
46
+ const recordsWrite = entry.message;
47
+ // RecordsWrite specific handling, if MessageStore has embedded `encodedData` return it with the entry.
48
+ // we store `encodedData` along with the message if the data is below a certain threshold.
49
+ if (recordsWrite.encodedData !== undefined) {
50
+ const dataBytes = Encoder.base64UrlToBytes(recordsWrite.encodedData);
51
+ entry.data = DataStream.fromBytes(dataBytes);
52
+ delete recordsWrite.encodedData;
30
53
  }
31
- catch (e) {
32
- return messageReplyFromError(e, 400);
33
- }
34
- try {
35
- yield authenticate(message.authorization, this.didResolver);
36
- }
37
- catch (e) {
38
- return messageReplyFromError(e, 401);
39
- }
40
- const messageResult = yield this.messageStore.get(tenant, message.descriptor.messageCid);
41
- if (messageResult === undefined) {
42
- return { status: { code: 404, detail: 'Not Found' } };
43
- }
44
- try {
45
- yield MessagesReadHandler.authorizeMessagesRead(tenant, messagesRead, messageResult, this.messageStore);
46
- }
47
- catch (error) {
48
- return messageReplyFromError(error, 401);
49
- }
50
- // If the message is a RecordsWrite, we include the data in the response if it is available
51
- const entry = { message: messageResult, messageCid: message.descriptor.messageCid };
52
- if (Records.isRecordsWrite(messageResult)) {
53
- const recordsWrite = entry.message;
54
- // RecordsWrite specific handling, if MessageStore has embedded `encodedData` return it with the entry.
55
- // we store `encodedData` along with the message if the data is below a certain threshold.
56
- if (recordsWrite.encodedData !== undefined) {
57
- const dataBytes = Encoder.base64UrlToBytes(recordsWrite.encodedData);
58
- entry.data = DataStream.fromBytes(dataBytes);
59
- delete recordsWrite.encodedData;
60
- }
61
- else {
62
- // otherwise check the data store for the associated data
63
- const result = yield this.dataStore.get(tenant, recordsWrite.recordId, recordsWrite.descriptor.dataCid);
64
- if ((result === null || result === void 0 ? void 0 : result.dataStream) !== undefined) {
65
- entry.data = result.dataStream;
66
- }
54
+ else {
55
+ // otherwise check the data store for the associated data
56
+ const result = await this.dataStore.get(tenant, recordsWrite.recordId, recordsWrite.descriptor.dataCid);
57
+ if (result?.dataStream !== undefined) {
58
+ entry.data = result.dataStream;
67
59
  }
68
60
  }
69
- return {
70
- status: { code: 200, detail: 'OK' },
71
- entry
72
- };
73
- });
61
+ }
62
+ return {
63
+ status: { code: 200, detail: 'OK' },
64
+ entry
65
+ };
74
66
  }
75
67
  /**
76
68
  * @param messageStore Used to fetch related permission grant, permission revocation, and/or RecordsWrites for permission scope validation.
77
69
  */
78
- static authorizeMessagesRead(tenant, messagesRead, matchedMessage, messageStore) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- if (messagesRead.author === tenant) {
81
- // If the author is the tenant, no further authorization is needed
82
- return;
83
- }
84
- else if (messagesRead.author !== undefined && messagesRead.signaturePayload.permissionGrantId !== undefined) {
85
- // if the author is not the tenant and the message has a permissionGrantId, we need to authorize the grant
86
- const permissionGrant = yield PermissionsProtocol.fetchGrant(tenant, messageStore, messagesRead.signaturePayload.permissionGrantId);
87
- yield MessagesGrantAuthorization.authorizeMessagesRead({
88
- messagesReadMessage: messagesRead.message,
89
- messageToRead: matchedMessage,
90
- expectedGrantor: tenant,
91
- expectedGrantee: messagesRead.author,
92
- permissionGrant,
93
- messageStore
94
- });
95
- }
96
- else {
97
- throw new DwnError(DwnErrorCode.MessagesReadAuthorizationFailed, 'protocol message failed authorization');
98
- }
99
- });
70
+ static async authorizeMessagesRead(tenant, messagesRead, matchedMessage, messageStore) {
71
+ if (messagesRead.author === tenant) {
72
+ // If the author is the tenant, no further authorization is needed
73
+ return;
74
+ }
75
+ else if (messagesRead.author !== undefined && messagesRead.signaturePayload.permissionGrantId !== undefined) {
76
+ // if the author is not the tenant and the message has a permissionGrantId, we need to authorize the grant
77
+ const permissionGrant = await PermissionsProtocol.fetchGrant(tenant, messageStore, messagesRead.signaturePayload.permissionGrantId);
78
+ await MessagesGrantAuthorization.authorizeMessagesRead({
79
+ messagesReadMessage: messagesRead.message,
80
+ messageToRead: matchedMessage,
81
+ expectedGrantor: tenant,
82
+ expectedGrantee: messagesRead.author,
83
+ permissionGrant,
84
+ messageStore
85
+ });
86
+ }
87
+ else {
88
+ throw new DwnError(DwnErrorCode.MessagesReadAuthorizationFailed, 'protocol message failed authorization');
89
+ }
100
90
  }
101
91
  }
102
92
  //# sourceMappingURL=messages-read.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages-read.js","sourceRoot":"","sources":["../../../../src/handlers/messages-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages-read.js","sourceRoot":"","sources":["../../../../src/handlers/messages-read.ts"],"names":[],"mappings":"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"}