@enbox/dwn-sdk-js 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/dist/browser.mjs +8 -8
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/generated/precompiled-validators.js +762 -911
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/src/core/abstract-message.js +4 -0
  6. package/dist/esm/src/core/abstract-message.js.map +1 -1
  7. package/dist/esm/src/core/auth.js +22 -33
  8. package/dist/esm/src/core/auth.js.map +1 -1
  9. package/dist/esm/src/core/constants.js +11 -0
  10. package/dist/esm/src/core/constants.js.map +1 -0
  11. package/dist/esm/src/core/core-protocol.js +44 -0
  12. package/dist/esm/src/core/core-protocol.js.map +1 -0
  13. package/dist/esm/src/core/dwn-constant.js +7 -7
  14. package/dist/esm/src/core/dwn-constant.js.map +1 -1
  15. package/dist/esm/src/core/dwn-error.js +10 -12
  16. package/dist/esm/src/core/dwn-error.js.map +1 -1
  17. package/dist/esm/src/core/grant-authorization.js +50 -52
  18. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  19. package/dist/esm/src/core/message.js +85 -116
  20. package/dist/esm/src/core/message.js.map +1 -1
  21. package/dist/esm/src/core/messages-grant-authorization.js +63 -78
  22. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  23. package/dist/esm/src/core/protocol-authorization-action.js +266 -0
  24. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -0
  25. package/dist/esm/src/core/protocol-authorization-validation.js +321 -0
  26. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -0
  27. package/dist/esm/src/core/protocol-authorization.js +144 -741
  28. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  29. package/dist/esm/src/core/protocols-grant-authorization.js +24 -38
  30. package/dist/esm/src/core/protocols-grant-authorization.js.map +1 -1
  31. package/dist/esm/src/core/record-chain.js +64 -0
  32. package/dist/esm/src/core/record-chain.js.map +1 -0
  33. package/dist/esm/src/core/records-grant-authorization.js +53 -72
  34. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  35. package/dist/esm/src/core/resumable-task-manager.js +50 -65
  36. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  37. package/dist/esm/src/core/tenant-gate.js +2 -13
  38. package/dist/esm/src/core/tenant-gate.js.map +1 -1
  39. package/dist/esm/src/dwn.js +108 -101
  40. package/dist/esm/src/dwn.js.map +1 -1
  41. package/dist/esm/src/event-stream/event-emitter-event-log.js +204 -0
  42. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -0
  43. package/dist/esm/src/handlers/messages-read.js +67 -81
  44. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  45. package/dist/esm/src/handlers/messages-subscribe.js +51 -63
  46. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  47. package/dist/esm/src/handlers/messages-sync.js +75 -89
  48. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  49. package/dist/esm/src/handlers/protocols-configure.js +153 -163
  50. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  51. package/dist/esm/src/handlers/protocols-query.js +52 -55
  52. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  53. package/dist/esm/src/handlers/records-count.js +97 -85
  54. package/dist/esm/src/handlers/records-count.js.map +1 -1
  55. package/dist/esm/src/handlers/records-delete.js +75 -93
  56. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  57. package/dist/esm/src/handlers/records-query.js +116 -105
  58. package/dist/esm/src/handlers/records-query.js.map +1 -1
  59. package/dist/esm/src/handlers/records-read.js +130 -132
  60. package/dist/esm/src/handlers/records-read.js.map +1 -1
  61. package/dist/esm/src/handlers/records-subscribe.js +164 -104
  62. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  63. package/dist/esm/src/handlers/records-write.js +213 -280
  64. package/dist/esm/src/handlers/records-write.js.map +1 -1
  65. package/dist/esm/src/index.js +5 -2
  66. package/dist/esm/src/index.js.map +1 -1
  67. package/dist/esm/src/interfaces/messages-read.js +24 -32
  68. package/dist/esm/src/interfaces/messages-read.js.map +1 -1
  69. package/dist/esm/src/interfaces/messages-subscribe.js +28 -41
  70. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  71. package/dist/esm/src/interfaces/messages-sync.js +26 -40
  72. package/dist/esm/src/interfaces/messages-sync.js.map +1 -1
  73. package/dist/esm/src/interfaces/protocols-configure.js +87 -65
  74. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  75. package/dist/esm/src/interfaces/protocols-query.js +55 -68
  76. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  77. package/dist/esm/src/interfaces/records-count.js +50 -66
  78. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  79. package/dist/esm/src/interfaces/records-delete.js +45 -55
  80. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  81. package/dist/esm/src/interfaces/records-query.js +60 -76
  82. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  83. package/dist/esm/src/interfaces/records-read.js +51 -67
  84. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  85. package/dist/esm/src/interfaces/records-subscribe.js +53 -68
  86. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  87. package/dist/esm/src/interfaces/records-write-query.js +102 -0
  88. package/dist/esm/src/interfaces/records-write-query.js.map +1 -0
  89. package/dist/esm/src/interfaces/records-write-signing.js +81 -0
  90. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -0
  91. package/dist/esm/src/interfaces/records-write.js +396 -610
  92. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  93. package/dist/esm/src/jose/algorithms/signing/ed25519.js +10 -19
  94. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  95. package/dist/esm/src/jose/jws/general/builder.js +23 -35
  96. package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
  97. package/dist/esm/src/jose/jws/general/verifier.js +56 -69
  98. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  99. package/dist/esm/src/protocols/permission-grant.js +43 -14
  100. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  101. package/dist/esm/src/protocols/permission-request.js +28 -14
  102. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  103. package/dist/esm/src/protocols/permissions.js +325 -227
  104. package/dist/esm/src/protocols/permissions.js.map +1 -1
  105. package/dist/esm/src/smt/smt-store-level.js +42 -64
  106. package/dist/esm/src/smt/smt-store-level.js.map +1 -1
  107. package/dist/esm/src/smt/smt-store-memory.js +19 -45
  108. package/dist/esm/src/smt/smt-store-memory.js.map +1 -1
  109. package/dist/esm/src/smt/smt-utils.js +28 -45
  110. package/dist/esm/src/smt/smt-utils.js.map +1 -1
  111. package/dist/esm/src/smt/sparse-merkle-tree.js +426 -471
  112. package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -1
  113. package/dist/esm/src/state-index/state-index-level.js +113 -150
  114. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  115. package/dist/esm/src/store/blockstore-level.js +54 -156
  116. package/dist/esm/src/store/blockstore-level.js.map +1 -1
  117. package/dist/esm/src/store/blockstore-mock.js +48 -153
  118. package/dist/esm/src/store/blockstore-mock.js.map +1 -1
  119. package/dist/esm/src/store/data-store-level.js +137 -100
  120. package/dist/esm/src/store/data-store-level.js.map +1 -1
  121. package/dist/esm/src/store/index-level-compound.js +246 -0
  122. package/dist/esm/src/store/index-level-compound.js.map +1 -0
  123. package/dist/esm/src/store/index-level.js +307 -715
  124. package/dist/esm/src/store/index-level.js.map +1 -1
  125. package/dist/esm/src/store/level-wrapper.js +143 -244
  126. package/dist/esm/src/store/level-wrapper.js.map +1 -1
  127. package/dist/esm/src/store/message-store-level.js +71 -94
  128. package/dist/esm/src/store/message-store-level.js.map +1 -1
  129. package/dist/esm/src/store/resumable-task-store-level.js +62 -101
  130. package/dist/esm/src/store/resumable-task-store-level.js.map +1 -1
  131. package/dist/esm/src/store/storage-controller.js +131 -146
  132. package/dist/esm/src/store/storage-controller.js.map +1 -1
  133. package/dist/esm/src/types/permission-types.js.map +1 -1
  134. package/dist/esm/src/types/protocols-types.js +10 -0
  135. package/dist/esm/src/types/protocols-types.js.map +1 -1
  136. package/dist/esm/src/types/records-types.js.map +1 -1
  137. package/dist/esm/src/utils/abort.js +8 -19
  138. package/dist/esm/src/utils/abort.js.map +1 -1
  139. package/dist/esm/src/utils/array.js +15 -49
  140. package/dist/esm/src/utils/array.js.map +1 -1
  141. package/dist/esm/src/utils/cid.js +29 -77
  142. package/dist/esm/src/utils/cid.js.map +1 -1
  143. package/dist/esm/src/utils/data-stream.js +37 -65
  144. package/dist/esm/src/utils/data-stream.js.map +1 -1
  145. package/dist/esm/src/utils/encryption.js +136 -162
  146. package/dist/esm/src/utils/encryption.js.map +1 -1
  147. package/dist/esm/src/utils/filter.js +1 -12
  148. package/dist/esm/src/utils/filter.js.map +1 -1
  149. package/dist/esm/src/utils/hd-key.js +45 -71
  150. package/dist/esm/src/utils/hd-key.js.map +1 -1
  151. package/dist/esm/src/utils/jws.js +9 -20
  152. package/dist/esm/src/utils/jws.js.map +1 -1
  153. package/dist/esm/src/utils/memory-cache.js +12 -23
  154. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  155. package/dist/esm/src/utils/messages.js +21 -33
  156. package/dist/esm/src/utils/messages.js.map +1 -1
  157. package/dist/esm/src/utils/private-key-signer.js +9 -17
  158. package/dist/esm/src/utils/private-key-signer.js.map +1 -1
  159. package/dist/esm/src/utils/protocols.js +62 -70
  160. package/dist/esm/src/utils/protocols.js.map +1 -1
  161. package/dist/esm/src/utils/records.js +103 -166
  162. package/dist/esm/src/utils/records.js.map +1 -1
  163. package/dist/esm/src/utils/secp256k1.js +60 -96
  164. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  165. package/dist/esm/src/utils/secp256r1.js +54 -71
  166. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  167. package/dist/esm/src/utils/time.js +5 -18
  168. package/dist/esm/src/utils/time.js.map +1 -1
  169. package/dist/esm/src/utils/url.js +3 -3
  170. package/dist/esm/src/utils/url.js.map +1 -1
  171. package/dist/esm/tests/core/auth.spec.js +3 -12
  172. package/dist/esm/tests/core/auth.spec.js.map +1 -1
  173. package/dist/esm/tests/core/message.spec.js +50 -59
  174. package/dist/esm/tests/core/message.spec.js.map +1 -1
  175. package/dist/esm/tests/core/protocol-authorization.spec.js +10 -18
  176. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  177. package/dist/esm/tests/dwn.spec.js +65 -89
  178. package/dist/esm/tests/dwn.spec.js.map +1 -1
  179. package/dist/esm/tests/event-emitter-event-log.spec.js +305 -0
  180. package/dist/esm/tests/event-emitter-event-log.spec.js.map +1 -0
  181. package/dist/esm/tests/features/author-delegated-grant.spec.js +337 -347
  182. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  183. package/dist/esm/tests/features/owner-delegated-grant.spec.js +160 -172
  184. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  185. package/dist/esm/tests/features/owner-signature.spec.js +78 -82
  186. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  187. package/dist/esm/tests/features/permissions.spec.js +449 -184
  188. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  189. package/dist/esm/tests/features/protocol-composition.spec.js +981 -360
  190. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  191. package/dist/esm/tests/features/protocol-create-action.spec.js +45 -54
  192. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  193. package/dist/esm/tests/features/protocol-delete-action.spec.js +99 -108
  194. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  195. package/dist/esm/tests/features/protocol-update-action.spec.js +108 -117
  196. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  197. package/dist/esm/tests/features/records-immutable.spec.js +315 -0
  198. package/dist/esm/tests/features/records-immutable.spec.js.map +1 -0
  199. package/dist/esm/tests/features/records-prune.spec.js +178 -194
  200. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  201. package/dist/esm/tests/features/records-record-limit.spec.js +542 -0
  202. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -0
  203. package/dist/esm/tests/features/records-tags.spec.js +456 -463
  204. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  205. package/dist/esm/tests/features/resumable-tasks.spec.js +88 -98
  206. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  207. package/dist/esm/tests/handlers/messages-read.spec.js +215 -210
  208. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  209. package/dist/esm/tests/handlers/messages-subscribe.spec.js +309 -171
  210. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  211. package/dist/esm/tests/handlers/messages-sync.spec.js +272 -199
  212. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  213. package/dist/esm/tests/handlers/protocols-configure.spec.js +247 -241
  214. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  215. package/dist/esm/tests/handlers/protocols-query.spec.js +159 -172
  216. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  217. package/dist/esm/tests/handlers/records-count.spec.js +101 -105
  218. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  219. package/dist/esm/tests/handlers/records-delete.spec.js +266 -279
  220. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  221. package/dist/esm/tests/handlers/records-query.spec.js +984 -996
  222. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  223. package/dist/esm/tests/handlers/records-read.spec.js +542 -671
  224. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  225. package/dist/esm/tests/handlers/records-subscribe.spec.js +433 -302
  226. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  227. package/dist/esm/tests/handlers/records-write.spec.js +1216 -1140
  228. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  229. package/dist/esm/tests/interfaces/messages-get.spec.js +39 -48
  230. package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -1
  231. package/dist/esm/tests/interfaces/messages-subscribe.spec.js +4 -13
  232. package/dist/esm/tests/interfaces/messages-subscribe.spec.js.map +1 -1
  233. package/dist/esm/tests/interfaces/protocols-configure.spec.js +212 -88
  234. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  235. package/dist/esm/tests/interfaces/protocols-query.spec.js +8 -17
  236. package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -1
  237. package/dist/esm/tests/interfaces/records-delete.spec.js +8 -17
  238. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  239. package/dist/esm/tests/interfaces/records-query.spec.js +20 -29
  240. package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -1
  241. package/dist/esm/tests/interfaces/records-read.spec.js +42 -51
  242. package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -1
  243. package/dist/esm/tests/interfaces/records-subscribe.spec.js +16 -25
  244. package/dist/esm/tests/interfaces/records-subscribe.spec.js.map +1 -1
  245. package/dist/esm/tests/interfaces/records-write.spec.js +190 -219
  246. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  247. package/dist/esm/tests/jose/jws/general.spec.js +36 -45
  248. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
  249. package/dist/esm/tests/protocols/permission-grant.spec.js +44 -50
  250. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
  251. package/dist/esm/tests/protocols/permission-request.spec.js +23 -32
  252. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  253. package/dist/esm/tests/protocols/permissions.spec.js +49 -55
  254. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  255. package/dist/esm/tests/scenarios/aggregator.spec.js +127 -138
  256. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  257. package/dist/esm/tests/scenarios/deleted-record.spec.js +372 -36
  258. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  259. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +55 -64
  260. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  261. package/dist/esm/tests/scenarios/nested-roles.spec.js +66 -76
  262. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  263. package/dist/esm/tests/scenarios/subscriptions.spec.js +451 -354
  264. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  265. package/dist/esm/tests/smt/smt-store-level.spec.js +76 -87
  266. package/dist/esm/tests/smt/smt-store-level.spec.js.map +1 -1
  267. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +344 -353
  268. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +1 -1
  269. package/dist/esm/tests/state-index/state-index-level.spec.js +117 -126
  270. package/dist/esm/tests/state-index/state-index-level.spec.js.map +1 -1
  271. package/dist/esm/tests/store/blockstore-level.spec.js +44 -99
  272. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -1
  273. package/dist/esm/tests/store/blockstore-mock.spec.js +40 -120
  274. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  275. package/dist/esm/tests/store/data-store-level.spec.js +160 -108
  276. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  277. package/dist/esm/tests/store/index-level.spec.js +404 -414
  278. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  279. package/dist/esm/tests/store/message-store-level.spec.js +13 -22
  280. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  281. package/dist/esm/tests/store/message-store.spec.js +229 -238
  282. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  283. package/dist/esm/tests/test-event-stream.js +12 -13
  284. package/dist/esm/tests/test-event-stream.js.map +1 -1
  285. package/dist/esm/tests/test-stores.js +16 -13
  286. package/dist/esm/tests/test-stores.js.map +1 -1
  287. package/dist/esm/tests/test-suite.js +8 -15
  288. package/dist/esm/tests/test-suite.js.map +1 -1
  289. package/dist/esm/tests/utils/cid.spec.js +24 -33
  290. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  291. package/dist/esm/tests/utils/data-stream.spec.js +48 -57
  292. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  293. package/dist/esm/tests/utils/encryption-callbacks.spec.js +45 -54
  294. package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -1
  295. package/dist/esm/tests/utils/encryption.spec.js +229 -82
  296. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  297. package/dist/esm/tests/utils/filters.spec.js +46 -55
  298. package/dist/esm/tests/utils/filters.spec.js.map +1 -1
  299. package/dist/esm/tests/utils/hd-key.spec.js +10 -19
  300. package/dist/esm/tests/utils/hd-key.spec.js.map +1 -1
  301. package/dist/esm/tests/utils/jws.spec.js +3 -12
  302. package/dist/esm/tests/utils/jws.spec.js.map +1 -1
  303. package/dist/esm/tests/utils/memory-cache.spec.js +9 -18
  304. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  305. package/dist/esm/tests/utils/messages.spec.js +18 -20
  306. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  307. package/dist/esm/tests/utils/poller.js +22 -33
  308. package/dist/esm/tests/utils/poller.js.map +1 -1
  309. package/dist/esm/tests/utils/private-key-signer.spec.js +15 -24
  310. package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -1
  311. package/dist/esm/tests/utils/records.spec.js +14 -27
  312. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  313. package/dist/esm/tests/utils/secp256k1.spec.js +16 -25
  314. package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -1
  315. package/dist/esm/tests/utils/secp256r1.spec.js +18 -27
  316. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  317. package/dist/esm/tests/utils/test-data-generator.js +446 -467
  318. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  319. package/dist/esm/tests/validation/json-schemas/definitions.spec.js +2 -11
  320. package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -1
  321. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +4 -13
  322. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -1
  323. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +8 -17
  324. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -1
  325. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +3 -12
  326. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -1
  327. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +4 -13
  328. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  329. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +2 -11
  330. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -1
  331. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js +2 -11
  332. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js.map +1 -1
  333. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +44 -24
  334. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  335. package/dist/types/generated/precompiled-validators.d.ts +49 -40
  336. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  337. package/dist/types/src/core/constants.d.ts +11 -0
  338. package/dist/types/src/core/constants.d.ts.map +1 -0
  339. package/dist/types/src/core/core-protocol.d.ts +89 -0
  340. package/dist/types/src/core/core-protocol.d.ts.map +1 -0
  341. package/dist/types/src/core/dwn-error.d.ts +9 -12
  342. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  343. package/dist/types/src/core/grant-authorization.d.ts +6 -2
  344. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  345. package/dist/types/src/core/protocol-authorization-action.d.ts +42 -0
  346. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -0
  347. package/dist/types/src/core/protocol-authorization-validation.d.ts +81 -0
  348. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -0
  349. package/dist/types/src/core/protocol-authorization.d.ts +24 -106
  350. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  351. package/dist/types/src/core/record-chain.d.ts +24 -0
  352. package/dist/types/src/core/record-chain.d.ts.map +1 -0
  353. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  354. package/dist/types/src/dwn.d.ts +19 -7
  355. package/dist/types/src/dwn.d.ts.map +1 -1
  356. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +50 -0
  357. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -0
  358. package/dist/types/src/handlers/messages-read.d.ts +3 -8
  359. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  360. package/dist/types/src/handlers/messages-subscribe.d.ts +6 -10
  361. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  362. package/dist/types/src/handlers/messages-sync.d.ts +3 -8
  363. package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
  364. package/dist/types/src/handlers/protocols-configure.d.ts +3 -10
  365. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  366. package/dist/types/src/handlers/protocols-query.d.ts +3 -8
  367. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
  368. package/dist/types/src/handlers/records-count.d.ts +3 -6
  369. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  370. package/dist/types/src/handlers/records-delete.d.ts +3 -8
  371. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  372. package/dist/types/src/handlers/records-query.d.ts +3 -8
  373. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  374. package/dist/types/src/handlers/records-read.d.ts +3 -8
  375. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  376. package/dist/types/src/handlers/records-subscribe.d.ts +8 -10
  377. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  378. package/dist/types/src/handlers/records-write.d.ts +4 -24
  379. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  380. package/dist/types/src/index.d.ts +8 -4
  381. package/dist/types/src/index.d.ts.map +1 -1
  382. package/dist/types/src/interfaces/messages-subscribe.d.ts +5 -0
  383. package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
  384. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  385. package/dist/types/src/interfaces/records-subscribe.d.ts +5 -0
  386. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  387. package/dist/types/src/interfaces/records-write-query.d.ts +33 -0
  388. package/dist/types/src/interfaces/records-write-query.d.ts.map +1 -0
  389. package/dist/types/src/interfaces/records-write-signing.d.ts +34 -0
  390. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -0
  391. package/dist/types/src/interfaces/records-write.d.ts +13 -53
  392. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  393. package/dist/types/src/protocols/permission-grant.d.ts +1 -1
  394. package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
  395. package/dist/types/src/protocols/permission-request.d.ts +1 -1
  396. package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
  397. package/dist/types/src/protocols/permissions.d.ts +40 -3
  398. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  399. package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
  400. package/dist/types/src/store/data-store-level.d.ts +20 -4
  401. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  402. package/dist/types/src/store/index-level-compound.d.ts +70 -0
  403. package/dist/types/src/store/index-level-compound.d.ts.map +1 -0
  404. package/dist/types/src/store/index-level.d.ts +4 -58
  405. package/dist/types/src/store/index-level.d.ts.map +1 -1
  406. package/dist/types/src/store/storage-controller.d.ts +4 -4
  407. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  408. package/dist/types/src/types/message-types.d.ts +3 -3
  409. package/dist/types/src/types/message-types.d.ts.map +1 -1
  410. package/dist/types/src/types/messages-types.d.ts +12 -3
  411. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  412. package/dist/types/src/types/method-handler.d.ts +24 -3
  413. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  414. package/dist/types/src/types/permission-types.d.ts +7 -0
  415. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  416. package/dist/types/src/types/protocols-types.d.ts +41 -1
  417. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  418. package/dist/types/src/types/records-types.d.ts +16 -6
  419. package/dist/types/src/types/records-types.d.ts.map +1 -1
  420. package/dist/types/src/types/subscriptions.d.ts +151 -13
  421. package/dist/types/src/types/subscriptions.d.ts.map +1 -1
  422. package/dist/types/src/utils/hd-key.d.ts +1 -9
  423. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  424. package/dist/types/src/utils/messages.d.ts +7 -5
  425. package/dist/types/src/utils/messages.d.ts.map +1 -1
  426. package/dist/types/src/utils/protocols.d.ts +5 -0
  427. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  428. package/dist/types/src/utils/records.d.ts +1 -11
  429. package/dist/types/src/utils/records.d.ts.map +1 -1
  430. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  431. package/dist/types/tests/event-emitter-event-log.spec.d.ts +2 -0
  432. package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +1 -0
  433. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  434. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  435. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  436. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  437. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  438. package/dist/types/tests/features/records-immutable.spec.d.ts +2 -0
  439. package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -0
  440. package/dist/types/tests/features/records-record-limit.spec.d.ts +2 -0
  441. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -0
  442. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  443. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  444. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  445. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  446. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -1
  447. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  448. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  449. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  450. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  451. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  452. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  453. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  454. package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
  455. package/dist/types/tests/test-event-stream.d.ts +11 -12
  456. package/dist/types/tests/test-event-stream.d.ts.map +1 -1
  457. package/dist/types/tests/test-suite.d.ts +2 -2
  458. package/dist/types/tests/test-suite.d.ts.map +1 -1
  459. package/dist/types/tests/utils/test-data-generator.d.ts +18 -0
  460. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  461. package/package.json +5 -4
  462. package/src/core/constants.ts +11 -0
  463. package/src/core/core-protocol.ts +129 -0
  464. package/src/core/dwn-error.ts +15 -12
  465. package/src/core/grant-authorization.ts +20 -3
  466. package/src/core/protocol-authorization-action.ts +377 -0
  467. package/src/core/protocol-authorization-validation.ts +487 -0
  468. package/src/core/protocol-authorization.ts +111 -856
  469. package/src/core/record-chain.ts +99 -0
  470. package/src/core/records-grant-authorization.ts +6 -8
  471. package/src/dwn.ts +58 -73
  472. package/src/event-stream/event-emitter-event-log.ts +283 -0
  473. package/src/handlers/messages-read.ts +8 -9
  474. package/src/handlers/messages-subscribe.ts +24 -28
  475. package/src/handlers/messages-sync.ts +10 -16
  476. package/src/handlers/protocols-configure.ts +47 -32
  477. package/src/handlers/protocols-query.ts +6 -9
  478. package/src/handlers/records-count.ts +11 -10
  479. package/src/handlers/records-delete.ts +12 -21
  480. package/src/handlers/records-query.ts +12 -12
  481. package/src/handlers/records-read.ts +34 -22
  482. package/src/handlers/records-subscribe.ts +47 -26
  483. package/src/handlers/records-write.ts +47 -104
  484. package/src/index.ts +9 -5
  485. package/src/interfaces/messages-subscribe.ts +7 -1
  486. package/src/interfaces/protocols-configure.ts +73 -8
  487. package/src/interfaces/records-count.ts +1 -1
  488. package/src/interfaces/records-delete.ts +1 -1
  489. package/src/interfaces/records-query.ts +1 -1
  490. package/src/interfaces/records-read.ts +1 -1
  491. package/src/interfaces/records-subscribe.ts +8 -1
  492. package/src/interfaces/records-write-query.ts +139 -0
  493. package/src/interfaces/records-write-signing.ts +123 -0
  494. package/src/interfaces/records-write.ts +66 -261
  495. package/src/protocols/permission-grant.ts +1 -1
  496. package/src/protocols/permission-request.ts +1 -1
  497. package/src/protocols/permissions.ts +148 -6
  498. package/src/state-index/state-index-level.ts +5 -7
  499. package/src/store/data-store-level.ts +124 -34
  500. package/src/store/index-level-compound.ts +324 -0
  501. package/src/store/index-level.ts +68 -341
  502. package/src/store/storage-controller.ts +11 -11
  503. package/src/types/message-types.ts +3 -3
  504. package/src/types/messages-types.ts +12 -3
  505. package/src/types/method-handler.ts +26 -4
  506. package/src/types/mitt.d.ts +28 -0
  507. package/src/types/permission-types.ts +7 -0
  508. package/src/types/protocols-types.ts +46 -0
  509. package/src/types/records-types.ts +16 -6
  510. package/src/types/subscriptions.ts +178 -14
  511. package/src/utils/hd-key.ts +0 -9
  512. package/src/utils/messages.ts +17 -37
  513. package/src/utils/protocols.ts +8 -0
  514. package/src/utils/records.ts +8 -59
  515. package/dist/esm/src/event-stream/event-emitter-stream.js +0 -60
  516. package/dist/esm/src/event-stream/event-emitter-stream.js.map +0 -1
  517. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +0 -77
  518. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +0 -1
  519. package/dist/esm/tests/event-stream/event-stream.spec.js +0 -123
  520. package/dist/esm/tests/event-stream/event-stream.spec.js.map +0 -1
  521. package/dist/types/src/event-stream/event-emitter-stream.d.ts +0 -23
  522. package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +0 -1
  523. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts +0 -2
  524. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +0 -1
  525. package/dist/types/tests/event-stream/event-stream.spec.d.ts +0 -2
  526. package/dist/types/tests/event-stream/event-stream.spec.d.ts.map +0 -1
  527. package/src/event-stream/event-emitter-stream.ts +0 -69
