@enbox/dwn-sdk-js 0.0.7 → 0.1.0

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 (368) hide show
  1. package/dist/browser.mjs +8 -8
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/generated/precompiled-validators.js +817 -911
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/src/core/constants.js +11 -0
  6. package/dist/esm/src/core/constants.js.map +1 -0
  7. package/dist/esm/src/core/core-protocol.js +44 -0
  8. package/dist/esm/src/core/core-protocol.js.map +1 -0
  9. package/dist/esm/src/core/dwn-error.js +12 -12
  10. package/dist/esm/src/core/dwn-error.js.map +1 -1
  11. package/dist/esm/src/core/grant-authorization.js +16 -3
  12. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  13. package/dist/esm/src/core/protocol-authorization-action.js +5 -0
  14. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
  15. package/dist/esm/src/core/protocol-authorization-validation.js +91 -0
  16. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  17. package/dist/esm/src/core/protocol-authorization.js +53 -30
  18. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  19. package/dist/esm/src/core/records-grant-authorization.js +6 -8
  20. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  21. package/dist/esm/src/core/resumable-task-manager.js +2 -0
  22. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  23. package/dist/esm/src/dwn.js +42 -18
  24. package/dist/esm/src/dwn.js.map +1 -1
  25. package/dist/esm/src/event-stream/event-emitter-event-log.js +204 -0
  26. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -0
  27. package/dist/esm/src/handlers/messages-read.js +7 -11
  28. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  29. package/dist/esm/src/handlers/messages-subscribe.js +22 -24
  30. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  31. package/dist/esm/src/handlers/messages-sync.js +11 -15
  32. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  33. package/dist/esm/src/handlers/protocols-configure.js +37 -27
  34. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  35. package/dist/esm/src/handlers/protocols-query.js +7 -11
  36. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  37. package/dist/esm/src/handlers/records-count.js +10 -12
  38. package/dist/esm/src/handlers/records-count.js.map +1 -1
  39. package/dist/esm/src/handlers/records-delete.js +10 -18
  40. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  41. package/dist/esm/src/handlers/records-query.js +11 -15
  42. package/dist/esm/src/handlers/records-query.js.map +1 -1
  43. package/dist/esm/src/handlers/records-read.js +31 -26
  44. package/dist/esm/src/handlers/records-read.js.map +1 -1
  45. package/dist/esm/src/handlers/records-subscribe.js +39 -26
  46. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  47. package/dist/esm/src/handlers/records-write.js +128 -105
  48. package/dist/esm/src/handlers/records-write.js.map +1 -1
  49. package/dist/esm/src/index.js +5 -2
  50. package/dist/esm/src/index.js.map +1 -1
  51. package/dist/esm/src/interfaces/messages-subscribe.js +1 -0
  52. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  53. package/dist/esm/src/interfaces/protocols-configure.js +33 -3
  54. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  55. package/dist/esm/src/interfaces/records-count.js +1 -1
  56. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  57. package/dist/esm/src/interfaces/records-delete.js +1 -1
  58. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  59. package/dist/esm/src/interfaces/records-query.js +1 -1
  60. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  61. package/dist/esm/src/interfaces/records-read.js +1 -1
  62. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  63. package/dist/esm/src/interfaces/records-subscribe.js +2 -1
  64. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  65. package/dist/esm/src/interfaces/records-write-signing.js +1 -12
  66. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -1
  67. package/dist/esm/src/interfaces/records-write.js +25 -41
  68. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  69. package/dist/esm/src/protocols/permission-grant.js +1 -1
  70. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  71. package/dist/esm/src/protocols/permission-request.js +1 -1
  72. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  73. package/dist/esm/src/protocols/permissions.js +113 -5
  74. package/dist/esm/src/protocols/permissions.js.map +1 -1
  75. package/dist/esm/src/state-index/state-index-level.js +5 -7
  76. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  77. package/dist/esm/src/store/data-store-level.js +110 -33
  78. package/dist/esm/src/store/data-store-level.js.map +1 -1
  79. package/dist/esm/src/store/index-level.js +42 -32
  80. package/dist/esm/src/store/index-level.js.map +1 -1
  81. package/dist/esm/src/store/storage-controller.js +70 -6
  82. package/dist/esm/src/store/storage-controller.js.map +1 -1
  83. package/dist/esm/src/types/permission-types.js.map +1 -1
  84. package/dist/esm/src/types/protocols-types.js +11 -0
  85. package/dist/esm/src/types/protocols-types.js.map +1 -1
  86. package/dist/esm/src/types/records-types.js.map +1 -1
  87. package/dist/esm/src/utils/hd-key.js +0 -8
  88. package/dist/esm/src/utils/hd-key.js.map +1 -1
  89. package/dist/esm/src/utils/messages.js +16 -34
  90. package/dist/esm/src/utils/messages.js.map +1 -1
  91. package/dist/esm/src/utils/records.js +5 -43
  92. package/dist/esm/src/utils/records.js.map +1 -1
  93. package/dist/esm/tests/core/protocol-authorization.spec.js +2 -1
  94. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  95. package/dist/esm/tests/dwn.spec.js +32 -43
  96. package/dist/esm/tests/dwn.spec.js.map +1 -1
  97. package/dist/esm/tests/event-emitter-event-log.spec.js +305 -0
  98. package/dist/esm/tests/event-emitter-event-log.spec.js.map +1 -0
  99. package/dist/esm/tests/features/author-delegated-grant.spec.js +14 -7
  100. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  101. package/dist/esm/tests/features/owner-delegated-grant.spec.js +9 -5
  102. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  103. package/dist/esm/tests/features/owner-signature.spec.js +14 -7
  104. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  105. package/dist/esm/tests/features/permissions.spec.js +12 -12
  106. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  107. package/dist/esm/tests/features/protocol-composition.spec.js +636 -5
  108. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  109. package/dist/esm/tests/features/protocol-create-action.spec.js +4 -4
  110. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  111. package/dist/esm/tests/features/protocol-delete-action.spec.js +7 -7
  112. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  113. package/dist/esm/tests/features/protocol-update-action.spec.js +4 -4
  114. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  115. package/dist/esm/tests/features/records-delivery.spec.js +236 -0
  116. package/dist/esm/tests/features/records-delivery.spec.js.map +1 -0
  117. package/dist/esm/tests/features/records-immutable.spec.js +315 -0
  118. package/dist/esm/tests/features/records-immutable.spec.js.map +1 -0
  119. package/dist/esm/tests/features/records-prune.spec.js +4 -4
  120. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  121. package/dist/esm/tests/features/records-record-limit.spec.js +542 -0
  122. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -0
  123. package/dist/esm/tests/features/records-squash.spec.js +1055 -0
  124. package/dist/esm/tests/features/records-squash.spec.js.map +1 -0
  125. package/dist/esm/tests/features/records-tags.spec.js +16 -4
  126. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  127. package/dist/esm/tests/features/resumable-tasks.spec.js +7 -8
  128. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  129. package/dist/esm/tests/handlers/messages-read.spec.js +11 -5
  130. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  131. package/dist/esm/tests/handlers/messages-subscribe.spec.js +169 -22
  132. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  133. package/dist/esm/tests/handlers/messages-sync.spec.js +103 -21
  134. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  135. package/dist/esm/tests/handlers/protocols-configure.spec.js +5 -5
  136. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  137. package/dist/esm/tests/handlers/protocols-query.spec.js +5 -5
  138. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  139. package/dist/esm/tests/handlers/records-count.spec.js +9 -4
  140. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  141. package/dist/esm/tests/handlers/records-delete.spec.js +24 -25
  142. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  143. package/dist/esm/tests/handlers/records-query.spec.js +68 -9
  144. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  145. package/dist/esm/tests/handlers/records-read.spec.js +24 -138
  146. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  147. package/dist/esm/tests/handlers/records-subscribe.spec.js +175 -35
  148. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  149. package/dist/esm/tests/handlers/records-write.spec.js +176 -72
  150. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  151. package/dist/esm/tests/interfaces/records-write.spec.js +52 -68
  152. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  153. package/dist/esm/tests/protocols/permission-grant.spec.js +6 -6
  154. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
  155. package/dist/esm/tests/protocols/permission-request.spec.js +4 -4
  156. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  157. package/dist/esm/tests/protocols/permissions.spec.js +4 -4
  158. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  159. package/dist/esm/tests/scenarios/aggregator.spec.js +4 -4
  160. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  161. package/dist/esm/tests/scenarios/deleted-record.spec.js +350 -5
  162. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  163. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +4 -4
  164. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  165. package/dist/esm/tests/scenarios/nested-roles.spec.js +4 -4
  166. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  167. package/dist/esm/tests/scenarios/subscriptions.spec.js +93 -40
  168. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  169. package/dist/esm/tests/store/data-store-level.spec.js +102 -41
  170. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  171. package/dist/esm/tests/test-event-stream.js +12 -13
  172. package/dist/esm/tests/test-event-stream.js.map +1 -1
  173. package/dist/esm/tests/test-suite.js +10 -4
  174. package/dist/esm/tests/test-suite.js.map +1 -1
  175. package/dist/esm/tests/utils/messages.spec.js +12 -5
  176. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  177. package/dist/esm/tests/utils/records.spec.js +8 -12
  178. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  179. package/dist/esm/tests/utils/test-data-generator.js +36 -2
  180. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  181. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +37 -8
  182. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  183. package/dist/types/generated/precompiled-validators.d.ts +49 -40
  184. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  185. package/dist/types/src/core/constants.d.ts +11 -0
  186. package/dist/types/src/core/constants.d.ts.map +1 -0
  187. package/dist/types/src/core/core-protocol.d.ts +89 -0
  188. package/dist/types/src/core/core-protocol.d.ts.map +1 -0
  189. package/dist/types/src/core/dwn-error.d.ts +12 -12
  190. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  191. package/dist/types/src/core/grant-authorization.d.ts +6 -2
  192. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  193. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
  194. package/dist/types/src/core/protocol-authorization-validation.d.ts +30 -0
  195. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  196. package/dist/types/src/core/protocol-authorization.d.ts +19 -11
  197. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  198. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  199. package/dist/types/src/core/resumable-task-manager.d.ts +2 -1
  200. package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
  201. package/dist/types/src/dwn.d.ts +19 -7
  202. package/dist/types/src/dwn.d.ts.map +1 -1
  203. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +50 -0
  204. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -0
  205. package/dist/types/src/handlers/messages-read.d.ts +3 -8
  206. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  207. package/dist/types/src/handlers/messages-subscribe.d.ts +6 -10
  208. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  209. package/dist/types/src/handlers/messages-sync.d.ts +3 -8
  210. package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
  211. package/dist/types/src/handlers/protocols-configure.d.ts +3 -10
  212. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  213. package/dist/types/src/handlers/protocols-query.d.ts +3 -8
  214. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
  215. package/dist/types/src/handlers/records-count.d.ts +3 -6
  216. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  217. package/dist/types/src/handlers/records-delete.d.ts +3 -8
  218. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  219. package/dist/types/src/handlers/records-query.d.ts +3 -8
  220. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  221. package/dist/types/src/handlers/records-read.d.ts +3 -8
  222. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  223. package/dist/types/src/handlers/records-subscribe.d.ts +8 -10
  224. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  225. package/dist/types/src/handlers/records-write.d.ts +12 -25
  226. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  227. package/dist/types/src/index.d.ts +8 -4
  228. package/dist/types/src/index.d.ts.map +1 -1
  229. package/dist/types/src/interfaces/messages-subscribe.d.ts +5 -0
  230. package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
  231. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  232. package/dist/types/src/interfaces/records-subscribe.d.ts +5 -0
  233. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  234. package/dist/types/src/interfaces/records-write-signing.d.ts +3 -4
  235. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -1
  236. package/dist/types/src/interfaces/records-write.d.ts +11 -11
  237. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  238. package/dist/types/src/protocols/permission-grant.d.ts +1 -1
  239. package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
  240. package/dist/types/src/protocols/permission-request.d.ts +1 -1
  241. package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
  242. package/dist/types/src/protocols/permissions.d.ts +40 -3
  243. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  244. package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
  245. package/dist/types/src/store/data-store-level.d.ts +20 -4
  246. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  247. package/dist/types/src/store/index-level.d.ts +4 -0
  248. package/dist/types/src/store/index-level.d.ts.map +1 -1
  249. package/dist/types/src/store/storage-controller.d.ts +20 -6
  250. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  251. package/dist/types/src/types/message-types.d.ts +3 -3
  252. package/dist/types/src/types/message-types.d.ts.map +1 -1
  253. package/dist/types/src/types/messages-types.d.ts +12 -3
  254. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  255. package/dist/types/src/types/method-handler.d.ts +24 -3
  256. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  257. package/dist/types/src/types/permission-types.d.ts +7 -0
  258. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  259. package/dist/types/src/types/protocols-types.d.ts +69 -2
  260. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  261. package/dist/types/src/types/records-types.d.ts +23 -6
  262. package/dist/types/src/types/records-types.d.ts.map +1 -1
  263. package/dist/types/src/types/subscriptions.d.ts +151 -13
  264. package/dist/types/src/types/subscriptions.d.ts.map +1 -1
  265. package/dist/types/src/utils/hd-key.d.ts +1 -9
  266. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  267. package/dist/types/src/utils/messages.d.ts +7 -5
  268. package/dist/types/src/utils/messages.d.ts.map +1 -1
  269. package/dist/types/src/utils/records.d.ts +1 -11
  270. package/dist/types/src/utils/records.d.ts.map +1 -1
  271. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  272. package/dist/types/tests/event-emitter-event-log.spec.d.ts +2 -0
  273. package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +1 -0
  274. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  275. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  276. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  277. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  278. package/dist/types/tests/features/records-delivery.spec.d.ts +2 -0
  279. package/dist/types/tests/features/records-delivery.spec.d.ts.map +1 -0
  280. package/dist/types/tests/features/records-immutable.spec.d.ts +2 -0
  281. package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -0
  282. package/dist/types/tests/features/records-record-limit.spec.d.ts +2 -0
  283. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -0
  284. package/dist/types/tests/features/records-squash.spec.d.ts +2 -0
  285. package/dist/types/tests/features/records-squash.spec.d.ts.map +1 -0
  286. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  287. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  288. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  289. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  290. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -1
  291. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  292. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  293. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  294. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  295. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  296. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  297. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  298. package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
  299. package/dist/types/tests/test-event-stream.d.ts +11 -12
  300. package/dist/types/tests/test-event-stream.d.ts.map +1 -1
  301. package/dist/types/tests/test-suite.d.ts +2 -2
  302. package/dist/types/tests/test-suite.d.ts.map +1 -1
  303. package/dist/types/tests/utils/test-data-generator.d.ts +19 -0
  304. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  305. package/package.json +5 -4
  306. package/src/core/constants.ts +11 -0
  307. package/src/core/core-protocol.ts +129 -0
  308. package/src/core/dwn-error.ts +18 -12
  309. package/src/core/grant-authorization.ts +20 -3
  310. package/src/core/protocol-authorization-action.ts +5 -0
  311. package/src/core/protocol-authorization-validation.ts +133 -0
  312. package/src/core/protocol-authorization.ts +71 -23
  313. package/src/core/records-grant-authorization.ts +6 -8
  314. package/src/core/resumable-task-manager.ts +3 -1
  315. package/src/dwn.ts +58 -73
  316. package/src/event-stream/event-emitter-event-log.ts +283 -0
  317. package/src/handlers/messages-read.ts +8 -9
  318. package/src/handlers/messages-subscribe.ts +24 -28
  319. package/src/handlers/messages-sync.ts +10 -16
  320. package/src/handlers/protocols-configure.ts +47 -32
  321. package/src/handlers/protocols-query.ts +6 -9
  322. package/src/handlers/records-count.ts +11 -10
  323. package/src/handlers/records-delete.ts +12 -21
  324. package/src/handlers/records-query.ts +12 -12
  325. package/src/handlers/records-read.ts +34 -22
  326. package/src/handlers/records-subscribe.ts +47 -26
  327. package/src/handlers/records-write.ts +152 -119
  328. package/src/index.ts +9 -5
  329. package/src/interfaces/messages-subscribe.ts +7 -1
  330. package/src/interfaces/protocols-configure.ts +51 -3
  331. package/src/interfaces/records-count.ts +1 -1
  332. package/src/interfaces/records-delete.ts +1 -1
  333. package/src/interfaces/records-query.ts +1 -1
  334. package/src/interfaces/records-read.ts +1 -1
  335. package/src/interfaces/records-subscribe.ts +8 -1
  336. package/src/interfaces/records-write-signing.ts +2 -22
  337. package/src/interfaces/records-write.ts +35 -48
  338. package/src/protocols/permission-grant.ts +1 -1
  339. package/src/protocols/permission-request.ts +1 -1
  340. package/src/protocols/permissions.ts +148 -6
  341. package/src/state-index/state-index-level.ts +5 -7
  342. package/src/store/data-store-level.ts +124 -34
  343. package/src/store/index-level.ts +44 -35
  344. package/src/store/storage-controller.ts +89 -12
  345. package/src/types/message-types.ts +3 -3
  346. package/src/types/messages-types.ts +12 -3
  347. package/src/types/method-handler.ts +26 -4
  348. package/src/types/mitt.d.ts +28 -0
  349. package/src/types/permission-types.ts +7 -0
  350. package/src/types/protocols-types.ts +78 -1
  351. package/src/types/records-types.ts +24 -6
  352. package/src/types/subscriptions.ts +178 -14
  353. package/src/utils/hd-key.ts +0 -9
  354. package/src/utils/messages.ts +17 -37
  355. package/src/utils/records.ts +7 -58
  356. package/dist/esm/src/event-stream/event-emitter-stream.js +0 -46
  357. package/dist/esm/src/event-stream/event-emitter-stream.js.map +0 -1
  358. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +0 -68
  359. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +0 -1
  360. package/dist/esm/tests/event-stream/event-stream.spec.js +0 -114
  361. package/dist/esm/tests/event-stream/event-stream.spec.js.map +0 -1
  362. package/dist/types/src/event-stream/event-emitter-stream.d.ts +0 -23
  363. package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +0 -1
  364. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts +0 -2
  365. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +0 -1
  366. package/dist/types/tests/event-stream/event-stream.spec.d.ts +0 -2
  367. package/dist/types/tests/event-stream/event-stream.spec.d.ts.map +0 -1
  368. package/src/event-stream/event-emitter-stream.ts +0 -69
