@enbox/dwn-sdk-js 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) 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 +2324 -1525
  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 +29 -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 +8 -11
  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 +60 -270
  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 +187 -452
  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/encryption/wrapped-grant-key-envelope.spec.js +43 -0
  199. package/dist/esm/tests/validation/json-schemas/encryption/wrapped-grant-key-envelope.spec.js.map +1 -0
  200. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +152 -0
  201. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  202. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +46 -1
  203. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  204. package/dist/types/generated/precompiled-validators.d.ts +20 -4
  205. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  206. package/dist/types/src/core/constants.d.ts +39 -0
  207. package/dist/types/src/core/constants.d.ts.map +1 -1
  208. package/dist/types/src/core/dwn-error.d.ts +29 -11
  209. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  210. package/dist/types/src/core/encryption-control.d.ts +128 -0
  211. package/dist/types/src/core/encryption-control.d.ts.map +1 -0
  212. package/dist/types/src/core/message.d.ts +4 -0
  213. package/dist/types/src/core/message.d.ts.map +1 -1
  214. package/dist/types/src/core/messages-grant-authorization.d.ts +11 -0
  215. package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
  216. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
  217. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  218. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  219. package/dist/types/src/core/recording-validation-state-reader.d.ts +2 -3
  220. package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -1
  221. package/dist/types/src/core/replication-apply.d.ts +10 -1
  222. package/dist/types/src/core/replication-apply.d.ts.map +1 -1
  223. package/dist/types/src/core/validation-state-reader.d.ts +2 -3
  224. package/dist/types/src/core/validation-state-reader.d.ts.map +1 -1
  225. package/dist/types/src/dwn.d.ts.map +1 -1
  226. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts +1 -1
  227. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts.map +1 -1
  228. package/dist/types/src/handlers/messages-query.d.ts.map +1 -1
  229. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  230. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  231. package/dist/types/src/handlers/protocols-configure.d.ts +1 -0
  232. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  233. package/dist/types/src/handlers/records-count.d.ts +2 -0
  234. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  235. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  236. package/dist/types/src/handlers/records-query.d.ts +3 -0
  237. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  238. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  239. package/dist/types/src/handlers/records-subscribe.d.ts +2 -0
  240. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  241. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  242. package/dist/types/src/index.d.ts +12 -18
  243. package/dist/types/src/index.d.ts.map +1 -1
  244. package/dist/types/src/interfaces/protocols-configure.d.ts +13 -1
  245. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  246. package/dist/types/src/interfaces/records-write.d.ts +5 -1
  247. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  248. package/dist/types/src/jose/algorithms/signing/ed25519.d.ts.map +1 -1
  249. package/dist/types/src/protocols/encryption.d.ts +15 -19
  250. package/dist/types/src/protocols/encryption.d.ts.map +1 -1
  251. package/dist/types/src/store/blockstore-level.d.ts +11 -11
  252. package/dist/types/src/store/blockstore-level.d.ts.map +1 -1
  253. package/dist/types/src/store/blockstore-mock.d.ts +12 -12
  254. package/dist/types/src/store/blockstore-mock.d.ts.map +1 -1
  255. package/dist/types/src/store/blockstore-utils.d.ts +23 -0
  256. package/dist/types/src/store/blockstore-utils.d.ts.map +1 -0
  257. package/dist/types/src/store/blockstore.d.ts +3 -0
  258. package/dist/types/src/store/blockstore.d.ts.map +1 -0
  259. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  260. package/dist/types/src/store/level.d.ts +13 -0
  261. package/dist/types/src/store/level.d.ts.map +1 -0
  262. package/dist/types/src/types/cache.d.ts +2 -2
  263. package/dist/types/src/types/cache.d.ts.map +1 -1
  264. package/dist/types/src/types/encryption-types.d.ts +31 -2
  265. package/dist/types/src/types/encryption-types.d.ts.map +1 -1
  266. package/dist/types/src/types/validation-state-reader.d.ts +3 -5
  267. package/dist/types/src/types/validation-state-reader.d.ts.map +1 -1
  268. package/dist/types/src/utils/data-stream.d.ts +5 -0
  269. package/dist/types/src/utils/data-stream.d.ts.map +1 -1
  270. package/dist/types/src/utils/encryption.d.ts +53 -24
  271. package/dist/types/src/utils/encryption.d.ts.map +1 -1
  272. package/dist/types/src/utils/grant-key-coverage.d.ts +36 -0
  273. package/dist/types/src/utils/grant-key-coverage.d.ts.map +1 -0
  274. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  275. package/dist/types/src/utils/jws.d.ts.map +1 -1
  276. package/dist/types/src/utils/memory-cache.d.ts +4 -2
  277. package/dist/types/src/utils/memory-cache.d.ts.map +1 -1
  278. package/dist/types/src/utils/protocols.d.ts +11 -0
  279. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  280. package/dist/types/src/utils/record-limit-occupancy.d.ts +7 -0
  281. package/dist/types/src/utils/record-limit-occupancy.d.ts.map +1 -1
  282. package/dist/types/src/utils/records.d.ts +2 -0
  283. package/dist/types/src/utils/records.d.ts.map +1 -1
  284. package/dist/types/src/utils/secp256k1.d.ts.map +1 -1
  285. package/dist/types/src/utils/secp256r1.d.ts.map +1 -1
  286. package/dist/types/src/utils/time.d.ts +21 -13
  287. package/dist/types/src/utils/time.d.ts.map +1 -1
  288. package/dist/types/tests/core/constants.spec.d.ts +2 -0
  289. package/dist/types/tests/core/constants.spec.d.ts.map +1 -0
  290. package/dist/types/tests/core/encryption-control.spec.d.ts +2 -0
  291. package/dist/types/tests/core/encryption-control.spec.d.ts.map +1 -0
  292. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  293. package/dist/types/tests/event-emitter-wake-publisher.spec.d.ts +2 -0
  294. package/dist/types/tests/event-emitter-wake-publisher.spec.d.ts.map +1 -0
  295. package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -1
  296. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  297. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  298. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
  299. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  300. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  301. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  302. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  303. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  304. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  305. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
  306. package/dist/types/tests/store/blockstore-utils.spec.d.ts +2 -0
  307. package/dist/types/tests/store/blockstore-utils.spec.d.ts.map +1 -0
  308. package/dist/types/tests/test-stores.d.ts.map +1 -1
  309. package/dist/types/tests/utils/encryption-control-test-utils.d.ts +46 -0
  310. package/dist/types/tests/utils/encryption-control-test-utils.d.ts.map +1 -0
  311. package/dist/types/tests/utils/grant-key-coverage.spec.d.ts +2 -0
  312. package/dist/types/tests/utils/grant-key-coverage.spec.d.ts.map +1 -0
  313. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  314. package/dist/types/tests/validation/json-schemas/encryption/audience.spec.d.ts +2 -0
  315. package/dist/types/tests/validation/json-schemas/encryption/audience.spec.d.ts.map +1 -0
  316. package/dist/types/tests/validation/json-schemas/encryption/delivery.spec.d.ts +2 -0
  317. package/dist/types/tests/validation/json-schemas/encryption/delivery.spec.d.ts.map +1 -0
  318. package/dist/types/tests/validation/json-schemas/encryption/wrapped-grant-key-envelope.spec.d.ts +2 -0
  319. package/dist/types/tests/validation/json-schemas/encryption/wrapped-grant-key-envelope.spec.d.ts.map +1 -0
  320. package/package.json +47 -28
  321. package/src/core/constants.ts +61 -0
  322. package/src/core/dwn-error.ts +29 -11
  323. package/src/core/encryption-control.ts +1249 -0
  324. package/src/core/message.ts +7 -0
  325. package/src/core/messages-grant-authorization.ts +60 -9
  326. package/src/core/protocol-authorization-action.ts +3 -13
  327. package/src/core/protocol-authorization-validation.ts +66 -46
  328. package/src/core/protocol-authorization.ts +7 -0
  329. package/src/core/recording-validation-state-reader.ts +4 -5
  330. package/src/core/replication-apply.ts +77 -133
  331. package/src/core/validation-state-reader.ts +6 -8
  332. package/src/dwn.ts +1 -2
  333. package/src/event-stream/event-emitter-wake-publisher.ts +10 -14
  334. package/src/handlers/messages-query.ts +6 -22
  335. package/src/handlers/messages-read.ts +4 -3
  336. package/src/handlers/messages-subscribe.ts +34 -30
  337. package/src/handlers/protocols-configure.ts +7 -4
  338. package/src/handlers/records-count.ts +111 -10
  339. package/src/handlers/records-delete.ts +15 -0
  340. package/src/handlers/records-query.ts +176 -20
  341. package/src/handlers/records-read.ts +19 -6
  342. package/src/handlers/records-subscribe.ts +158 -8
  343. package/src/handlers/records-write.ts +19 -0
  344. package/src/index.ts +50 -22
  345. package/src/interfaces/protocols-configure.ts +102 -11
  346. package/src/interfaces/records-write.ts +49 -43
  347. package/src/jose/algorithms/signing/ed25519.ts +7 -6
  348. package/src/jose/jws/general/verifier.ts +3 -3
  349. package/src/protocols/encryption.ts +94 -411
  350. package/src/store/blockstore-level.ts +33 -37
  351. package/src/store/blockstore-mock.ts +24 -38
  352. package/src/store/blockstore-utils.ts +85 -0
  353. package/src/store/blockstore.ts +8 -0
  354. package/src/store/data-store-level.ts +5 -12
  355. package/src/store/level.ts +19 -0
  356. package/src/types/cache.ts +3 -3
  357. package/src/types/encryption-types.ts +39 -2
  358. package/src/types/validation-state-reader.ts +3 -5
  359. package/src/utils/data-stream.ts +29 -1
  360. package/src/utils/encryption.ts +190 -60
  361. package/src/utils/grant-key-coverage.ts +303 -0
  362. package/src/utils/hd-key.ts +1 -2
  363. package/src/utils/jws.ts +8 -2
  364. package/src/utils/memory-cache.ts +42 -11
  365. package/src/utils/protocols.ts +32 -0
  366. package/src/utils/record-limit-occupancy.ts +34 -5
  367. package/src/utils/records.ts +36 -2
  368. package/src/utils/secp256k1.ts +12 -12
  369. package/src/utils/secp256r1.ts +12 -22
  370. package/src/utils/time.ts +145 -27
  371. package/dist/esm/tests/validation/json-schemas/encryption/audience-key.spec.js +0 -40
  372. package/dist/esm/tests/validation/json-schemas/encryption/audience-key.spec.js.map +0 -1
  373. package/dist/types/tests/validation/json-schemas/encryption/audience-key.spec.d.ts +0 -2
  374. package/dist/types/tests/validation/json-schemas/encryption/audience-key.spec.d.ts.map +0 -1
  375. package/src/types/mitt.d.ts +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"messages-read.spec.js","sourceRoot":"","sources":["../../../../tests/handlers/messages-read.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages-read.spec.js","sourceRoot":"","sources":["../../../../tests/handlers/messages-read.spec.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import freeForAll from '../vectors/protocol-definitions/free-for-all.json' with
3
3
  import sinon from 'sinon';
4
4
  import { Dwn } from '../../src/dwn.js';
5
5
  import { DwnErrorCode } from '../../src/core/dwn-error.js';
6
+ import { Encoder } from '../../src/utils/encoder.js';
7
+ import { EncryptionControlDeliveryRecipientAuthority } from '../../src/types/encryption-types.js';
6
8
  import { Jws } from '../../src/utils/jws.js';
7
9
  import { Message } from '../../src/core/message.js';
8
10
  import { MessagesGrantAuthorization } from '../../src/core/messages-grant-authorization.js';
@@ -12,6 +14,7 @@ import { Poller } from '../utils/poller.js';
12
14
  import { TestDataGenerator } from '../utils/test-data-generator.js';
13
15
  import { TestEventLog } from '../test-event-stream.js';
14
16
  import { TestStores } from '../test-stores.js';
17
+ import { createAudienceControlWrite, createDeliveryControlWrite, installEncryptedProtocol, processControlWrite } from '../utils/encryption-control-test-utils.js';
15
18
  import { DataStream, DwnInterfaceName, DwnMethodName, PermissionGrant, PermissionsProtocol, Time } from '../../src/index.js';
16
19
  import { DidKey, UniversalResolver } from '@enbox/dids';
17
20
  import { createTestValidationStateReader } from '../utils/test-validation-state-reader.js';
@@ -359,6 +362,92 @@ export function testMessagesSubscribeHandler() {
359
362
  expect(messageCids.length).toBeGreaterThanOrEqual(1);
360
363
  });
361
364
  });