@@ -1,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 isPlainObject from 'lodash/isPlainObject.js';
11
2
  import { Encoder } from './encoder.js';
12
3
  import { PrivateKeySigner } from './private-key-signer.js';
@@ -35,16 +26,14 @@ export class Jws {
35
26
  * Verifies the signature against the given payload.
36
27
  * @returns `true` if signature is valid; `false` otherwise
37
28
  */
38
- static verifySignature(base64UrlPayload, signatureEntry, jwkPublic) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- const signatureAlgorithm = signatureAlgorithms[('crv' in jwkPublic ? jwkPublic.crv : undefined)];
41
- if (!signatureAlgorithm) {
42
- throw new DwnError(DwnErrorCode.JwsVerifySignatureUnsupportedCrv, `unsupported crv. crv must be one of ${Object.keys(signatureAlgorithms)}`);
43
- }
44
- const payload = Encoder.stringToBytes(`${signatureEntry.protected}.${base64UrlPayload}`);
45
- const signatureBytes = Encoder.base64UrlToBytes(signatureEntry.signature);
46
- return yield signatureAlgorithm.verify(payload, signatureBytes, jwkPublic);
47
- });
29
+ static async verifySignature(base64UrlPayload, signatureEntry, jwkPublic) {
30
+ const signatureAlgorithm = signatureAlgorithms[('crv' in jwkPublic ? jwkPublic.crv : undefined)];
31
+ if (!signatureAlgorithm) {
32
+ throw new DwnError(DwnErrorCode.JwsVerifySignatureUnsupportedCrv, `unsupported crv. crv must be one of ${Object.keys(signatureAlgorithms)}`);
33
+ }
34
+ const payload = Encoder.stringToBytes(`${signatureEntry.protected}.${base64UrlPayload}`);
35
+ const signatureBytes = Encoder.base64UrlToBytes(signatureEntry.signature);
36
+ return await signatureAlgorithm.verify(payload, signatureBytes, jwkPublic);
48
37
  }
