@enbox/dwn-sdk-js 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +3 -1
  2. package/dist/browser.mjs +19 -78
  3. package/dist/browser.mjs.map +4 -4
  4. package/dist/esm/generated/precompiled-validators.js +1997 -1517
  5. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  6. package/dist/esm/src/core/constants.js +50 -0
  7. package/dist/esm/src/core/constants.js.map +1 -1
  8. package/dist/esm/src/core/dwn-error.js +28 -11
  9. package/dist/esm/src/core/dwn-error.js.map +1 -1
  10. package/dist/esm/src/core/encryption-control.js +785 -0
  11. package/dist/esm/src/core/encryption-control.js.map +1 -0
  12. package/dist/esm/src/core/message.js +6 -0
  13. package/dist/esm/src/core/message.js.map +1 -1
  14. package/dist/esm/src/core/messages-grant-authorization.js +36 -5
  15. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  16. package/dist/esm/src/core/protocol-authorization-action.js +3 -12
  17. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
  18. package/dist/esm/src/core/protocol-authorization-validation.js +31 -30
  19. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  20. package/dist/esm/src/core/protocol-authorization.js +6 -0
  21. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  22. package/dist/esm/src/core/recording-validation-state-reader.js +3 -3
  23. package/dist/esm/src/core/recording-validation-state-reader.js.map +1 -1
  24. package/dist/esm/src/core/replication-apply.js +62 -108
  25. package/dist/esm/src/core/replication-apply.js.map +1 -1
  26. package/dist/esm/src/core/validation-state-reader.js +5 -6
  27. package/dist/esm/src/core/validation-state-reader.js.map +1 -1
  28. package/dist/esm/src/dwn.js +1 -2
  29. package/dist/esm/src/dwn.js.map +1 -1
  30. package/dist/esm/src/event-stream/event-emitter-wake-publisher.js +11 -11
  31. package/dist/esm/src/event-stream/event-emitter-wake-publisher.js.map +1 -1
  32. package/dist/esm/src/handlers/messages-query.js +6 -16
  33. package/dist/esm/src/handlers/messages-query.js.map +1 -1
  34. package/dist/esm/src/handlers/messages-read.js +4 -3
  35. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  36. package/dist/esm/src/handlers/messages-subscribe.js +26 -30
  37. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  38. package/dist/esm/src/handlers/protocols-configure.js +6 -4
  39. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  40. package/dist/esm/src/handlers/records-count.js +85 -10
  41. package/dist/esm/src/handlers/records-count.js.map +1 -1
  42. package/dist/esm/src/handlers/records-delete.js +11 -0
  43. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  44. package/dist/esm/src/handlers/records-query.js +140 -18
  45. package/dist/esm/src/handlers/records-query.js.map +1 -1
  46. package/dist/esm/src/handlers/records-read.js +20 -4
  47. package/dist/esm/src/handlers/records-read.js.map +1 -1
  48. package/dist/esm/src/handlers/records-subscribe.js +127 -11
  49. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  50. package/dist/esm/src/handlers/records-write.js +15 -0
  51. package/dist/esm/src/handlers/records-write.js.map +1 -1
  52. package/dist/esm/src/index.js +7 -10
  53. package/dist/esm/src/index.js.map +1 -1
  54. package/dist/esm/src/interfaces/protocols-configure.js +66 -9
  55. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  56. package/dist/esm/src/interfaces/records-write.js +43 -36
  57. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  58. package/dist/esm/src/jose/algorithms/signing/ed25519.js +5 -5
  59. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  60. package/dist/esm/src/jose/jws/general/verifier.js +1 -1
  61. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  62. package/dist/esm/src/protocols/encryption.js +32 -274
  63. package/dist/esm/src/protocols/encryption.js.map +1 -1
  64. package/dist/esm/src/store/blockstore-level.js +14 -23
  65. package/dist/esm/src/store/blockstore-level.js.map +1 -1
  66. package/dist/esm/src/store/blockstore-mock.js +10 -27
  67. package/dist/esm/src/store/blockstore-mock.js.map +1 -1
  68. package/dist/esm/src/store/blockstore-utils.js +45 -0
  69. package/dist/esm/src/store/blockstore-utils.js.map +1 -0
  70. package/dist/esm/src/store/blockstore.js +2 -0
  71. package/dist/esm/src/store/blockstore.js.map +1 -0
  72. package/dist/esm/src/store/data-store-level.js +4 -12
  73. package/dist/esm/src/store/data-store-level.js.map +1 -1
  74. package/dist/esm/src/store/level.js +7 -0
  75. package/dist/esm/src/store/level.js.map +1 -0
  76. package/dist/esm/src/types/encryption-types.js +4 -1
  77. package/dist/esm/src/types/encryption-types.js.map +1 -1
  78. package/dist/esm/src/utils/data-stream.js +25 -0
  79. package/dist/esm/src/utils/data-stream.js.map +1 -1
  80. package/dist/esm/src/utils/encryption.js +107 -19
  81. package/dist/esm/src/utils/encryption.js.map +1 -1
  82. package/dist/esm/src/utils/grant-key-coverage.js +180 -0
  83. package/dist/esm/src/utils/grant-key-coverage.js.map +1 -0
  84. package/dist/esm/src/utils/hd-key.js +1 -2
  85. package/dist/esm/src/utils/hd-key.js.map +1 -1
  86. package/dist/esm/src/utils/jws.js +7 -1
  87. package/dist/esm/src/utils/jws.js.map +1 -1
  88. package/dist/esm/src/utils/memory-cache.js +29 -8
  89. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  90. package/dist/esm/src/utils/protocols.js +27 -0
  91. package/dist/esm/src/utils/protocols.js.map +1 -1
  92. package/dist/esm/src/utils/record-limit-occupancy.js +23 -3
  93. package/dist/esm/src/utils/record-limit-occupancy.js.map +1 -1
  94. package/dist/esm/src/utils/records.js +29 -0
  95. package/dist/esm/src/utils/records.js.map +1 -1
  96. package/dist/esm/src/utils/secp256k1.js +12 -11
  97. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  98. package/dist/esm/src/utils/secp256r1.js +12 -20
  99. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  100. package/dist/esm/src/utils/time.js +103 -25
  101. package/dist/esm/src/utils/time.js.map +1 -1
  102. package/dist/esm/tests/core/constants.spec.js +35 -0
  103. package/dist/esm/tests/core/constants.spec.js.map +1 -0
  104. package/dist/esm/tests/core/encryption-control.spec.js +100 -0
  105. package/dist/esm/tests/core/encryption-control.spec.js.map +1 -0
  106. package/dist/esm/tests/core/message.spec.js +35 -0
  107. package/dist/esm/tests/core/message.spec.js.map +1 -1
  108. package/dist/esm/tests/core/protocol-authorization.spec.js +1 -1
  109. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  110. package/dist/esm/tests/core/replication-apply.spec.js +157 -74
  111. package/dist/esm/tests/core/replication-apply.spec.js.map +1 -1
  112. package/dist/esm/tests/core/replication-replay-property.spec.js +2 -1
  113. package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -1
  114. package/dist/esm/tests/core/validation-read-closure.spec.js +14 -28
  115. package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -1
  116. package/dist/esm/tests/core/validation-state-reader.spec.js +19 -23
  117. package/dist/esm/tests/core/validation-state-reader.spec.js.map +1 -1
  118. package/dist/esm/tests/dwn.spec.js +2 -1
  119. package/dist/esm/tests/dwn.spec.js.map +1 -1
  120. package/dist/esm/tests/event-emitter-wake-publisher.spec.js +51 -0
  121. package/dist/esm/tests/event-emitter-wake-publisher.spec.js.map +1 -0
  122. package/dist/esm/tests/features/protocol-composition.spec.js +1 -1
  123. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  124. package/dist/esm/tests/features/records-record-limit.spec.js +1 -1
  125. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -1
  126. package/dist/esm/tests/fuzz/encryption.fuzz.spec.js +9 -1
  127. package/dist/esm/tests/fuzz/encryption.fuzz.spec.js.map +1 -1
  128. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js +1 -1
  129. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js.map +1 -1
  130. package/dist/esm/tests/fuzz/protocols-utils.fuzz.spec.js +29 -1
  131. package/dist/esm/tests/fuzz/protocols-utils.fuzz.spec.js.map +1 -1
  132. package/dist/esm/tests/fuzz/secp256k1.fuzz.spec.js +2 -2
  133. package/dist/esm/tests/fuzz/secp256k1.fuzz.spec.js.map +1 -1
  134. package/dist/esm/tests/fuzz/time.fuzz.spec.js +7 -1
  135. package/dist/esm/tests/fuzz/time.fuzz.spec.js.map +1 -1
  136. package/dist/esm/tests/handlers/messages-query.spec.js +123 -11
  137. package/dist/esm/tests/handlers/messages-query.spec.js.map +1 -1
  138. package/dist/esm/tests/handlers/messages-read.spec.js +95 -0
  139. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  140. package/dist/esm/tests/handlers/messages-subscribe.spec.js +90 -0
  141. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  142. package/dist/esm/tests/handlers/protocols-configure.spec.js +66 -0
  143. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  144. package/dist/esm/tests/handlers/records-count.spec.js +370 -0
  145. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  146. package/dist/esm/tests/handlers/records-delete.spec.js +70 -1
  147. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  148. package/dist/esm/tests/handlers/records-query.spec.js +562 -1
  149. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  150. package/dist/esm/tests/handlers/records-read.spec.js +140 -2
  151. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  152. package/dist/esm/tests/handlers/records-subscribe.spec.js +241 -1
  153. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  154. package/dist/esm/tests/handlers/records-write.spec.js +1187 -29
  155. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  156. package/dist/esm/tests/interfaces/protocols-configure.spec.js +290 -2
  157. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  158. package/dist/esm/tests/interfaces/records-write.spec.js +47 -5
  159. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  160. package/dist/esm/tests/protocols/encryption.spec.js +116 -472
  161. package/dist/esm/tests/protocols/encryption.spec.js.map +1 -1
  162. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +13 -27
  163. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  164. package/dist/esm/tests/store/blockstore-level.spec.js +33 -10
  165. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -1
  166. package/dist/esm/tests/store/blockstore-mock.spec.js +31 -7
  167. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  168. package/dist/esm/tests/store/blockstore-utils.spec.js +115 -0
  169. package/dist/esm/tests/store/blockstore-utils.spec.js.map +1 -0
  170. package/dist/esm/tests/store/index-level.spec.js +3 -3
  171. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  172. package/dist/esm/tests/test-stores.js +2 -1
  173. package/dist/esm/tests/test-stores.js.map +1 -1
  174. package/dist/esm/tests/utils/cid.spec.js +15 -0
  175. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  176. package/dist/esm/tests/utils/data-stream.spec.js +30 -0
  177. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  178. package/dist/esm/tests/utils/encryption-control-test-utils.js +111 -0
  179. package/dist/esm/tests/utils/encryption-control-test-utils.js.map +1 -0
  180. package/dist/esm/tests/utils/encryption.spec.js +198 -5
  181. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  182. package/dist/esm/tests/utils/grant-key-coverage.spec.js +262 -0
  183. package/dist/esm/tests/utils/grant-key-coverage.spec.js.map +1 -0
  184. package/dist/esm/tests/utils/memory-cache.spec.js +12 -0
  185. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  186. package/dist/esm/tests/utils/secp256r1.spec.js +2 -2
  187. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  188. package/dist/esm/tests/utils/test-data-generator.js +2 -1
  189. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  190. package/dist/esm/tests/utils/test-validation-state-reader.js +1 -1
  191. package/dist/esm/tests/utils/test-validation-state-reader.js.map +1 -1
  192. package/dist/esm/tests/utils/time.spec.js +26 -0
  193. package/dist/esm/tests/utils/time.spec.js.map +1 -1
  194. package/dist/esm/tests/validation/json-schemas/encryption/audience.spec.js +45 -0
  195. package/dist/esm/tests/validation/json-schemas/encryption/audience.spec.js.map +1 -0
  196. package/dist/esm/tests/validation/json-schemas/encryption/delivery.spec.js +47 -0
  197. package/dist/esm/tests/validation/json-schemas/encryption/delivery.spec.js.map +1 -0
  198. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +152 -0
  199. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  200. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +46 -1
  201. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  202. package/dist/types/generated/precompiled-validators.d.ts +4 -4
  203. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  204. package/dist/types/src/core/constants.d.ts +39 -0
  205. package/dist/types/src/core/constants.d.ts.map +1 -1
  206. package/dist/types/src/core/dwn-error.d.ts +28 -11
  207. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  208. package/dist/types/src/core/encryption-control.d.ts +128 -0
  209. package/dist/types/src/core/encryption-control.d.ts.map +1 -0
  210. package/dist/types/src/core/message.d.ts +4 -0
  211. package/dist/types/src/core/message.d.ts.map +1 -1
  212. package/dist/types/src/core/messages-grant-authorization.d.ts +11 -0
  213. package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
  214. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
  215. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  216. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  217. package/dist/types/src/core/recording-validation-state-reader.d.ts +2 -3
  218. package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -1
  219. package/dist/types/src/core/replication-apply.d.ts +10 -1
  220. package/dist/types/src/core/replication-apply.d.ts.map +1 -1
  221. package/dist/types/src/core/validation-state-reader.d.ts +2 -3
  222. package/dist/types/src/core/validation-state-reader.d.ts.map +1 -1
  223. package/dist/types/src/dwn.d.ts.map +1 -1
  224. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts +1 -1
  225. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts.map +1 -1
  226. package/dist/types/src/handlers/messages-query.d.ts.map +1 -1
  227. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  228. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  229. package/dist/types/src/handlers/protocols-configure.d.ts +1 -0
  230. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  231. package/dist/types/src/handlers/records-count.d.ts +2 -0
  232. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  233. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  234. package/dist/types/src/handlers/records-query.d.ts +3 -0
  235. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  236. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  237. package/dist/types/src/handlers/records-subscribe.d.ts +2 -0
  238. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  239. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  240. package/dist/types/src/index.d.ts +10 -17
  241. package/dist/types/src/index.d.ts.map +1 -1
  242. package/dist/types/src/interfaces/protocols-configure.d.ts +13 -1
  243. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  244. package/dist/types/src/interfaces/records-write.d.ts +5 -1
  245. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  246. package/dist/types/src/jose/algorithms/signing/ed25519.d.ts.map +1 -1
  247. package/dist/types/src/protocols/encryption.d.ts +2 -19
  248. package/dist/types/src/protocols/encryption.d.ts.map +1 -1
  249. package/dist/types/src/store/blockstore-level.d.ts +11 -11
  250. package/dist/types/src/store/blockstore-level.d.ts.map +1 -1
  251. package/dist/types/src/store/blockstore-mock.d.ts +12 -12
  252. package/dist/types/src/store/blockstore-mock.d.ts.map +1 -1
  253. package/dist/types/src/store/blockstore-utils.d.ts +23 -0
  254. package/dist/types/src/store/blockstore-utils.d.ts.map +1 -0
  255. package/dist/types/src/store/blockstore.d.ts +3 -0
  256. package/dist/types/src/store/blockstore.d.ts.map +1 -0
  257. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  258. package/dist/types/src/store/level.d.ts +13 -0
  259. package/dist/types/src/store/level.d.ts.map +1 -0
  260. package/dist/types/src/types/cache.d.ts +2 -2
  261. package/dist/types/src/types/cache.d.ts.map +1 -1
  262. package/dist/types/src/types/encryption-types.d.ts +31 -2
  263. package/dist/types/src/types/encryption-types.d.ts.map +1 -1
  264. package/dist/types/src/types/validation-state-reader.d.ts +3 -5
  265. package/dist/types/src/types/validation-state-reader.d.ts.map +1 -1
  266. package/dist/types/src/utils/data-stream.d.ts +5 -0
  267. package/dist/types/src/utils/data-stream.d.ts.map +1 -1
  268. package/dist/types/src/utils/encryption.d.ts +53 -24
  269. package/dist/types/src/utils/encryption.d.ts.map +1 -1
  270. package/dist/types/src/utils/grant-key-coverage.d.ts +36 -0
  271. package/dist/types/src/utils/grant-key-coverage.d.ts.map +1 -0
  272. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  273. package/dist/types/src/utils/jws.d.ts.map +1 -1
  274. package/dist/types/src/utils/memory-cache.d.ts +4 -2
  275. package/dist/types/src/utils/memory-cache.d.ts.map +1 -1
  276. package/dist/types/src/utils/protocols.d.ts +11 -0
  277. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  278. package/dist/types/src/utils/record-limit-occupancy.d.ts +7 -0
  279. package/dist/types/src/utils/record-limit-occupancy.d.ts.map +1 -1
  280. package/dist/types/src/utils/records.d.ts +2 -0
  281. package/dist/types/src/utils/records.d.ts.map +1 -1
  282. package/dist/types/src/utils/secp256k1.d.ts.map +1 -1
  283. package/dist/types/src/utils/secp256r1.d.ts.map +1 -1
  284. package/dist/types/src/utils/time.d.ts +21 -13
  285. package/dist/types/src/utils/time.d.ts.map +1 -1
  286. package/dist/types/tests/core/constants.spec.d.ts +2 -0
  287. package/dist/types/tests/core/constants.spec.d.ts.map +1 -0
  288. package/dist/types/tests/core/encryption-control.spec.d.ts +2 -0
  289. package/dist/types/tests/core/encryption-control.spec.d.ts.map +1 -0
  290. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  291. package/dist/types/tests/event-emitter-wake-publisher.spec.d.ts +2 -0
  292. package/dist/types/tests/event-emitter-wake-publisher.spec.d.ts.map +1 -0
  293. package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -1
  294. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  295. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  296. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
  297. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  298. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  299. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  300. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  301. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  302. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  303. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
  304. package/dist/types/tests/store/blockstore-utils.spec.d.ts +2 -0
  305. package/dist/types/tests/store/blockstore-utils.spec.d.ts.map +1 -0
  306. package/dist/types/tests/test-stores.d.ts.map +1 -1
  307. package/dist/types/tests/utils/encryption-control-test-utils.d.ts +46 -0
  308. package/dist/types/tests/utils/encryption-control-test-utils.d.ts.map +1 -0
  309. package/dist/types/tests/utils/grant-key-coverage.spec.d.ts +2 -0
  310. package/dist/types/tests/utils/grant-key-coverage.spec.d.ts.map +1 -0
  311. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  312. package/dist/types/tests/validation/json-schemas/encryption/audience.spec.d.ts +2 -0
  313. package/dist/types/tests/validation/json-schemas/encryption/audience.spec.d.ts.map +1 -0
  314. package/dist/types/tests/validation/json-schemas/encryption/delivery.spec.d.ts +2 -0
  315. package/dist/types/tests/validation/json-schemas/encryption/delivery.spec.d.ts.map +1 -0
  316. package/package.json +47 -28
  317. package/src/core/constants.ts +61 -0
  318. package/src/core/dwn-error.ts +28 -11
  319. package/src/core/encryption-control.ts +1249 -0
  320. package/src/core/message.ts +7 -0
  321. package/src/core/messages-grant-authorization.ts +60 -9
  322. package/src/core/protocol-authorization-action.ts +3 -13
  323. package/src/core/protocol-authorization-validation.ts +66 -46
  324. package/src/core/protocol-authorization.ts +7 -0
  325. package/src/core/recording-validation-state-reader.ts +4 -5
  326. package/src/core/replication-apply.ts +77 -133
  327. package/src/core/validation-state-reader.ts +6 -8
  328. package/src/dwn.ts +1 -2
  329. package/src/event-stream/event-emitter-wake-publisher.ts +10 -14
  330. package/src/handlers/messages-query.ts +6 -22
  331. package/src/handlers/messages-read.ts +4 -3
  332. package/src/handlers/messages-subscribe.ts +34 -30
  333. package/src/handlers/protocols-configure.ts +7 -4
  334. package/src/handlers/records-count.ts +111 -10
  335. package/src/handlers/records-delete.ts +15 -0
  336. package/src/handlers/records-query.ts +176 -20
  337. package/src/handlers/records-read.ts +19 -6
  338. package/src/handlers/records-subscribe.ts +158 -8
  339. package/src/handlers/records-write.ts +19 -0
  340. package/src/index.ts +48 -21
  341. package/src/interfaces/protocols-configure.ts +102 -11
  342. package/src/interfaces/records-write.ts +49 -43
  343. package/src/jose/algorithms/signing/ed25519.ts +7 -6
  344. package/src/jose/jws/general/verifier.ts +3 -3
  345. package/src/protocols/encryption.ts +50 -420
  346. package/src/store/blockstore-level.ts +33 -37
  347. package/src/store/blockstore-mock.ts +24 -38
  348. package/src/store/blockstore-utils.ts +85 -0
  349. package/src/store/blockstore.ts +8 -0
  350. package/src/store/data-store-level.ts +5 -12
  351. package/src/store/level.ts +19 -0
  352. package/src/types/cache.ts +3 -3
  353. package/src/types/encryption-types.ts +39 -2
  354. package/src/types/validation-state-reader.ts +3 -5
  355. package/src/utils/data-stream.ts +29 -1
  356. package/src/utils/encryption.ts +190 -60
  357. package/src/utils/grant-key-coverage.ts +303 -0
  358. package/src/utils/hd-key.ts +1 -2
  359. package/src/utils/jws.ts +8 -2
  360. package/src/utils/memory-cache.ts +42 -11
  361. package/src/utils/protocols.ts +32 -0
  362. package/src/utils/record-limit-occupancy.ts +34 -5
  363. package/src/utils/records.ts +36 -2
  364. package/src/utils/secp256k1.ts +12 -12
  365. package/src/utils/secp256r1.ts +12 -22
  366. package/src/utils/time.ts +145 -27
  367. package/dist/esm/tests/validation/json-schemas/encryption/audience-key.spec.js +0 -40
  368. package/dist/esm/tests/validation/json-schemas/encryption/audience-key.spec.js.map +0 -1
  369. package/dist/types/tests/validation/json-schemas/encryption/audience-key.spec.d.ts +0 -2
  370. package/dist/types/tests/validation/json-schemas/encryption/audience-key.spec.d.ts.map +0 -1
  371. package/src/types/mitt.d.ts +0 -28