365
+ it('delivers control record envelopes to delegated MessagesSubscribe streams', async () => {
366
+ const alice = await TestDataGenerator.generateDidKeyPersona();
367
+ const bob = await TestDataGenerator.generateDidKeyPersona();
368
+ const carol = await TestDataGenerator.generateDidKeyPersona();
369
+ const protocolDefinition = {
370
+ protocol: 'http://messages-subscribe-control-delivery.xyz',
371
+ published: false,
372
+ types: {
373
+ member: { schema: 'http://member-schema', dataFormats: ['application/json'] },
374
+ post: { schema: 'http://post-schema', dataFormats: ['application/json'] },
375
+ },
376
+ structure: {
377
+ member: { $role: true },
378
+ post: {},
379
+ },
380
+ };
381
+ const encryptedDefinition = await installEncryptedProtocol(dwn, alice, protocolDefinition);
382
+ const roleRuleSet = encryptedDefinition.structure.member;
383
+ const audience = await createAudienceControlWrite({
384
+ author: alice,
385
+ protocol: protocolDefinition.protocol,
386
+ rolePath: 'member',
387
+ roleRuleSet,
388
+ });
389
+ await processControlWrite(dwn, alice.did, audience);
390
+ const roleRecord = await TestDataGenerator.generateRecordsWrite({
391
+ author: alice,
392
+ data: Encoder.stringToBytes('bob is a member'),
393
+ dataFormat: 'application/json',
394
+ protocol: protocolDefinition.protocol,
395
+ protocolPath: 'member',
396
+ recipient: bob.did,
397
+ schema: 'http://member-schema',
398
+ });
399
+ expect((await dwn.processMessage(alice.did, roleRecord.message, { dataStream: roleRecord.dataStream })).status.code).toBe(202);
400
+ const grant = await TestDataGenerator.generateGrantCreate({
401
+ author: alice,
402
+ grantedTo: carol,
403
+ scope: {
404
+ interface: DwnInterfaceName.Messages,
405
+ method: DwnMethodName.Read,
406
+ protocol: protocolDefinition.protocol,
407
+ },
408
+ });
409
+ expect((await dwn.processMessage(alice.did, grant.message, { dataStream: grant.dataStream })).status.code).toBe(202);
410
+ const messageCids = [];
411
+ const received = [];
412
+ const handler = async (msg) => {
413
+ received.push(msg);
414
+ if (msg.type !== 'event') {
415
+ return;
416
+ }
417
+ messageCids.push(await Message.getCid(msg.event.message));
418
+ };
419
+ const { message: subscribeMessage } = await TestDataGenerator.generateMessagesSubscribe({
420
+ author: carol,
421
+ filters: [{ protocol: protocolDefinition.protocol }],
422
+ permissionGrantIds: [grant.message.recordId],
423
+ });
424
+ const subscribeReply = await dwn.processMessage(alice.did, subscribeMessage, { subscriptionHandler: handler });
425
+ expect(subscribeReply.status.code).toBe(200);
426
+ const delivery = await createDeliveryControlWrite({
427
+ author: alice,
428
+ keyId: audience.keyId,
429
+ protocol: protocolDefinition.protocol,
430
+ recipient: bob.did,
431
+ recipientAuthority: EncryptionControlDeliveryRecipientAuthority.RoleHolder,
432
+ rolePath: 'member',
433
+ roleRuleSet,
434
+ });
435
+ await processControlWrite(dwn, alice.did, delivery);
436
+ const record = await TestDataGenerator.generateRecordsWrite({
437
+ author: alice,
438
+ protocol: protocolDefinition.protocol,
439
+ protocolPath: 'post',
440
+ schema: 'http://post-schema',
441
+ });
442
+ expect((await dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream })).status.code).toBe(202);
443
+ const recordCid = await Message.getCid(record.message);
444
+ const deliveryCid = await Message.getCid(delivery.recordsWrite.message);
445
+ await Poller.pollUntilSuccessOrTimeout(async () => {
446
+ expect(messageCids).toContain(recordCid);
447
+ expect(messageCids).toContain(deliveryCid);
448
+ });
449
+ expect(received.every(msg => msg.type !== 'error')).toBe(true);
450
+ });
362
451
  it('rejects subscribe of messages with mismatching interface grant scope', async () => {
363
452
  const alice = await TestDataGenerator.generateDidKeyPersona();
364
453
  const bob = await TestDataGenerator.generateDidKeyPersona();
@@ -707,6 +796,7 @@ export function testMessagesSubscribeHandler() {
707
796
  });
708
797
  await Time.minimalSleep();
709
798
  expect(received.filter(msg => msg.type === 'error').length).toBe(1);
799
+ expect(received.find(msg => msg.type === 'error')?.error.code).toBe(DwnErrorCode.MessagesSubscribeDeliveryFailed);
710
800
  expect(received.filter(msg => msg.type === 'event').length).toBe(0);
711
801
  });
712
802
  it('does not run delivery grant checks for owner subscriptions', async () => {