@enbox/dwn-sdk-js 0.0.2 → 0.0.3

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 (601) hide show
  1. package/README.md +52 -301
  2. package/dist/bundles/dwn.js +19 -21
  3. package/dist/esm/generated/precompiled-validators.js +2764 -1773
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/src/core/dwn-error.js +27 -3
  6. package/dist/esm/src/core/dwn-error.js.map +1 -1
  7. package/dist/esm/src/core/message.js.map +1 -1
  8. package/dist/esm/src/core/messages-grant-authorization.js +17 -6
  9. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  10. package/dist/esm/src/core/protocol-authorization.js +245 -69
  11. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  12. package/dist/esm/src/core/resumable-task-manager.js +4 -4
  13. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  14. package/dist/esm/src/dwn.js +10 -8
  15. package/dist/esm/src/dwn.js.map +1 -1
  16. package/dist/esm/src/enums/dwn-interface-method.js +4 -2
  17. package/dist/esm/src/enums/dwn-interface-method.js.map +1 -1
  18. package/dist/esm/src/event-stream/event-emitter-stream.js.map +1 -0
  19. package/dist/esm/src/handlers/messages-subscribe.js +1 -1
  20. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  21. package/dist/esm/src/handlers/messages-sync.js +116 -0
  22. package/dist/esm/src/handlers/messages-sync.js.map +1 -0
  23. package/dist/esm/src/handlers/protocols-configure.js +149 -16
  24. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  25. package/dist/esm/src/handlers/protocols-query.js +2 -2
  26. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  27. package/dist/esm/src/handlers/records-count.js +143 -0
  28. package/dist/esm/src/handlers/records-count.js.map +1 -0
  29. package/dist/esm/src/handlers/records-query.js +4 -0
  30. package/dist/esm/src/handlers/records-query.js.map +1 -1
  31. package/dist/esm/src/handlers/records-read.js +4 -6
  32. package/dist/esm/src/handlers/records-read.js.map +1 -1
  33. package/dist/esm/src/handlers/records-write.js +17 -18
  34. package/dist/esm/src/handlers/records-write.js.map +1 -1
  35. package/dist/esm/src/index.js +9 -5
  36. package/dist/esm/src/index.js.map +1 -1
  37. package/dist/esm/src/interfaces/messages-read.js +2 -7
  38. package/dist/esm/src/interfaces/messages-read.js.map +1 -1
  39. package/dist/esm/src/interfaces/messages-subscribe.js +1 -0
  40. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  41. package/dist/esm/src/interfaces/{messages-query.js → messages-sync.js} +11 -12
  42. package/dist/esm/src/interfaces/messages-sync.js.map +1 -0
  43. package/dist/esm/src/interfaces/protocols-configure.js +153 -30
  44. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  45. package/dist/esm/src/interfaces/protocols-query.js +1 -0
  46. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  47. package/dist/esm/src/interfaces/records-count.js +91 -0
  48. package/dist/esm/src/interfaces/records-count.js.map +1 -0
  49. package/dist/esm/src/interfaces/records-read.js +15 -1
  50. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  51. package/dist/esm/src/interfaces/records-write.js +64 -15
  52. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  53. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  54. package/dist/esm/src/jose/algorithms/signing/signature-algorithms.js.map +1 -1
  55. package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
  56. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  57. package/dist/esm/src/protocols/permission-grant.js +30 -0
  58. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  59. package/dist/esm/src/protocols/permission-request.js +24 -0
  60. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  61. package/dist/esm/src/protocols/permissions.js +1 -1
  62. package/dist/esm/src/protocols/permissions.js.map +1 -1
  63. package/dist/esm/src/schema-validator.js +0 -1
  64. package/dist/esm/src/schema-validator.js.map +1 -1
  65. package/dist/esm/src/smt/smt-store-level.js +125 -0
  66. package/dist/esm/src/smt/smt-store-level.js.map +1 -0
  67. package/dist/esm/src/smt/smt-store-memory.js +67 -0
  68. package/dist/esm/src/smt/smt-store-memory.js.map +1 -0
  69. package/dist/esm/src/smt/smt-utils.js +146 -0
  70. package/dist/esm/src/smt/smt-utils.js.map +1 -0
  71. package/dist/esm/src/smt/sparse-merkle-tree.js +622 -0
  72. package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -0
  73. package/dist/esm/src/state-index/state-index-level.js +228 -0
  74. package/dist/esm/src/state-index/state-index-level.js.map +1 -0
  75. package/dist/esm/src/store/data-store-level.js +6 -6
  76. package/dist/esm/src/store/data-store-level.js.map +1 -1
  77. package/dist/esm/src/store/index-level.js +375 -17
  78. package/dist/esm/src/store/index-level.js.map +1 -1
  79. package/dist/esm/src/store/message-store-level.js +56 -0
  80. package/dist/esm/src/store/message-store-level.js.map +1 -1
  81. package/dist/esm/src/store/storage-controller.js +19 -16
  82. package/dist/esm/src/store/storage-controller.js.map +1 -1
  83. package/dist/esm/src/types/encryption-types.js +2 -0
  84. package/dist/esm/src/types/encryption-types.js.map +1 -0
  85. package/dist/esm/src/types/message-types.js.map +1 -1
  86. package/dist/esm/src/types/protocols-types.js +0 -2
  87. package/dist/esm/src/types/protocols-types.js.map +1 -1
  88. package/dist/esm/src/types/records-types.js +2 -0
  89. package/dist/esm/src/types/records-types.js.map +1 -1
  90. package/dist/esm/src/types/smt-types.js +5 -0
  91. package/dist/esm/src/types/smt-types.js.map +1 -0
  92. package/dist/esm/src/types/state-index.js +2 -0
  93. package/dist/esm/src/types/state-index.js.map +1 -0
  94. package/dist/esm/src/utils/cid.js +2 -1
  95. package/dist/esm/src/utils/cid.js.map +1 -1
  96. package/dist/esm/src/utils/data-stream.js +84 -29
  97. package/dist/esm/src/utils/data-stream.js.map +1 -1
  98. package/dist/esm/src/utils/encryption.js +22 -31
  99. package/dist/esm/src/utils/encryption.js.map +1 -1
  100. package/dist/esm/src/utils/hd-key.js +3 -3
  101. package/dist/esm/src/utils/hd-key.js.map +1 -1
  102. package/dist/esm/src/utils/jws.js +4 -4
  103. package/dist/esm/src/utils/jws.js.map +1 -1
  104. package/dist/esm/src/utils/private-key-signer.js +4 -3
  105. package/dist/esm/src/utils/private-key-signer.js.map +1 -1
  106. package/dist/esm/src/utils/protocols.js +82 -9
  107. package/dist/esm/src/utils/protocols.js.map +1 -1
  108. package/dist/esm/src/utils/records.js +82 -26
  109. package/dist/esm/src/utils/records.js.map +1 -1
  110. package/dist/esm/src/utils/secp256k1.js +4 -3
  111. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  112. package/dist/esm/src/utils/secp256r1.js +3 -2
  113. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  114. package/dist/esm/src/utils/time.js +1 -1
  115. package/dist/esm/src/utils/url.js +1 -1
  116. package/dist/esm/src/utils/url.js.map +1 -1
  117. package/dist/esm/tests/core/auth.spec.js +2 -2
  118. package/dist/esm/tests/core/auth.spec.js.map +1 -1
  119. package/dist/esm/tests/core/message-reply.spec.js +3 -3
  120. package/dist/esm/tests/core/message-reply.spec.js.map +1 -1
  121. package/dist/esm/tests/core/message.spec.js +13 -13
  122. package/dist/esm/tests/core/message.spec.js.map +1 -1
  123. package/dist/esm/tests/core/protocol-authorization.spec.js +3 -3
  124. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  125. package/dist/esm/tests/dwn.spec.js +27 -37
  126. package/dist/esm/tests/dwn.spec.js.map +1 -1
  127. package/dist/esm/tests/{event-log → event-stream}/event-emitter-stream.spec.js +14 -15
  128. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +1 -0
  129. package/dist/esm/tests/{event-log → event-stream}/event-stream.spec.js +13 -15
  130. package/dist/esm/tests/event-stream/event-stream.spec.js.map +1 -0
  131. package/dist/esm/tests/features/author-delegated-grant.spec.js +281 -135
  132. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  133. package/dist/esm/tests/features/owner-delegated-grant.spec.js +57 -59
  134. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  135. package/dist/esm/tests/features/owner-signature.spec.js +32 -34
  136. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  137. package/dist/esm/tests/features/permissions.spec.js +73 -95
  138. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  139. package/dist/esm/tests/features/protocol-composition.spec.js +1645 -0
  140. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -0
  141. package/dist/esm/tests/features/protocol-create-action.spec.js +25 -27
  142. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  143. package/dist/esm/tests/features/protocol-delete-action.spec.js +42 -44
  144. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  145. package/dist/esm/tests/features/protocol-update-action.spec.js +53 -55
  146. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  147. package/dist/esm/tests/features/records-prune.spec.js +126 -100
  148. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  149. package/dist/esm/tests/features/records-tags.spec.js +272 -272
  150. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  151. package/dist/esm/tests/features/resumable-tasks.spec.js +35 -37
  152. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  153. package/dist/esm/tests/handlers/messages-read.spec.js +112 -112
  154. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  155. package/dist/esm/tests/handlers/messages-subscribe.spec.js +78 -76
  156. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  157. package/dist/esm/tests/handlers/messages-sync.spec.js +528 -0
  158. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -0
  159. package/dist/esm/tests/handlers/protocols-configure.spec.js +545 -152
  160. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  161. package/dist/esm/tests/handlers/protocols-query.spec.js +70 -72
  162. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  163. package/dist/esm/tests/handlers/records-count.spec.js +313 -0
  164. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -0
  165. package/dist/esm/tests/handlers/records-delete.spec.js +106 -109
  166. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  167. package/dist/esm/tests/handlers/records-query.spec.js +863 -463
  168. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  169. package/dist/esm/tests/handlers/records-read.spec.js +439 -209
  170. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  171. package/dist/esm/tests/handlers/records-subscribe.spec.js +292 -97
  172. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  173. package/dist/esm/tests/handlers/records-write.spec.js +481 -483
  174. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  175. package/dist/esm/tests/interfaces/messages-get.spec.js +31 -11
  176. package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -1
  177. package/dist/esm/tests/interfaces/messages-subscribe.spec.js +5 -5
  178. package/dist/esm/tests/interfaces/messages-subscribe.spec.js.map +1 -1
  179. package/dist/esm/tests/interfaces/protocols-configure.spec.js +64 -134
  180. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  181. package/dist/esm/tests/interfaces/protocols-query.spec.js +4 -6
  182. package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -1
  183. package/dist/esm/tests/interfaces/records-delete.spec.js +3 -5
  184. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  185. package/dist/esm/tests/interfaces/records-query.spec.js +9 -11
  186. package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -1
  187. package/dist/esm/tests/interfaces/records-read.spec.js +76 -7
  188. package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -1
  189. package/dist/esm/tests/interfaces/records-subscribe.spec.js +7 -9
  190. package/dist/esm/tests/interfaces/records-subscribe.spec.js.map +1 -1
  191. package/dist/esm/tests/interfaces/records-write.spec.js +244 -48
  192. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  193. package/dist/esm/tests/jose/jws/general.spec.js +15 -18
  194. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
  195. package/dist/esm/tests/protocols/permission-grant.spec.js +114 -0
  196. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -0
  197. package/dist/esm/tests/protocols/permission-request.spec.js +43 -7
  198. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  199. package/dist/esm/tests/protocols/permissions.spec.js +9 -11
  200. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  201. package/dist/esm/tests/scenarios/aggregator.spec.js +90 -92
  202. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  203. package/dist/esm/tests/scenarios/deleted-record.spec.js +17 -19
  204. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  205. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +27 -29
  206. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  207. package/dist/esm/tests/scenarios/nested-roles.spec.js +37 -39
  208. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  209. package/dist/esm/tests/scenarios/subscriptions.spec.js +163 -163
  210. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  211. package/dist/esm/tests/smt/smt-store-level.spec.js +143 -0
  212. package/dist/esm/tests/smt/smt-store-level.spec.js.map +1 -0
  213. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +741 -0
  214. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +1 -0
  215. package/dist/esm/tests/state-index/state-index-level.spec.js +254 -0
  216. package/dist/esm/tests/state-index/state-index-level.spec.js.map +1 -0
  217. package/dist/esm/tests/store/blockstore-level.spec.js +136 -0
  218. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -0
  219. package/dist/esm/tests/store/blockstore-mock.spec.js +29 -28
  220. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  221. package/dist/esm/tests/store/data-store-level.spec.js +23 -25
  222. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  223. package/dist/esm/tests/store/index-level.spec.js +544 -194
  224. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  225. package/dist/esm/tests/store/message-store-level.spec.js +4 -4
  226. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  227. package/dist/esm/tests/store/message-store.spec.js +147 -73
  228. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  229. package/dist/esm/tests/store-dependent-tests.spec.js +1 -0
  230. package/dist/esm/tests/store-dependent-tests.spec.js.map +1 -1
  231. package/dist/esm/tests/test-stores.js +5 -5
  232. package/dist/esm/tests/test-stores.js.map +1 -1
  233. package/dist/esm/tests/test-suite.js +9 -8
  234. package/dist/esm/tests/test-suite.js.map +1 -1
  235. package/dist/esm/tests/utils/cid.spec.js +8 -11
  236. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  237. package/dist/esm/tests/utils/data-stream.spec.js +167 -13
  238. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  239. package/dist/esm/tests/utils/encryption-callbacks.spec.js +233 -0
  240. package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -0
  241. package/dist/esm/tests/utils/encryption.spec.js +34 -85
  242. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  243. package/dist/esm/tests/utils/filters.spec.js +67 -69
  244. package/dist/esm/tests/utils/filters.spec.js.map +1 -1
  245. package/dist/esm/tests/utils/hd-key.spec.js +3 -3
  246. package/dist/esm/tests/utils/hd-key.spec.js.map +1 -1
  247. package/dist/esm/tests/utils/jws.spec.js +54 -3
  248. package/dist/esm/tests/utils/jws.spec.js.map +1 -1
  249. package/dist/esm/tests/utils/memory-cache.spec.js +6 -9
  250. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  251. package/dist/esm/tests/utils/messages.spec.js +63 -29
  252. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  253. package/dist/esm/tests/utils/object.spec.js +3 -3
  254. package/dist/esm/tests/utils/object.spec.js.map +1 -1
  255. package/dist/esm/tests/utils/poller.js +1 -1
  256. package/dist/esm/tests/utils/poller.js.map +1 -1
  257. package/dist/esm/tests/utils/private-key-signer.spec.js +6 -6
  258. package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -1
  259. package/dist/esm/tests/utils/records.spec.js +37 -5
  260. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  261. package/dist/esm/tests/utils/secp256k1.spec.js +7 -7
  262. package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -1
  263. package/dist/esm/tests/utils/secp256r1.spec.js +7 -7
  264. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  265. package/dist/esm/tests/utils/test-data-generator.js +47 -28
  266. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  267. package/dist/esm/tests/utils/time.spec.js +7 -7
  268. package/dist/esm/tests/utils/time.spec.js.map +1 -1
  269. package/dist/esm/tests/utils/url.spec.js +25 -27
  270. package/dist/esm/tests/utils/url.spec.js.map +1 -1
  271. package/dist/esm/tests/validation/json-schemas/definitions.spec.js +4 -4
  272. package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -1
  273. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +15 -3
  274. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -1
  275. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +8 -8
  276. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -1
  277. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +8 -18
  278. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -1
  279. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +3 -3
  280. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  281. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +9 -9
  282. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -1
  283. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js +106 -0
  284. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js.map +1 -0
  285. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +18 -18
  286. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  287. package/dist/esm/tests/vectors/protocol-definitions/email.json +1 -1
  288. package/dist/esm/tests/vectors/protocol-definitions/friend-role.json +2 -4
  289. package/dist/esm/tests/vectors/protocol-definitions/slack.json +2 -6
  290. package/dist/esm/tests/vectors/protocol-definitions/thread-role.json +2 -6
  291. package/dist/types/generated/precompiled-validators.d.ts +82 -64
  292. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  293. package/dist/types/src/core/dwn-error.d.ts +27 -3
  294. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  295. package/dist/types/src/core/message-reply.d.ts +1 -1
  296. package/dist/types/src/core/message.d.ts +3 -3
  297. package/dist/types/src/core/message.d.ts.map +1 -1
  298. package/dist/types/src/core/messages-grant-authorization.d.ts +4 -4
  299. package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
  300. package/dist/types/src/core/protocol-authorization.d.ts +43 -2
  301. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  302. package/dist/types/src/core/records-grant-authorization.d.ts +2 -2
  303. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  304. package/dist/types/src/core/resumable-task-manager.d.ts +1 -0
  305. package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
  306. package/dist/types/src/dwn.d.ts +8 -8
  307. package/dist/types/src/dwn.d.ts.map +1 -1
  308. package/dist/types/src/enums/dwn-interface-method.d.ts +5 -3
  309. package/dist/types/src/enums/dwn-interface-method.d.ts.map +1 -1
  310. package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +1 -0
  311. package/dist/types/src/handlers/messages-sync.d.ts +21 -0
  312. package/dist/types/src/handlers/messages-sync.d.ts.map +1 -0
  313. package/dist/types/src/handlers/protocols-configure.d.ts +24 -4
  314. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  315. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
  316. package/dist/types/src/handlers/records-count.d.ts +43 -0
  317. package/dist/types/src/handlers/records-count.d.ts.map +1 -0
  318. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  319. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  320. package/dist/types/src/handlers/records-write.d.ts +5 -5
  321. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  322. package/dist/types/src/index.d.ts +72 -37
  323. package/dist/types/src/index.d.ts.map +1 -1
  324. package/dist/types/src/interfaces/messages-read.d.ts +2 -2
  325. package/dist/types/src/interfaces/messages-read.d.ts.map +1 -1
  326. package/dist/types/src/interfaces/messages-subscribe.d.ts +2 -2
  327. package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
  328. package/dist/types/src/interfaces/messages-sync.d.ts +16 -0
  329. package/dist/types/src/interfaces/messages-sync.d.ts.map +1 -0
  330. package/dist/types/src/interfaces/protocols-configure.d.ts +22 -2
  331. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  332. package/dist/types/src/interfaces/protocols-query.d.ts +2 -2
  333. package/dist/types/src/interfaces/protocols-query.d.ts.map +1 -1
  334. package/dist/types/src/interfaces/records-count.d.ts +27 -0
  335. package/dist/types/src/interfaces/records-count.d.ts.map +1 -0
  336. package/dist/types/src/interfaces/records-delete.d.ts +2 -2
  337. package/dist/types/src/interfaces/records-delete.d.ts.map +1 -1
  338. package/dist/types/src/interfaces/records-query.d.ts +2 -2
  339. package/dist/types/src/interfaces/records-query.d.ts.map +1 -1
  340. package/dist/types/src/interfaces/records-read.d.ts +4 -2
  341. package/dist/types/src/interfaces/records-read.d.ts.map +1 -1
  342. package/dist/types/src/interfaces/records-subscribe.d.ts +2 -2
  343. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  344. package/dist/types/src/interfaces/records-write.d.ts +37 -15
  345. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  346. package/dist/types/src/jose/algorithms/signing/ed25519.d.ts.map +1 -1
  347. package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts +5 -1
  348. package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts.map +1 -1
  349. package/dist/types/src/jose/jws/general/builder.d.ts +3 -3
  350. package/dist/types/src/jose/jws/general/builder.d.ts.map +1 -1
  351. package/dist/types/src/protocols/permission-grant.d.ts +11 -0
  352. package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
  353. package/dist/types/src/protocols/permission-request.d.ts +11 -0
  354. package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
  355. package/dist/types/src/protocols/permissions.d.ts +4 -4
  356. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  357. package/dist/types/src/schema-validator.d.ts +1 -1
  358. package/dist/types/src/schema-validator.d.ts.map +1 -1
  359. package/dist/types/src/smt/smt-store-level.d.ts +32 -0
  360. package/dist/types/src/smt/smt-store-level.d.ts.map +1 -0
  361. package/dist/types/src/smt/smt-store-memory.d.ts +22 -0
  362. package/dist/types/src/smt/smt-store-memory.d.ts.map +1 -0
  363. package/dist/types/src/smt/smt-utils.d.ts +58 -0
  364. package/dist/types/src/smt/smt-utils.d.ts.map +1 -0
  365. package/dist/types/src/smt/sparse-merkle-tree.d.ts +124 -0
  366. package/dist/types/src/smt/sparse-merkle-tree.d.ts.map +1 -0
  367. package/dist/types/src/state-index/state-index-level.d.ts +83 -0
  368. package/dist/types/src/state-index/state-index-level.d.ts.map +1 -0
  369. package/dist/types/src/store/data-store-level.d.ts +1 -2
  370. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  371. package/dist/types/src/store/index-level.d.ts +98 -2
  372. package/dist/types/src/store/index-level.d.ts.map +1 -1
  373. package/dist/types/src/store/level-wrapper.d.ts.map +1 -1
  374. package/dist/types/src/store/message-store-level.d.ts +5 -0
  375. package/dist/types/src/store/message-store-level.d.ts.map +1 -1
  376. package/dist/types/src/store/storage-controller.d.ts +7 -7
  377. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  378. package/dist/types/src/types/data-store.d.ts +2 -3
  379. package/dist/types/src/types/data-store.d.ts.map +1 -1
  380. package/dist/types/src/types/encryption-types.d.ts +48 -0
  381. package/dist/types/src/types/encryption-types.d.ts.map +1 -0
  382. package/dist/types/src/types/jose-types.d.ts +9 -40
  383. package/dist/types/src/types/jose-types.d.ts.map +1 -1
  384. package/dist/types/src/types/message-store.d.ts +5 -0
  385. package/dist/types/src/types/message-store.d.ts.map +1 -1
  386. package/dist/types/src/types/message-types.d.ts +19 -0
  387. package/dist/types/src/types/message-types.d.ts.map +1 -1
  388. package/dist/types/src/types/messages-types.d.ts +16 -11
  389. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  390. package/dist/types/src/types/method-handler.d.ts +1 -2
  391. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  392. package/dist/types/src/types/permission-types.d.ts +2 -2
  393. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  394. package/dist/types/src/types/protocols-types.d.ts +49 -5
  395. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  396. package/dist/types/src/types/records-types.d.ts +23 -7
  397. package/dist/types/src/types/records-types.d.ts.map +1 -1
  398. package/dist/types/src/types/signer.d.ts +1 -1
  399. package/dist/types/src/types/signer.d.ts.map +1 -1
  400. package/dist/types/src/types/smt-types.d.ts +81 -0
  401. package/dist/types/src/types/smt-types.d.ts.map +1 -0
  402. package/dist/types/src/types/state-index.d.ts +90 -0
  403. package/dist/types/src/types/state-index.d.ts.map +1 -0
  404. package/dist/types/src/utils/cid.d.ts +1 -2
  405. package/dist/types/src/utils/cid.d.ts.map +1 -1
  406. package/dist/types/src/utils/data-stream.d.ts +14 -7
  407. package/dist/types/src/utils/data-stream.d.ts.map +1 -1
  408. package/dist/types/src/utils/encryption.d.ts +2 -3
  409. package/dist/types/src/utils/encryption.d.ts.map +1 -1
  410. package/dist/types/src/utils/hd-key.d.ts +4 -4
  411. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  412. package/dist/types/src/utils/jws.d.ts +7 -7
  413. package/dist/types/src/utils/jws.d.ts.map +1 -1
  414. package/dist/types/src/utils/private-key-signer.d.ts +4 -4
  415. package/dist/types/src/utils/private-key-signer.d.ts.map +1 -1
  416. package/dist/types/src/utils/protocols.d.ts +46 -3
  417. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  418. package/dist/types/src/utils/records.d.ts +33 -6
  419. package/dist/types/src/utils/records.d.ts.map +1 -1
  420. package/dist/types/src/utils/secp256k1.d.ts +11 -11
  421. package/dist/types/src/utils/secp256k1.d.ts.map +1 -1
  422. package/dist/types/src/utils/secp256r1.d.ts +8 -8
  423. package/dist/types/src/utils/secp256r1.d.ts.map +1 -1
  424. package/dist/types/src/utils/time.d.ts +1 -1
  425. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  426. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +1 -0
  427. package/dist/types/tests/event-stream/event-stream.spec.d.ts.map +1 -0
  428. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  429. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  430. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  431. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  432. package/dist/types/tests/features/protocol-composition.spec.d.ts +5 -0
  433. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -0
  434. package/dist/types/tests/features/protocol-create-action.spec.d.ts.map +1 -1
  435. package/dist/types/tests/features/protocol-delete-action.spec.d.ts.map +1 -1
  436. package/dist/types/tests/features/protocol-update-action.spec.d.ts.map +1 -1
  437. package/dist/types/tests/features/records-prune.spec.d.ts.map +1 -1
  438. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  439. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  440. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  441. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  442. package/dist/types/tests/handlers/messages-sync.spec.d.ts +2 -0
  443. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -0
  444. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
  445. package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -1
  446. package/dist/types/tests/handlers/records-count.spec.d.ts +2 -0
  447. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -0
  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/protocols/permission-grant.spec.d.ts +2 -0
  454. package/dist/types/tests/protocols/permission-grant.spec.d.ts.map +1 -0
  455. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  456. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
  457. package/dist/types/tests/scenarios/nested-roles.spec.d.ts.map +1 -1
  458. package/dist/types/tests/smt/smt-store-level.spec.d.ts +2 -0
  459. package/dist/types/tests/smt/smt-store-level.spec.d.ts.map +1 -0
  460. package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts +2 -0
  461. package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts.map +1 -0
  462. package/dist/types/tests/state-index/state-index-level.spec.d.ts +2 -0
  463. package/dist/types/tests/state-index/state-index-level.spec.d.ts.map +1 -0
  464. package/dist/types/tests/store/blockstore-level.spec.d.ts +2 -0
  465. package/dist/types/tests/store/blockstore-level.spec.d.ts.map +1 -0
  466. package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
  467. package/dist/types/tests/test-stores.d.ts +4 -4
  468. package/dist/types/tests/test-stores.d.ts.map +1 -1
  469. package/dist/types/tests/test-suite.d.ts +2 -2
  470. package/dist/types/tests/test-suite.d.ts.map +1 -1
  471. package/dist/types/tests/utils/encryption-callbacks.spec.d.ts +2 -0
  472. package/dist/types/tests/utils/encryption-callbacks.spec.d.ts.map +1 -0
  473. package/dist/types/tests/utils/test-data-generator.d.ts +31 -28
  474. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  475. package/dist/types/tests/validation/json-schemas/records/records-read.spec.d.ts +2 -0
  476. package/dist/types/tests/validation/json-schemas/records/records-read.spec.d.ts.map +1 -0
  477. package/package.json +27 -46
  478. package/src/core/dwn-error.ts +27 -3
  479. package/src/core/message-reply.ts +1 -1
  480. package/src/core/message.ts +5 -5
  481. package/src/core/messages-grant-authorization.ts +22 -8
  482. package/src/core/protocol-authorization.ts +345 -68
  483. package/src/core/records-grant-authorization.ts +2 -2
  484. package/src/core/resumable-task-manager.ts +4 -5
  485. package/src/dwn.ts +25 -20
  486. package/src/enums/dwn-interface-method.ts +5 -3
  487. package/src/handlers/messages-subscribe.ts +1 -1
  488. package/src/handlers/messages-sync.ts +129 -0
  489. package/src/handlers/protocols-configure.ts +195 -17
  490. package/src/handlers/protocols-query.ts +7 -5
  491. package/src/handlers/records-count.ts +184 -0
  492. package/src/handlers/records-query.ts +4 -0
  493. package/src/handlers/records-read.ts +4 -8
  494. package/src/handlers/records-write.ts +20 -21
  495. package/src/index.ts +74 -37
  496. package/src/interfaces/messages-read.ts +6 -5
  497. package/src/interfaces/messages-subscribe.ts +7 -6
  498. package/src/interfaces/messages-sync.ts +59 -0
  499. package/src/interfaces/protocols-configure.ts +211 -33
  500. package/src/interfaces/protocols-query.ts +7 -6
  501. package/src/interfaces/records-count.ts +106 -0
  502. package/src/interfaces/records-delete.ts +2 -2
  503. package/src/interfaces/records-query.ts +2 -2
  504. package/src/interfaces/records-read.ts +26 -3
  505. package/src/interfaces/records-subscribe.ts +2 -2
  506. package/src/interfaces/records-write.ts +115 -46
  507. package/src/jose/algorithms/signing/ed25519.ts +13 -12
  508. package/src/jose/algorithms/signing/signature-algorithms.ts +6 -1
  509. package/src/jose/jws/general/builder.ts +3 -3
  510. package/src/jose/jws/general/verifier.ts +3 -3
  511. package/src/protocols/permission-grant.ts +51 -0
  512. package/src/protocols/permission-request.ts +37 -0
  513. package/src/protocols/permissions.ts +5 -5
  514. package/src/schema-validator.ts +11 -3
  515. package/src/smt/smt-store-level.ts +143 -0
  516. package/src/smt/smt-store-memory.ts +53 -0
  517. package/src/smt/smt-utils.ts +149 -0
  518. package/src/smt/sparse-merkle-tree.ts +698 -0
  519. package/src/state-index/state-index-level.ts +241 -0
  520. package/src/store/data-store-level.ts +8 -7
  521. package/src/store/index-level.ts +415 -19
  522. package/src/store/level-wrapper.ts +1 -1
  523. package/src/store/message-store-level.ts +62 -0
  524. package/src/store/storage-controller.ts +21 -19
  525. package/src/types/data-store.ts +2 -4
  526. package/src/types/encryption-types.ts +52 -0
  527. package/src/types/jose-types.ts +10 -42
  528. package/src/types/message-store.ts +11 -0
  529. package/src/types/message-types.ts +21 -0
  530. package/src/types/messages-types.ts +21 -15
  531. package/src/types/method-handler.ts +1 -2
  532. package/src/types/permission-types.ts +2 -2
  533. package/src/types/protocols-types.ts +55 -6
  534. package/src/types/records-types.ts +26 -7
  535. package/src/types/signer.ts +1 -1
  536. package/src/types/smt-types.ts +95 -0
  537. package/src/types/state-index.ts +100 -0
  538. package/src/utils/cid.ts +3 -4
  539. package/src/utils/data-stream.ts +75 -38
  540. package/src/utils/encryption.ts +24 -39
  541. package/src/utils/hd-key.ts +6 -6
  542. package/src/utils/jws.ts +9 -9
  543. package/src/utils/private-key-signer.ts +9 -8
  544. package/src/utils/protocols.ts +132 -6
  545. package/src/utils/records.ts +118 -29
  546. package/src/utils/secp256k1.ts +23 -21
  547. package/src/utils/secp256r1.ts +17 -15
  548. package/src/utils/time.ts +1 -1
  549. package/src/utils/url.ts +1 -1
  550. package/dist/cjs/index.js +0 -36749
  551. package/dist/cjs/package.json +0 -1
  552. package/dist/esm/src/event-log/event-emitter-stream.js.map +0 -1
  553. package/dist/esm/src/event-log/event-log-level.js +0 -63
  554. package/dist/esm/src/event-log/event-log-level.js.map +0 -1
  555. package/dist/esm/src/handlers/messages-query.js +0 -71
  556. package/dist/esm/src/handlers/messages-query.js.map +0 -1
  557. package/dist/esm/src/interfaces/messages-query.js.map +0 -1
  558. package/dist/esm/src/types/event-log.js +0 -2
  559. package/dist/esm/src/types/event-log.js.map +0 -1
  560. package/dist/esm/tests/event-log/event-emitter-stream.spec.js.map +0 -1
  561. package/dist/esm/tests/event-log/event-log-level.spec.js +0 -44
  562. package/dist/esm/tests/event-log/event-log-level.spec.js.map +0 -1
  563. package/dist/esm/tests/event-log/event-log.spec.js +0 -236
  564. package/dist/esm/tests/event-log/event-log.spec.js.map +0 -1
  565. package/dist/esm/tests/event-log/event-stream.spec.js.map +0 -1
  566. package/dist/esm/tests/handlers/messages-query.spec.js +0 -349
  567. package/dist/esm/tests/handlers/messages-query.spec.js.map +0 -1
  568. package/dist/esm/tests/interfaces/messagess-query.spec.js +0 -127
  569. package/dist/esm/tests/interfaces/messagess-query.spec.js.map +0 -1
  570. package/dist/esm/tests/scenarios/messages-query.spec.js +0 -395
  571. package/dist/esm/tests/scenarios/messages-query.spec.js.map +0 -1
  572. package/dist/types/src/event-log/event-emitter-stream.d.ts.map +0 -1
  573. package/dist/types/src/event-log/event-log-level.d.ts +0 -35
  574. package/dist/types/src/event-log/event-log-level.d.ts.map +0 -1
  575. package/dist/types/src/handlers/messages-query.d.ts +0 -17
  576. package/dist/types/src/handlers/messages-query.d.ts.map +0 -1
  577. package/dist/types/src/interfaces/messages-query.d.ts +0 -16
  578. package/dist/types/src/interfaces/messages-query.d.ts.map +0 -1
  579. package/dist/types/src/types/event-log.d.ts +0 -52
  580. package/dist/types/src/types/event-log.d.ts.map +0 -1
  581. package/dist/types/tests/event-log/event-emitter-stream.spec.d.ts.map +0 -1
  582. package/dist/types/tests/event-log/event-log-level.spec.d.ts +0 -2
  583. package/dist/types/tests/event-log/event-log-level.spec.d.ts.map +0 -1
  584. package/dist/types/tests/event-log/event-log.spec.d.ts +0 -2
  585. package/dist/types/tests/event-log/event-log.spec.d.ts.map +0 -1
  586. package/dist/types/tests/event-log/event-stream.spec.d.ts.map +0 -1
  587. package/dist/types/tests/handlers/messages-query.spec.d.ts +0 -2
  588. package/dist/types/tests/handlers/messages-query.spec.d.ts.map +0 -1
  589. package/dist/types/tests/interfaces/messagess-query.spec.d.ts +0 -2
  590. package/dist/types/tests/interfaces/messagess-query.spec.d.ts.map +0 -1
  591. package/dist/types/tests/scenarios/messages-query.spec.d.ts +0 -2
  592. package/dist/types/tests/scenarios/messages-query.spec.d.ts.map +0 -1
  593. package/src/event-log/event-log-level.ts +0 -72
  594. package/src/handlers/messages-query.ts +0 -67
  595. package/src/interfaces/messages-query.ts +0 -60
  596. package/src/types/event-log.ts +0 -52
  597. /package/dist/esm/src/{event-log → event-stream}/event-emitter-stream.js +0 -0
  598. /package/dist/types/src/{event-log → event-stream}/event-emitter-stream.d.ts +0 -0
  599. /package/dist/types/tests/{event-log → event-stream}/event-emitter-stream.spec.d.ts +0 -0
  600. /package/dist/types/tests/{event-log → event-stream}/event-stream.spec.d.ts +0 -0
  601. /package/src/{event-log → event-stream}/event-emitter-stream.ts +0 -0