49
38
  /**
50
39
  * Decodes the payload of the given JWS object as a plain object.
@@ -54,7 +43,7 @@ export class Jws {
54
43
  try {
55
44
  payloadJson = Encoder.base64UrlToObject(jws.payload);
56
45
  }
57
- catch (_a) {
46
+ catch {
58
47
  throw new DwnError(DwnErrorCode.JwsDecodePlainObjectPayloadInvalid, 'payload is not a JSON object');
59
48
  }
60
49
  if (!isPlainObject(payloadJson)) {
@@ -1 +1 @@
1
- {"version":3,"file":"jws.js","sourceRoot":"","sources":["../../../../src/utils/jws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jws.js","sourceRoot":"","sources":["../../../../src/utils/jws.ts"],"names":[],"mappings":"AAKA,OAAO,aAAa,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,oDAAoD,CAAC;AAG9G;;GAEG;AACH,MAAM,OAAO,GAAG;IACd;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,cAA8B;QACjD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,cAA8B;QACvD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,gBAAwB,EAAE,cAA8B,EAAE,SAAuB;QACnH,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAmB,CAAC,CAAC;QAEnH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,gCAAgC,EAAE,uCAAuC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC/I,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAE1E,OAAO,MAAM,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,wBAAwB,CAAC,GAAe;QACpD,IAAI,WAAW,CAAC;QAChB,IAAI,CAAC;YACH,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,8BAA8B,CAAC,CAAC;QACtG,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,uCAAuC,CAAC,CAAC;QAC/G,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,UAAU,CAAC,GAAW;QAClC,MAAM,CAAE,GAAG,CAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa,CAAC,YAA2B;QACrD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QACjF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,WAAwB;QACjD,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;QAClD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,41 +1,30 @@
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 { LRUCache } from 'lru-cache';
11
2
  /**
12
3
  * A cache using local memory.
13
4
  */
