@enbox/dwn-sdk-js 0.0.5 → 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 (363) 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 +108 -140
  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 +553 -568
  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 +291 -44
  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/src/utils/records.d.ts +3 -1
  347. package/dist/types/src/utils/records.d.ts.map +1 -1
  348. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  349. package/package.json +3 -3
  350. package/src/core/protocol-authorization-action.ts +377 -0
  351. package/src/core/protocol-authorization-validation.ts +391 -0
  352. package/src/core/protocol-authorization.ts +60 -849
  353. package/src/core/record-chain.ts +99 -0
  354. package/src/handlers/records-read.ts +1 -1
  355. package/src/handlers/records-write.ts +37 -21
  356. package/src/interfaces/protocols-configure.ts +33 -5
  357. package/src/interfaces/records-write-query.ts +139 -0
  358. package/src/interfaces/records-write-signing.ts +143 -0
  359. package/src/interfaces/records-write.ts +49 -221
  360. package/src/store/index-level-compound.ts +324 -0
  361. package/src/store/index-level.ts +24 -306
  362. package/src/utils/protocols.ts +8 -0
  363. package/src/utils/records.ts +9 -15
@@ -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 { AbstractMessage } from '../core/abstract-message.js';
11
2
  import { Message } from '../core/message.js';
12
3
  import { PermissionsProtocol } from '../protocols/permissions.js';
@@ -17,69 +8,65 @@ import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
17
8
  import { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
18
9
  import { normalizeProtocolUrl, validateProtocolUrlNormalized } from '../utils/url.js';
19
10
  export class ProtocolsQuery extends AbstractMessage {
20
- static parse(message) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- if (message.authorization !== undefined) {
23
- yield Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
24
- }
25
- if (message.descriptor.filter !== undefined) {
26
- validateProtocolUrlNormalized(message.descriptor.filter.protocol);
27
- }
28
- Time.validateTimestamp(message.descriptor.messageTimestamp);
29
- return new ProtocolsQuery(message);
30
- });
11
+ static async parse(message) {
12
+ if (message.authorization !== undefined) {
13
+ await Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
14
+ }
15
+ if (message.descriptor.filter !== undefined) {
16
+ validateProtocolUrlNormalized(message.descriptor.filter.protocol);
17
+ }
18
+ Time.validateTimestamp(message.descriptor.messageTimestamp);
19
+ return new ProtocolsQuery(message);
31
20
  }
32
- static create(options) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- var _a;
35
- const descriptor = {
36
- interface: DwnInterfaceName.Protocols,
37
- method: DwnMethodName.Query,
38
- messageTimestamp: (_a = options.messageTimestamp) !== null && _a !== void 0 ? _a : Time.getCurrentTimestamp(),
39
- filter: options.filter ? ProtocolsQuery.normalizeFilter(options.filter) : undefined,
40
- permissionGrantId: options.permissionGrantId,
41
- };
42
- // delete all descriptor properties that are `undefined` else the code will encounter the following IPLD issue when attempting to generate CID:
43
- // Error: `undefined` is not supported by the IPLD Data Model and cannot be encoded
44
- removeUndefinedProperties(descriptor);
45
- // only generate the `authorization` property if signature input is given
46
- let authorization;
47
- if (options.signer !== undefined) {
48
- authorization = yield Message.createAuthorization({
49
- descriptor,
50
- signer: options.signer,
51
- permissionGrantId: options.permissionGrantId
52
- });
53
- }
54
- const message = { descriptor, authorization };
55
- Message.validateJsonSchema(message);
56
- const protocolsQuery = new ProtocolsQuery(message);
57
- return protocolsQuery;
58
- });
21
+ static async create(options) {
22
+ const descriptor = {
23
+ interface: DwnInterfaceName.Protocols,
24
+ method: DwnMethodName.Query,
25
+ messageTimestamp: options.messageTimestamp ?? Time.getCurrentTimestamp(),
26
+ filter: options.filter ? ProtocolsQuery.normalizeFilter(options.filter) : undefined,
27
+ permissionGrantId: options.permissionGrantId,
28
+ };
29
+ // delete all descriptor properties that are `undefined` else the code will encounter the following IPLD issue when attempting to generate CID:
30
+ // Error: `undefined` is not supported by the IPLD Data Model and cannot be encoded
31
+ removeUndefinedProperties(descriptor);
32
+ // only generate the `authorization` property if signature input is given
33
+ let authorization;
34
+ if (options.signer !== undefined) {
35
+ authorization = await Message.createAuthorization({
36
+ descriptor,
37
+ signer: options.signer,
38
+ permissionGrantId: options.permissionGrantId
39
+ });
40
+ }
41
+ const message = { descriptor, authorization };
42
+ Message.validateJsonSchema(message);
43
+ const protocolsQuery = new ProtocolsQuery(message);
44
+ return protocolsQuery;
59
45
  }