@@ -25,7 +25,15 @@ describe('Encryption — fuzz', () => {
25
25
  const recipientPublicKey = await X25519.getPublicKey({ key: recipientPrivateKey });
26
26
  const keyId = await Encryption.getKeyId(recipientPublicKey);
27
27
  await fc.assert(fc.asyncProperty(aes256Key(), async (cek) => {
28
- const wrapped = await Encryption.wrapKey(recipientPublicKey, cek, { derivationScheme: KeyDerivationScheme.ProtocolPath, keyId, publicKey: recipientPublicKey });
28
+ const wrapped = await Encryption.wrapKey({
29
+ cek,
30
+ keyInput: {
31
+ algorithm: KeyAgreementAlgorithm.X25519HkdfSha256A256Kw,
32
+ derivationScheme: KeyDerivationScheme.ProtocolPath,
33
+ keyId,
34
+ publicKey: recipientPublicKey,
35
+ },
36
+ });
29
37
  const unwrapped = await Encryption.unwrapKey(recipientPrivateKey, {
30
38
  algorithm: KeyAgreementAlgorithm.X25519HkdfSha256A256Kw,
31
39
  derivationScheme: KeyDerivationScheme.ProtocolPath,
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/encryption.fuzz.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/encryption.fuzz.spec.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { afterAll, beforeAll, describe, expect, it } from 'bun:test';
2
2
  import fc from 'fast-check';
3
3
  import { Dwn as DwnClass } from '../../src/dwn.js';
4
4
  import { arbitraryJsonObject, arbitraryMessage, semiValidMessage } from './arbitraries/dwn-message.arbitrary.js';
5
- import { DataStoreLevel, MessageStoreLevel, ResumableTaskStoreLevel } from '../../src/index.js';
5
+ import { DataStoreLevel, MessageStoreLevel, ResumableTaskStoreLevel } from '../../src/store/level.js';
6
6
  const numRuns = Number(process.env.FAST_CHECK_NUM_RUNS) || 200;
7
7
  describe('Dwn.processMessage — fuzz', () => {
8
8
  let dwn;
@@ -1 +1 @@
1
- {"version":3,"file":"process-message.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/process-message.fuzz.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEhG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC;AAE/D,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,GAAQ,CAAC;IAEb,MAAM,YAAY,GAAG,mCAAmC,CAAC;IAEzD,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC;YACzC,QAAQ,EAAE,GAAG,YAAY,WAAW;SACrC,CAAC,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1B,YAAY;YACZ,SAAS,EAAY,IAAI,cAAc,CAAC,EAAE,kBAAkB,EAAE,GAAG,YAAY,cAAc,EAAE,CAAC;YAC9F,kBAAkB,EAAG,IAAI,uBAAuB,CAAC,EAAE,QAAQ,EAAE,GAAG,YAAY,kBAAkB,EAAE,CAAC;SAClG,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAChE,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,EAAE,CAAC,MAAM,CACb,EAAE,CAAC,aAAa,CACd,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAC3C,gBAAgB,EAAE,EAClB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,UAAiB,CAAC,CAAC;gBAClE,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACrE,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,EAAE,CAAC,MAAM,CACb,EAAE,CAAC,aAAa,CACd,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAC3C,mBAAmB,EAAE,EACrB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,UAAiB,CAAC,CAAC;gBAClE,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACxD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAChE,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,EAAE,CAAC,MAAM,CACb,EAAE,CAAC,aAAa,CACd,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAC3C,gBAAgB,EAAE,EAClB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,UAAiB,CAAC,CAAC;gBAClE,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC5D,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClE,uEAAuE;gBACvE,+DAA+D;gBAC/D,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACjE,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,EAAE,CAAC,MAAM,CACb,EAAE,CAAC,aAAa,CACd,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAC/B,EAAE,CAAC,MAAM,CAAC;gBACR,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC;oBACpB,SAAS,EAAU,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC;oBACtE,MAAM,EAAa,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC;oBACnF,gBAAgB,EAAG,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;iBAC9D,CAAC;gBACF,MAAM,EAAG,EAAE,CAAC,QAAQ,EAAE;gBACtB,MAAM,EAAG,EAAE,CAAC,QAAQ,EAAE;gBACtB,MAAM,EAAG,EAAE,CAAC,QAAQ,EAAE;aACvB,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,UAAiB,CAAC,CAAC;gBAClE,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CACpC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"process-message.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/process-message.fuzz.spec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, it } from 'bun:test';
2
2
  import fc from 'fast-check';
3
- import { getTypeName, isCrossProtocolRef, parseCrossProtocolRef } from '../../src/utils/protocols.js';
3
+ import { getRoleAudienceContextId, getRoleContextPrefix, getTypeName, isCrossProtocolRef, parseCrossProtocolRef } from '../../src/utils/protocols.js';
4
4
  const numRuns = Number(process.env.FAST_CHECK_NUM_RUNS) || 100;
5
5
  describe('Protocol utility functions — fuzz', () => {
6
6
  describe('parseCrossProtocolRef / isCrossProtocolRef consistency', () => {
@@ -37,5 +37,33 @@ describe('Protocol utility functions — fuzz', () => {
37
37
  }), { numRuns });
38
38
  });
39
39
  });
40
+ describe('getRoleAudienceContextId', () => {
41
+ it('should return an empty context id for a root role path', () => {
42
+ expect(getRoleAudienceContextId('member')).toBe('');
43
+ expect(getRoleAudienceContextId('member', 'thread/message')).toBe('');
44
+ });
45
+ it('should return the ancestor context prefix at the role parent depth', () => {
46
+ expect(getRoleAudienceContextId('thread/member', 'thread-record/message-record')).toBe('thread-record');
47
+ expect(getRoleAudienceContextId('thread/message/member', 'thread-record/message-record/reply-record')).toBe('thread-record/message-record');
48
+ });
49
+ it('should return undefined when a nested role path has no covering context id', () => {
50
+ expect(getRoleAudienceContextId('thread/member')).toBeUndefined();
51
+ expect(getRoleAudienceContextId('thread/message/member', 'thread-record')).toBeUndefined();
52
+ });
53
+ });
54
+ describe('getRoleContextPrefix', () => {
55
+ it('should return undefined for a root role path', () => {
56
+ expect(getRoleContextPrefix('member')).toBeUndefined();
57
+ expect(getRoleContextPrefix('member', 'thread/message')).toBeUndefined();
58
+ });
59
+ it('should return the ancestor context prefix at the role parent depth', () => {
60
+ expect(getRoleContextPrefix('thread/member', 'thread-record/message-record')).toBe('thread-record');
61
+ expect(getRoleContextPrefix('thread/message/member', 'thread-record/message-record/reply-record')).toBe('thread-record/message-record');
62
+ });
63
+ it('should return undefined when a nested role path has no covering context id', () => {
64
+ expect(getRoleContextPrefix('thread/member')).toBeUndefined();
65
+ expect(getRoleContextPrefix('thread/message/member', 'thread-record')).toBeUndefined();
66
+ });
67
+ });
40
68
  });
41
69
  //# sourceMappingURL=protocols-utils.fuzz.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocols-utils.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/protocols-utils.fuzz.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocols-utils.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/protocols-utils.fuzz.spec.ts"],"names":[],"mappings":"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"}
@@ -60,8 +60,8 @@ describe('Secp256k1 — fuzz', () => {
60
60
  const { publicKey: compressedKey, privateKey } = await Secp256k1.generateKeyPairRaw();
61
61
  const jwkFromCompressed = await Secp256k1.publicKeyToJwk(compressedKey);
62
62
  // Get uncompressed form via getPublicKey with false
63
- const { getPublicKey } = await import('@noble/secp256k1');
64
- const uncompressedKey = getPublicKey(privateKey, false);
63
+ const { secp256k1 } = await import('@noble/curves/secp256k1.js');
64
+ const uncompressedKey = secp256k1.getPublicKey(privateKey, false);
65
65
  const jwkFromUncompressed = await Secp256k1.publicKeyToJwk(uncompressedKey);
66
66
  const compressedEc = jwkFromCompressed;
67
67
  const uncompressedEc = jwkFromUncompressed;
@@ -1 +1 @@
1
- {"version":3,"file":"secp256k1.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/secp256k1.fuzz.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secp256k1.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/secp256k1.fuzz.spec.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ describe('Time — fuzz', () => {
26
26
  hour: fc.integer({ min: 0, max: 23 }),
27
27
  minute: fc.integer({ min: 0, max: 59 }),
28
28
  second: fc.integer({ min: 0, max: 59 }),
29
+ millisecond: fc.integer({ min: 0, max: 999 }),
30
+ microsecond: fc.integer({ min: 0, max: 999 }),
29
31
  }), (opts) => {
30
32
  const timestamp = Time.createTimestamp(opts);
31
33
  // Should not throw
@@ -36,7 +38,7 @@ describe('Time — fuzz', () => {
36
38
  describe('createTimestamp — format consistency', () => {
37
39
  it('should always produce ISO-8601 timestamps ending with Z (UTC) and microsecond precision', () => {
38
40
  // Pattern: YYYY-MM-DDTHH:MM:SS.xxxxxxZ
39
- const isoPattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/;
41
+ const isoPattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}Z$/;
40
42
  fc.assert(fc.property(fc.record({
41
43
  year: fc.integer({ min: 1, max: 9999 }),
42
44
  month: fc.integer({ min: 1, max: 12 }),
@@ -44,6 +46,8 @@ describe('Time — fuzz', () => {
44
46
  hour: fc.integer({ min: 0, max: 23 }),
45
47
  minute: fc.integer({ min: 0, max: 59 }),
46
48
  second: fc.integer({ min: 0, max: 59 }),
49
+ millisecond: fc.integer({ min: 0, max: 999 }),
50
+ microsecond: fc.integer({ min: 0, max: 999 }),
47
51
  }), (opts) => {
48
52
  const timestamp = Time.createTimestamp(opts);
49
53
  expect(isoPattern.test(timestamp)).toBe(true);
@@ -59,6 +63,8 @@ describe('Time — fuzz', () => {
59
63
  hour: fc.integer({ min: 0, max: 23 }),
60
64
  minute: fc.integer({ min: 0, max: 59 }),
61
65
  second: fc.integer({ min: 0, max: 59 }),
66
+ millisecond: fc.integer({ min: 0, max: 999 }),
67
+ microsecond: fc.integer({ min: 0, max: 999 }),
62
68
  }), fc.integer({ min: 1, max: 86400 }), (opts, offsetSeconds) => {
63
69
  const base = Time.createTimestamp(opts);
64
70
  const later = Time.createOffsetTimestamp({ seconds: offsetSeconds }, base);
@@ -1 +1 @@
1
- {"version":3,"file":"time.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/time.fuzz.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC;AAE/D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAE3B,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/D,IAAI,CAAC;oBACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;oBAC5B,sEAAsE;gBACxE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAClE,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,EAAE,CAAC,MAAM,CAAC;gBACR,IAAI,EAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC1C,KAAK,EAAI,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,GAAG,EAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,qBAAqB;gBAC/D,IAAI,EAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;aACzC,CAAC,EACF,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC7C,mBAAmB;gBACnB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC,CACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,yFAAyF,EAAE,GAAG,EAAE;YACjG,uCAAuC;YACvC,MAAM,UAAU,GAAG,gDAAgD,CAAC;YACpE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,EAAE,CAAC,MAAM,CAAC;gBACR,IAAI,EAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC1C,KAAK,EAAI,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,GAAG,EAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,IAAI,EAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;aACzC,CAAC,EACF,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;YAChG,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,EAAE,CAAC,MAAM,CAAC;gBACR,IAAI,EAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC5C,KAAK,EAAI,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,GAAG,EAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,IAAI,EAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;aACzC,CAAC,EACF,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAClC,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE;gBACtB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAExC,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;gBAE9E,6DAA6D;gBAC7D,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,CACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAClD,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,uCAAuC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"time.fuzz.spec.js","sourceRoot":"","sources":["../../../../tests/fuzz/time.fuzz.spec.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import freeForAll from '../vectors/protocol-definitions/free-for-all.json' with { type: 'json' };
2
2
  import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
3
3
  import { DidKey, UniversalResolver } from '@enbox/dids';
4
+ import { EncryptionControlDeliveryRecipientAuthority } from '../../src/types/encryption-types.js';
4
5
  import { Message } from '../../src/core/message.js';
5
6
  import { TestDataGenerator } from '../utils/test-data-generator.js';
6
7
  import { TestStores } from '../test-stores.js';
8
+ import { createAudienceControlWrite, createDeliveryControlWrite, installEncryptedProtocol, processControlWrite } from '../utils/encryption-control-test-utils.js';
7
9
  import { Dwn, DwnErrorCode, DwnInterfaceName, DwnMethodName, Encoder, EncryptionProtocol, PermissionsProtocol, Replication } from '../../src/index.js';
8
10
  function getFeedReader(messageStore) {
9
11
  const candidate = messageStore;
@@ -14,6 +16,13 @@ function getFeedReader(messageStore) {
14
16
  return candidate;
15
17
  }
16
18
  }
19
+ async function fingerprintFromCids(messageCids) {
20
+ let fingerprint = Replication.emptyFingerprint();
21
+ for (const messageCid of messageCids) {
22
+ fingerprint = Replication.xorFingerprint(fingerprint, await Replication.hashMessageCid(messageCid));
23
+ }
24
+ return Replication.fingerprintToHex(fingerprint);
25
+ }
17
26
  export function testMessagesQueryHandler() {
18
27
  describe('MessagesQueryHandler.handle()', () => {
19
28
  let didResolver;
@@ -134,13 +143,11 @@ export function testMessagesQueryHandler() {
134
143
  const encryptionRecord = await TestDataGenerator.generateRecordsWrite({
135
144
  author: alice,
136
145
  protocol: EncryptionProtocol.uri,
137
- protocolPath: EncryptionProtocol.audienceEpochPath,
146
+ protocolPath: EncryptionProtocol.grantKeyPath,
138
147
  tags: {
139
- contextId: '',
140
- epoch: 1,
148
+ grantId: 'grant1',
141
149
  keyId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
142
150
  protocol,
143
- role: 'friend',
144
151
  },
145
152
  });
146
153
  await messageStore.put(alice.did, encryptionRecord.message, await encryptionRecord.recordsWrite.constructIndexes(true));
@@ -251,19 +258,17 @@ export function testMessagesQueryHandler() {
251
258
  });
252
259
  const writeReply = await dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
253
260
  expect(writeReply.status.code).toBe(202);
254
- const audienceEpoch = await TestDataGenerator.generateRecordsWrite({
261
+ const encryptionRecord = await TestDataGenerator.generateRecordsWrite({
255
262
  author: alice,
256
263
  protocol: EncryptionProtocol.uri,
257
- protocolPath: EncryptionProtocol.audienceEpochPath,
264
+ protocolPath: EncryptionProtocol.grantKeyPath,
258
265
  tags: {
259
- contextId: '',
260
- epoch: 1,
266
+ grantId: 'grant1',
261
267
  keyId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
262
268
  protocol: protocolDefinition.protocol,
263
- role: 'friend',
264
269
  },
265
270
  });
266
- await messageStore.put(alice.did, audienceEpoch.message, await audienceEpoch.recordsWrite.constructIndexes(true));
271
+ await messageStore.put(alice.did, encryptionRecord.message, await encryptionRecord.recordsWrite.constructIndexes(true));
267
272
  const { message: query } = await TestDataGenerator.generateMessagesQuery({
268
273
  author: bob,
269
274
  filters: [{ protocol: protocolDefinition.protocol }],
@@ -274,11 +279,118 @@ export function testMessagesQueryHandler() {
274
279
  expect(reply.status.code).toBe(200);
275
280
  expect(reply.entries.map(entry => entry.messageCid).sort()).toEqual([
276
281
  await Message.getCid(protocolConfigure),
277
- await Message.getCid(audienceEpoch.message),
282
+ await Message.getCid(encryptionRecord.message),
278
283
  await Message.getCid(grant.message),
279
284
  await Message.getCid(record.message),
280
285
  ].sort());
281
286
  });
287
+ it('transports delivery control events and accumulator fingerprints for delegated MessagesQuery', async () => {
288
+ const feedReader = getFeedReader(messageStore);
289
+ if (feedReader === undefined) {
290
+ return;
291
+ }
292
+ const alice = await TestDataGenerator.generateDidKeyPersona();
293
+ const bob = await TestDataGenerator.generateDidKeyPersona();
294
+ const carol = await TestDataGenerator.generateDidKeyPersona();
295
+ const protocolDefinition = {
296
+ protocol: 'http://messages-query-control-pagination.xyz',
297
+ published: false,
298
+ types: {
299
+ member: { schema: 'http://member-schema', dataFormats: ['application/json'] },
300
+ post: { schema: 'http://post-schema', dataFormats: ['application/json'] },
301
+ },
302
+ structure: {
303
+ member: { $role: true },
304
+ post: {},
305
+ },
306
+ };
307
+ const encryptedDefinition = await installEncryptedProtocol(dwn, alice, protocolDefinition);
308
+ const roleRuleSet = encryptedDefinition.structure.member;
309
+ const audience = await createAudienceControlWrite({
310
+ author: alice,
311
+ protocol: protocolDefinition.protocol,
312
+ rolePath: 'member',
313
+ roleRuleSet,
314
+ });
315
+ await processControlWrite(dwn, alice.did, audience);
316
+ const roleRecord = await TestDataGenerator.generateRecordsWrite({
317
+ author: alice,
318
+ data: Encoder.stringToBytes('bob is a member'),
319
+ dataFormat: 'application/json',
320
+ protocol: protocolDefinition.protocol,
321
+ protocolPath: 'member',
322
+ recipient: bob.did,
323
+ schema: 'http://member-schema',
324
+ });
325
+ expect((await dwn.processMessage(alice.did, roleRecord.message, { dataStream: roleRecord.dataStream })).status.code).toBe(202);
326
+ const grant = await TestDataGenerator.generateGrantCreate({
327
+ author: alice,
328
+ grantedTo: carol,
329
+ scope: {
330
+ interface: DwnInterfaceName.Messages,
331
+ method: DwnMethodName.Read,
332
+ protocol: protocolDefinition.protocol,
333
+ },
334
+ });
335
+ expect((await dwn.processMessage(alice.did, grant.message, { dataStream: grant.dataStream })).status.code).toBe(202);
336
+ const setupCursor = (await feedReader.logRead(alice.did)).cursor;
337
+ const delivery = await createDeliveryControlWrite({
338
+ author: alice,
339
+ keyId: audience.keyId,
340
+ protocol: protocolDefinition.protocol,
341
+ recipient: bob.did,
342
+ recipientAuthority: EncryptionControlDeliveryRecipientAuthority.RoleHolder,
343
+ rolePath: 'member',
344
+ roleRuleSet,
345
+ });
346
+ await processControlWrite(dwn, alice.did, delivery);
347
+ const record = await TestDataGenerator.generateRecordsWrite({
348
+ author: alice,
349
+ protocol: protocolDefinition.protocol,
350
+ protocolPath: 'post',
351
+ schema: 'http://post-schema',
352
+ });
353
+ expect((await dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream })).status.code).toBe(202);
354
+ const { message: query } = await TestDataGenerator.generateMessagesQuery({
355
+ author: carol,
356
+ filters: [{ protocol: protocolDefinition.protocol }],
357
+ permissionGrantIds: [grant.message.recordId],
358
+ cursor: setupCursor,
359
+ limit: 1,
360
+ cidsOnly: true,
361
+ });
362
+ const reply = await dwn.processMessage(alice.did, query);
363
+ const deliveryCid = await Message.getCid(delivery.recordsWrite.message);
364
+ expect(reply.status.code).toBe(200);
365
+ expect(reply.entries?.map(entry => entry.messageCid)).toEqual([deliveryCid]);
366
+ const { message: fullQuery } = await TestDataGenerator.generateMessagesQuery({
367
+ author: carol,
368
+ filters: [{ protocol: protocolDefinition.protocol }],
369
+ permissionGrantIds: [grant.message.recordId],
370
+ cidsOnly: true,
371
+ });
372
+ const fullReply = await dwn.processMessage(alice.did, fullQuery);
373
+ const fullReplyCids = fullReply.entries.map(entry => entry.messageCid);
374
+ const rawFingerprint = await feedReader.fingerprint(alice.did, [
375
+ Replication.protocolDomain(protocolDefinition.protocol),
376
+ Replication.permissionDomain(protocolDefinition.protocol),
377
+ Replication.encryptionDomain(protocolDefinition.protocol),
378
+ ]);
379
+ expect(fullReply.status.code).toBe(200);
380
+ expect(fullReply.drained).toBe(true);
381
+ expect(fullReplyCids).toContain(await Message.getCid(audience.recordsWrite.message));
382
+ expect(fullReplyCids).toContain(deliveryCid);
383
+ expect(fullReply.fingerprint).toBe(await fingerprintFromCids(fullReplyCids));
384
+ expect(fullReply.fingerprint).toBe(rawFingerprint);
385
+ const { message: ownerQuery } = await TestDataGenerator.generateMessagesQuery({
386
+ author: alice,
387
+ filters: [{ protocol: protocolDefinition.protocol }],
388
+ cidsOnly: true,
389
+ });
390
+ const ownerReply = await dwn.processMessage(alice.did, ownerQuery);
391
+ expect(ownerReply.status.code).toBe(200);
392
+ expect(fullReply.fingerprint).toBe(ownerReply.fingerprint);
393
+ });
282
394
  it('rejects unfiltered delegated queries with a protocol-scoped grant', async () => {
283
395
  if (getFeedReader(messageStore) === undefined) {
284
396
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"messages-query.spec.js","sourceRoot":"","sources":["../../../../tests/handlers/messages-query.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages-query.spec.js","sourceRoot":"","sources":["../../../../tests/handlers/messages-query.spec.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,mDAAmD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,2CAA2C,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAClK,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEvJ,SAAS,aAAa,CAAC,YAA0B;IAC/C,MAAM,SAAS,GAAG,YAA8C,CAAC;IACjE,IACE,OAAO,SAAS,CAAC,OAAO,KAAK,UAAU;QACvC,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU;QACzC,OAAO,SAAS,CAAC,WAAW,KAAK,UAAU;QAC3C,OAAO,SAAS,CAAC,KAAK,KAAK,UAAU,EACrC,CAAC;QACD,OAAO,SAAkC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,WAAqB;IACtD,IAAI,WAAW,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC;IACjD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,OAAO,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,WAAwB,CAAC;QAC7B,IAAI,YAA0B,CAAC;QAC/B,IAAI,SAAoB,CAAC;QACzB,IAAI,kBAAsC,CAAC;QAC3C,IAAI,GAAQ,CAAC;QAEb,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,WAAW,GAAG,IAAI,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAEhE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;YAChC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACnC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC7B,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;YAE/C,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;YAC7F,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAErF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,yCAAyC,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;YAChG,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,iBAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE/D,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBAC1D,MAAM,EAAG,KAAK;gBACd,IAAI,EAAK,SAAS;aACnB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1G,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEzC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBACvE,MAAM,EAAI,KAAK;gBACf,OAAO,EAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;aACjF,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,CAAE,KAAK,CAAC,OAAQ,CAAC,CAAC,CAAC,CAAC,OAAoC,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;YAC5F,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,iBAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE/D,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/E,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC1G,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,YAAY,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAC/D,MAAM,EAAK,KAAK;gBAChB,OAAO,EAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;gBACjF,KAAK,EAAM,CAAC;gBACZ,QAAQ,EAAG,IAAI;aAChB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3E,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,OAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7F,MAAM,CAAC,UAAU,CAAC,OAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAExC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAChE,MAAM,EAAK,KAAK;gBAChB,OAAO,EAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;gBACjF,MAAM,EAAK,UAAU,CAAC,MAAM;gBAC5B,QAAQ,EAAG,IAAI;aAChB,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,OAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,iBAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1G,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YAEpD,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBACpE,MAAM,EAAS,KAAK;gBACpB,QAAQ,EAAO,mBAAmB,CAAC,GAAG;gBACtC,YAAY,EAAG,mBAAmB,CAAC,SAAS;gBAC5C,IAAI,EAAW,EAAE,QAAQ,EAAE;aAC5B,CAAC,CAAC;YACH,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAExH,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBACpE,MAAM,EAAS,KAAK;gBACpB,QAAQ,EAAO,kBAAkB,CAAC,GAAG;gBACrC,YAAY,EAAG,kBAAkB,CAAC,YAAY;gBAC9C,IAAI,EAAW;oBACb,OAAO,EAAG,QAAQ;oBAClB,KAAK,EAAK,6CAA6C;oBACvD,QAAQ;iBACT;aACF,CAAC,CAAC;YACH,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAExH,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACrF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE1G,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAClE,MAAM,EAAI,KAAK;gBACf,OAAO,EAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;aACzB,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YACjF,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC7E,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBACtC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC;aACvC,CAAC,CAAC,CAAC;YAEJ,MAAM,2BAA2B,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAChF,MAAM,EAAI,KAAK;gBACf,OAAO,EAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,GAAG,EAAE,CAAC;aAChE,CAAC,CAAC;YACH,MAAM,2BAA2B,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC7G,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC3F,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBACnD,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC;aACvC,CAAC,CAAC,CAAC;YAEJ,MAAM,0BAA0B,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAC/E,MAAM,EAAI,KAAK;gBACf,OAAO,EAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC;aAC/D,CAAC,CAAC;YACH,MAAM,0BAA0B,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC3G,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC1F,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBACtC,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC;aACnD,CAAC,CAAC,CAAC;YAEJ,MAAM,sBAAsB,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAC3E,MAAM,EAAI,KAAK;gBACf,OAAO,EAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC;aACtG,CAAC,CAAC;YACH,MAAM,sBAAsB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACnG,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtF,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBACnD,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC;aACnD,CAAC,CAAC,CAAC;YAEJ,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBACtE,MAAM,EAAI,KAAK;gBACf,OAAO,EAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;aACtD,CAAC,CAAC;YACH,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACzF,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,iBAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAChE,MAAM,EAAG,KAAK;gBACd,MAAM,EAAG;oBACP,QAAQ,EAAG,cAAc;oBACzB,KAAK,EAAM,aAAa;oBACxB,QAAQ,EAAG,GAAG;iBACf;aACF,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAE3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YAClG,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC5D,MAAM,kBAAkB,GAAuB,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CAAC;YAEhI,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,iBAAiB,CAAC,0BAA0B,CAAC;gBACxF,MAAM,EAAE,KAAK;gBACb,kBAAkB;aACnB,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAC7E,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE5C,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,CAAC;gBACxD,MAAM,EAAM,KAAK;gBACjB,SAAS,EAAG,GAAG;gBACf,KAAK,EAAO;oBACV,SAAS,EAAG,gBAAgB,CAAC,QAAQ;oBACrC,MAAM,EAAM,aAAa,CAAC,IAAI;oBAC9B,QAAQ,EAAI,kBAAkB,CAAC,QAAQ;iBACxC;aACF,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACxG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEzC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBAC1D,MAAM,EAAS,KAAK;gBACpB,QAAQ,EAAO,kBAAkB,CAAC,QAAQ;gBAC1C,YAAY,EAAG,MAAM;gBACrB,MAAM,EAAS,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;aACpD,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1G,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEzC,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBACpE,MAAM,EAAS,KAAK;gBACpB,QAAQ,EAAO,kBAAkB,CAAC,GAAG;gBACrC,YAAY,EAAG,kBAAkB,CAAC,YAAY;gBAC9C,IAAI,EAAW;oBACb,OAAO,EAAI,QAAQ;oBACnB,KAAK,EAAM,6CAA6C;oBACxD,QAAQ,EAAG,kBAAkB,CAAC,QAAQ;iBACvC;aACF,CAAC,CAAC;YACH,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAExH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBACvE,MAAM,EAAe,GAAG;gBACxB,OAAO,EAAc,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBAChE,kBAAkB,EAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC7C,QAAQ,EAAa,IAAI;aAC1B,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,OAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;gBACnE,MAAM,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACvC,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBAC9C,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;gBACnC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;aACrC,CAAC,IAAI,EAAE,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;YAC3G,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,MAAM,kBAAkB,GAAuB;gBAC7C,QAAQ,EAAI,8CAA8C;gBAC1D,SAAS,EAAG,KAAK;gBACjB,KAAK,EAAO;oBACV,MAAM,EAAG,EAAE,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,kBAAkB,CAAC,EAAE;oBAC9E,IAAI,EAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAC,kBAAkB,CAAC,EAAE;iBAC7E;gBACD,SAAS,EAAE;oBACT,MAAM,EAAG,EAAE,KAAK,EAAE,IAAI,EAAE;oBACxB,IAAI,EAAK,EAAE;iBACZ;aACF,CAAC;YACF,MAAM,mBAAmB,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;YAC3F,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAyB,CAAC;YAC5E,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;gBAChD,MAAM,EAAK,KAAK;gBAChB,QAAQ,EAAG,kBAAkB,CAAC,QAAQ;gBACtC,QAAQ,EAAG,QAAQ;gBACnB,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEpD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBAC9D,MAAM,EAAS,KAAK;gBACpB,IAAI,EAAW,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC;gBACvD,UAAU,EAAK,kBAAkB;gBACjC,QAAQ,EAAO,kBAAkB,CAAC,QAAQ;gBAC1C,YAAY,EAAG,QAAQ;gBACvB,SAAS,EAAM,GAAG,CAAC,GAAG;gBACtB,MAAM,EAAS,sBAAsB;aACtC,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/H,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,CAAC;gBACxD,MAAM,EAAM,KAAK;gBACjB,SAAS,EAAG,KAAK;gBACjB,KAAK,EAAO;oBACV,SAAS,EAAG,gBAAgB,CAAC,QAAQ;oBACrC,MAAM,EAAM,aAAa,CAAC,IAAI;oBAC9B,QAAQ,EAAI,kBAAkB,CAAC,QAAQ;iBACxC;aACF,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAErH,MAAM,WAAW,GAAG,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACjE,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;gBAChD,MAAM,EAAe,KAAK;gBAC1B,KAAK,EAAgB,QAAQ,CAAC,KAAK;gBACnC,QAAQ,EAAa,kBAAkB,CAAC,QAAQ;gBAChD,SAAS,EAAY,GAAG,CAAC,GAAG;gBAC5B,kBAAkB,EAAG,2CAA2C,CAAC,UAAU;gBAC3E,QAAQ,EAAa,QAAQ;gBAC7B,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBAC1D,MAAM,EAAS,KAAK;gBACpB,QAAQ,EAAO,kBAAkB,CAAC,QAAQ;gBAC1C,YAAY,EAAG,MAAM;gBACrB,MAAM,EAAS,oBAAoB;aACpC,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBACvE,MAAM,EAAe,KAAK;gBAC1B,OAAO,EAAc,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBAChE,kBAAkB,EAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC7C,MAAM,EAAe,WAAW;gBAChC,KAAK,EAAgB,CAAC;gBACtB,QAAQ,EAAa,IAAI;aAC1B,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAExE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAE7E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAC3E,MAAM,EAAe,KAAK;gBAC1B,OAAO,EAAc,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBAChE,kBAAkB,EAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC7C,QAAQ,EAAa,IAAI;aAC1B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,SAAS,CAAC,OAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC7D,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACvD,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACzD,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC;aAC1D,CAAC,CAAC;YAEH,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACrF,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEnD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAC5E,MAAM,EAAK,KAAK;gBAChB,OAAO,EAAI,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBACtD,QAAQ,EAAG,IAAI;aAChB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC5D,MAAM,kBAAkB,GAAuB,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,4CAA4C,EAAE,CAAC;YAE3I,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,iBAAiB,CAAC,0BAA0B,CAAC;gBACxF,MAAM,EAAE,KAAK;gBACb,kBAAkB;aACnB,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,CAAC;gBACxD,MAAM,EAAM,KAAK;gBACjB,SAAS,EAAG,GAAG;gBACf,KAAK,EAAO;oBACV,SAAS,EAAG,gBAAgB,CAAC,QAAQ;oBACrC,MAAM,EAAM,aAAa,CAAC,IAAI;oBAC9B,QAAQ,EAAI,kBAAkB,CAAC,QAAQ;iBACxC;aACF,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAErH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBACvE,MAAM,EAAe,GAAG;gBACxB,kBAAkB,EAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC9C,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,0DAA0D,CAAC,CAAC;QACjH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { Encoder } from '../../src/utils/encoder.js';
2
+ import { EncryptionControlDeliveryRecipientAuthority } from '../../src/types/encryption-types.js';
1
3
  import freeForAll from '../vectors/protocol-definitions/free-for-all.json' with { type: 'json' };
2
4
  import { GeneralJwsVerifier } from '../../src/jose/jws/general/verifier.js';
3
5
  import { Message } from '../../src/core/message.js';
@@ -7,6 +9,7 @@ import { TestDataGenerator } from '../utils/test-data-generator.js';
7
9
  import { TestEventLog } from '../test-event-stream.js';
8
10
  import { TestStores } from '../test-stores.js';
9
11
  import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
12
+ import { createAudienceControlWrite, createDeliveryControlWrite, installEncryptedProtocol, processControlWrite } from '../utils/encryption-control-test-utils.js';
10
13
  import { DataStream, Dwn, DwnConstant, DwnErrorCode, DwnInterfaceName, DwnMethodName, Jws, PermissionGrant, PermissionsProtocol, Time } from '../../src/index.js';
11
14
  import { DidKey, UniversalResolver } from '@enbox/dids';
12
15
  export function testMessagesReadHandler() {
@@ -266,6 +269,98 @@ export function testMessagesReadHandler() {
266
269
  });
267
270
  });
268
271
  describe('with a grant', () => {
272
+ it('transports delivery control records for MessagesRead grants', async () => {
273
+ const alice = await TestDataGenerator.generateDidKeyPersona();
274
+ const bob = await TestDataGenerator.generateDidKeyPersona();
275
+ const carol = await TestDataGenerator.generateDidKeyPersona();
276
+ const protocolDefinition = {
277
+ protocol: 'http://messages-read-control-delivery.xyz',
278
+ published: false,
279
+ types: {
280
+ member: { schema: 'http://member-schema', dataFormats: ['application/json'] },
281
+ post: { schema: 'http://post-schema', dataFormats: ['application/json'] },
282
+ },
283
+ structure: {
284
+ member: { $role: true },
285
+ post: {},
286
+ },
287
+ };
288
+ const encryptedDefinition = await installEncryptedProtocol(dwn, alice, protocolDefinition);
289
+ const roleRuleSet = encryptedDefinition.structure.member;
290
+ const audience = await createAudienceControlWrite({
291
+ author: alice,
292
+ protocol: protocolDefinition.protocol,
293
+ rolePath: 'member',
294
+ roleRuleSet,
295
+ });
296
+ await processControlWrite(dwn, alice.did, audience);
297
+ const roleRecord = await TestDataGenerator.generateRecordsWrite({
298
+ author: alice,
299
+ data: Encoder.stringToBytes('bob is a member'),
300
+ dataFormat: 'application/json',
301
+ protocol: protocolDefinition.protocol,
302
+ protocolPath: 'member',
303
+ recipient: bob.did,
304
+ schema: 'http://member-schema',
305
+ });
306
+ expect((await dwn.processMessage(alice.did, roleRecord.message, { dataStream: roleRecord.dataStream })).status.code).toBe(202);
307
+ const delivery = await createDeliveryControlWrite({
308
+ author: alice,
309
+ keyId: audience.keyId,
310
+ protocol: protocolDefinition.protocol,
311
+ recipient: bob.did,
312
+ recipientAuthority: EncryptionControlDeliveryRecipientAuthority.RoleHolder,
313
+ rolePath: 'member',
314
+ roleRuleSet,
315
+ });
316
+ await processControlWrite(dwn, alice.did, delivery);
317
+ const deliveryCid = await Message.getCid(delivery.recordsWrite.message);
318
+ const bobGrant = await TestDataGenerator.generateGrantCreate({
319
+ author: alice,
320
+ grantedTo: bob,
321
+ scope: {
322
+ interface: DwnInterfaceName.Messages,
323
+ method: DwnMethodName.Read,
324
+ protocol: protocolDefinition.protocol,
325
+ },
326
+ });
327
+ expect((await dwn.processMessage(alice.did, bobGrant.message, { dataStream: bobGrant.dataStream })).status.code).toBe(202);
328
+ const carolGrant = await TestDataGenerator.generateGrantCreate({
329
+ author: alice,
330
+ grantedTo: carol,
331
+ scope: {
332
+ interface: DwnInterfaceName.Messages,
333
+ method: DwnMethodName.Read,
334
+ protocol: protocolDefinition.protocol,
335
+ },
336
+ });
337
+ expect((await dwn.processMessage(alice.did, carolGrant.message, { dataStream: carolGrant.dataStream })).status.code).toBe(202);
338
+ const audienceCid = await Message.getCid(audience.recordsWrite.message);
339
+ const carolAudienceRead = await TestDataGenerator.generateMessagesRead({
340
+ author: carol,
341
+ messageCid: audienceCid,
342
+ permissionGrantIds: [carolGrant.message.recordId],
343
+ });
344
+ const carolAudienceReply = await dwn.processMessage(alice.did, carolAudienceRead.message);
345
+ expect(carolAudienceReply.status.code).toBe(200);
346
+ expect(carolAudienceReply.entry?.messageCid).toBe(audienceCid);
347
+ const bobRead = await TestDataGenerator.generateMessagesRead({
348
+ author: bob,
349
+ messageCid: deliveryCid,
350
+ permissionGrantIds: [bobGrant.message.recordId],
351
+ });
352
+ const bobReply = await dwn.processMessage(alice.did, bobRead.message);
353
+ expect(bobReply.status.code).toBe(200);
354
+ expect(bobReply.entry?.messageCid).toBe(deliveryCid);
355
+ const carolRead = await TestDataGenerator.generateMessagesRead({
356
+ author: carol,
357
+ messageCid: deliveryCid,
358
+ permissionGrantIds: [carolGrant.message.recordId],
359
+ });
360
+ const carolReply = await dwn.processMessage(alice.did, carolRead.message);
361
+ expect(carolReply.status.code).toBe(200);
362
+ expect(carolReply.entry?.messageCid).toBe(deliveryCid);
363
+ });
269
364
  it('returns a 401 if grant has different DWN interface scope', async () => {
270
365
  // scenario: Alice grants Bob access to RecordsWrite, then Bob tries to invoke the grant with MessagesRead
271
366
  const alice = await TestDataGenerator.generateDidKeyPersona();