14
5
  export class MemoryCache {
6
+ timeToLiveInSeconds;
7
+ cache;
15
8
  /**
16
9
  * @param timeToLiveInSeconds time-to-live for every key-value pair set in the cache
17
10
  */
18
11
  constructor(timeToLiveInSeconds) {
19
12
  this.timeToLiveInSeconds = timeToLiveInSeconds;
20
13
  this.cache = new LRUCache({
21
- max: 100000,
14
+ max: 100_000,
22
15
  ttl: timeToLiveInSeconds * 1000
23
16
  });
24
17
  }
25
- set(key, value) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- try {
28
- this.cache.set(key, value);
29
- }
30
- catch (_a) {
31
- // let the code continue as this is a non-fatal error
32
- }
33
- });
18
+ async set(key, value) {
19
+ try {
20
+ this.cache.set(key, value);
21
+ }
22
+ catch {
23
+ // let the code continue as this is a non-fatal error
24
+ }
34
25
  }
35
- get(key) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- return this.cache.get(key);
38
- });
26
+ async get(key) {
27
+ return this.cache.get(key);
39
28
  }
40
29
  }
41
30
  //# sourceMappingURL=memory-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-cache.js","sourceRoot":"","sources":["../../../../src/utils/memory-cache.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,WAAW;IAGtB;;OAEG;IACH,YAA4B,mBAA2B;QAA3B,wBAAmB,GAAnB,mBAAmB,CAAQ;QACrD,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC;YACxB,GAAG,EAAG,MAAO;YACb,GAAG,EAAG,mBAAmB,GAAG,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAEK,GAAG,CAAC,GAAW,EAAE,KAAU;;YAC/B,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;YAAC,WAAM,CAAC;gBACP,qDAAqD;YACvD,CAAC;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW;;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"memory-cache.js","sourceRoot":"","sources":["../../../../src/utils/memory-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,WAAW;IAMM;IALpB,KAAK,CAAwB;IAErC;;OAEG;IACH,YAA4B,mBAA2B;QAA3B,wBAAmB,GAAnB,mBAAmB,CAAQ;QACrD,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC;YACxB,GAAG,EAAG,OAAO;YACb,GAAG,EAAG,mBAAmB,GAAG,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -1,7 +1,5 @@