60
46
  static normalizeFilter(filter) {
61
- return Object.assign(Object.assign({}, filter), { protocol: normalizeProtocolUrl(filter.protocol) });
47
+ return {
48
+ ...filter,
49
+ protocol: normalizeProtocolUrl(filter.protocol),
50
+ };
62
51
  }
63
- authorize(tenant, messageStore) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- // if author is the same as the target tenant, we can directly grant access
66
- if (this.author === tenant) {
67
- return;
68
- }
69
- else if (this.author !== undefined && this.signaturePayload.permissionGrantId) {
70
- const permissionGrant = yield PermissionsProtocol.fetchGrant(tenant, messageStore, this.signaturePayload.permissionGrantId);
71
- yield ProtocolsGrantAuthorization.authorizeQuery({
72
- expectedGrantor: tenant,
73
- expectedGrantee: this.author,
74
- incomingMessage: this.message,
75
- permissionGrant,
76
- messageStore
77
- });
78
- }
79
- else {
80
- throw new DwnError(DwnErrorCode.ProtocolsQueryUnauthorized, 'The ProtocolsQuery failed authorization');
81
- }
82
- });
52
+ async authorize(tenant, messageStore) {
53
+ // if author is the same as the target tenant, we can directly grant access
54
+ if (this.author === tenant) {
55
+ return;
56
+ }
57
+ else if (this.author !== undefined && this.signaturePayload.permissionGrantId) {
58
+ const permissionGrant = await PermissionsProtocol.fetchGrant(tenant, messageStore, this.signaturePayload.permissionGrantId);
59
+ await ProtocolsGrantAuthorization.authorizeQuery({
60
+ expectedGrantor: tenant,
61
+ expectedGrantee: this.author,
62
+ incomingMessage: this.message,
63
+ permissionGrant,
64
+ messageStore
65
+ });
66
+ }
67
+ else {
68
+ throw new DwnError(DwnErrorCode.ProtocolsQueryUnauthorized, 'The ProtocolsQuery failed authorization');
69
+ }
83
70
  }
84
71
  }
85
72
  //# sourceMappingURL=protocols-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocols-query.js","sourceRoot":"","sources":["../../../../src/interfaces/protocols-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocols-query.js","sourceRoot":"","sources":["../../../../src/interfaces/protocols-query.ts"],"names":[],"mappings":"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"}
@@ -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 { AbstractMessage } from '../core/abstract-message.js';
11
2
  import { Message } from '../core/message.js';
12
3
  import { PermissionGrant } from '../protocols/permission-grant.js';
@@ -21,70 +12,63 @@ import { validateProtocolUrlNormalized, validateSchemaUrlNormalized } from '../u
21
12
  * A class representing a RecordsCount DWN message.
22
13
  */