@@ -1 +1 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../../../../src/utils/records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../../../src/utils/records.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { DwnErrorCode } from '../../src/core/dwn-error.js';
2
+ import { getActionsSeekingARuleMatch } from '../../src/core/protocol-authorization-action.js';
2
3
  import { MessageStoreLevel } from '../../src/index.js';
3
4
  import { ProtocolAuthorization } from '../../src/core/protocol-authorization.js';
4
5
  import { TestDataGenerator } from '../utils/test-data-generator.js';
@@ -32,7 +33,7 @@ describe('ProtocolAuthorization', () => {
32
33
  }
33
34
  };
34
35
  const messageStoreStub = sinon.createStubInstance(MessageStoreLevel);
35
- expect(await ProtocolAuthorization['getActionsSeekingARuleMatch'](alice.did, deliberatelyCraftedInvalidMessage, messageStoreStub)).toHaveLength(0);
36
+ expect(await getActionsSeekingARuleMatch(alice.did, deliberatelyCraftedInvalidMessage, messageStoreStub)).toHaveLength(0);
36
37
  });
37
38
  });
38
39
  });
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-authorization.spec.js","sourceRoot":"","sources":["../../../../tests/core/protocol-authorization.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBACpE,MAAM,EAAY,KAAK;gBACvB,eAAe,EAAG,mBAAmB;aACtC,CAAC,CAAC;YAEH,yBAAyB;YACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YACrE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,uCAAuC;YAE1F,MAAM,MAAM,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3G,YAAY,CAAC,0DAA0D,CACxE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,MAAM,iCAAiC,GAAG;gBACxC,OAAO,EAAE;oBACP,UAAU,EAAE;wBACV,MAAM,EAAE,gBAAgB;qBACzB;iBACF;aACK,CAAC;YAET,MAAM,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,qBAAqB,CAAC,6BAA6B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,iCAAiC,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"protocol-authorization.spec.js","sourceRoot":"","sources":["../../../../tests/core/protocol-authorization.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;gBACpE,MAAM,EAAY,KAAK;gBACvB,eAAe,EAAG,mBAAmB;aACtC,CAAC,CAAC;YAEH,yBAAyB;YACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YACrE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,uCAAuC;YAE1F,MAAM,MAAM,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3G,YAAY,CAAC,0DAA0D,CACxE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,MAAM,iCAAiC,GAAG;gBACxC,OAAO,EAAE;oBACP,UAAU,EAAE;wBACV,MAAM,EAAE,gBAAgB;qBACzB;iBACF;aACK,CAAC;YAET,MAAM,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,2BAA2B,CAAC,KAAK,CAAC,GAAG,EAAE,iCAAiC,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5H,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import sinon from 'sinon';
2
2
  import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
3
- import { DataStoreLevel, EventEmitterStream, MessageStoreLevel, ResumableTaskStoreLevel, StateIndexLevel } from '../src/index.js';
3
+ import { DataStoreLevel, EventEmitterEventLog, MessageStoreLevel, ResumableTaskStoreLevel, StateIndexLevel } from '../src/index.js';
4
4
  import { Dwn } from '../src/dwn.js';
5
- import { Message } from '../src/core/message.js';
6
5
  import { TestDataGenerator } from './utils/test-data-generator.js';
7
- import { TestEventStream } from './test-event-stream.js';
6
+ import { TestEventLog } from './test-event-stream.js';
8
7
  import { TestStores } from './test-stores.js';
9
8
  import { DidKey, UniversalResolver } from '@enbox/dids';
10
9
  export function testDwnClass() {
@@ -14,7 +13,7 @@ export function testDwnClass() {
14
13
  let dataStore;
15
14
  let resumableTaskStore;
16
15
  let stateIndex;
17
- let eventStream;
16
+ let eventLog;
18
17
  let dwn;
19
18
  // important to follow the `beforeAll` and `afterAll` pattern to initialize and clean the stores in tests
20
19
  // so that different test suites can reuse the same backend store for testing
@@ -25,8 +24,8 @@ export function testDwnClass() {
25
24
  dataStore = stores.dataStore;
26
25
  resumableTaskStore = stores.resumableTaskStore;
27
26
  stateIndex = stores.stateIndex;
28
- eventStream = TestEventStream.get();
29
- dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventStream, resumableTaskStore });
27
+ eventLog = TestEventLog.get();
28
+ dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventLog, resumableTaskStore });
30
29
  });