1
1
  import { FilterUtility } from './filter.js';
2
2
  import { normalizeProtocolUrl } from './url.js';
3
- import { PermissionsProtocol } from '../protocols/permissions.js';
4
- import { Records } from './records.js';
5
3
  import { isEmptyObject, removeUndefinedProperties } from './object.js';
6
4
  /**
7
5
  * Class containing Messages related utility methods.
@@ -16,7 +14,10 @@ export class Messages {
16
14
  for (const filter of filters) {
17
15
  // normalize the protocol URL if it exists
18
16
  const protocol = filter.protocol !== undefined ? normalizeProtocolUrl(filter.protocol) : undefined;
19
- const messagesFilter = Object.assign(Object.assign({}, filter), { protocol });
17
+ const messagesFilter = {
18
+ ...filter,
19
+ protocol,
20
+ };
20
21
  // remove any empty filter properties and do not add if empty
21
22
  removeUndefinedProperties(messagesFilter);
22
23
  if (!isEmptyObject(messagesFilter)) {
@@ -28,50 +29,37 @@ export class Messages {
28
29
  /**
29
30
  * Converts an incoming array of MessagesFilter into an array of Filter usable by MessageLog.
30
31
  *
32
+ * When a `CoreProtocolRegistry` is provided, each registered core protocol's
33
+ * `constructAdditionalMessageFilter` hook is invoked per filter. This replaces the previous
34
+ * hardcoded permission-records shadow filter with a generic loop over all core protocols.
35
+ *
31
36
  * @param filters An array of MessagesFilter
37
+ * @param coreProtocols Optional registry of core protocols whose additional filters are injected.
32
38
  * @returns {Filter[]} an array of generic Filter able to be used when querying.
33
39
  */