23
14
  export class RecordsCount extends AbstractMessage {
24
- static parse(message) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- let signaturePayload;
27
- if (message.authorization !== undefined) {
28
- signaturePayload = yield Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
15
+ static async parse(message) {
16
+ let signaturePayload;
17
+ if (message.authorization !== undefined) {
18
+ signaturePayload = await Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
19
+ }
20
+ await Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
21
+ if (signaturePayload?.protocolRole !== undefined) {
22
+ if (message.descriptor.filter.protocolPath === undefined) {
23
+ throw new DwnError(DwnErrorCode.RecordsCountFilterMissingRequiredProperties, 'Role-authorized counts must include `protocolPath` in the filter');
29
24
  }
30
- yield Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
31
- if ((signaturePayload === null || signaturePayload === void 0 ? void 0 : signaturePayload.protocolRole) !== undefined) {
32
- if (message.descriptor.filter.protocolPath === undefined) {
33
- throw new DwnError(DwnErrorCode.RecordsCountFilterMissingRequiredProperties, 'Role-authorized counts must include `protocolPath` in the filter');
34
- }
35
- }
36
- if (message.descriptor.filter.protocol !== undefined) {
37
- validateProtocolUrlNormalized(message.descriptor.filter.protocol);
38
- }
39
- if (message.descriptor.filter.schema !== undefined) {
40
- validateSchemaUrlNormalized(message.descriptor.filter.schema);
41
- }
42
- Time.validateTimestamp(message.descriptor.messageTimestamp);
43
- return new RecordsCount(message);
44
- });
25
+ }
26
+ if (message.descriptor.filter.protocol !== undefined) {
27
+ validateProtocolUrlNormalized(message.descriptor.filter.protocol);
28
+ }
29
+ if (message.descriptor.filter.schema !== undefined) {
30
+ validateSchemaUrlNormalized(message.descriptor.filter.schema);
31
+ }
32
+ Time.validateTimestamp(message.descriptor.messageTimestamp);
33
+ return new RecordsCount(message);
45
34
  }
46
- static create(options) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- var _a;
49
- const descriptor = {
50
- interface: DwnInterfaceName.Records,
51
- method: DwnMethodName.Count,
52
- messageTimestamp: (_a = options.messageTimestamp) !== null && _a !== void 0 ? _a : Time.getCurrentTimestamp(),
53
- filter: Records.normalizeFilter(options.filter),
54
- };
55
- // delete all descriptor properties that are `undefined` else the code will encounter the following IPLD issue when attempting to generate CID:
56
- // Error: `undefined` is not supported by the IPLD Data Model and cannot be encoded
57
- removeUndefinedProperties(descriptor);
58
- // only generate the `authorization` property if signature input is given
59
- const signer = options.signer;
60
- let authorization;
61
- if (signer) {
62
- authorization = yield Message.createAuthorization({
63
- descriptor,
64
- signer,
65
- protocolRole: options.protocolRole,
66
- delegatedGrant: options.delegatedGrant
67
- });
68
- }
69
- const message = { descriptor, authorization };
70
- Message.validateJsonSchema(message);
71
- return new RecordsCount(message);
72
- });
35
+ static async create(options) {
36
+ const descriptor = {
37
+ interface: DwnInterfaceName.Records,
38
+ method: DwnMethodName.Count,
39
+ messageTimestamp: options.messageTimestamp ?? Time.getCurrentTimestamp(),
40
+ filter: Records.normalizeFilter(options.filter),
41
+ };
42
+ // delete all descriptor properties that are `undefined` else the code will encounter the following IPLD issue when attempting to generate CID:
43
+ // Error: `undefined` is not supported by the IPLD Data Model and cannot be encoded
44
+ removeUndefinedProperties(descriptor);
45
+ // only generate the `authorization` property if signature input is given
46
+ const signer = options.signer;
47
+ let authorization;
48
+ if (signer) {
49
+ authorization = await Message.createAuthorization({
50
+ descriptor,
51
+ signer,
52
+ protocolRole: options.protocolRole,
53
+ delegatedGrant: options.delegatedGrant
54
+ });
55
+ }
56
+ const message = { descriptor, authorization };
57
+ Message.validateJsonSchema(message);
58
+ return new RecordsCount(message);
73
59
  }