31
30
  beforeEach(async () => {
32
31
  sinon.restore(); // wipe all stubs/spies/mocks/fakes from previous test
@@ -38,51 +37,41 @@ export function testDwnClass() {
38
37
  });
39
38
  describe('processMessage()', () => {
40
39
  it('should process RecordsWrite message signed by a `did:key` DID', async () => {
41
- // generate a `did:key` DID
42
40
  const alice = await TestDataGenerator.generateDidKeyPersona();
43
- const { message, dataStream } = await TestDataGenerator.generateRecordsWrite({
44
- author: alice,
45
- });
41
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
42
+ const { message, dataStream } = await TestDataGenerator.generateRecordsWrite({ author: alice });
46
43
  const reply = await dwn.processMessage(alice.did, message, { dataStream });
47
44
  expect(reply.status.code).toBe(202);
48
45
  });
49
46
  it('should process RecordsQuery message', async () => {
50
47
  const alice = await TestDataGenerator.generateDidKeyPersona();
51
- const { author, message } = await TestDataGenerator.generateRecordsQuery({ author: alice });
52
- const tenant = author.did;
53
- const reply = await dwn.processMessage(tenant, message);
48
+ const { message } = await TestDataGenerator.generateRecordsQuery({ author: alice });
49
+ const reply = await dwn.processMessage(alice.did, message);
54
50
  expect(reply.status.code).toBe(200);
55
- expect(reply.entries).toEqual([]);
56
51
  });
57
- it('#191 - regression - should run JSON schema validation', async () => {
58
- const invalidMessage = {
59
- descriptor: {
60
- interface: 'Records',
61
- method: 'Read',
62
- messageTimestamp: '2023-07-25T10:20:30.123456Z'
63
- },
64
- authorization: {}
65
- };
66
- const validateJsonSchemaSpy = sinon.spy(Message, 'validateJsonSchema');
52
+ it('should process RecordsDelete message', async () => {
67
53
  const alice = await TestDataGenerator.generateDidKeyPersona();
68
- const reply = await dwn.processMessage(alice.did, invalidMessage);
69
- sinon.assert.calledOnce(validateJsonSchemaSpy);
70
- expect(reply.status.code).toBe(400);
71
- expect(reply.status.detail).toContain(`must have required property 'filter'`);
54
+ const { message } = await TestDataGenerator.generateRecordsDelete({ author: alice });
55
+ const reply = await dwn.processMessage(alice.did, message);
56
+ expect(reply.status.code).toBe(404);
72
57
  });
73
- it('should throw 400 if given no interface or method found in message', async () => {
58
+ it('should process ProtocolsConfigure message', async () => {
74
59
  const alice = await TestDataGenerator.generateDidKeyPersona();
75
- const reply1 = await dwn.processMessage(alice.did, undefined); // missing message entirely, thus missing both `interface` and `method`
76
- expect(reply1.status.code).toBe(400);
77
- expect(reply1.status.detail).toContain('Both interface and method must be present');
78
- const reply2 = await dwn.processMessage(alice.did, { descriptor: { method: 'anyValue' } }); // missing `interface`
79
- expect(reply2.status.code).toBe(400);
80
- expect(reply2.status.detail).toContain('Both interface and method must be present');
81
- const reply3 = await dwn.processMessage(alice.did, { descriptor: { interface: 'anyValue' } }); // missing `method`
82
- expect(reply3.status.code).toBe(400);
83
- expect(reply3.status.detail).toContain('Both interface and method must be present');
60
+ const { message } = await TestDataGenerator.generateProtocolsConfigure({ author: alice });
61
+ const reply = await dwn.processMessage(alice.did, message);
62
+ expect(reply.status.code).toBe(202);
63
+ });
64
+ it('should process ProtocolsQuery message', async () => {
65
+ const alice = await TestDataGenerator.generateDidKeyPersona();
66
+ const { message } = await TestDataGenerator.generateProtocolsQuery({ author: alice });
67
+ const reply = await dwn.processMessage(alice.did, message);
68
+ expect(reply.status.code).toBe(200);
69
+ });
70
+ it('should return a 400 if message is invalid', async () => {
71
+ const reply = await dwn.processMessage('did:example:alice', {});
72
+ expect(reply.status.code).toBe(400);
84
73
  });
85
- it('should throw 401 if message is targeted at a non active tenant', async () => {
74
+ it('should return a 401 if tenant gate blocks the message', async () => {
86
75
  // tenant gate that blocks everyone
87
76
  const blockAllTenantGate = {
88
77
  async isActiveTenant() {
@@ -93,14 +82,14 @@ export function testDwnClass() {
93
82
  const dataStoreStub = sinon.createStubInstance(DataStoreLevel);
94
83
  const resumableTaskStoreStub = sinon.createStubInstance(ResumableTaskStoreLevel);
95
84
  const stateIndexStub = sinon.createStubInstance(StateIndexLevel);
96
- const eventStreamStub = sinon.createStubInstance(EventEmitterStream);
85
+ const eventLogStub = sinon.createStubInstance(EventEmitterEventLog);
97
86
  const dwnWithConfig = await Dwn.create({
98
87
  tenantGate: blockAllTenantGate,
99
88
  messageStore: messageStoreStub,
100
89
  dataStore: dataStoreStub,
101
90
  resumableTaskStore: resumableTaskStoreStub,
102
91
  stateIndex: stateIndexStub,
103
- eventStream: eventStreamStub
92
+ eventLog: eventLogStub
104
93
  });
105
94
  const alice = await TestDataGenerator.generateDidKeyPersona();
106
95
  const { author, message } = await TestDataGenerator.generateRecordsQuery({ author: alice });
@@ -121,14 +110,14 @@ export function testDwnClass() {
121
110
  const dataStoreStub = sinon.createStubInstance(DataStoreLevel);
122
111
  const resumableTaskStoreStub = sinon.createStubInstance(ResumableTaskStoreLevel);
123
112
  const stateIndexStub = sinon.createStubInstance(StateIndexLevel);
124
- const eventStreamStub = sinon.createStubInstance(EventEmitterStream);
113
+ const eventLogStub = sinon.createStubInstance(EventEmitterEventLog);
125
114
  const dwnWithConfig = await Dwn.create({
126
115
  tenantGate: blockAllTenantGate,
127
116
  messageStore: messageStoreStub,
128
117
  dataStore: dataStoreStub,
129
118
  resumableTaskStore: resumableTaskStoreStub,
130
119
  stateIndex: stateIndexStub,
131
- eventStream: eventStreamStub
120
+ eventLog: eventLogStub
132
121
  });
133
122
  const alice = await TestDataGenerator.generateDidKeyPersona();
134
123
  const { author, message } = await TestDataGenerator.generateRecordsQuery({ author: alice });
@@ -1 +1 @@
1
- {"version":3,"file":"dwn.spec.js","sourceRoot":"","sources":["../../../tests/dwn.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dwn.spec.js","sourceRoot":"","sources":["../../../tests/dwn.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,305 @@
1
+ import { afterAll, beforeEach, describe, expect, it } from 'bun:test';
2
+ import { EventEmitterEventLog } from '../src/event-stream/event-emitter-event-log.js';
3
+ describe('EventEmitterEventLog', () => {
4
+ let eventLog;
5
+ beforeEach(async () => {
6
+ eventLog = new EventEmitterEventLog();
7
+ await eventLog.open();
8
+ });
9
+ afterAll(async () => {
10
+ await eventLog.close();
11
+ });
12
+ describe('emit()', () => {
13
+ it('should return opaque cursor strings', async () => {
14
+ const tenant = 'did:example:alice';
15
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
16
+ const cursor1 = await eventLog.emit(tenant, event, { key: 'val1' });
17
+ const cursor2 = await eventLog.emit(tenant, event, { key: 'val2' });
18
+ const cursor3 = await eventLog.emit(tenant, event, { key: 'val3' });
19
+ // Cursors are strings and should be different for each event.
20
+ expect(typeof cursor1).toBe('string');
21
+ expect(typeof cursor2).toBe('string');
22
+ expect(cursor1).not.toBe(cursor2);
23
+ expect(cursor2).not.toBe(cursor3);
24
+ });
25
+ it('should maintain independent cursors per tenant', async () => {
26
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
27
+ const cursorAlice = await eventLog.emit('did:example:alice', event, {});
28
+ const cursorBob = await eventLog.emit('did:example:bob', event, {});
29
+ // Both are valid cursor strings (first event for each tenant).
30
+ expect(typeof cursorAlice).toBe('string');
31
+ expect(typeof cursorBob).toBe('string');
32
+ expect(cursorAlice.length).toBeGreaterThan(0);
33
+ expect(cursorBob.length).toBeGreaterThan(0);
34
+ });
35
+ it('should return empty string when EventLog is closed', async () => {
36
+ await eventLog.close();
37
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
38
+ const cursor = await eventLog.emit('did:example:alice', event, {});
39
+ expect(cursor).toBe('');
40
+ // reopen for afterAll cleanup
41
+ await eventLog.open();
42
+ });
43
+ });
44
+ describe('read()', () => {
45
+ it('should read all events for a tenant when no cursor is provided', async () => {
46
+ const tenant = 'did:example:alice';
47
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
48
+ await eventLog.emit(tenant, event, { schema: 'http://a' });
49
+ await eventLog.emit(tenant, event, { schema: 'http://b' });
50
+ const result = await eventLog.read(tenant);
51
+ expect(result.events.length).toBe(2);
52
+ expect(result.cursor).toBeDefined();
53
+ });
54
+ it('should read events after a cursor', async () => {
55
+ const tenant = 'did:example:alice';
56
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
57
+ await eventLog.emit(tenant, event, { schema: 'http://a' });
58
+ const cursor2 = await eventLog.emit(tenant, event, { schema: 'http://b' });
59
+ await eventLog.emit(tenant, event, { schema: 'http://c' });
60
+ // Read after cursor2 — should only get the third event.
61
+ const result = await eventLog.read(tenant, { cursor: cursor2 });
62
+ expect(result.events.length).toBe(1);
63
+ expect(result.cursor).toBeDefined();
64
+ });
65
+ it('should apply filters during read', async () => {
66
+ const tenant = 'did:example:alice';
67
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
68
+ await eventLog.emit(tenant, event, { schema: 'http://match' });
69
+ await eventLog.emit(tenant, event, { schema: 'http://other' });
70
+ await eventLog.emit(tenant, event, { schema: 'http://match' });
71
+ const result = await eventLog.read(tenant, { filters: [{ schema: 'http://match' }] });
72
+ expect(result.events.length).toBe(2);
73
+ });
74
+ it('should return undefined cursor for unknown tenant', async () => {
75
+ const result = await eventLog.read('did:example:unknown');
76
+ expect(result.events.length).toBe(0);
77
+ expect(result.cursor).toBeUndefined();
78
+ });
79
+ it('should return the input cursor when no new events match', async () => {
80
+ const tenant = 'did:example:alice';
81
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
82
+ const lastCursor = await eventLog.emit(tenant, event, {});
83
+ // Read after the last event — nothing new.
84
+ const result = await eventLog.read(tenant, { cursor: lastCursor });
85
+ expect(result.events.length).toBe(0);
86
+ expect(result.cursor).toBe(lastCursor);
87
+ });
88
+ it('should respect the limit option', async () => {
89
+ const tenant = 'did:example:alice';
90
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
91
+ await eventLog.emit(tenant, event, {});
92
+ await eventLog.emit(tenant, event, {});
93
+ await eventLog.emit(tenant, event, {});
94
+ const result = await eventLog.read(tenant, { limit: 2 });
95
+ expect(result.events.length).toBe(2);
96
+ expect(result.cursor).toBeDefined();
97
+ });
98
+ });
99
+ describe('subscribe() — live only (no cursor)', () => {
100
+ it('should deliver live events to subscriber with cursor strings', async () => {
101
+ const tenant = 'did:example:alice';
102
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
103
+ const received = [];
104
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); });
105
+ await eventLog.emit(tenant, event, {});
106
+ await eventLog.emit(tenant, event, {});
107
+ expect(received.length).toBe(2);
108
+ expect(received[0].type).toBe('event');
109
+ expect(received[1].type).toBe('event');
110
+ if (received[0].type === 'event') {
111
+ expect(typeof received[0].cursor).toBe('string');
112
+ expect(received[0].cursor.length).toBeGreaterThan(0);
113
+ }
114
+ });
115
+ it('should NOT deliver EOSE when no cursor is provided', async () => {
116
+ const tenant = 'did:example:alice';
117
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
118
+ // Emit some events before subscribing.
119
+ await eventLog.emit(tenant, event, {});
120
+ const received = [];
121
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); });
122
+ // Emit after subscribing.
123
+ await eventLog.emit(tenant, event, {});
124
+ // Should only have the live event, no EOSE.
125
+ expect(received.length).toBe(1);
126
+ expect(received[0].type).toBe('event');
127
+ });
128
+ it('should filter live events', async () => {
129
+ const tenant = 'did:example:alice';
130
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
131
+ const received = [];
132
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); }, {
133
+ filters: [{ schema: 'http://match' }],
134
+ });
135
+ await eventLog.emit(tenant, event, { schema: 'http://match' });
136
+ await eventLog.emit(tenant, event, { schema: 'http://other' });
137
+ await eventLog.emit(tenant, event, { schema: 'http://match' });
138
+ expect(received.length).toBe(2);
139
+ });
140
+ it('should stop delivering events after close', async () => {
141
+ const tenant = 'did:example:alice';
142
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
143
+ const received = [];
144
+ const sub = await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); });
145
+ await eventLog.emit(tenant, event, {});
146
+ expect(received.length).toBe(1);
147
+ await sub.close();
148
+ await eventLog.emit(tenant, event, {});
149
+ expect(received.length).toBe(1); // no new events after close
150
+ });
151
+ });
152
+ describe('subscribe() — cursor mode (catch-up + EOSE + live)', () => {
153
+ it('should replay stored events after cursor and deliver EOSE', async () => {
154
+ const tenant = 'did:example:alice';
155
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
156
+ // Emit 3 events, capture the first cursor.
157
+ const cursor1 = await eventLog.emit(tenant, event, { idx: '1' });
158
+ await eventLog.emit(tenant, event, { idx: '2' });
159
+ await eventLog.emit(tenant, event, { idx: '3' });
160
+ // Subscribe with cursor from first event — should replay events 2 and 3.
161
+ const received = [];
162
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); }, { cursor: cursor1 });
163
+ // Should receive 2 catch-up events + EOSE.
164
+ expect(received.length).toBe(3);
165
+ expect(received[0].type).toBe('event');
166
+ expect(received[1].type).toBe('event');
167
+ expect(received[2].type).toBe('eose');
168
+ // Cursors should be opaque strings, each different.
169
+ if (received[0].type === 'event' && received[1].type === 'event') {
170
+ expect(received[0].cursor).not.toBe(received[1].cursor);
171
+ }
172
+ });
173
+ it('should deliver EOSE echoing the input cursor when already caught up', async () => {
174
+ const tenant = 'did:example:alice';
175
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
176
+ // Emit events and capture last cursor.
177
+ await eventLog.emit(tenant, event, {});
178
+ const lastCursor = await eventLog.emit(tenant, event, {});
179
+ // Subscribe with the last cursor — already caught up, no stored events to replay.
180
+ const received = [];
181
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); }, { cursor: lastCursor });
182
+ // Should just get EOSE echoing the input cursor.
183
+ expect(received.length).toBe(1);
184
+ expect(received[0].type).toBe('eose');
185
+ if (received[0].type === 'eose') {
186
+ expect(received[0].cursor).toBe(lastCursor);
187
+ }
188
+ });
189
+ it('should continue delivering live events after EOSE', async () => {
190
+ const tenant = 'did:example:alice';
191
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
192
+ // Emit 1 event and capture its cursor.
193
+ const cursor1 = await eventLog.emit(tenant, event, { idx: '1' });
194
+ const received = [];
195
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); }, { cursor: cursor1 });
196
+ // Already caught up — should have just EOSE.
197
+ expect(received.length).toBe(1);
198
+ expect(received[0].type).toBe('eose');
199
+ // Now emit a live event.
200
+ await eventLog.emit(tenant, event, { idx: '2' });
201
+ // Should now have the live event appended.
202
+ expect(received.length).toBe(2);
203
+ expect(received[1].type).toBe('event');
204
+ if (received[1].type === 'event') {
205
+ expect(typeof received[1].cursor).toBe('string');
206
+ }
207
+ });
208
+ it('should apply filters to both catch-up and live events', async () => {
209
+ const tenant = 'did:example:alice';
210
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
211
+ // Emit events with different schemas, capture cursor before the batch.
212
+ const cursorBefore = await eventLog.emit(tenant, event, { schema: 'http://before' });
213
+ await eventLog.emit(tenant, event, { schema: 'http://match' });
214
+ await eventLog.emit(tenant, event, { schema: 'http://other' });
215
+ await eventLog.emit(tenant, event, { schema: 'http://match' });
216
+ const received = [];
217
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); }, {
218
+ cursor: cursorBefore,
219
+ filters: [{ schema: 'http://match' }],
220
+ });
221
+ // Catch-up: 2 matching events + EOSE. (Event with 'http://other' filtered out.)
222
+ expect(received.length).toBe(3);
223
+ expect(received[0].type).toBe('event');
224
+ expect(received[1].type).toBe('event');
225
+ expect(received[2].type).toBe('eose');
226
+ // Emit live events — only matching ones should arrive.
227
+ await eventLog.emit(tenant, event, { schema: 'http://other' });
228
+ await eventLog.emit(tenant, event, { schema: 'http://match' });
229
+ expect(received.length).toBe(4); // +1 matching live event
230
+ });
231
+ it('should deduplicate live events that arrived during catch-up', async () => {
232
+ const tenant = 'did:example:alice';
233
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
234
+ // Emit 2 events, capture cursor before them.
235
+ const cursorBefore = await eventLog.emit(tenant, event, { idx: '0' });
236
+ await eventLog.emit(tenant, event, { idx: '1' });
237
+ await eventLog.emit(tenant, event, { idx: '2' });
238
+ const received = [];
239
+ await eventLog.subscribe(tenant, 'sub-1', (msg) => { received.push(msg); }, { cursor: cursorBefore });
240
+ // 2 catch-up events + EOSE.
241
+ expect(received.length).toBe(3);
242
+ // Verify no duplicate cursors.
243
+ const eventCursors = received.filter(m => m.type === 'event').map(m => m.cursor);
244
+ const uniqueCursors = new Set(eventCursors);
245
+ expect(uniqueCursors.size).toBe(eventCursors.length);
246
+ });
247
+ it('should isolate subscriptions between tenants in cursor mode', async () => {
248
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
249
+ // Emit for alice, capture first cursor.
250
+ const aliceCursor1 = await eventLog.emit('did:example:alice', event, {});
251
+ await eventLog.emit('did:example:alice', event, {});
252
+ // Emit for bob.
253
+ await eventLog.emit('did:example:bob', event, {});
254
+ // Subscribe to alice with cursor — should only get alice's second event.
255
+ const aliceReceived = [];
256
+ await eventLog.subscribe('did:example:alice', 'sub-alice', (msg) => { aliceReceived.push(msg); }, { cursor: aliceCursor1 });
257
+ // Should only get alice's 1 catch-up event + EOSE.
258
+ expect(aliceReceived.length).toBe(2);
259
+ expect(aliceReceived[0].type).toBe('event');
260
+ expect(aliceReceived[1].type).toBe('eose');
261
+ });
262
+ });
263
+ describe('trim()', () => {
264
+ it('should trim events by sequence number', async () => {
265
+ const tenant = 'did:example:alice';
266
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
267
+ await eventLog.emit(tenant, event, {});
268
+ await eventLog.emit(tenant, event, {});
269
+ await eventLog.emit(tenant, event, {});
270
+ await eventLog.trim(tenant, 3); // trim events with seq < 3
271
+ const result = await eventLog.read(tenant);
272
+ expect(result.events.length).toBe(1);
273
+ expect(result.events[0].seq).toBe(3);
274
+ });
275
+ it('should trim events by ISO-8601 timestamp', async () => {
276
+ const tenant = 'did:example:alice';
277
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
278
+ const oldTime = '2020-01-01T00:00:00.000000Z';
279
+ const newTime = '2025-01-01T00:00:00.000000Z';
280
+ await eventLog.emit(tenant, event, { messageTimestamp: oldTime });
281
+ await eventLog.emit(tenant, event, { messageTimestamp: newTime });
282
+ await eventLog.trim(tenant, '2023-01-01T00:00:00.000000Z');
283
+ const result = await eventLog.read(tenant);
284
+ expect(result.events.length).toBe(1);
285
+ });
286
+ });
287
+ describe('maxEventsPerTenant eviction', () => {
288
+ it('should evict oldest events when limit is exceeded', async () => {
289
+ const smallLog = new EventEmitterEventLog({ maxEventsPerTenant: 3 });
290
+ await smallLog.open();
291
+ const tenant = 'did:example:alice';
292
+ const event = { message: { descriptor: { interface: 'Records', method: 'Write' } } };
293
+ await smallLog.emit(tenant, event, { idx: '1' });
294
+ await smallLog.emit(tenant, event, { idx: '2' });
295
+ await smallLog.emit(tenant, event, { idx: '3' });
296
+ await smallLog.emit(tenant, event, { idx: '4' }); // should evict seq=1
297
+ const result = await smallLog.read(tenant);
298
+ expect(result.events.length).toBe(3);
299
+ expect(result.events[0].seq).toBe(2); // seq=1 was evicted
300
+ expect(result.events[2].seq).toBe(4);
301
+ await smallLog.close();
302
+ });
303
+ });
304
+ });
305
+ //# sourceMappingURL=event-emitter-event-log.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter-event-log.spec.js","sourceRoot":"","sources":["../../../tests/event-emitter-event-log.spec.ts"],"names":[],"mappings":"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"}