34
- static convertFilters(filters) {
40
+ static convertFilters(filters, coreProtocols) {
35
41
  const messagesQueryFilters = [];
36
- // convert each filter individually by the specific type of filter it is
37
- // we must check for the type of filter in a specific order to make a reductive decision as to which filters need converting
38
- // first we check for `MessagesRecordsFilter` fields for conversion
39
- // otherwise it is `MessagesMessageFilter` fields for conversion
40
42
  for (const filter of filters) {
41
- // extract the protocol tag filter from the incoming message record filter
42
- // this filters for permission grants, requests and revocations associated with a targeted protocol
43
- // since permissions are their own protocol, we added an additional tag index when writing the permission messages
44
- // so that we can filter for permission records here
45
- const permissionRecordsFilter = this.constructPermissionRecordsFilter(filter);
46
- if (permissionRecordsFilter) {
47
- messagesQueryFilters.push(permissionRecordsFilter);
43
+ // Ask each core protocol whether it needs an additional shadow filter for this query.
44
+ // For example, the Permissions protocol injects a filter for grants/requests/revocations
45
+ // tagged with the target protocol so they appear alongside that protocol's own records.
46
+ if (coreProtocols !== undefined) {
47
+ for (const coreProtocol of coreProtocols.all()) {
48
+ const additionalFilter = coreProtocol.constructAdditionalMessageFilter?.(filter);
49
+ if (additionalFilter !== undefined) {
50
+ messagesQueryFilters.push(additionalFilter);
51
+ }
52
+ }
48
53
  }
49
54
  messagesQueryFilters.push(this.convertFilter(filter));
50
55
  }
51
56
  return messagesQueryFilters;
52
57
  }
53
- /**
54
- * Constructs a filter that gets associated permission records if protocol is in the given filter.
55
- */
56
- static constructPermissionRecordsFilter(filter) {
57
- const { protocol, messageTimestamp } = filter;
58
- if (protocol !== undefined) {
59
- const taggedFilter = Object.assign({ protocol: PermissionsProtocol.uri }, Records.convertTagsFilter({ protocol }));
60
- if (messageTimestamp != undefined) {
61
- // if we filter by message timestamp, we also want to filter the permission messages by the same timestamp range
62
- const messageTimestampFilter = FilterUtility.convertRangeCriterion(messageTimestamp);
63
- if (messageTimestampFilter) {
64
- taggedFilter.messageTimestamp = messageTimestampFilter;
65
- }
66
- }
67
- return taggedFilter;
68
- }
69
- }
70
58
  /**
71
59
  * Converts an external-facing filter model into an internal-facing filer model used by data store.
72
60
  */
73
61
  static convertFilter(filter) {
74
- const filterCopy = Object.assign({}, filter);
62
+ const filterCopy = { ...filter };
75
63
  const { messageTimestamp } = filter;
76
64
  const messageTimestampFilter = messageTimestamp ? FilterUtility.convertRangeCriterion(messageTimestamp) : undefined;
77
65
  if (messageTimestampFilter) {
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/utils/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/utils/messages.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGvE;;GAEG;AACH,MAAM,OAAO,QAAQ;IACnB;;OAEG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAAyB;QAEtD,MAAM,oBAAoB,GAAqB,EAAE,CAAC;QAElD,8EAA8E;QAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnG,MAAM,cAAc,GAAG;gBACrB,GAAG,MAAM;gBACT,QAAQ;aACT,CAAC;YAEF,6DAA6D;YAC7D,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAC,cAAc,CAAC,OAAyB,EAAE,aAAoC;QAE1F,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAE1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,sFAAsF;YACtF,yFAAyF;YACzF,wFAAwF;YACxF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC/C,MAAM,gBAAgB,GAAG,YAAY,CAAC,gCAAgC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACjF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBACnC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,MAAsB;QACjD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAY,CAAC;QAE3C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QACpC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,IAAI,sBAAsB,EAAE,CAAC;YAC3B,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;YACrD,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,CAAC;QACD,OAAO,UAAoB,CAAC;IAC9B,CAAC;CACF"}
@@ -1,20 +1,14 @@
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 { DwnError, DwnErrorCode } from '../core/dwn-error.js';
11
2
  import { signatureAlgorithms } from '../jose/algorithms/signing/signature-algorithms.js';
12
3
  /**
13
4
  * A signer that signs using a private key.
14
5
  */
15
6
  export class PrivateKeySigner {
7
+ keyId;
8
+ algorithm;
9
+ privateJwk;
10
+ signatureAlgorithm;
16
11
  constructor(options) {
17
- var _a, _b;
18
12
  if (options.keyId === undefined && options.privateJwk.kid === undefined) {
19
13
  throw new DwnError(DwnErrorCode.PrivateKeySignerUnableToDeduceKeyId, `Unable to deduce the key ID`);
20
14
  }
@@ -22,8 +16,8 @@ export class PrivateKeySigner {
22
16
  if (options.algorithm === undefined && options.privateJwk.alg === undefined) {
23
17
  throw new DwnError(DwnErrorCode.PrivateKeySignerUnableToDeduceAlgorithm, `Unable to deduce the signature algorithm`);
24
18
  }
25
- this.keyId = (_a = options.keyId) !== null && _a !== void 0 ? _a : options.privateJwk.kid;
26
- this.algorithm = (_b = options.algorithm) !== null && _b !== void 0 ? _b : options.privateJwk.alg;
19
+ this.keyId = options.keyId ?? options.privateJwk.kid;
20
+ this.algorithm = options.algorithm ?? options.privateJwk.alg;
27
21
  this.privateJwk = options.privateJwk;
28
22
  const crv = 'crv' in options.privateJwk ? options.privateJwk.crv : undefined;
29
23
  this.signatureAlgorithm = signatureAlgorithms[crv];
@@ -34,11 +28,9 @@ export class PrivateKeySigner {
34
28
  /**
35
29
  * Signs the given content and returns the signature as bytes.
36
30
  */
37
- sign(content) {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- const signatureBytes = yield this.signatureAlgorithm.sign(content, this.privateJwk);
40
- return signatureBytes;
41
- });
31
+ async sign(content) {
32
+ const signatureBytes = await this.signatureAlgorithm.sign(content, this.privateJwk);
33
+ return signatureBytes;
42
34
  }
43
35
  }
44
36
  //# sourceMappingURL=private-key-signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"private-key-signer.js","sourceRoot":"","sources":["../../../../src/utils/private-key-signer.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,oDAAoD,CAAC;AAsB9G;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAM3B,YAAmB,OAAgC;;QACjD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACxE,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,mCAAmC,EAChD,6BAA6B,CAC9B,CAAC;QACJ,CAAC;QAED,8GAA8G;QAC9G,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5E,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,uCAAuC,EACpD,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,OAAO,CAAC,UAAU,CAAC,GAAI,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,SAAS,mCAAI,OAAO,CAAC,UAAU,CAAC,GAAI,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,GAAqB,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,gCAAgC,EAC7C,mBAAmB,GAAG,wBAAwB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACU,IAAI,CAAE,OAAmB;;YACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACpF,OAAO,cAAc,CAAC;QACxB,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"private-key-signer.js","sourceRoot":"","sources":["../../../../src/utils/private-key-signer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,oDAAoD,CAAC;AAsB9G;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACpB,KAAK,CAAC;IACN,SAAS,CAAC;IACT,UAAU,CAAgB;IAC1B,kBAAkB,CAAC;IAE3B,YAAmB,OAAgC;QACjD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACxE,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,mCAAmC,EAChD,6BAA6B,CAC9B,CAAC;QACJ,CAAC;QAED,8GAA8G;QAC9G,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5E,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,uCAAuC,EACpD,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,GAAI,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,GAAI,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,GAAqB,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,gCAAgC,EAC7C,mBAAmB,GAAG,wBAAwB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAAE,OAAmB;QACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpF,OAAO,cAAc,CAAC;IACxB,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 { X25519 } from '@enbox/crypto';
11
2
  import { HdKey, KeyDerivationScheme } from '../utils/hd-key.js';
12
3
  /**
@@ -33,6 +24,13 @@ export function parseCrossProtocolRef(ref) {
33
24
  export function isCrossProtocolRef(ref) {
34
25
  return ref.includes(':');
35
26
  }
27
+ /**
28
+ * Extracts the last segment of a protocolPath — i.e. the type name.
29
+ * e.g. `'thread/comment'` → `'comment'`, `'note'` → `'note'`.
30
+ */
31
+ export function getTypeName(protocolPath) {
32
+ return protocolPath.split('/').slice(-1)[0];
33
+ }
36
34
  /**
37
35
  * Gets the rule set at a given protocol path within a protocol definition's structure tree.
38
36
  * Returns `undefined` if the path does not exist.
@@ -55,72 +53,66 @@ export function getRuleSetAtPath(protocolPath, structure) {
55
53
  */
56
54
  export class Protocols {
57
55
  // Implementation dispatches based on argument type
58
- static deriveAndInjectPublicEncryptionKeys(protocolDefinition, rootKeyIdOrKeyDeriver, privateJwk) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- // clone before modify
61
- const clone = JSON.parse(JSON.stringify(protocolDefinition));
62
- if (typeof rootKeyIdOrKeyDeriver !== 'string') {
63
- // Callback-based path
64
- const keyDeriver = rootKeyIdOrKeyDeriver;
65
- const basePath = [KeyDerivationScheme.ProtocolPath, protocolDefinition.protocol];
66
- function injectKeysViaCallback(ruleSet, parentPath) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- for (const key in ruleSet) {
69
- if (!key.startsWith('$')) {
70
- const currentPath = [...parentPath, key];
71
- const childRuleSet = ruleSet[key];
72
- // Skip $ref nodes they are governed by the referenced protocol's encryption keys.
73
- // Still recurse into children, which belong to the composing protocol.
74
- if (childRuleSet.$ref !== undefined) {
75
- yield injectKeysViaCallback(childRuleSet, currentPath);
76
- continue;
77
- }
78
- const publicKeyJwk = yield keyDeriver.derivePublicKey(currentPath);
79
- childRuleSet.$encryption = {
80
- rootKeyId: keyDeriver.rootKeyId,
81
- publicKeyJwk,
82
- };
83
- yield injectKeysViaCallback(childRuleSet, currentPath);
84
- }
56
+ static async deriveAndInjectPublicEncryptionKeys(protocolDefinition, rootKeyIdOrKeyDeriver, privateJwk) {
57
+ // clone before modify
58
+ const clone = JSON.parse(JSON.stringify(protocolDefinition));
59
+ if (typeof rootKeyIdOrKeyDeriver !== 'string') {
60
+ // Callback-based path
61
+ const keyDeriver = rootKeyIdOrKeyDeriver;
62
+ const basePath = [KeyDerivationScheme.ProtocolPath, protocolDefinition.protocol];
63
+ async function injectKeysViaCallback(ruleSet, parentPath) {
64
+ for (const key in ruleSet) {
65
+ if (!key.startsWith('$')) {
66
+ const currentPath = [...parentPath, key];
67
+ const childRuleSet = ruleSet[key];
68
+ // Skip $ref nodes — they are governed by the referenced protocol's encryption keys.
69
+ // Still recurse into children, which belong to the composing protocol.
70
+ if (childRuleSet.$ref !== undefined) {
71
+ await injectKeysViaCallback(childRuleSet, currentPath);
72
+ continue;
85
73
  }
86
- });
74
+ const publicKeyJwk = await keyDeriver.derivePublicKey(currentPath);
75
+ childRuleSet.$encryption = {
76
+ rootKeyId: keyDeriver.rootKeyId,
77
+ publicKeyJwk,
78
+ };
79
+ await injectKeysViaCallback(childRuleSet, currentPath);
80
+ }
87
81
  }
88
- yield injectKeysViaCallback(clone.structure, basePath);
89
- return clone;
90
82
  }
91
- // Raw-key path (existing logic, unchanged)
92
- const rootKeyId = rootKeyIdOrKeyDeriver;
93
- // a function that recursively creates and adds `$encryption` property to every rule set
94
- function addEncryptionProperty(ruleSet, parentKey) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- for (const key in ruleSet) {
97
- // if we encounter a nested rule set (a property name that doesn't begin with '$'), recursively inject the `$encryption` property
98
- if (!key.startsWith('$')) {
99
- const derivedPrivateKey = yield HdKey.derivePrivateKey(parentKey, [key]);
100
- const childRuleSet = ruleSet[key];
101
- // Skip $ref nodes they are governed by the referenced protocol's encryption keys.
102
- // Still recurse into children, which belong to the composing protocol.
103
- if (childRuleSet.$ref !== undefined) {
104
- yield addEncryptionProperty(childRuleSet, derivedPrivateKey);
105
- continue;
106
- }
107
- const publicKeyJwk = yield X25519.getPublicKey({ key: derivedPrivateKey.derivedPrivateKey });
108
- childRuleSet.$encryption = { rootKeyId, publicKeyJwk };
109
- yield addEncryptionProperty(childRuleSet, derivedPrivateKey);
110
- }
83
+ await injectKeysViaCallback(clone.structure, basePath);
84
+ return clone;
85
+ }
86
+ // Raw-key path (existing logic, unchanged)
87
+ const rootKeyId = rootKeyIdOrKeyDeriver;
88
+ // a function that recursively creates and adds `$encryption` property to every rule set
89
+ async function addEncryptionProperty(ruleSet, parentKey) {
90
+ for (const key in ruleSet) {
91
+ // if we encounter a nested rule set (a property name that doesn't begin with '$'), recursively inject the `$encryption` property
92
+ if (!key.startsWith('$')) {
93
+ const derivedPrivateKey = await HdKey.derivePrivateKey(parentKey, [key]);
94
+ const childRuleSet = ruleSet[key];
95
+ // Skip $ref nodes they are governed by the referenced protocol's encryption keys.
96
+ // Still recurse into children, which belong to the composing protocol.
97
+ if (childRuleSet.$ref !== undefined) {
98
+ await addEncryptionProperty(childRuleSet, derivedPrivateKey);
99
+ continue;
111
100
  }
112
- });
101
+ const publicKeyJwk = await X25519.getPublicKey({ key: derivedPrivateKey.derivedPrivateKey });
102
+ childRuleSet.$encryption = { rootKeyId, publicKeyJwk };
103
+ await addEncryptionProperty(childRuleSet, derivedPrivateKey);
104
+ }
113
105
  }
114
- // inject encryption property starting from each root level record type
115
- const rootKey = {
116
- derivationScheme: KeyDerivationScheme.ProtocolPath,
117
- derivedPrivateKey: privateJwk,
118
- rootKeyId
119
- };
120
- const protocolLevelDerivedKey = yield HdKey.derivePrivateKey(rootKey, [KeyDerivationScheme.ProtocolPath, protocolDefinition.protocol]);
121
- yield addEncryptionProperty(clone.structure, protocolLevelDerivedKey);
122
- return clone;
123
- });
106
+ }
107
+ // inject encryption property starting from each root level record type
108
+ const rootKey = {
109
+ derivationScheme: KeyDerivationScheme.ProtocolPath,
110
+ derivedPrivateKey: privateJwk,
111
+ rootKeyId
112
+ };
113
+ const protocolLevelDerivedKey = await HdKey.derivePrivateKey(rootKey, [KeyDerivationScheme.ProtocolPath, protocolDefinition.protocol]);
114
+ await addEncryptionProperty(clone.structure, protocolLevelDerivedKey);
115
+ return clone;
124
116
  }
125
117
  }
126
118
  //# sourceMappingURL=protocols.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../../src/utils/protocols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../../src/utils/protocols.ts"],"names":[],"mappings":"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"}