@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
@@ -325,9 +325,18 @@ export class IndexLevel {
325
325
  filters = [{}];
326
326
  }
327
327
  try {
328
- await Promise.all(filters.map(filter => {
329
- return this.executeSingleFilterQuery(tenant, filter, sortProperty, matches, options);
330
- }));
328
+ // Execute filters sequentially rather than with Promise.all.
329
+ // Firefox's IndexedDB implementation has two related async issues that cause flaky failures:
330
+ // 1. Concurrent cursors/transactions can silently miss recently-committed data
331
+ // 2. A read transaction opened immediately after a write transaction's oncomplete event
332
+ // can fail to see the written data (write-read race)
333
+ // Serializing eliminates both races. Performance impact is negligible: only 3 call sites
334
+ // (non-owner RecordsQuery/Subscribe/Count) ever pass multiple filters, and each filter
335
+ // reduces to a single bounded LevelDB range scan completing in single-digit ms.
336
+ // See: https://github.com/enboxorg/enbox/issues/264
337
+ for (const filter of filters) {
338
+ await this.executeSingleFilterQuery(tenant, filter, sortProperty, matches, options);
339
+ }
331
340
  }
332
341
  catch (error) {
333
342
  if (error.code === DwnErrorCode.IndexInvalidSortPropertyInMemory) {
@@ -346,14 +355,33 @@ export class IndexLevel {
346
355
  }
347
356
  /**
348
357
  * Execute a filtered query against a single filter and return all results.
358
+ *
359
+ * Sub-queries (exact match, range, OneOf) are executed sequentially to avoid opening
360
+ * multiple concurrent IndexedDB cursors. Firefox's IDB implementation intermittently
361
+ * drops results when cursors overlap — see https://github.com/enboxorg/enbox/issues/264
349
362
  */
350
363
  async executeSingleFilterQuery(tenant, filter, sortProperty, matches, levelOptions) {
351
- // Note: We have an array of Promises in order to support OR (anyOf) matches when given a list of accepted values for a property
352
- const filterPromises = [];
364
+ // Collects results from each sub-query sequentially to avoid concurrent IndexedDB cursor races in Firefox.
365
+ const processResults = (indexItems) => {
366
+ for (const indexedItem of indexItems) {
367
+ // short circuit: if a data is already included to the final matched key set (by a different `Filter`),
368
+ // no need to evaluate if the data satisfies this current filter being evaluated
369
+ // otherwise check that the item is a match.
370
+ if (matches.has(indexedItem.messageCid) || !FilterUtility.matchFilter(indexedItem.indexes, filter)) {
371
+ continue;
372
+ }
373
+ // ensure that each matched item has the sortProperty, otherwise fail the entire query.
374
+ if (indexedItem.indexes[sortProperty] === undefined) {
375
+ throw new DwnError(DwnErrorCode.IndexInvalidSortPropertyInMemory, `invalid sort property ${sortProperty}`);
376
+ }
377
+ matches.set(indexedItem.messageCid, indexedItem);
378
+ }
379
+ };
353
380
  // If the filter is empty, then we just iterate over one of the indexes that contains all the records and return all items.
354
381
  if (isEmptyObject(filter)) {
355
- const getAllItemsPromise = this.getAllItems(tenant, sortProperty);
356
- filterPromises.push(getAllItemsPromise);
382
+ const allItems = await this.getAllItems(tenant, sortProperty);
383
+ processResults(allItems);
384
+ return;
357
385
  }
358
386
  // else the filter is not empty
359
387
  const searchFilter = FilterSelector.reduceFilter(filter);
@@ -362,39 +390,21 @@ export class IndexLevel {
362
390
  // We will find the union of these many individual queries later.
363
391
  if (FilterUtility.isEqualFilter(propertyFilter)) {
364
392
  // propertyFilter is an EqualFilter, meaning it is a non-object primitive type
365
- const exactMatchesPromise = this.filterExactMatches(tenant, propertyName, propertyFilter, levelOptions);
366
- filterPromises.push(exactMatchesPromise);
393
+ const exactMatches = await this.filterExactMatches(tenant, propertyName, propertyFilter, levelOptions);
394
+ processResults(exactMatches);
367
395
  }
368
396
  else if (FilterUtility.isOneOfFilter(propertyFilter)) {
369
397
  // `propertyFilter` is a OneOfFilter
370
- // Support OR matches by querying for each values separately, then adding them to the promises array.
398
+ // Support OR matches by querying for each value separately and sequentially.
371
399
  for (const propertyValue of new Set(propertyFilter)) {
372
- const exactMatchesPromise = this.filterExactMatches(tenant, propertyName, propertyValue, levelOptions);
373
- filterPromises.push(exactMatchesPromise);
400
+ const exactMatches = await this.filterExactMatches(tenant, propertyName, propertyValue, levelOptions);
401
+ processResults(exactMatches);
374
402
  }
375
403
  }
376
404
  else if (FilterUtility.isRangeFilter(propertyFilter)) {
377
405
  // `propertyFilter` is a `RangeFilter`
378
- const rangeMatchesPromise = this.filterRangeMatches(tenant, propertyName, propertyFilter, levelOptions);
379
- filterPromises.push(rangeMatchesPromise);
380
- }
381
- }
382
- // acting as an OR match for the property, any of the promises returning a match will be treated as a property match
383
- for (const promise of filterPromises) {
384
- const indexItems = await promise;
385
- // reminder: the promise returns a list of IndexedItem satisfying a particular property match
386
- for (const indexedItem of indexItems) {
387
- // short circuit: if a data is already included to the final matched key set (by a different `Filter`),
388
- // no need to evaluate if the data satisfies this current filter being evaluated
389
- // otherwise check that the item is a match.
390
- if (matches.has(indexedItem.messageCid) || !FilterUtility.matchFilter(indexedItem.indexes, filter)) {
391
- continue;
392
- }
393
- // ensure that each matched item has the sortProperty, otherwise fail the entire query.
394
- if (indexedItem.indexes[sortProperty] === undefined) {
395
- throw new DwnError(DwnErrorCode.IndexInvalidSortPropertyInMemory, `invalid sort property ${sortProperty}`);
396
- }
397
- matches.set(indexedItem.messageCid, indexedItem);
406
+ const rangeMatches = await this.filterRangeMatches(tenant, propertyName, propertyFilter, levelOptions);
407
+ processResults(rangeMatches);
398
408
  }
399
409
  }
400
410
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index-level.js","sourceRoot":"","sources":["../../../../src/store/index-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-level.js","sourceRoot":"","sources":["../../../../src/store/index-level.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { DwnConstant } from '../core/dwn-constant.js';
2
+ import { FilterUtility } from '../utils/filter.js';
2
3
  import { Message } from '../core/message.js';
3
4
  import { Records } from '../utils/records.js';
4
5
  import { RecordsDelete } from '../interfaces/records-delete.js';
@@ -11,12 +12,12 @@ export class StorageController {
11
12
  messageStore;
12
13
  dataStore;
13
14
  stateIndex;
14
- eventStream;
15
- constructor({ messageStore, dataStore, stateIndex, eventStream }) {
15
+ eventLog;
16
+ constructor({ messageStore, dataStore, stateIndex, eventLog }) {
16
17
  this.messageStore = messageStore;
17
18
  this.dataStore = dataStore;
18
19
  this.stateIndex = stateIndex;
19
- this.eventStream = eventStream;
20
+ this.eventLog = eventLog;
20
21
  }
21
22
  async performRecordsDelete({ tenant, message }) {
22
23
  // get existing records matching the `recordId`
@@ -39,9 +40,9 @@ export class StorageController {
39
40
  const messageCid = await Message.getCid(message);
40
41
  await this.messageStore.put(tenant, message, indexes);
41
42
  await this.stateIndex.insert(tenant, messageCid, indexes);
42
- // only emit if the event stream is set
43
- if (this.eventStream !== undefined) {
44
- this.eventStream.emit(tenant, { message, initialWrite }, indexes);
43
+ // only emit if the event log is set
44
+ if (this.eventLog !== undefined) {
45
+ await this.eventLog.emit(tenant, { message, initialWrite }, indexes);
45
46
  }
46
47
  if (message.descriptor.prune) {
47
48
  // purge/hard-delete all descendent records
@@ -50,6 +51,69 @@ export class StorageController {
50
51
  // delete all existing messages that are not newest, except for the initial write
51
52
  await StorageController.deleteAllOlderMessagesButKeepInitialWrite(tenant, existingMessages, message, this.messageStore, this.dataStore, this.stateIndex);
52
53
  }
54
+ /**
55
+ * Performs the squash processing for a `RecordsWrite` with `squash: true`.
56
+ * Deletes all sibling records at the same protocol path and parent context whose
57
+ * `messageTimestamp` is strictly older than the squash record's `messageTimestamp`.
58
+ * Unlike normal `RecordsDelete` tombstones, squash targets are fully purged — no initial writes
59
+ * are retained.
60
+ *
61
+ * This method is idempotent — it can be safely re-run on resume after a crash.
62
+ */
63
+ async performRecordsSquash({ tenant, message }) {
64
+ const { protocol, protocolPath, messageTimestamp } = message.descriptor;
65
+ // Build a filter to find all sibling records at the same protocol path and parent context.
66
+ // We query by interface only (not method) so that both RecordsWrite and RecordsDelete messages are found.
67
+ const filter = {
68
+ interface: DwnInterfaceName.Records,
69
+ protocol,
70
+ protocolPath: protocolPath,
71
+ };
72
+ // Scope by parent context for nested records
73
+ const parentContextId = Records.getParentContextFromOfContextId(message.contextId);
74
+ if (parentContextId !== undefined && parentContextId !== '') {
75
+ const prefixFilter = FilterUtility.constructPrefixFilterAsRangeFilter(parentContextId);
76
+ filter.contextId = prefixFilter;
77
+ }
78
+ // Query for all records at this path and context
79
+ const { messages: siblingMessages } = await this.messageStore.query(tenant, [filter]);
80
+ // Group messages by recordId — RecordsWrite messages use `message.recordId`,
81
+ // RecordsDelete messages use `message.descriptor.recordId`.
82
+ const recordIdToMessages = new Map();
83
+ for (const msg of siblingMessages) {
84
+ let recordId;
85
+ if (Records.isRecordsWrite(msg)) {
86
+ recordId = msg.recordId;
87
+ }
88
+ else {
89
+ recordId = msg.descriptor.recordId;
90
+ }
91
+ const existing = recordIdToMessages.get(recordId);
92
+ if (existing !== undefined) {
93
+ existing.push(msg);
94
+ }
95
+ else {
96
+ recordIdToMessages.set(recordId, [msg]);
97
+ }
98
+ }
99
+ // Delete all records whose newest message timestamp is strictly older than the squash timestamp.
100
+ // Skip the squash record itself.
101
+ for (const [recordId, messages] of recordIdToMessages) {
102
+ if (recordId === message.recordId) {
103
+ continue;
104
+ }
105
+ // Use the newest message's timestamp to determine if the record predates the squash.
106
+ const newestMessage = await Message.getNewestMessage(messages);
107
+ if (newestMessage === undefined) {
108
+ continue;
109
+ }
110
+ const newestTimestamp = newestMessage.descriptor.messageTimestamp;
111
+ if (newestTimestamp < messageTimestamp) {
112
+ // Fully purge this record — all messages (including initial write) and their data
113
+ await StorageController.purgeRecordMessages(tenant, messages, this.messageStore, this.dataStore, this.stateIndex);
114
+ }
115
+ }
116
+ }
53
117
  /**
54
118
  * Deletes the data referenced by the given message if needed.
55
119
  * @param message The message to check if the data it references should be deleted.
@@ -1 +1 @@
1
- {"version":3,"file":"storage-controller.js","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-controller.js","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"permission-types.js","sourceRoot":"","sources":["../../../../src/types/permission-types.ts"],"names":[],"mappings":"AAiGA,MAAM,CAAN,IAAY,8BAGX;AAHD,WAAY,8BAA8B;IACxC,uDAAqB,CAAA;IACrB,2DAAyB,CAAA;AAC3B,CAAC,EAHW,8BAA8B,KAA9B,8BAA8B,QAGzC"}
1
+ {"version":3,"file":"permission-types.js","sourceRoot":"","sources":["../../../../src/types/permission-types.ts"],"names":[],"mappings":"AAwGA,MAAM,CAAN,IAAY,8BAGX;AAHD,WAAY,8BAA8B;IACxC,uDAAqB,CAAA;IACrB,2DAAyB,CAAA;AAC3B,CAAC,EAHW,8BAA8B,KAA9B,8BAA8B,QAGzC"}
@@ -13,6 +13,17 @@ export var ProtocolAction;
13
13
  ProtocolAction["Delete"] = "delete";
14
14
  ProtocolAction["Prune"] = "prune";
15
15
  ProtocolAction["Read"] = "read";
16
+ ProtocolAction["Squash"] = "squash";
16
17
  ProtocolAction["Update"] = "update";
17
18
  })(ProtocolAction || (ProtocolAction = {}));
19
+ /**
20
+ * Supported strategies for handling writes that would exceed a `$recordLimit`.
21
+ */
22
+ export var ProtocolRecordLimitStrategy;
23
+ (function (ProtocolRecordLimitStrategy) {
24
+ /** Reject the incoming write with an error. The author must delete old records first. */
25
+ ProtocolRecordLimitStrategy["Reject"] = "reject";
26
+ /** Automatically delete the oldest record(s) (by `dateCreated`) to make room for the new one. */
27
+ ProtocolRecordLimitStrategy["PurgeOldest"] = "purgeOldest";
28
+ })(ProtocolRecordLimitStrategy || (ProtocolRecordLimitStrategy = {}));
18
29
  //# sourceMappingURL=protocols-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocols-types.js","sourceRoot":"","sources":["../../../../src/types/protocols-types.ts"],"names":[],"mappings":"AA+DA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,wCAAsB,CAAA;IACtB,sCAAoB,CAAA;IACpB,wCAAsB,CAAA;IACtB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,mCAAiB,CAAA;AACnB,CAAC,EATW,cAAc,KAAd,cAAc,QASzB"}
1
+ {"version":3,"file":"protocols-types.js","sourceRoot":"","sources":["../../../../src/types/protocols-types.ts"],"names":[],"mappings":"AA+DA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,MAAM,CAAN,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,wCAAsB,CAAA;IACtB,sCAAoB,CAAA;IACpB,wCAAsB,CAAA;IACtB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACnB,CAAC,EAVW,cAAc,KAAd,cAAc,QAUzB;AA8ED;;GAEG;AACH,MAAM,CAAN,IAAY,2BAKX;AALD,WAAY,2BAA2B;IACrC,yFAAyF;IACzF,gDAAiB,CAAA;IACjB,iGAAiG;IACjG,0DAA2B,CAAA;AAC7B,CAAC,EALW,2BAA2B,KAA3B,2BAA2B,QAKtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"records-types.js","sourceRoot":"","sources":["../../../../src/types/records-types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,iDAAqC,CAAA;IACrC,mDAAuC,CAAA;IACvC,qDAAyC,CAAA;IACzC,uDAA2C,CAAA;IAC3C,iDAAqC,CAAA;IACrC,mDAAuC,CAAA;AACzC,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB"}
1
+ {"version":3,"file":"records-types.js","sourceRoot":"","sources":["../../../../src/types/records-types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,iDAAqC,CAAA;IACrC,mDAAuC,CAAA;IACvC,qDAAyC,CAAA;IACzC,uDAA2C,CAAA;IAC3C,iDAAqC,CAAA;IACrC,mDAAuC,CAAA;AACzC,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB"}
@@ -4,16 +4,8 @@ import { X25519 } from '@enbox/crypto';
4
4
  import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
5
5
  export var KeyDerivationScheme;
6
6
  (function (KeyDerivationScheme) {
7
- /**
8
- * Key derivation using the `dataFormat` value for Flat-space records.
9
- */
10
- KeyDerivationScheme["DataFormats"] = "dataFormats";
11
7
  KeyDerivationScheme["ProtocolContext"] = "protocolContext";
12
8
  KeyDerivationScheme["ProtocolPath"] = "protocolPath";
13
- /**
14
- * Key derivation using the `schema` value for Flat-space records.
15
- */
16
- KeyDerivationScheme["Schemas"] = "schemas";
17
9
  })(KeyDerivationScheme || (KeyDerivationScheme = {}));
18
10
  /**
19
11
  * Class containing hierarchical deterministic key related utility methods used by the DWN.
@@ -1 +1 @@
1
- {"version":3,"file":"hd-key.js","sourceRoot":"","sources":["../../../../src/utils/hd-key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAN,IAAY,mBAYX;AAZD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,kDAA2B,CAAA;IAC3B,0DAAmC,CAAA;IACnC,oDAA6B,CAAA;IAE7B;;OAEG;IACH,0CAAmB,CAAA;AACrB,CAAC,EAZW,mBAAmB,KAAnB,mBAAmB,QAY9B;AASD;;GAEG;AACH,MAAM,OAAO,KAAK;IAChB;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAA8B,EAAE,iBAA2B;QAC9F,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACzG,MAAM,gCAAgC,GAAG,WAAW,CAAC,cAAc,IAAI,EAAE,CAAC;QAC1E,MAAM,sBAAsB,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;QACxG,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACzG,MAAM,2BAA2B,GAAsB;YACrD,SAAS,EAAW,WAAW,CAAC,SAAS;YACzC,gBAAgB,EAAI,WAAW,CAAC,gBAAgB;YAChD,cAAc,EAAM,CAAC,GAAG,gCAAgC,EAAE,GAAG,iBAAiB,CAAC;YAC/E,iBAAiB,EAAG,oBAAqC;SAC1D,CAAC;QAEF,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,WAA8B,EAAE,iBAA2B;QAC7F,MAAM,2BAA2B,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACjG,MAAM,0BAA0B,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,2BAA2B,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAErH,OAAO,0BAA0C,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,UAAsB,EAAE,YAAsB;QACtF,KAAK,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAE9C,IAAI,iBAAiB,GAAG,UAAU,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpD,iBAAiB,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC;gBACjD,aAAa,EAAQ,SAAS;gBAC9B,kBAAkB,EAAG,iBAAiB;gBACtC,IAAI,EAAiB,YAAY,EAAE,sEAAsE;gBACzG,gBAAgB,EAAK,EAAE,CAAC,sBAAsB;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAKtC;QACC,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QAE7E,MAAM,SAAS,GAAG,kBAAkB,EAAkB,CAAC;QAEvD,mGAAmG;QACnG,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAEnH,6CAA6C;QAC7C,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CACrD;YACE,IAAI,EAAG,MAAM;YACb,IAAI,EAAG,aAAa;YACpB,IAAI,EAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,8CAA8C;YACxE,IAAI;SACL,EACD,YAAY,EACZ,gBAAgB,GAAG,CAAC,CAAC,6BAA6B;SACnD,CAAC;QAEF,0CAA0C;QAC1C,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACzD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,yBAAyB,CAAC,YAAsB;QAC7D,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,gCAAgC,YAAY,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"hd-key.js","sourceRoot":"","sources":["../../../../src/utils/hd-key.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import { FilterUtility } from './filter.js';
2
2
  import { normalizeProtocolUrl } from './url.js';
3
- import { PermissionsProtocol } from '../protocols/permissions.js';
4
- import { Records } from './records.js';
5
3
  import { isEmptyObject, removeUndefinedProperties } from './object.js';
6
4
  /**
7
5
  * Class containing Messages related utility methods.
@@ -31,48 +29,32 @@ export class Messages {
31
29
  /**
32
30
  * Converts an incoming array of MessagesFilter into an array of Filter usable by MessageLog.
33
31
  *
32
+ * When a `CoreProtocolRegistry` is provided, each registered core protocol's
33
+ * `constructAdditionalMessageFilter` hook is invoked per filter. This replaces the previous
34
+ * hardcoded permission-records shadow filter with a generic loop over all core protocols.
35
+ *
34
36
  * @param filters An array of MessagesFilter
37
+ * @param coreProtocols Optional registry of core protocols whose additional filters are injected.
35
38
  * @returns {Filter[]} an array of generic Filter able to be used when querying.
36
39
  */
37
- static convertFilters(filters) {
40
+ static convertFilters(filters, coreProtocols) {
38
41
  const messagesQueryFilters = [];
39
- // convert each filter individually by the specific type of filter it is
40
- // we must check for the type of filter in a specific order to make a reductive decision as to which filters need converting
41
- // first we check for `MessagesRecordsFilter` fields for conversion
42
- // otherwise it is `MessagesMessageFilter` fields for conversion
43
42
  for (const filter of filters) {
44
- // extract the protocol tag filter from the incoming message record filter
45
- // this filters for permission grants, requests and revocations associated with a targeted protocol
46
- // since permissions are their own protocol, we added an additional tag index when writing the permission messages
47
- // so that we can filter for permission records here
48
- const permissionRecordsFilter = this.constructPermissionRecordsFilter(filter);
49
- if (permissionRecordsFilter) {
50
- messagesQueryFilters.push(permissionRecordsFilter);
43
+ // Ask each core protocol whether it needs an additional shadow filter for this query.
44
+ // For example, the Permissions protocol injects a filter for grants/requests/revocations
45
+ // tagged with the target protocol so they appear alongside that protocol's own records.
46
+ if (coreProtocols !== undefined) {
47
+ for (const coreProtocol of coreProtocols.all()) {
48
+ const additionalFilter = coreProtocol.constructAdditionalMessageFilter?.(filter);
49
+ if (additionalFilter !== undefined) {
50
+ messagesQueryFilters.push(additionalFilter);
51
+ }
52
+ }
51
53
  }
52
54
  messagesQueryFilters.push(this.convertFilter(filter));
53
55
  }
54
56
  return messagesQueryFilters;
55
57
  }
56
- /**
57
- * Constructs a filter that gets associated permission records if protocol is in the given filter.
58
- */
59
- static constructPermissionRecordsFilter(filter) {
60
- const { protocol, messageTimestamp } = filter;
61
- if (protocol !== undefined) {
62
- const taggedFilter = {
63
- protocol: PermissionsProtocol.uri,
64
- ...Records.convertTagsFilter({ protocol })
65
- };
66
- if (messageTimestamp != undefined) {
67
- // if we filter by message timestamp, we also want to filter the permission messages by the same timestamp range
68
- const messageTimestampFilter = FilterUtility.convertRangeCriterion(messageTimestamp);
69
- if (messageTimestampFilter) {
70
- taggedFilter.messageTimestamp = messageTimestampFilter;
71
- }
72
- }
73
- return taggedFilter;
74
- }
75
- }
76
58
  /**
77
59
  * Converts an external-facing filter model into an internal-facing filer model used by data store.
78
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/utils/messages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGvE;;GAEG;AACH,MAAM,OAAO,QAAQ;IACnB;;OAEG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAAyB;QAEtD,MAAM,oBAAoB,GAAqB,EAAE,CAAC;QAElD,8EAA8E;QAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnG,MAAM,cAAc,GAAG;gBACrB,GAAG,MAAM;gBACT,QAAQ;aACT,CAAC;YAEF,6DAA6D;YAC7D,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,cAAc,CAAC,OAAyB;QAEpD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAE1C,wEAAwE;QACxE,4HAA4H;QAC5H,mEAAmE;QACnE,gEAAgE;QAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,0EAA0E;YAC1E,mGAAmG;YACnG,kHAAkH;YAClH,oDAAoD;YACpD,MAAM,uBAAuB,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;YAC9E,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,oBAAoB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrD,CAAC;YAED,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gCAAgC,CAAC,MAAsB;QACpE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG;gBACnB,QAAQ,EAAE,mBAAmB,CAAC,GAAG;gBACjC,GAAG,OAAO,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;aACjC,CAAC;YAEZ,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC;gBAClC,gHAAgH;gBAChH,MAAM,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;gBACrF,IAAI,sBAAsB,EAAE,CAAC;oBAC3B,YAAY,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,MAAsB;QACjD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAY,CAAC;QAE3C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QACpC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,IAAI,sBAAsB,EAAE,CAAC;YAC3B,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;YACrD,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,CAAC;QACD,OAAO,UAAoB,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/utils/messages.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGvE;;GAEG;AACH,MAAM,OAAO,QAAQ;IACnB;;OAEG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAAyB;QAEtD,MAAM,oBAAoB,GAAqB,EAAE,CAAC;QAElD,8EAA8E;QAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnG,MAAM,cAAc,GAAG;gBACrB,GAAG,MAAM;gBACT,QAAQ;aACT,CAAC;YAEF,6DAA6D;YAC7D,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAC,cAAc,CAAC,OAAyB,EAAE,aAAoC;QAE1F,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAE1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,sFAAsF;YACtF,yFAAyF;YACzF,wFAAwF;YACxF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC/C,MAAM,gBAAgB,GAAG,YAAY,CAAC,gCAAgC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACjF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBACnC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,MAAsB;QACjD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAY,CAAC;QAE3C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QACpC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,IAAI,sBAAsB,EAAE,CAAC;YAC3B,UAAU,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;YACrD,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,CAAC;QACD,OAAO,UAAoB,CAAC;IAC9B,CAAC;CACF"}
@@ -72,32 +72,15 @@ export class Records {
72
72
  const descriptor = recordsWriteMessage.descriptor;
73
73
  const contextId = recordsWriteMessage.contextId;
74
74
  let fullDerivationPath;
75
- if (keyDerivationScheme === KeyDerivationScheme.DataFormats) {
76
- fullDerivationPath = Records.constructKeyDerivationPathUsingDataFormatsScheme(descriptor.dataFormat);
77
- }
78
- else if (keyDerivationScheme === KeyDerivationScheme.ProtocolPath) {
75
+ if (keyDerivationScheme === KeyDerivationScheme.ProtocolPath) {
79
76
  fullDerivationPath = Records.constructKeyDerivationPathUsingProtocolPathScheme(descriptor);
80
77
  }
81
- else if (keyDerivationScheme === KeyDerivationScheme.ProtocolContext) {
82
- fullDerivationPath = Records.constructKeyDerivationPathUsingProtocolContextScheme(contextId);
83
- }
84
78
  else {
85
- // `schemas` scheme
86
- fullDerivationPath = Records.constructKeyDerivationPathUsingSchemasScheme(descriptor.schema);
79
+ // `protocolContext` scheme
80
+ fullDerivationPath = Records.constructKeyDerivationPathUsingProtocolContextScheme(contextId);
87
81
  }
88
82
  return fullDerivationPath;
89
83
  }
90
- /**
91
- * Constructs the full key derivation path using `dataFormats` scheme.
92
- * The derivation path is always `["dataFormats", "<mime-type>"]` regardless of whether
93
- * a schema is present. This matches the spec: keys are derived purely from the MIME type.
94
- */
95
- static constructKeyDerivationPathUsingDataFormatsScheme(dataFormat) {
96
- return [
97
- KeyDerivationScheme.DataFormats,
98
- dataFormat
99
- ];
100
- }
101
84
  /**
102
85
  * Constructs the full key derivation path using `protocolPath` scheme.
103
86
  *
@@ -107,11 +90,6 @@ export class Records {
107
90
  * its children (composing protocol) use different protocol URIs and thus different key trees.
108
91
  */
109
92
  static constructKeyDerivationPathUsingProtocolPathScheme(descriptor) {
110
- // ensure `protocol` is defined
111
- // NOTE: no need to check `protocolPath` and `contextId` because earlier code ensures that if `protocol` is defined, those are defined also
112
- if (descriptor.protocol === undefined) {
113
- throw new DwnError(DwnErrorCode.RecordsProtocolPathDerivationSchemeMissingProtocol, 'Unable to construct key derivation path using `protocols` scheme because `protocol` is missing.');
114
- }
115
93
  const protocolPathSegments = descriptor.protocolPath.split('/');
116
94
  const fullDerivationPath = [
117
95
  KeyDerivationScheme.ProtocolPath,
@@ -131,9 +109,6 @@ export class Records {
131
109
  * and composing protocols that attach to those threads).
132
110
  */
133
111
  static constructKeyDerivationPathUsingProtocolContextScheme(contextId) {
134
- if (contextId === undefined) {
135
- throw new DwnError(DwnErrorCode.RecordsProtocolContextDerivationSchemeMissingContextId, 'Unable to construct key derivation path using `protocolContext` scheme because `contextId` is missing.');
136
- }
137
112
  // TODO: Extend key derivation support to include the full contextId (https://github.com/enboxorg/enbox/issues/99)
138
113
  const firstContextSegment = contextId.split('/')[0];
139
114
  const fullDerivationPath = [
@@ -142,19 +117,6 @@ export class Records {
142
117
  ];
143
118
  return fullDerivationPath;
144
119
  }
145
- /**
146
- * Constructs the full key derivation path using `schemas` scheme.
147
- */
148
- static constructKeyDerivationPathUsingSchemasScheme(schema) {
149
- if (schema === undefined) {
150
- throw new DwnError(DwnErrorCode.RecordsSchemasDerivationSchemeMissingSchema, 'Unable to construct key derivation path using `schemas` scheme because `schema` is missing.');
151
- }
152
- const fullDerivationPath = [
153
- KeyDerivationScheme.Schemas,
154
- schema
155
- ];
156
- return fullDerivationPath;
157
- }
158
120
  /**
159
121
  * Derives a descendant private key given an ancestor private key and the full absolute derivation path.
160
122
  * Uses X25519 keys for encryption key derivation.
@@ -327,7 +289,7 @@ export class Records {
327
289
  }
328
290
  if (authorDelegatedGrantDefined) {
329
291
  const delegatedGrant = message.authorization.authorDelegatedGrant;
330
- const permissionGrant = await PermissionGrant.parse(delegatedGrant);
292
+ const permissionGrant = PermissionGrant.parse(delegatedGrant);
331
293
  if (permissionGrant.delegated !== true) {
332
294
  throw new DwnError(DwnErrorCode.RecordsAuthorDelegatedGrantNotADelegatedGrant, `The owner delegated grant given is not a delegated grant.`);
333
295
  }
@@ -353,7 +315,7 @@ export class Records {
353
315
  }
354
316
  if (ownerDelegatedGrantDefined) {
355
317
  const delegatedGrant = message.authorization.ownerDelegatedGrant;
356
- const permissionGrant = await PermissionGrant.parse(delegatedGrant);
318
+ const permissionGrant = PermissionGrant.parse(delegatedGrant);
357
319
  if (permissionGrant.delegated !== true) {
358
320
  throw new DwnError(DwnErrorCode.RecordsOwnerDelegatedGrantNotADelegatedGrant, `The owner delegated grant given is not a delegated grant.`);
359
321
  }