74
60
  /**
75
61
  * Authorizes the delegate who signed the message.
76
62
  * @param messageStore Used to check if the grant has been revoked.
77
63
  */
78
- authorizeDelegate(messageStore) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- const delegatedGrant = yield PermissionGrant.parse(this.message.authorization.authorDelegatedGrant);
81
- yield RecordsGrantAuthorization.authorizeQueryOrSubscribe({
82
- incomingMessage: this.message,
83
- expectedGrantor: this.author,
84
- expectedGrantee: this.signer,
85
- permissionGrant: delegatedGrant,
86
- messageStore
87
- });
64
+ async authorizeDelegate(messageStore) {
65
+ const delegatedGrant = await PermissionGrant.parse(this.message.authorization.authorDelegatedGrant);
66
+ await RecordsGrantAuthorization.authorizeQueryOrSubscribe({
67
+ incomingMessage: this.message,
68
+ expectedGrantor: this.author,
69
+ expectedGrantee: this.signer,
70
+ permissionGrant: delegatedGrant,
71
+ messageStore
88
72
  });
89
73
  }
90
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"records-count.js","sourceRoot":"","sources":["../../../../src/interfaces/records-count.ts"],"names":[],"mappings":";;;;;;;;;AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAc7F;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,eAAoC;IAE7D,MAAM,CAAO,KAAK,CAAC,OAA4B;;YACpD,IAAI,gBAAgB,CAAC;YACrB,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACxC,gBAAgB,GAAG,MAAM,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACnH,CAAC;YAED,MAAM,OAAO,CAAC,0CAA0C,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAEpF,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,MAAK,SAAS,EAAE,CAAC;gBACjD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,2CAA2C,EACxD,kEAAkE,CACnE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrD,6BAA6B,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACnD,2BAA2B,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAE5D,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;KAAA;IAEM,MAAM,CAAO,MAAM,CAAC,OAA4B;;;YACrD,MAAM,UAAU,GAA2B;gBACzC,SAAS,EAAU,gBAAgB,CAAC,OAAO;gBAC3C,MAAM,EAAa,aAAa,CAAC,KAAK;gBACtC,gBAAgB,EAAG,MAAA,OAAO,CAAC,gBAAgB,mCAAI,IAAI,CAAC,mBAAmB,EAAE;gBACzE,MAAM,EAAa,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;aAC3D,CAAC;YAEF,+IAA+I;YAC/I,mFAAmF;YACnF,yBAAyB,CAAC,UAAU,CAAC,CAAC;YAEtC,yEAAyE;YACzE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,IAAI,aAAa,CAAC;YAClB,IAAI,MAAM,EAAE,CAAC;gBACX,aAAa,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;oBAChD,UAAU;oBACV,MAAM;oBACN,YAAY,EAAK,OAAO,CAAC,YAAY;oBACrC,cAAc,EAAG,OAAO,CAAC,cAAc;iBACxC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;YAE9C,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEpC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;KAAA;IAED;;;OAGG;IACU,iBAAiB,CAAC,YAA0B;;YACvD,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAc,CAAC,oBAAqB,CAAC,CAAC;YACtG,MAAM,yBAAyB,CAAC,yBAAyB,CAAC;gBACxD,eAAe,EAAG,IAAI,CAAC,OAAO;gBAC9B,eAAe,EAAG,IAAI,CAAC,MAAO;gBAC9B,eAAe,EAAG,IAAI,CAAC,MAAO;gBAC9B,eAAe,EAAG,cAAc;gBAChC,YAAY;aACb,CAAC,CAAC;QACL,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"records-count.js","sourceRoot":"","sources":["../../../../src/interfaces/records-count.ts"],"names":[],"mappings":"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"}
@@ -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 { AbstractMessage } from '../core/abstract-message.js';
11
2
  import { Message } from '../core/message.js';