@@ -7,16 +7,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import chaiAsPromised from 'chai-as-promised';
11
10
  import sinon from 'sinon';
12
- import chai, { expect } from 'chai';
11
+ import { beforeEach, describe, expect, it } from 'bun:test';
13
12
  import { DwnErrorCode } from '../../src/core/dwn-error.js';
14
13
  import { RecordsWrite } from '../../src/interfaces/records-write.js';
15
14
  import { RecordsWriteHandler } from '../../src/handlers/records-write.js';
16
15
  import { TestDataGenerator } from '../utils/test-data-generator.js';
17
16
  import { Time } from '../../src/utils/time.js';
18
17
  import { DwnInterfaceName, DwnMethodName, Encoder, Jws, KeyDerivationScheme, Message, MessageStoreLevel, PermissionsProtocol } from '../../src/index.js';
19
- chai.use(chaiAsPromised);
20
18
  describe('RecordsWrite', () => {
21
19
  beforeEach(() => {
22
20
  sinon.restore();
@@ -34,13 +32,35 @@ describe('RecordsWrite', () => {
34
32
  };
35
33
  const recordsWrite = yield RecordsWrite.create(options);
36
34
  const message = recordsWrite.message;
37
- expect(message.authorization).to.exist;
38
- expect(message.descriptor.dataFormat).to.equal(options.dataFormat);
39
- expect(message.descriptor.dateCreated).to.equal(options.dateCreated);
40
- expect(message.recordId).to.equal(options.recordId);
35
+ expect(message.authorization).toBeDefined();
36
+ expect(message.descriptor.dataFormat).toBe(options.dataFormat);
37
+ expect(message.descriptor.dateCreated).toBe(options.dateCreated);
38
+ expect(message.recordId).toBe(options.recordId);
41
39
  const messageStoreStub = sinon.createStubInstance(MessageStoreLevel);
42
40
  yield RecordsWriteHandler['authorizeRecordsWrite'](alice.did, recordsWrite, messageStoreStub);
43
41
  }));
42
+ it('should include permissionGrantId in the descriptor when provided', () => __awaiter(void 0, void 0, void 0, function* () {
43
+ const alice = yield TestDataGenerator.generatePersona();
44
+ const grantId = yield TestDataGenerator.randomCborSha256Cid();
45
+ const recordsWrite = yield RecordsWrite.create({
46
+ data: TestDataGenerator.randomBytes(10),
47
+ dataFormat: 'application/json',
48
+ recordId: yield TestDataGenerator.randomCborSha256Cid(),
49
+ signer: Jws.createSigner(alice),
50
+ permissionGrantId: grantId,
51
+ });
52
+ expect(recordsWrite.message.descriptor.permissionGrantId).toBe(grantId);
53
+ }));
54
+ it('should not include permissionGrantId in the descriptor when not provided', () => __awaiter(void 0, void 0, void 0, function* () {
55
+ const alice = yield TestDataGenerator.generatePersona();
56
+ const recordsWrite = yield RecordsWrite.create({
57
+ data: TestDataGenerator.randomBytes(10),
58
+ dataFormat: 'application/json',
59
+ recordId: yield TestDataGenerator.randomCborSha256Cid(),
60
+ signer: Jws.createSigner(alice),
61
+ });
62
+ expect(recordsWrite.message.descriptor.permissionGrantId).toBeUndefined();
63
+ }));
44
64
  it('should be able to auto-fill `datePublished` when `published` set to `true` but `datePublished` not given', () => __awaiter(void 0, void 0, void 0, function* () {
45
65
  const alice = yield TestDataGenerator.generatePersona();
46
66
  const options = {
@@ -52,7 +72,7 @@ describe('RecordsWrite', () => {
52
72
  };
53
73
  const recordsWrite = yield RecordsWrite.create(options);
54
74
  const message = recordsWrite.message;
55
- expect(message.descriptor.datePublished).to.exist;
75
+ expect(message.descriptor.datePublished).toBeDefined();
56
76
  }));
57
77
  it('should not allow `data` and `dataCid` to be both defined or undefined', () => __awaiter(void 0, void 0, void 0, function* () {
58
78
  const alice = yield TestDataGenerator.generatePersona();
@@ -67,7 +87,7 @@ describe('RecordsWrite', () => {
67
87
  signer: Jws.createSigner(alice)
68
88
  };
69
89
  const createPromise1 = RecordsWrite.create(options1);
70
- yield expect(createPromise1).to.be.rejectedWith(DwnErrorCode.RecordsWriteCreateDataAndDataCidMutuallyExclusive);
90
+ yield expect(createPromise1).rejects.toThrow(DwnErrorCode.RecordsWriteCreateDataAndDataCidMutuallyExclusive);
71
91
  // testing `data` and `dataCid` both undefined
72
92
  const options2 = {
73
93
  recipient: alice.did,
@@ -80,7 +100,7 @@ describe('RecordsWrite', () => {
80
100
  signer: Jws.createSigner(alice)
81
101
  };
82
102
  const createPromise2 = RecordsWrite.create(options2);
83
- yield expect(createPromise2).to.be.rejectedWith(DwnErrorCode.RecordsWriteCreateDataAndDataCidMutuallyExclusive);
103
+ yield expect(createPromise2).rejects.toThrow(DwnErrorCode.RecordsWriteCreateDataAndDataCidMutuallyExclusive);
84
104
  }));
85
105
  it('should required `dataCid` and `dataSize` to be both defined or undefined at the same time', () => __awaiter(void 0, void 0, void 0, function* () {
86
106
  const alice = yield TestDataGenerator.generatePersona();
@@ -94,7 +114,7 @@ describe('RecordsWrite', () => {
94
114
  signer: Jws.createSigner(alice)
95
115
  };
96
116
  const createPromise1 = RecordsWrite.create(options1);
97
- yield expect(createPromise1).to.be.rejectedWith('`dataCid` and `dataSize` must both be defined or undefined at the same time');
117
+ yield expect(createPromise1).rejects.toThrow('`dataCid` and `dataSize` must both be defined or undefined at the same time');
98
118
  const options2 = {
99
119
  recipient: alice.did,
100
120
  data: TestDataGenerator.randomBytes(10),
@@ -106,7 +126,7 @@ describe('RecordsWrite', () => {
106
126
  signer: Jws.createSigner(alice)
107
127
  };
108
128
  const createPromise2 = RecordsWrite.create(options2);
109
- yield expect(createPromise2).to.be.rejectedWith('`dataCid` and `dataSize` must both be defined or undefined at the same time');
129
+ yield expect(createPromise2).rejects.toThrow('`dataCid` and `dataSize` must both be defined or undefined at the same time');
110
130
  }));
111
131
  it('should auto-normalize protocol URL', () => __awaiter(void 0, void 0, void 0, function* () {
112
132
  const alice = yield TestDataGenerator.generatePersona();
@@ -121,7 +141,7 @@ describe('RecordsWrite', () => {
121
141
  };
122
142
  const recordsWrite = yield RecordsWrite.create(options);
123
143
  const message = recordsWrite.message;
124
- expect(message.descriptor.protocol).to.eq('http://example.com');
144
+ expect(message.descriptor.protocol).toBe('http://example.com');
125
145
  }));
126
146
  it('should required `protocol` and `protocolPath` to be both defined or undefined at the same time', () => __awaiter(void 0, void 0, void 0, function* () {
127
147
  const alice = yield TestDataGenerator.generatePersona();
@@ -136,7 +156,7 @@ describe('RecordsWrite', () => {
136
156
  signer: Jws.createSigner(alice)
137
157
  };
138
158
  const createPromise1 = RecordsWrite.create(options1);
139
- yield expect(createPromise1).to.be.rejectedWith('`protocol` and `protocolPath` must both be defined or undefined at the same time');
159
+ yield expect(createPromise1).rejects.toThrow('`protocol` and `protocolPath` must both be defined or undefined at the same time');
140
160
  const options2 = {
141
161
  recipient: alice.did,
142
162
  // protocol : 'http://example.com', // intentionally missing
@@ -149,7 +169,7 @@ describe('RecordsWrite', () => {
149
169
  signer: Jws.createSigner(alice)
150
170
  };
151
171
  const createPromise2 = RecordsWrite.create(options2);
152
- yield expect(createPromise2).to.be.rejectedWith('`protocol` and `protocolPath` must both be defined or undefined at the same time');
172
+ yield expect(createPromise2).rejects.toThrow('`protocol` and `protocolPath` must both be defined or undefined at the same time');
153
173
  }));
154
174
  it('should be able to create a RecordsWrite successfully using a custom signer', () => __awaiter(void 0, void 0, void 0, function* () {
155
175
  // create a custom signer
@@ -177,7 +197,7 @@ describe('RecordsWrite', () => {
177
197
  signer
178
198
  };
179
199
  const recordsWrite = yield RecordsWrite.create(options);
180
- expect(recordsWrite.message.authorization.signature.signatures[0].signature).to.equal(Encoder.bytesToBase64Url(hardCodedSignature));
200
+ expect(recordsWrite.message.authorization.signature.signatures[0].signature).toBe(Encoder.bytesToBase64Url(hardCodedSignature));
181
201
  }));
182
202
  it('should throw if attempting to use `protocols` key derivation encryption scheme on non-protocol-based record', () => __awaiter(void 0, void 0, void 0, function* () {
183
203
  const alice = yield TestDataGenerator.generatePersona();
@@ -199,7 +219,7 @@ describe('RecordsWrite', () => {
199
219
  data: TestDataGenerator.randomBytes(10),
200
220
  encryptionInput
201
221
  });
202
- yield expect(createPromise).to.be.rejectedWith(DwnErrorCode.RecordsWriteMissingProtocol);
222
+ yield expect(createPromise).rejects.toThrow(DwnErrorCode.RecordsWriteMissingProtocol);
203
223
  }));
204
224
  it('should throw if attempting to use `schemas` key derivation encryption scheme on a record without `schema`', () => __awaiter(void 0, void 0, void 0, function* () {
205
225
  const alice = yield TestDataGenerator.generatePersona();
@@ -221,7 +241,7 @@ describe('RecordsWrite', () => {
221
241
  data: TestDataGenerator.randomBytes(10),
222
242
  encryptionInput
223
243
  });
224
- yield expect(createPromise).to.be.rejectedWith(DwnErrorCode.RecordsWriteMissingSchema);
244
+ yield expect(createPromise).rejects.toThrow(DwnErrorCode.RecordsWriteMissingSchema);
225
245
  }));
226
246
  it('should throw if delegated grant is given but signer is not given', () => __awaiter(void 0, void 0, void 0, function* () {
227
247
  const alice = yield TestDataGenerator.generatePersona();
@@ -244,7 +264,7 @@ describe('RecordsWrite', () => {
244
264
  dataFormat: 'application/octet-stream',
245
265
  data: TestDataGenerator.randomBytes(10),
246
266
  });
247
- yield expect(createPromise).to.be.rejectedWith(DwnErrorCode.RecordsWriteCreateMissingSigner);
267
+ yield expect(createPromise).rejects.toThrow(DwnErrorCode.RecordsWriteCreateMissingSigner);
248
268
  }));
249
269
  });
250
270
  describe('createFrom()', () => {
@@ -257,7 +277,7 @@ describe('RecordsWrite', () => {
257
277
  datePublished: Time.getCurrentTimestamp(),
258
278
  signer: Jws.createSigner(author)
259
279
  });
260
- expect(write.message.descriptor.published).to.be.true;
280
+ expect(write.message.descriptor.published).toBe(true);
261
281
  }));
262
282
  it('replace tags with updated tags, if tags do not exist in createFrom remove them', () => __awaiter(void 0, void 0, void 0, function* () {
263
283
  // create a record with tags
@@ -266,9 +286,9 @@ describe('RecordsWrite', () => {
266
286
  tag1: ['value1', 'value2']
267
287
  }
268
288
  });
269
- expect(message.descriptor.tags).to.exist;
270
- expect(message.descriptor.tags.tag1).to.exist;
271
- expect(message.descriptor.tags.tag1).to.have.members(['value1', 'value2']);
289
+ expect(message.descriptor.tags).toBeDefined();
290
+ expect(message.descriptor.tags.tag1).toBeDefined();
291
+ expect(message.descriptor.tags.tag1).toEqual(expect.arrayContaining(['value1', 'value2']));
272
292
  // update the record's tags
273
293
  const write = yield RecordsWrite.createFrom({
274
294
  recordsWriteMessage: recordsWrite.message,
@@ -277,20 +297,20 @@ describe('RecordsWrite', () => {
277
297
  tag2: ['value1', 'value2', 'value3']
278
298
  }
279
299
  });
280
- expect(write.message.descriptor.tags).to.exist;
281
- expect(write.message.descriptor.tags.tag1).to.not.exist;
282
- expect(write.message.descriptor.tags.tag2).to.exist;
283
- expect(write.message.descriptor.tags.tag2).to.have.members(['value1', 'value2', 'value3']);
300
+ expect(write.message.descriptor.tags).toBeDefined();
301
+ expect(write.message.descriptor.tags.tag1).toBeUndefined();
302
+ expect(write.message.descriptor.tags.tag2).toBeDefined();
303
+ expect(write.message.descriptor.tags.tag2).toEqual(expect.arrayContaining(['value1', 'value2', 'value3']));
284
304
  // update without tags
285
305
  const write2 = yield RecordsWrite.createFrom({
286
306
  recordsWriteMessage: write.message,
287
307
  signer: Jws.createSigner(author),
288
308
  });
289
- expect(write2.message.descriptor.tags).to.not.exist;
309
+ expect(write2.message.descriptor.tags).toBeUndefined();
290
310
  }));
291
311
  });
292
312
  describe('parse()', () => {
293
- xit('should invoke JSON schema validation when parsing a RecordsWrite', () => __awaiter(void 0, void 0, void 0, function* () {
313
+ it('should invoke JSON schema validation when parsing a RecordsWrite', () => __awaiter(void 0, void 0, void 0, function* () {
294
314
  const alice = yield TestDataGenerator.generatePersona();
295
315
  const recordsWrite = yield RecordsWrite.create({
296
316
  signer: Jws.createSigner(alice),
@@ -299,7 +319,7 @@ describe('RecordsWrite', () => {
299
319
  });
300
320
  const validateJsonSchemaSpy = sinon.spy(Message, 'validateJsonSchema');
301
321
  yield RecordsWrite.parse(recordsWrite.message);
302
- expect(validateJsonSchemaSpy.called).to.be.true;
322
+ expect(validateJsonSchemaSpy.called).toBe(true);
303
323
  }));
304
324
  });
305
325
  describe('isSignedByAuthorDelegate()', () => {
@@ -313,7 +333,7 @@ describe('RecordsWrite', () => {
313
333
  data
314
334
  });
315
335
  const isSignedByAuthorDelegate = recordsWrite.isSignedByAuthorDelegate;
316
- expect(isSignedByAuthorDelegate).to.be.false;
336
+ expect(isSignedByAuthorDelegate).toBe(false);
317
337
  }));
318
338
  });
319
339
  describe('isSignedByOwnerDelegate()', () => {
@@ -327,21 +347,21 @@ describe('RecordsWrite', () => {
327
347
  data
328
348
  });
329
349
  const isSignedByOwnerDelegate = recordsWrite.isSignedByOwnerDelegate;
330
- expect(isSignedByOwnerDelegate).to.be.false;
350
+ expect(isSignedByOwnerDelegate).toBe(false);
331
351
  }));
332
352
  });
333
353
  describe('isInitialWrite()', () => {
334
354
  it('should return false if given message is not a RecordsWrite', () => __awaiter(void 0, void 0, void 0, function* () {
335
355
  const { message } = yield TestDataGenerator.generateRecordsQuery();
336
356
  const isInitialWrite = yield RecordsWrite.isInitialWrite(message);
337
- expect(isInitialWrite).to.be.false;
357
+ expect(isInitialWrite).toBe(false);
338
358
  }));
339
359
  });
340
360
  describe('getEntryId()', () => {
341
361
  it('should throw if the given author is undefined', () => __awaiter(void 0, void 0, void 0, function* () {
342
362
  const { message } = yield TestDataGenerator.generateRecordsWrite();
343
363
  const author = undefined;
344
- expect(RecordsWrite.getEntryId(author, message.descriptor)).to.be.rejectedWith(DwnErrorCode.RecordsWriteGetEntryIdUndefinedAuthor);
364
+ yield expect(RecordsWrite.getEntryId(author, message.descriptor)).rejects.toThrow(DwnErrorCode.RecordsWriteGetEntryIdUndefinedAuthor);
345
365
  }));
346
366
  });
347
367
  describe('signAsOwner()', () => {
@@ -353,12 +373,12 @@ describe('RecordsWrite', () => {
353
373
  recordId: yield TestDataGenerator.randomCborSha256Cid(),
354
374
  };
355
375
  const recordsWrite = yield RecordsWrite.create(options);
356
- expect(recordsWrite.author).to.not.exist;
357
- expect(recordsWrite.signaturePayload).to.not.exist;
376
+ expect(recordsWrite.author).toBeUndefined();
377
+ expect(recordsWrite.signaturePayload).toBeUndefined();
358
378
  const alice = yield TestDataGenerator.generateDidKeyPersona();
359
- yield expect(recordsWrite.signAsOwner(Jws.createSigner(alice))).to.be.rejectedWith(DwnErrorCode.RecordsWriteSignAsOwnerUnknownAuthor);
360
- expect(recordsWrite.owner).to.be.undefined;
361
- expect(recordsWrite.ownerSignaturePayload).to.be.undefined;
379
+ yield expect(recordsWrite.signAsOwner(Jws.createSigner(alice))).rejects.toThrow(DwnErrorCode.RecordsWriteSignAsOwnerUnknownAuthor);
380
+ expect(recordsWrite.owner).toBeUndefined();
381
+ expect(recordsWrite.ownerSignaturePayload).toBeUndefined();
362
382
  }));
363
383
  });
364
384
  describe('signAsOwnerDelegate()', () => {
@@ -370,8 +390,8 @@ describe('RecordsWrite', () => {
370
390
  recordId: yield TestDataGenerator.randomCborSha256Cid(),
371
391
  };
372
392
  const recordsWrite = yield RecordsWrite.create(options);
373
- expect(recordsWrite.author).to.not.exist;
374
- expect(recordsWrite.signaturePayload).to.not.exist;
393
+ expect(recordsWrite.author).toBeUndefined();
394
+ expect(recordsWrite.signaturePayload).toBeUndefined();
375
395
  // create a delegated grant
376
396
  const alice = yield TestDataGenerator.generateDidKeyPersona();
377
397
  const bob = yield TestDataGenerator.generateDidKeyPersona();
@@ -388,9 +408,9 @@ describe('RecordsWrite', () => {
388
408
  scope
389
409
  });
390
410
  yield expect(recordsWrite.signAsOwnerDelegate(Jws.createSigner(bob), ownerDelegatedGrant.dataEncodedMessage))
391
- .to.be.rejectedWith(DwnErrorCode.RecordsWriteSignAsOwnerDelegateUnknownAuthor);
392
- expect(recordsWrite.owner).to.be.undefined;
393
- expect(recordsWrite.ownerSignaturePayload).to.be.undefined;
411
+ .rejects.toThrow(DwnErrorCode.RecordsWriteSignAsOwnerDelegateUnknownAuthor);
412
+ expect(recordsWrite.owner).toBeUndefined();
413
+ expect(recordsWrite.ownerSignaturePayload).toBeUndefined();
394
414
  }));
395
415
  });
396
416
  describe('ownerSignatureSigner()', () => {
@@ -402,7 +422,7 @@ describe('RecordsWrite', () => {
402
422
  recordId: yield TestDataGenerator.randomCborSha256Cid(),
403
423
  };
404
424
  const recordsWrite = yield RecordsWrite.create(options);
405
- expect(recordsWrite.ownerSignatureSigner).to.be.undefined;
425
+ expect(recordsWrite.ownerSignatureSigner).toBeUndefined();
406
426
  }));
407
427
  });
408
428
  describe('message', () => {
@@ -414,9 +434,185 @@ describe('RecordsWrite', () => {
414
434
  recordId: yield TestDataGenerator.randomCborSha256Cid(),
415
435
  };
416
436
  const recordsWrite = yield RecordsWrite.create(options);
417
- expect(recordsWrite.author).to.not.exist;
418
- expect(recordsWrite.signaturePayload).to.not.exist;
419
- expect(() => recordsWrite.message).to.throw(DwnErrorCode.RecordsWriteMissingSigner);
437
+ expect(recordsWrite.author).toBeUndefined();
438
+ expect(recordsWrite.signaturePayload).toBeUndefined();
439
+ expect(() => recordsWrite.message).toThrow(DwnErrorCode.RecordsWriteMissingSigner);
440
+ }));
441
+ });
442
+ describe('encryptSymmetricEncryptionKey()', () => {
443
+ it('should replace encryption property by default', () => __awaiter(void 0, void 0, void 0, function* () {
444
+ const alice = yield TestDataGenerator.generatePersona();
445
+ const dataEncryptionKey = TestDataGenerator.randomBytes(32);
446
+ const dataEncryptionIV = TestDataGenerator.randomBytes(16);
447
+ const recordsWrite = yield RecordsWrite.create({
448
+ signer: Jws.createSigner(alice),
449
+ protocol: 'https://example.com/protocol',
450
+ protocolPath: 'test',
451
+ schema: 'https://example.com/schema',
452
+ dataFormat: 'application/octet-stream',
453
+ data: TestDataGenerator.randomBytes(100),
454
+ });
455
+ // First encryption — ProtocolPath
456
+ const encryptionInput1 = {
457
+ initializationVector: dataEncryptionIV,
458
+ key: dataEncryptionKey,
459
+ keyEncryptionInputs: [{
460
+ publicKeyId: alice.keyId,
461
+ publicKey: alice.keyPair.publicJwk,
462
+ derivationScheme: KeyDerivationScheme.ProtocolPath,
463
+ }],
464
+ };
465
+ yield recordsWrite.encryptSymmetricEncryptionKey(encryptionInput1);
466
+ expect(recordsWrite['_message'].encryption).toBeDefined();
467
+ expect(recordsWrite['_message'].encryption.keyEncryption).toHaveLength(1);
468
+ expect(recordsWrite['_message'].encryption.keyEncryption[0].derivationScheme).toBe('protocolPath');
469
+ // Second encryption (replace mode) — should overwrite
470
+ const encryptionInput2 = {
471
+ initializationVector: dataEncryptionIV,
472
+ key: dataEncryptionKey,
473
+ keyEncryptionInputs: [{
474
+ publicKeyId: alice.keyId,
475
+ publicKey: alice.keyPair.publicJwk,
476
+ derivationScheme: KeyDerivationScheme.Schemas,
477
+ }],
478
+ };
479
+ yield recordsWrite.encryptSymmetricEncryptionKey(encryptionInput2);
480
+ // Should have replaced — only 1 entry with Schemas scheme
481
+ expect(recordsWrite['_message'].encryption.keyEncryption).toHaveLength(1);
482
+ expect(recordsWrite['_message'].encryption.keyEncryption[0].derivationScheme).toBe('schemas');
483
+ }));
484
+ it('should append keyEncryption entries when append option is true', () => __awaiter(void 0, void 0, void 0, function* () {
485
+ const alice = yield TestDataGenerator.generatePersona();
486
+ const dataEncryptionKey = TestDataGenerator.randomBytes(32);
487
+ const dataEncryptionIV = TestDataGenerator.randomBytes(16);
488
+ const recordsWrite = yield RecordsWrite.create({
489
+ signer: Jws.createSigner(alice),
490
+ protocol: 'https://example.com/protocol',
491
+ protocolPath: 'test',
492
+ schema: 'https://example.com/schema',
493
+ dataFormat: 'application/octet-stream',
494
+ data: TestDataGenerator.randomBytes(100),
495
+ });
496
+ // First encryption — ProtocolPath
497
+ const encryptionInput1 = {
498
+ initializationVector: dataEncryptionIV,
499
+ key: dataEncryptionKey,
500
+ keyEncryptionInputs: [{
501
+ publicKeyId: alice.keyId,
502
+ publicKey: alice.keyPair.publicJwk,
503
+ derivationScheme: KeyDerivationScheme.ProtocolPath,
504
+ }],
505
+ };
506
+ yield recordsWrite.encryptSymmetricEncryptionKey(encryptionInput1);
507
+ const originalIV = recordsWrite['_message'].encryption.initializationVector;
508
+ const originalAlgorithm = recordsWrite['_message'].encryption.algorithm;
509
+ // Second encryption with append — ProtocolContext
510
+ const encryptionInput2 = {
511
+ initializationVector: dataEncryptionIV,
512
+ key: dataEncryptionKey,
513
+ keyEncryptionInputs: [{
514
+ publicKeyId: alice.keyId,
515
+ publicKey: alice.keyPair.publicJwk,
516
+ derivationScheme: KeyDerivationScheme.ProtocolContext,
517
+ }],
518
+ };
519
+ yield recordsWrite.encryptSymmetricEncryptionKey(encryptionInput2, { append: true });
520
+ // Should have both entries
521
+ const encryption = recordsWrite['_message'].encryption;
522
+ expect(encryption.keyEncryption).toHaveLength(2);
523
+ expect(encryption.keyEncryption[0].derivationScheme).toBe('protocolPath');
524
+ expect(encryption.keyEncryption[1].derivationScheme).toBe('protocolContext');
525
+ // Original IV and algorithm should be preserved
526
+ expect(encryption.initializationVector).toBe(originalIV);
527
+ expect(encryption.algorithm).toBe(originalAlgorithm);
528
+ // ProtocolContext entry should have derivedPublicKey
529
+ expect(encryption.keyEncryption[1].derivedPublicKey).toBeDefined();
530
+ // Authorization was already wiped by the first (non-append) call, so
531
+ // append mode preserves whatever state exists — which is undefined here.
532
+ // When starting from a parsed/signed message (the signAsOwner test
533
+ // below), authorization IS preserved by append mode.
534
+ expect(recordsWrite['_message'].authorization).toBeUndefined();
535
+ }));
536
+ it('should allow signAsOwner after append (reactive root-record upgrade)', () => __awaiter(void 0, void 0, void 0, function* () {
537
+ // Simulates the cross-DWN scenario: Bob authors a record, Alice (owner)
538
+ // appends a ProtocolContext keyEncryption entry, then signs as owner.
539
+ const alice = yield TestDataGenerator.generatePersona();
540
+ const bob = yield TestDataGenerator.generatePersona();
541
+ const dataEncryptionKey = TestDataGenerator.randomBytes(32);
542
+ const dataEncryptionIV = TestDataGenerator.randomBytes(16);
543
+ // Bob creates and signs the record
544
+ const recordsWrite = yield RecordsWrite.create({
545
+ signer: Jws.createSigner(bob),
546
+ protocol: 'https://example.com/protocol',
547
+ protocolPath: 'thread',
548
+ schema: 'https://example.com/schema',
549
+ dataFormat: 'application/octet-stream',
550
+ data: TestDataGenerator.randomBytes(100),
551
+ });
552
+ // Bob encrypts with ProtocolPath, then re-signs
553
+ const encryptionInput1 = {
554
+ initializationVector: dataEncryptionIV,
555
+ key: dataEncryptionKey,
556
+ keyEncryptionInputs: [{
557
+ publicKeyId: alice.keyId,
558
+ publicKey: alice.keyPair.publicJwk,
559
+ derivationScheme: KeyDerivationScheme.ProtocolPath,
560
+ }],
561
+ };
562
+ yield recordsWrite.encryptSymmetricEncryptionKey(encryptionInput1);
563
+ yield recordsWrite.sign({ signer: Jws.createSigner(bob) });
564
+ expect(recordsWrite.author).toBe(bob.did);
565
+ expect(recordsWrite['_message'].authorization).toBeDefined();
566
+ // Simulate: Alice parses Bob's message and appends ProtocolContext
567
+ const parsed = yield RecordsWrite.parse(recordsWrite.message);
568
+ expect(parsed.author).toBe(bob.did);
569
+ const encryptionInput2 = {
570
+ initializationVector: dataEncryptionIV,
571
+ key: dataEncryptionKey,
572
+ keyEncryptionInputs: [{
573
+ publicKeyId: alice.keyId,
574
+ publicKey: alice.keyPair.publicJwk,
575
+ derivationScheme: KeyDerivationScheme.ProtocolContext,
576
+ }],
577
+ };
578
+ yield parsed.encryptSymmetricEncryptionKey(encryptionInput2, { append: true });
579
+ // Author and authorization should be preserved after append
580
+ expect(parsed.author).toBe(bob.did);
581
+ expect(parsed['_message'].authorization).toBeDefined();
582
+ // Alice signs as owner — should NOT throw
583
+ yield parsed.signAsOwner(Jws.createSigner(alice));
584
+ expect(parsed.owner).toBe(alice.did);
585
+ expect(parsed['_message'].authorization.ownerSignature).toBeDefined();
586
+ // Both keyEncryption entries should be present
587
+ const encryption = parsed['_message'].encryption;
588
+ expect(encryption.keyEncryption).toHaveLength(2);
589
+ expect(encryption.keyEncryption[0].derivationScheme).toBe('protocolPath');
590
+ expect(encryption.keyEncryption[1].derivationScheme).toBe('protocolContext');
591
+ // validateIntegrity should pass — the stale encryptionCid in the
592
+ // author's signature is allowed when ownerSignature is present
593
+ yield parsed['validateIntegrity']();
594
+ }));
595
+ it('should throw when append is true but encryption does not exist', () => __awaiter(void 0, void 0, void 0, function* () {
596
+ const alice = yield TestDataGenerator.generatePersona();
597
+ const dataEncryptionKey = TestDataGenerator.randomBytes(32);
598
+ const dataEncryptionIV = TestDataGenerator.randomBytes(16);
599
+ const recordsWrite = yield RecordsWrite.create({
600
+ signer: Jws.createSigner(alice),
601
+ protocol: 'https://example.com/protocol',
602
+ protocolPath: 'test',
603
+ dataFormat: 'application/octet-stream',
604
+ data: TestDataGenerator.randomBytes(100),
605
+ });
606
+ const encryptionInput = {
607
+ initializationVector: dataEncryptionIV,
608
+ key: dataEncryptionKey,
609
+ keyEncryptionInputs: [{
610
+ publicKeyId: alice.keyId,
611
+ publicKey: alice.keyPair.publicJwk,
612
+ derivationScheme: KeyDerivationScheme.ProtocolPath,
613
+ }],
614
+ };
615
+ yield expect(recordsWrite.encryptSymmetricEncryptionKey(encryptionInput, { append: true })).rejects.toThrow(DwnErrorCode.RecordsWriteMissingEncryption);
420
616
  }));
421
617
  });
422
618
  });
@@ -1 +1 @@
1
- {"version":3,"file":"records-write.spec.js","sourceRoot":"","sources":["../../../../tests/interfaces/records-write.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-write.spec.js","sourceRoot":"","sources":["../../../../tests/interfaces/records-write.spec.ts"],"names":[],"mappings":"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"}