12
3
  import { PermissionGrant } from '../protocols/permission-grant.js';
@@ -16,56 +7,57 @@ import { removeUndefinedProperties } from '../utils/object.js';
16
7
  import { Time } from '../utils/time.js';
17
8
  import { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
18
9
  export class RecordsDelete extends AbstractMessage {
19
- static parse(message) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- let signaturePayload;
22
- if (message.authorization !== undefined) {
23
- signaturePayload = yield Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
24
- }
25
- yield Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
26
- Time.validateTimestamp(message.descriptor.messageTimestamp);
27
- const recordsDelete = new RecordsDelete(message);
28
- return recordsDelete;
29
- });
10
+ static async parse(message) {
11
+ let signaturePayload;
12
+ if (message.authorization !== undefined) {
13
+ signaturePayload = await Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
14
+ }
15
+ await Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
16
+ Time.validateTimestamp(message.descriptor.messageTimestamp);
17
+ const recordsDelete = new RecordsDelete(message);
18
+ return recordsDelete;
30
19
  }
31
20
  /**
32
21
  * Creates a RecordsDelete message.
33
22
  * @param options.recordId If `undefined`, will be auto-filled as a originating message as convenience for developer.
34
23
  * @param options.messageTimestamp If `undefined`, it will be auto-filled with current time.
35
24
  */
36
- static create(options) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- var _a, _b;
39
- const recordId = options.recordId;
40
- const currentTime = Time.getCurrentTimestamp();
41
- const descriptor = {
42
- interface: DwnInterfaceName.Records,
43
- method: DwnMethodName.Delete,
44
- messageTimestamp: (_a = options.messageTimestamp) !== null && _a !== void 0 ? _a : currentTime,
45
- recordId,
46
- prune: (_b = options.prune) !== null && _b !== void 0 ? _b : false
47
- };
48
- const authorization = yield Message.createAuthorization({
49
- descriptor,
50
- signer: options.signer,
51
- protocolRole: options.protocolRole,
52
- permissionGrantId: options.permissionGrantId,
53
- delegatedGrant: options.delegatedGrant
54
- });
55
- const message = { descriptor, authorization };
56
- Message.validateJsonSchema(message);
57
- return new RecordsDelete(message);
25
+ static async create(options) {
26
+ const recordId = options.recordId;
27
+ const currentTime = Time.getCurrentTimestamp();
28
+ const descriptor = {
29
+ interface: DwnInterfaceName.Records,
30
+ method: DwnMethodName.Delete,
31
+ messageTimestamp: options.messageTimestamp ?? currentTime,
32
+ recordId,
33
+ prune: options.prune ?? false
34
+ };
35
+ const authorization = await Message.createAuthorization({
36
+ descriptor,
37
+ signer: options.signer,
38
+ protocolRole: options.protocolRole,
39
+ permissionGrantId: options.permissionGrantId,
40
+ delegatedGrant: options.delegatedGrant
58
41
  });
42
+ const message = { descriptor, authorization };
43
+ Message.validateJsonSchema(message);
44
+ return new RecordsDelete(message);
59
45
  }
60
46
  /**
61
47
  * Indexed properties needed for MessageStore indexing.
62
48
  */
63
49
  constructIndexes(initialWrite) {
64
50
  const message = this.message;
65
- const descriptor = Object.assign({}, message.descriptor);
51
+ const descriptor = { ...message.descriptor };
66
52
  // we add the immutable properties from the initial RecordsWrite message in order to use them when querying relevant deletes.
67
53
  const { protocol, protocolPath, recipient, schema, parentId, dateCreated } = initialWrite.descriptor;
68
- const indexes = Object.assign({ isLatestBaseState: true, protocol, protocolPath, recipient, schema, parentId, dateCreated, contextId: initialWrite.contextId, author: this.author }, descriptor);
54
+ const indexes = {
55
+ isLatestBaseState: true,
56
+ protocol, protocolPath, recipient, schema, parentId, dateCreated,
57
+ contextId: initialWrite.contextId,
58
+ author: this.author,
59
+ ...descriptor
60
+ };
69
61
  removeUndefinedProperties(indexes);
70
62
  return indexes;
71
63
  }
@@ -73,17 +65,15 @@ export class RecordsDelete extends AbstractMessage {
73
65
  * Authorizes the delegate who signed the message.
74
66
  * @param messageStore Used to check if the grant has been revoked.
75
67
  */
76
- authorizeDelegate(recordsWriteToDelete, messageStore) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- const delegatedGrant = yield PermissionGrant.parse(this.message.authorization.authorDelegatedGrant);
79
- yield RecordsGrantAuthorization.authorizeDelete({
80
- recordsDeleteMessage: this.message,
81
- recordsWriteToDelete,
82
- expectedGrantor: this.author,
83
- expectedGrantee: this.signer,
84
- permissionGrant: delegatedGrant,
85
- messageStore
86
- });
68
+ async authorizeDelegate(recordsWriteToDelete, messageStore) {
69
+ const delegatedGrant = await PermissionGrant.parse(this.message.authorization.authorDelegatedGrant);
70
+ await RecordsGrantAuthorization.authorizeDelete({
71
+ recordsDeleteMessage: this.message,
72
+ recordsWriteToDelete,
73
+ expectedGrantor: this.author,
74
+ expectedGrantee: this.signer,
75
+ permissionGrant: delegatedGrant,
76
+ messageStore
87
77
  });
88
78
  }
89
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"records-delete.js","sourceRoot":"","sources":["../../../../src/interfaces/records-delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-delete.js","sourceRoot":"","sources":["../../../../src/interfaces/records-delete.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAwBnF,MAAM,OAAO,aAAc,SAAQ,eAAqC;IAE/D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAA6B;QACrD,IAAI,gBAAgB,CAAC;QACrB,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxC,gBAAgB,GAAG,MAAM,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,OAAO,CAAC,0CAA0C,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAEpF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAA6B;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE/C,MAAM,UAAU,GAA4B;YAC1C,SAAS,EAAU,gBAAgB,CAAC,OAAO;YAC3C,MAAM,EAAa,aAAa,CAAC,MAAM;YACvC,gBAAgB,EAAG,OAAO,CAAC,gBAAgB,IAAI,WAAW;YAC1D,QAAQ;YACR,KAAK,EAAc,OAAO,CAAC,KAAK,IAAI,KAAK;SAC1C,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;YACtD,UAAU;YACV,MAAM,EAAc,OAAO,CAAC,MAAM;YAClC,YAAY,EAAQ,OAAO,CAAC,YAAY;YACxC,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;YAC7C,cAAc,EAAM,OAAO,CAAC,cAAc;SAC3C,CAAC,CAAC;QACH,MAAM,OAAO,GAAyB,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QAEpE,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEpC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,gBAAgB,CACrB,YAAiC;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAE7C,6HAA6H;QAC7H,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC;QAErG,MAAM,OAAO,GAAmD;YAC9D,iBAAiB,EAAG,IAAI;YACxB,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW;YAChE,SAAS,EAAW,YAAY,CAAC,SAAS;YAC1C,MAAM,EAAc,IAAI,CAAC,MAAO;YAChC,GAAG,UAAU;SACd,CAAC;QACF,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAEnC,OAAO,OAAoB,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,iBAAiB,CAAC,oBAAyC,EAAE,YAA0B;QAClG,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAc,CAAC,oBAAqB,CAAC,CAAC;QACtG,MAAM,yBAAyB,CAAC,eAAe,CAAC;YAC9C,oBAAoB,EAAG,IAAI,CAAC,OAAO;YACnC,oBAAoB;YACpB,eAAe,EAAQ,IAAI,CAAC,MAAO;YACnC,eAAe,EAAQ,IAAI,CAAC,MAAO;YACnC,eAAe,EAAQ,cAAc;YACrC,YAAY;SACb,CAAC,CAAC;IACL,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 { AbstractMessage } from '../core/abstract-message.js';
11
2
  import { DateSort } from '../types/records-types.js';
12
3
  import { Message } from '../core/message.js';
@@ -22,82 +13,75 @@ import { validateProtocolUrlNormalized, validateSchemaUrlNormalized } from '../u
22
13
  * A class representing a RecordsQuery DWN message.
23
14
  */
24
15
  export class RecordsQuery extends AbstractMessage {
25
- static parse(message) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- if (message.descriptor.filter.published === false) {
28
- if (message.descriptor.dateSort === DateSort.PublishedAscending || message.descriptor.dateSort === DateSort.PublishedDescending) {
29
- throw new DwnError(DwnErrorCode.RecordsQueryParseFilterPublishedSortInvalid, `queries must not filter for \`published:false\` and sort by ${message.descriptor.dateSort}`);
30
- }
16
+ static async parse(message) {
17
+ if (message.descriptor.filter.published === false) {
18
+ if (message.descriptor.dateSort === DateSort.PublishedAscending || message.descriptor.dateSort === DateSort.PublishedDescending) {
19
+ throw new DwnError(DwnErrorCode.RecordsQueryParseFilterPublishedSortInvalid, `queries must not filter for \`published:false\` and sort by ${message.descriptor.dateSort}`);
31
20
  }
32
- let signaturePayload;
33
- if (message.authorization !== undefined) {
34
- signaturePayload = yield Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
21
+ }
22
+ let signaturePayload;
23
+ if (message.authorization !== undefined) {
24
+ signaturePayload = await Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
25
+ }
26
+ await Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
27
+ if (signaturePayload?.protocolRole !== undefined) {
28
+ if (message.descriptor.filter.protocolPath === undefined) {
29
+ throw new DwnError(DwnErrorCode.RecordsQueryFilterMissingRequiredProperties, 'Role-authorized queries must include `protocolPath` in the filter');
35
30
  }
36
- yield Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
37
- if ((signaturePayload === null || signaturePayload === void 0 ? void 0 : signaturePayload.protocolRole) !== undefined) {
38
- if (message.descriptor.filter.protocolPath === undefined) {
39
- throw new DwnError(DwnErrorCode.RecordsQueryFilterMissingRequiredProperties, 'Role-authorized queries must include `protocolPath` in the filter');
40
- }
41
- }
42
- if (message.descriptor.filter.protocol !== undefined) {
43
- validateProtocolUrlNormalized(message.descriptor.filter.protocol);
44
- }
45
- if (message.descriptor.filter.schema !== undefined) {
46
- validateSchemaUrlNormalized(message.descriptor.filter.schema);
47
- }
48
- Time.validateTimestamp(message.descriptor.messageTimestamp);
49
- return new RecordsQuery(message);
50
- });
31
+ }
32
+ if (message.descriptor.filter.protocol !== undefined) {
33
+ validateProtocolUrlNormalized(message.descriptor.filter.protocol);
34
+ }
35
+ if (message.descriptor.filter.schema !== undefined) {
36
+ validateSchemaUrlNormalized(message.descriptor.filter.schema);
37
+ }
38
+ Time.validateTimestamp(message.descriptor.messageTimestamp);
39
+ return new RecordsQuery(message);
51
40
  }
52
- static create(options) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- var _a;
55
- const descriptor = {
56
- interface: DwnInterfaceName.Records,
57
- method: DwnMethodName.Query,
58
- messageTimestamp: (_a = options.messageTimestamp) !== null && _a !== void 0 ? _a : Time.getCurrentTimestamp(),
59
- filter: Records.normalizeFilter(options.filter),
60
- dateSort: options.dateSort,
61
- pagination: options.pagination,
62
- };
63
- if (options.filter.published === false) {
64
- if (options.dateSort === DateSort.PublishedAscending || options.dateSort === DateSort.PublishedDescending) {
65
- throw new DwnError(DwnErrorCode.RecordsQueryCreateFilterPublishedSortInvalid, `queries must not filter for \`published:false\` and sort by ${options.dateSort}`);
66
- }
41
+ static async create(options) {
42
+ const descriptor = {
43
+ interface: DwnInterfaceName.Records,
44
+ method: DwnMethodName.Query,
45
+ messageTimestamp: options.messageTimestamp ?? Time.getCurrentTimestamp(),
46
+ filter: Records.normalizeFilter(options.filter),
47
+ dateSort: options.dateSort,
48
+ pagination: options.pagination,
49
+ };
50
+ if (options.filter.published === false) {
51
+ if (options.dateSort === DateSort.PublishedAscending || options.dateSort === DateSort.PublishedDescending) {
52
+ throw new DwnError(DwnErrorCode.RecordsQueryCreateFilterPublishedSortInvalid, `queries must not filter for \`published:false\` and sort by ${options.dateSort}`);
67
53
  }
68
- // delete all descriptor properties that are `undefined` else the code will encounter the following IPLD issue when attempting to generate CID:
69
- // Error: `undefined` is not supported by the IPLD Data Model and cannot be encoded
70
- removeUndefinedProperties(descriptor);
71
- // only generate the `authorization` property if signature input is given
72
- const signer = options.signer;
73
- let authorization;
74
- if (signer) {
75
- authorization = yield Message.createAuthorization({
76
- descriptor,
77
- signer,
78
- protocolRole: options.protocolRole,
79
- delegatedGrant: options.delegatedGrant
80
- });
81
- }
82
- const message = { descriptor, authorization };
83
- Message.validateJsonSchema(message);
84
- return new RecordsQuery(message);
85
- });
54
+ }
55
+ // delete all descriptor properties that are `undefined` else the code will encounter the following IPLD issue when attempting to generate CID:
56
+ // Error: `undefined` is not supported by the IPLD Data Model and cannot be encoded
57
+ removeUndefinedProperties(descriptor);
58
+ // only generate the `authorization` property if signature input is given
59
+ const signer = options.signer;
60
+ let authorization;
61
+ if (signer) {
62
+ authorization = await Message.createAuthorization({
63
+ descriptor,
64
+ signer,
65
+ protocolRole: options.protocolRole,
66
+ delegatedGrant: options.delegatedGrant
67
+ });
68
+ }
69
+ const message = { descriptor, authorization };
70
+ Message.validateJsonSchema(message);
71
+ return new RecordsQuery(message);
86
72
  }
87
73
  /**
88
74
  * Authorizes the delegate who signed this message.
89
75
  * @param messageStore Used to check if the grant has been revoked.
90
76
  */
91
- authorizeDelegate(messageStore) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- const delegatedGrant = yield PermissionGrant.parse(this.message.authorization.authorDelegatedGrant);
94
- yield RecordsGrantAuthorization.authorizeQueryOrSubscribe({
95
- incomingMessage: this.message,
96
- expectedGrantee: this.signer,
97
- expectedGrantor: this.author,
98
- permissionGrant: delegatedGrant,
99
- messageStore
100
- });
77
+ async authorizeDelegate(messageStore) {
78
+ const delegatedGrant = await PermissionGrant.parse(this.message.authorization.authorDelegatedGrant);
79
+ await RecordsGrantAuthorization.authorizeQueryOrSubscribe({
80
+ incomingMessage: this.message,
81
+ expectedGrantee: this.signer,
82
+ expectedGrantor: this.author,
83
+ permissionGrant: delegatedGrant,
84
+ messageStore
101
85
  });
102
86
  }
103
87
  }