@enbox/dwn-sdk-js 0.4.0 → 0.4.2

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 (522) hide show
  1. package/README.md +4 -4
  2. package/dist/browser.mjs +3 -10
  3. package/dist/browser.mjs.map +4 -4
  4. package/dist/esm/generated/precompiled-validators.js +799 -885
  5. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  6. package/dist/esm/src/core/dwn-constant.js +5 -0
  7. package/dist/esm/src/core/dwn-constant.js.map +1 -1
  8. package/dist/esm/src/core/dwn-error.js +12 -4
  9. package/dist/esm/src/core/dwn-error.js.map +1 -1
  10. package/dist/esm/src/core/grant-authorization.js +9 -18
  11. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  12. package/dist/esm/src/core/message-reply.js.map +1 -1
  13. package/dist/esm/src/core/messages-grant-authorization.js +28 -45
  14. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  15. package/dist/esm/src/core/protocol-authorization-action.js +25 -27
  16. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
  17. package/dist/esm/src/core/protocol-authorization-validation.js +34 -89
  18. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  19. package/dist/esm/src/core/protocol-authorization.js +44 -118
  20. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  21. package/dist/esm/src/core/protocols-grant-authorization.js +5 -5
  22. package/dist/esm/src/core/protocols-grant-authorization.js.map +1 -1
  23. package/dist/esm/src/core/recording-validation-state-reader.js +84 -0
  24. package/dist/esm/src/core/recording-validation-state-reader.js.map +1 -0
  25. package/dist/esm/src/core/records-grant-authorization.js +11 -11
  26. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  27. package/dist/esm/src/core/replication-apply.js +123 -28
  28. package/dist/esm/src/core/replication-apply.js.map +1 -1
  29. package/dist/esm/src/core/resumable-task-manager.js +5 -4
  30. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  31. package/dist/esm/src/core/validation-state-reader.js +237 -0
  32. package/dist/esm/src/core/validation-state-reader.js.map +1 -0
  33. package/dist/esm/src/dwn.js +165 -132
  34. package/dist/esm/src/dwn.js.map +1 -1
  35. package/dist/esm/src/enums/dwn-interface-method.js +0 -1
  36. package/dist/esm/src/enums/dwn-interface-method.js.map +1 -1
  37. package/dist/esm/src/event-stream/durable-event-log.js +365 -0
  38. package/dist/esm/src/event-stream/durable-event-log.js.map +1 -0
  39. package/dist/esm/src/event-stream/event-emitter-wake-publisher.js +25 -0
  40. package/dist/esm/src/event-stream/event-emitter-wake-publisher.js.map +1 -0
  41. package/dist/esm/src/handlers/messages-query.js +159 -0
  42. package/dist/esm/src/handlers/messages-query.js.map +1 -0
  43. package/dist/esm/src/handlers/messages-read.js +5 -5
  44. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  45. package/dist/esm/src/handlers/messages-subscribe.js +8 -8
  46. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  47. package/dist/esm/src/handlers/protocols-configure.js +30 -49
  48. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  49. package/dist/esm/src/handlers/protocols-query.js +1 -1
  50. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  51. package/dist/esm/src/handlers/records-count.js +20 -11
  52. package/dist/esm/src/handlers/records-count.js.map +1 -1
  53. package/dist/esm/src/handlers/records-delete.js +20 -16
  54. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  55. package/dist/esm/src/handlers/records-query.js +35 -11
  56. package/dist/esm/src/handlers/records-query.js.map +1 -1
  57. package/dist/esm/src/handlers/records-read.js +52 -42
  58. package/dist/esm/src/handlers/records-read.js.map +1 -1
  59. package/dist/esm/src/handlers/records-subscribe.js +107 -11
  60. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  61. package/dist/esm/src/handlers/records-write.js +62 -116
  62. package/dist/esm/src/handlers/records-write.js.map +1 -1
  63. package/dist/esm/src/index.js +6 -7
  64. package/dist/esm/src/index.js.map +1 -1
  65. package/dist/esm/src/interfaces/{messages-sync.js → messages-query.js} +21 -15
  66. package/dist/esm/src/interfaces/messages-query.js.map +1 -0
  67. package/dist/esm/src/interfaces/protocols-configure.js +12 -9
  68. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  69. package/dist/esm/src/interfaces/protocols-query.js +3 -4
  70. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  71. package/dist/esm/src/interfaces/records-count.js +4 -3
  72. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  73. package/dist/esm/src/interfaces/records-delete.js +21 -4
  74. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  75. package/dist/esm/src/interfaces/records-query.js +4 -3
  76. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  77. package/dist/esm/src/interfaces/records-read.js +3 -3
  78. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  79. package/dist/esm/src/interfaces/records-subscribe.js +4 -3
  80. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  81. package/dist/esm/src/interfaces/records-write.js +27 -13
  82. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  83. package/dist/esm/src/protocols/permissions.js +27 -34
  84. package/dist/esm/src/protocols/permissions.js.map +1 -1
  85. package/dist/esm/src/store/index-level.js +24 -9
  86. package/dist/esm/src/store/index-level.js.map +1 -1
  87. package/dist/esm/src/store/level-wrapper.js +7 -0
  88. package/dist/esm/src/store/level-wrapper.js.map +1 -1
  89. package/dist/esm/src/store/message-store-level.js +536 -42
  90. package/dist/esm/src/store/message-store-level.js.map +1 -1
  91. package/dist/esm/src/store/storage-controller.js +58 -49
  92. package/dist/esm/src/store/storage-controller.js.map +1 -1
  93. package/dist/esm/src/types/message-types.js.map +1 -1
  94. package/dist/esm/src/types/validation-state-reader.js +2 -0
  95. package/dist/esm/src/types/validation-state-reader.js.map +1 -0
  96. package/dist/esm/src/utils/messages.js +17 -0
  97. package/dist/esm/src/utils/messages.js.map +1 -1
  98. package/dist/esm/src/utils/protocol-tags.js +262 -0
  99. package/dist/esm/src/utils/protocol-tags.js.map +1 -0
  100. package/dist/esm/src/utils/record-limit-occupancy.js +244 -0
  101. package/dist/esm/src/utils/record-limit-occupancy.js.map +1 -0
  102. package/dist/esm/src/utils/records.js +50 -14
  103. package/dist/esm/src/utils/records.js.map +1 -1
  104. package/dist/esm/src/utils/replication.js +85 -0
  105. package/dist/esm/src/utils/replication.js.map +1 -0
  106. package/dist/esm/tests/core/grant-authorization.spec.js +4 -4
  107. package/dist/esm/tests/core/grant-authorization.spec.js.map +1 -1
  108. package/dist/esm/tests/core/process-message-parity.spec.js +222 -0
  109. package/dist/esm/tests/core/process-message-parity.spec.js.map +1 -0
  110. package/dist/esm/tests/core/protocol-authorization.spec.js +5 -2
  111. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  112. package/dist/esm/tests/core/records-grant-authorization.spec.js +5 -5
  113. package/dist/esm/tests/core/records-grant-authorization.spec.js.map +1 -1
  114. package/dist/esm/tests/core/replication-apply.spec.js +55 -1
  115. package/dist/esm/tests/core/replication-apply.spec.js.map +1 -1
  116. package/dist/esm/tests/core/replication-replay-property.spec.js +350 -0
  117. package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -0
  118. package/dist/esm/tests/core/validation-read-closure.spec.js +469 -0
  119. package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -0
  120. package/dist/esm/tests/core/validation-state-reader.spec.js +716 -0
  121. package/dist/esm/tests/core/validation-state-reader.spec.js.map +1 -0
  122. package/dist/esm/tests/durable-event-log.spec.js +373 -0
  123. package/dist/esm/tests/durable-event-log.spec.js.map +1 -0
  124. package/dist/esm/tests/dwn.spec.js +504 -35
  125. package/dist/esm/tests/dwn.spec.js.map +1 -1
  126. package/dist/esm/tests/features/author-delegated-grant.spec.js +9 -6
  127. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  128. package/dist/esm/tests/features/owner-delegated-grant.spec.js +1 -4
  129. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  130. package/dist/esm/tests/features/owner-signature.spec.js +1 -4
  131. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  132. package/dist/esm/tests/features/permissions.spec.js +165 -4
  133. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  134. package/dist/esm/tests/features/protocol-composition.spec.js +8 -11
  135. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  136. package/dist/esm/tests/features/protocol-create-action.spec.js +1 -4
  137. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  138. package/dist/esm/tests/features/protocol-delete-action.spec.js +3 -5
  139. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  140. package/dist/esm/tests/features/protocol-update-action.spec.js +3 -6
  141. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  142. package/dist/esm/tests/features/records-delivery.spec.js +1 -4
  143. package/dist/esm/tests/features/records-delivery.spec.js.map +1 -1
  144. package/dist/esm/tests/features/records-immutable.spec.js +1 -4
  145. package/dist/esm/tests/features/records-immutable.spec.js.map +1 -1
  146. package/dist/esm/tests/features/records-nested-query-scope.spec.js +281 -0
  147. package/dist/esm/tests/features/records-nested-query-scope.spec.js.map +1 -0
  148. package/dist/esm/tests/features/records-prune-cross-protocol.spec.js +3 -7
  149. package/dist/esm/tests/features/records-prune-cross-protocol.spec.js.map +1 -1
  150. package/dist/esm/tests/features/records-prune.spec.js +11 -22
  151. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  152. package/dist/esm/tests/features/records-record-limit.spec.js +441 -231
  153. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -1
  154. package/dist/esm/tests/features/records-squash.spec.js +6 -4
  155. package/dist/esm/tests/features/records-squash.spec.js.map +1 -1
  156. package/dist/esm/tests/features/records-tags.spec.js +1 -4
  157. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  158. package/dist/esm/tests/features/resumable-tasks.spec.js +3 -5
  159. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  160. package/dist/esm/tests/fuzz/message-store.fuzz.spec.js +1 -2
  161. package/dist/esm/tests/fuzz/message-store.fuzz.spec.js.map +1 -1
  162. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js +2 -4
  163. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js.map +1 -1
  164. package/dist/esm/tests/fuzz/schema-validation.fuzz.spec.js +1 -1
  165. package/dist/esm/tests/fuzz/schema-validation.fuzz.spec.js.map +1 -1
  166. package/dist/esm/tests/handlers/messages-query.spec.js +246 -0
  167. package/dist/esm/tests/handlers/messages-query.spec.js.map +1 -0
  168. package/dist/esm/tests/handlers/messages-read.spec.js +2 -5
  169. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  170. package/dist/esm/tests/handlers/messages-subscribe.spec.js +3 -14
  171. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  172. package/dist/esm/tests/handlers/protocols-configure.spec.js +27 -26
  173. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  174. package/dist/esm/tests/handlers/protocols-query.spec.js +1 -4
  175. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  176. package/dist/esm/tests/handlers/records-count.spec.js +1 -4
  177. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  178. package/dist/esm/tests/handlers/records-delete.spec.js +312 -30
  179. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  180. package/dist/esm/tests/handlers/records-query.spec.js +32 -9
  181. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  182. package/dist/esm/tests/handlers/records-read.spec.js +4 -4
  183. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  184. package/dist/esm/tests/handlers/records-subscribe.spec.js +33 -14
  185. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  186. package/dist/esm/tests/handlers/records-write.spec.js +82 -36
  187. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  188. package/dist/esm/tests/interfaces/records-delete.spec.js +69 -2
  189. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  190. package/dist/esm/tests/interfaces/records-write.spec.js +4 -3
  191. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  192. package/dist/esm/tests/protocols/permissions.spec.js +55 -6
  193. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  194. package/dist/esm/tests/scenarios/aggregator.spec.js +1 -4
  195. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  196. package/dist/esm/tests/scenarios/deleted-record.spec.js +1 -4
  197. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  198. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +1 -4
  199. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  200. package/dist/esm/tests/scenarios/nested-roles.spec.js +1 -4
  201. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  202. package/dist/esm/tests/scenarios/subscriptions.spec.js +1 -4
  203. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  204. package/dist/esm/tests/store/message-store-level.spec.js +361 -5
  205. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  206. package/dist/esm/tests/store/message-store.spec.js +60 -0
  207. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  208. package/dist/esm/tests/test-event-stream.js +7 -3
  209. package/dist/esm/tests/test-event-stream.js.map +1 -1
  210. package/dist/esm/tests/test-stores.js +19 -9
  211. package/dist/esm/tests/test-stores.js.map +1 -1
  212. package/dist/esm/tests/test-suite.js +4 -2
  213. package/dist/esm/tests/test-suite.js.map +1 -1
  214. package/dist/esm/tests/utils/protocol-tags.spec.js +96 -0
  215. package/dist/esm/tests/utils/protocol-tags.spec.js.map +1 -0
  216. package/dist/esm/tests/utils/test-data-generator.js +25 -0
  217. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  218. package/dist/esm/tests/utils/test-stub-generator.js.map +1 -1
  219. package/dist/esm/tests/utils/test-validation-state-reader.js +16 -0
  220. package/dist/esm/tests/utils/test-validation-state-reader.js.map +1 -0
  221. package/dist/types/generated/precompiled-validators.d.ts +6 -6
  222. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  223. package/dist/types/src/core/core-protocol.d.ts +3 -3
  224. package/dist/types/src/core/core-protocol.d.ts.map +1 -1
  225. package/dist/types/src/core/dwn-constant.d.ts +5 -0
  226. package/dist/types/src/core/dwn-constant.d.ts.map +1 -1
  227. package/dist/types/src/core/dwn-error.d.ts +12 -4
  228. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  229. package/dist/types/src/core/grant-authorization.d.ts +5 -5
  230. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  231. package/dist/types/src/core/message-reply.d.ts +5 -4
  232. package/dist/types/src/core/message-reply.d.ts.map +1 -1
  233. package/dist/types/src/core/messages-grant-authorization.d.ts +12 -14
  234. package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
  235. package/dist/types/src/core/protocol-authorization-action.d.ts +4 -5
  236. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
  237. package/dist/types/src/core/protocol-authorization-validation.d.ts +14 -17
  238. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  239. package/dist/types/src/core/protocol-authorization.d.ts +8 -33
  240. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  241. package/dist/types/src/core/protocols-grant-authorization.d.ts +4 -4
  242. package/dist/types/src/core/protocols-grant-authorization.d.ts.map +1 -1
  243. package/dist/types/src/core/recording-validation-state-reader.d.ts +75 -0
  244. package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -0
  245. package/dist/types/src/core/records-grant-authorization.d.ts +8 -8
  246. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  247. package/dist/types/src/core/replication-apply.d.ts +36 -0
  248. package/dist/types/src/core/replication-apply.d.ts.map +1 -1
  249. package/dist/types/src/core/resumable-task-manager.d.ts +1 -1
  250. package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
  251. package/dist/types/src/core/validation-state-reader.d.ts +79 -0
  252. package/dist/types/src/core/validation-state-reader.d.ts.map +1 -0
  253. package/dist/types/src/dwn.d.ts +33 -20
  254. package/dist/types/src/dwn.d.ts.map +1 -1
  255. package/dist/types/src/enums/dwn-interface-method.d.ts +0 -1
  256. package/dist/types/src/enums/dwn-interface-method.d.ts.map +1 -1
  257. package/dist/types/src/event-stream/durable-event-log.d.ts +69 -0
  258. package/dist/types/src/event-stream/durable-event-log.d.ts.map +1 -0
  259. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts +13 -0
  260. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts.map +1 -0
  261. package/dist/types/src/handlers/messages-query.d.ts +20 -0
  262. package/dist/types/src/handlers/messages-query.d.ts.map +1 -0
  263. package/dist/types/src/handlers/messages-read.d.ts +1 -1
  264. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  265. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  266. package/dist/types/src/handlers/protocols-configure.d.ts +0 -5
  267. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  268. package/dist/types/src/handlers/records-count.d.ts +2 -1
  269. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  270. package/dist/types/src/handlers/records-delete.d.ts +2 -2
  271. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  272. package/dist/types/src/handlers/records-query.d.ts +1 -1
  273. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  274. package/dist/types/src/handlers/records-read.d.ts +2 -1
  275. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  276. package/dist/types/src/handlers/records-subscribe.d.ts +4 -5
  277. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  278. package/dist/types/src/handlers/records-write.d.ts +3 -11
  279. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  280. package/dist/types/src/index.d.ts +14 -16
  281. package/dist/types/src/index.d.ts.map +1 -1
  282. package/dist/types/src/interfaces/messages-query.d.ts +23 -0
  283. package/dist/types/src/interfaces/messages-query.d.ts.map +1 -0
  284. package/dist/types/src/interfaces/protocols-configure.d.ts +3 -3
  285. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  286. package/dist/types/src/interfaces/protocols-query.d.ts +2 -2
  287. package/dist/types/src/interfaces/protocols-query.d.ts.map +1 -1
  288. package/dist/types/src/interfaces/records-count.d.ts +3 -3
  289. package/dist/types/src/interfaces/records-count.d.ts.map +1 -1
  290. package/dist/types/src/interfaces/records-delete.d.ts +11 -3
  291. package/dist/types/src/interfaces/records-delete.d.ts.map +1 -1
  292. package/dist/types/src/interfaces/records-query.d.ts +3 -3
  293. package/dist/types/src/interfaces/records-query.d.ts.map +1 -1
  294. package/dist/types/src/interfaces/records-read.d.ts +3 -3
  295. package/dist/types/src/interfaces/records-read.d.ts.map +1 -1
  296. package/dist/types/src/interfaces/records-subscribe.d.ts +3 -3
  297. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  298. package/dist/types/src/interfaces/records-write.d.ts +15 -7
  299. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  300. package/dist/types/src/protocols/permissions.d.ts +9 -12
  301. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  302. package/dist/types/src/store/index-level.d.ts +10 -1
  303. package/dist/types/src/store/index-level.d.ts.map +1 -1
  304. package/dist/types/src/store/level-wrapper.d.ts +5 -0
  305. package/dist/types/src/store/level-wrapper.d.ts.map +1 -1
  306. package/dist/types/src/store/message-store-level.d.ts +94 -14
  307. package/dist/types/src/store/message-store-level.d.ts.map +1 -1
  308. package/dist/types/src/store/storage-controller.d.ts +17 -14
  309. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  310. package/dist/types/src/types/message-store.d.ts +29 -1
  311. package/dist/types/src/types/message-store.d.ts.map +1 -1
  312. package/dist/types/src/types/message-types.d.ts +2 -0
  313. package/dist/types/src/types/message-types.d.ts.map +1 -1
  314. package/dist/types/src/types/messages-types.d.ts +21 -37
  315. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  316. package/dist/types/src/types/method-handler.d.ts +2 -2
  317. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  318. package/dist/types/src/types/permission-types.d.ts +1 -1
  319. package/dist/types/src/types/subscriptions.d.ts +50 -39
  320. package/dist/types/src/types/subscriptions.d.ts.map +1 -1
  321. package/dist/types/src/types/validation-state-reader.d.ts +116 -0
  322. package/dist/types/src/types/validation-state-reader.d.ts.map +1 -0
  323. package/dist/types/src/utils/messages.d.ts +10 -0
  324. package/dist/types/src/utils/messages.d.ts.map +1 -1
  325. package/dist/types/src/utils/protocol-tags.d.ts +15 -0
  326. package/dist/types/src/utils/protocol-tags.d.ts.map +1 -0
  327. package/dist/types/src/utils/record-limit-occupancy.d.ts +40 -0
  328. package/dist/types/src/utils/record-limit-occupancy.d.ts.map +1 -0
  329. package/dist/types/src/utils/records.d.ts +25 -3
  330. package/dist/types/src/utils/records.d.ts.map +1 -1
  331. package/dist/types/src/utils/replication.d.ts +22 -0
  332. package/dist/types/src/utils/replication.d.ts.map +1 -0
  333. package/dist/types/tests/core/process-message-parity.spec.d.ts +2 -0
  334. package/dist/types/tests/core/process-message-parity.spec.d.ts.map +1 -0
  335. package/dist/types/tests/core/replication-replay-property.spec.d.ts +2 -0
  336. package/dist/types/tests/core/replication-replay-property.spec.d.ts.map +1 -0
  337. package/dist/types/tests/core/validation-read-closure.spec.d.ts +2 -0
  338. package/dist/types/tests/core/validation-read-closure.spec.d.ts.map +1 -0
  339. package/dist/types/tests/core/validation-state-reader.spec.d.ts +2 -0
  340. package/dist/types/tests/core/validation-state-reader.spec.d.ts.map +1 -0
  341. package/dist/types/tests/durable-event-log.spec.d.ts +2 -0
  342. package/dist/types/tests/durable-event-log.spec.d.ts.map +1 -0
  343. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  344. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  345. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  346. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  347. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  348. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  349. package/dist/types/tests/features/protocol-create-action.spec.d.ts.map +1 -1
  350. package/dist/types/tests/features/protocol-delete-action.spec.d.ts.map +1 -1
  351. package/dist/types/tests/features/protocol-update-action.spec.d.ts.map +1 -1
  352. package/dist/types/tests/features/records-delivery.spec.d.ts.map +1 -1
  353. package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -1
  354. package/dist/types/tests/features/records-nested-query-scope.spec.d.ts +2 -0
  355. package/dist/types/tests/features/records-nested-query-scope.spec.d.ts.map +1 -0
  356. package/dist/types/tests/features/records-prune-cross-protocol.spec.d.ts.map +1 -1
  357. package/dist/types/tests/features/records-prune.spec.d.ts.map +1 -1
  358. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -1
  359. package/dist/types/tests/features/records-squash.spec.d.ts.map +1 -1
  360. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  361. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  362. package/dist/types/tests/handlers/messages-query.spec.d.ts +2 -0
  363. package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -0
  364. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  365. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  366. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
  367. package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -1
  368. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  369. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  370. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  371. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  372. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  373. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  374. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  375. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
  376. package/dist/types/tests/scenarios/nested-roles.spec.d.ts.map +1 -1
  377. package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
  378. package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
  379. package/dist/types/tests/test-event-stream.d.ts +1 -1
  380. package/dist/types/tests/test-event-stream.d.ts.map +1 -1
  381. package/dist/types/tests/test-stores.d.ts +5 -4
  382. package/dist/types/tests/test-stores.d.ts.map +1 -1
  383. package/dist/types/tests/test-suite.d.ts +1 -2
  384. package/dist/types/tests/test-suite.d.ts.map +1 -1
  385. package/dist/types/tests/utils/protocol-tags.spec.d.ts +2 -0
  386. package/dist/types/tests/utils/protocol-tags.spec.d.ts.map +1 -0
  387. package/dist/types/tests/utils/test-data-generator.d.ts +20 -1
  388. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  389. package/dist/types/tests/utils/test-validation-state-reader.d.ts +15 -0
  390. package/dist/types/tests/utils/test-validation-state-reader.d.ts.map +1 -0
  391. package/package.json +2 -2
  392. package/src/core/core-protocol.ts +3 -3
  393. package/src/core/dwn-constant.ts +7 -1
  394. package/src/core/dwn-error.ts +12 -4
  395. package/src/core/grant-authorization.ts +11 -20
  396. package/src/core/message-reply.ts +6 -5
  397. package/src/core/messages-grant-authorization.ts +37 -70
  398. package/src/core/protocol-authorization-action.ts +29 -38
  399. package/src/core/protocol-authorization-validation.ts +47 -121
  400. package/src/core/protocol-authorization.ts +56 -202
  401. package/src/core/protocols-grant-authorization.ts +9 -9
  402. package/src/core/recording-validation-state-reader.ts +130 -0
  403. package/src/core/records-grant-authorization.ts +16 -16
  404. package/src/core/replication-apply.ts +172 -32
  405. package/src/core/resumable-task-manager.ts +10 -8
  406. package/src/core/validation-state-reader.ts +350 -0
  407. package/src/dwn.ts +285 -192
  408. package/src/enums/dwn-interface-method.ts +0 -1
  409. package/src/event-stream/durable-event-log.ts +509 -0
  410. package/src/event-stream/event-emitter-wake-publisher.ts +34 -0
  411. package/src/handlers/messages-query.ts +203 -0
  412. package/src/handlers/messages-read.ts +9 -10
  413. package/src/handlers/messages-subscribe.ts +12 -13
  414. package/src/handlers/protocols-configure.ts +37 -58
  415. package/src/handlers/protocols-query.ts +1 -1
  416. package/src/handlers/records-count.ts +24 -17
  417. package/src/handlers/records-delete.ts +29 -27
  418. package/src/handlers/records-query.ts +38 -17
  419. package/src/handlers/records-read.ts +63 -50
  420. package/src/handlers/records-subscribe.ts +132 -19
  421. package/src/handlers/records-write.ts +77 -168
  422. package/src/index.ts +14 -17
  423. package/src/interfaces/messages-query.ts +70 -0
  424. package/src/interfaces/protocols-configure.ts +20 -10
  425. package/src/interfaces/protocols-query.ts +4 -5
  426. package/src/interfaces/records-count.ts +9 -4
  427. package/src/interfaces/records-delete.ts +25 -5
  428. package/src/interfaces/records-query.ts +9 -4
  429. package/src/interfaces/records-read.ts +4 -4
  430. package/src/interfaces/records-subscribe.ts +9 -4
  431. package/src/interfaces/records-write.ts +41 -13
  432. package/src/protocols/permissions.ts +32 -52
  433. package/src/store/index-level.ts +30 -9
  434. package/src/store/level-wrapper.ts +9 -1
  435. package/src/store/message-store-level.ts +757 -47
  436. package/src/store/storage-controller.ts +74 -63
  437. package/src/types/message-store.ts +45 -2
  438. package/src/types/message-types.ts +3 -1
  439. package/src/types/messages-types.ts +26 -45
  440. package/src/types/method-handler.ts +3 -3
  441. package/src/types/permission-types.ts +1 -1
  442. package/src/types/subscriptions.ts +53 -42
  443. package/src/types/validation-state-reader.ts +127 -0
  444. package/src/utils/messages.ts +25 -1
  445. package/src/utils/protocol-tags.ts +366 -0
  446. package/src/utils/record-limit-occupancy.ts +377 -0
  447. package/src/utils/records.ts +69 -13
  448. package/src/utils/replication.ts +122 -0
  449. package/dist/esm/src/core/record-chain.js +0 -64
  450. package/dist/esm/src/core/record-chain.js.map +0 -1
  451. package/dist/esm/src/event-stream/event-emitter-event-log.js +0 -334
  452. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +0 -1
  453. package/dist/esm/src/handlers/messages-sync.js +0 -278
  454. package/dist/esm/src/handlers/messages-sync.js.map +0 -1
  455. package/dist/esm/src/interfaces/messages-sync.js.map +0 -1
  456. package/dist/esm/src/smt/smt-store-level.js +0 -103
  457. package/dist/esm/src/smt/smt-store-level.js.map +0 -1
  458. package/dist/esm/src/smt/smt-store-memory.js +0 -41
  459. package/dist/esm/src/smt/smt-store-memory.js.map +0 -1
  460. package/dist/esm/src/smt/smt-utils.js +0 -129
  461. package/dist/esm/src/smt/smt-utils.js.map +0 -1
  462. package/dist/esm/src/smt/sparse-merkle-tree.js +0 -577
  463. package/dist/esm/src/smt/sparse-merkle-tree.js.map +0 -1
  464. package/dist/esm/src/state-index/state-index-level.js +0 -191
  465. package/dist/esm/src/state-index/state-index-level.js.map +0 -1
  466. package/dist/esm/src/types/smt-types.js +0 -5
  467. package/dist/esm/src/types/smt-types.js.map +0 -1
  468. package/dist/esm/src/types/state-index.js +0 -2
  469. package/dist/esm/src/types/state-index.js.map +0 -1
  470. package/dist/esm/tests/event-emitter-event-log.spec.js +0 -499
  471. package/dist/esm/tests/event-emitter-event-log.spec.js.map +0 -1
  472. package/dist/esm/tests/handlers/messages-sync.spec.js +0 -1088
  473. package/dist/esm/tests/handlers/messages-sync.spec.js.map +0 -1
  474. package/dist/esm/tests/smt/smt-store-level.spec.js +0 -132
  475. package/dist/esm/tests/smt/smt-store-level.spec.js.map +0 -1
  476. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +0 -732
  477. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +0 -1
  478. package/dist/esm/tests/state-index/state-index-level.spec.js +0 -245
  479. package/dist/esm/tests/state-index/state-index-level.spec.js.map +0 -1
  480. package/dist/types/src/core/record-chain.d.ts +0 -24
  481. package/dist/types/src/core/record-chain.d.ts.map +0 -1
  482. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +0 -80
  483. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +0 -1
  484. package/dist/types/src/handlers/messages-sync.d.ts +0 -39
  485. package/dist/types/src/handlers/messages-sync.d.ts.map +0 -1
  486. package/dist/types/src/interfaces/messages-sync.d.ts +0 -20
  487. package/dist/types/src/interfaces/messages-sync.d.ts.map +0 -1
  488. package/dist/types/src/smt/smt-store-level.d.ts +0 -32
  489. package/dist/types/src/smt/smt-store-level.d.ts.map +0 -1
  490. package/dist/types/src/smt/smt-store-memory.d.ts +0 -22
  491. package/dist/types/src/smt/smt-store-memory.d.ts.map +0 -1
  492. package/dist/types/src/smt/smt-utils.d.ts +0 -58
  493. package/dist/types/src/smt/smt-utils.d.ts.map +0 -1
  494. package/dist/types/src/smt/sparse-merkle-tree.d.ts +0 -124
  495. package/dist/types/src/smt/sparse-merkle-tree.d.ts.map +0 -1
  496. package/dist/types/src/state-index/state-index-level.d.ts +0 -83
  497. package/dist/types/src/state-index/state-index-level.d.ts.map +0 -1
  498. package/dist/types/src/types/smt-types.d.ts +0 -81
  499. package/dist/types/src/types/smt-types.d.ts.map +0 -1
  500. package/dist/types/src/types/state-index.d.ts +0 -90
  501. package/dist/types/src/types/state-index.d.ts.map +0 -1
  502. package/dist/types/tests/event-emitter-event-log.spec.d.ts +0 -2
  503. package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +0 -1
  504. package/dist/types/tests/handlers/messages-sync.spec.d.ts +0 -2
  505. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +0 -1
  506. package/dist/types/tests/smt/smt-store-level.spec.d.ts +0 -2
  507. package/dist/types/tests/smt/smt-store-level.spec.d.ts.map +0 -1
  508. package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts +0 -2
  509. package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts.map +0 -1
  510. package/dist/types/tests/state-index/state-index-level.spec.d.ts +0 -2
  511. package/dist/types/tests/state-index/state-index-level.spec.d.ts.map +0 -1
  512. package/src/core/record-chain.ts +0 -99
  513. package/src/event-stream/event-emitter-event-log.ts +0 -430
  514. package/src/handlers/messages-sync.ts +0 -403
  515. package/src/interfaces/messages-sync.ts +0 -69
  516. package/src/smt/smt-store-level.ts +0 -143
  517. package/src/smt/smt-store-memory.ts +0 -53
  518. package/src/smt/smt-utils.ts +0 -149
  519. package/src/smt/sparse-merkle-tree.ts +0 -698
  520. package/src/state-index/state-index-level.ts +0 -239
  521. package/src/types/smt-types.ts +0 -95
  522. package/src/types/state-index.ts +0 -100
@@ -4,6 +4,7 @@ import type { MessageInterface } from '../types/message-interface.js';
4
4
  import type { MessageSigner } from '../types/signer.js';
5
5
  import type { MessageStore } from '../types/message-store.js';
6
6
  import type { PublicKeyJwk } from '../types/jose-types.js';
7
+ import type { ValidationStateReader } from '../types/validation-state-reader.js';
7
8
  import type { DataEncodedRecordsWriteMessage, InternalRecordsWriteMessage, RecordsWriteDescriptor, RecordsWriteMessage, RecordsWriteSignaturePayload, RecordsWriteTags } from '../types/records-types.js';
8
9
  import type { EncryptionInput, JweEncryption } from '../utils/encryption.js';
9
10
  import type { GenericMessage, GenericSignaturePayload } from '../types/message-types.js';
@@ -164,6 +165,15 @@ export declare class RecordsWrite implements MessageInterface<RecordsWriteMessag
164
165
  * - will be set to current time (because this is a toggle from unpublished to published)
165
166
  */
166
167
  static createFrom(options: CreateFromOptions): Promise<RecordsWrite>;
168
+ /**
169
+ * Validates the expected `dataCid` and `dataSize` in the descriptor against the actual data.
170
+ *
171
+ * @throws {DwnError} with `DwnErrorCode.RecordsWriteDataCidMismatch`
172
+ * if the actual data CID does not match `dataCid` in the descriptor.
173
+ * @throws {DwnError} with `DwnErrorCode.RecordsWriteDataSizeMismatch`
174
+ * if the actual byte size does not match `dataSize` in the descriptor.
175
+ */
176
+ static validateDataIntegrity(expectedDataCid: string, expectedDataSize: number, actualDataCid: string, actualDataSize: number): void;
167
177
  /**
168
178
  * Called by `JSON.stringify(...)` automatically.
169
179
  */
@@ -173,9 +183,7 @@ export declare class RecordsWrite implements MessageInterface<RecordsWriteMessag
173
183
  *
174
184
  * @param options.append - When `true`, appends new `recipients` entries to the existing
175
185
  * `encryption` property instead of replacing it. Requires `this._message.encryption` to
176
- * already exist (i.e., the record must already be encrypted). This is used for the reactive
177
- * root-record upgrade: adding a ProtocolContext recipient entry alongside an existing
178
- * ProtocolPath entry so both the owner and context key holders can decrypt.
186
+ * already exist (i.e., the record must already be encrypted).
179
187
  */
180
188
  encryptSymmetricEncryptionKey(encryptionInput: EncryptionInput, options?: {
181
189
  append?: boolean;
@@ -225,14 +233,14 @@ export declare class RecordsWrite implements MessageInterface<RecordsWriteMessag
225
233
  constructIndexes(isLatestBaseState: boolean): Promise<KeyValues>;
226
234
  /**
227
235
  * Authorizes the author-delegate who signed this message.
228
- * @param messageStore Used to check if the grant has been revoked.
236
+ * @param validationStateReader Used to check if the grant has been revoked.
229
237
  */
230
- authorizeAuthorDelegate(messageStore: MessageStore): Promise<void>;
238
+ authorizeAuthorDelegate(validationStateReader: ValidationStateReader): Promise<void>;
231
239
  /**
232
240
  * Authorizes the owner-delegate who signed this message.
233
- * @param messageStore Used to check if the grant has been revoked.
241
+ * @param validationStateReader Used to check if the grant has been revoked.
234
242
  */
235
- authorizeOwnerDelegate(messageStore: MessageStore): Promise<void>;
243
+ authorizeOwnerDelegate(validationStateReader: ValidationStateReader): Promise<void>;
236
244
  /**
237
245
  * Checks if the given message is the initial entry of a record.
238
246
  */
@@ -1 +1 @@
1
- {"version":3,"file":"records-write.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/records-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-write.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/records-write.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { Filter } from '../types/query-types.js';
2
2
  import type { MessagesFilter } from '../types/messages-types.js';
3
3
  import type { MessageSigner } from '../types/signer.js';
4
- import type { MessageStore } from '../types/message-store.js';
5
4
  import type { ProtocolDefinition } from '../types/protocols-types.js';
5
+ import type { ValidationStateReader } from '../types/validation-state-reader.js';
6
6
  import type { CoreProtocol, CoreProtocolStores } from '../core/core-protocol.js';
7
7
  import type { DataEncodedRecordsWriteMessage, RecordsWriteMessage } from '../types/records-types.js';
8
8
  import type { PermissionConditions, PermissionGrantData, PermissionRequestData, PermissionRevocationData, PermissionScope } from '../types/permission-types.js';
@@ -81,6 +81,10 @@ export declare class PermissionsProtocol implements CoreProtocol {
81
81
  * The protocol path of the `revocation` record.
82
82
  */
83
83
  static readonly revocationPath = "grant/revocation";
84
+ /**
85
+ * Canonical store predicate for the latest revocation of a permission grant.
86
+ */
87
+ static grantRevocationFilter(grantId: string): Filter;
84
88
  /**
85
89
  * The definition of the Permissions protocol.
86
90
  */
@@ -95,7 +99,7 @@ export declare class PermissionsProtocol implements CoreProtocol {
95
99
  * Pre-processing hook for permission revocation records.
96
100
  * Validates that the revocation's `tags.protocol` matches the grant's scoped protocol.
97
101
  */
98
- preProcessWrite(tenant: string, message: RecordsWriteMessage, messageStore: MessageStore): Promise<void>;
102
+ preProcessWrite(tenant: string, message: RecordsWriteMessage, validationStateReader: ValidationStateReader): Promise<void>;
99
103
  /**
100
104
  * Post-processing hook for permission revocation records.
101
105
  * When a grant is revoked, all messages authorized by that grant and created
@@ -103,8 +107,7 @@ export declare class PermissionsProtocol implements CoreProtocol {
103
107
  *
104
108
  * Deletion order is deliberate to avoid orphaned data in case of crash:
105
109
  * 1. data store (large blobs first)
106
- * 2. state index (SMT entries)
107
- * 3. message store
110
+ * 2. message store
108
111
  */
109
112
  postProcessWrite(tenant: string, recordsWrite: RecordsWrite, stores: CoreProtocolStores): Promise<void>;
110
113
  /** @inheritdoc */
@@ -147,19 +150,13 @@ export declare class PermissionsProtocol implements CoreProtocol {
147
150
  * Validates the given Permissions protocol RecordsWrite. It can be a request, grant, or revocation.
148
151
  */
149
152
  static validateSchema(recordsWriteMessage: RecordsWriteMessage, dataBytes: Uint8Array): void;
150
- /**
151
- * Fetches PermissionGrant with the specified `recordID`.
152
- * @returns the PermissionGrant matching the `recordId` specified.
153
- * @throws {Error} if PermissionGrant does not exist
154
- */
155
- static fetchGrant(tenant: string, messageStore: MessageStore, permissionGrantId: string): Promise<PermissionGrant>;
156
153
  /**
157
154
  * Gets the scope from the given permission record.
158
155
  * If the record is a revocation, the scope is fetched from the grant that is being revoked.
159
156
  *
160
- * @param messageStore The message store to fetch the grant for a revocation.
157
+ * @param validationStateReader Used to fetch the grant for a revocation.
161
158
  */
162
- static getScopeFromPermissionRecord(tenant: string, messageStore: MessageStore, incomingMessage: DataEncodedRecordsWriteMessage): Promise<PermissionScope>;
159
+ static getScopeFromPermissionRecord(tenant: string, validationStateReader: ValidationStateReader, incomingMessage: DataEncodedRecordsWriteMessage): Promise<PermissionScope>;
163
160
  /**
164
161
  * Normalizes the given permission scope if needed.
165
162
  * @returns The normalized permission scope.
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/protocols/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/protocols/permissions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Filter, KeyValues, PaginationCursor, QueryOptions } from '../types/query-types.js';
2
+ import type { LevelWrapperBatchOperation } from './level-wrapper.js';
2
3
  import { createLevelDatabase, LevelWrapper } from './level-wrapper.js';
3
4
  export type IndexLevelConfig = {
4
5
  location: string;
@@ -36,7 +37,7 @@ export declare class IndexLevel {
36
37
  db: LevelWrapper<string>;
37
38
  config: IndexLevelConfig;
38
39
  private readonly _compoundIndexes;
39
- constructor(config: IndexLevelConfig);
40
+ constructor(config: IndexLevelConfig, db?: LevelWrapper<string>);
40
41
  open(): Promise<void>;
41
42
  close(): Promise<void>;
42
43
  /**
@@ -52,10 +53,18 @@ export declare class IndexLevel {
52
53
  * @param options IndexLevelOptions that include an AbortSignal.
53
54
  */
54
55
  put(tenant: string, messageCid: string, indexes: KeyValues, options?: IndexLevelOptions): Promise<void>;
56
+ /**
57
+ * Creates the batch operations for indexing an item without executing them.
58
+ */
59
+ createPutOperations(tenant: string, messageCid: string, indexes: KeyValues): Promise<LevelWrapperBatchOperation<string>[]>;
55
60
  /**
56
61
  * Deletes all of the index data associated with the item.
57
62
  */
58
63
  delete(tenant: string, messageCid: string, options?: IndexLevelOptions): Promise<void>;
64
+ /**
65
+ * Creates the batch operations for removing an item's index data without executing them.
66
+ */
67
+ createDeleteOperations(tenant: string, messageCid: string): Promise<LevelWrapperBatchOperation<string>[]>;
59
68
  /**
60
69
  * Creates an IndexLevel `put` operation for indexing an item, creating a partition by `tenant` and by `indexName`
61
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index-level.d.ts","sourceRoot":"","sources":["../../../../src/store/index-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-level.d.ts","sourceRoot":"","sources":["../../../../src/store/index-level.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,11 @@ export declare class LevelWrapper<V> {
33
33
  * Wraps the given LevelWrapperBatchOperation as an operation for the specified partition.
34
34
  */
35
35
  createPartitionOperation(partitionName: string, operation: LevelWrapperBatchOperation<V>): LevelWrapperBatchOperation<V>;
36
+ /**
37
+ * Wraps the given operation as targeting this wrapper's own partition, so it
38
+ * can be executed in a batch on an ancestor database.
39
+ */
40
+ createOperation(operation: LevelWrapperBatchOperation<V>): LevelWrapperBatchOperation<V>;
36
41
  private compactUnderlyingStorage;
37
42
  /**
38
43
  * Gets the min and max key value of this partition.
@@ -1 +1 @@
1
- {"version":3,"file":"level-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/store/level-wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"level-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/store/level-wrapper.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,56 @@
1
1
  import type { CompoundIndexDefinition } from './index-level.js';
2
+ import type { EventLogReadOptions, EventLogReadResult, ProgressToken, ReplicationFeedReader, WakePublisher } from '../types/subscriptions.js';
2
3
  import type { Filter, KeyValues, PaginationCursor, QueryOptions } from '../types/query-types.js';
3
4
  import type { GenericMessage, MessageSort, Pagination } from '../types/message-types.js';
4
- import type { MessageStore, MessageStoreOptions } from '../types/message-store.js';
5
- import { BlockstoreLevel } from './blockstore-level.js';
5
+ import type { MessageStore, MessageStoreOptions, MessageStorePutResult } from '../types/message-store.js';
6
6
  import { createLevelDatabase } from './level-wrapper.js';
7
- import { IndexLevel } from './index-level.js';
8
7
  /**
9
- * A simple implementation of {@link MessageStore} that works in both the browser and server-side.
10
- * Leverages LevelDB under the hood.
8
+ * A {@link MessageStore} and {@link ReplicationFeedReader} implementation that works in both the
9
+ * browser and server-side, backed by a SINGLE LevelDB root: message blocks, query indexes, the
10
+ * per-tenant replication log, the cid→seq index, fingerprint domains, the tenant counters, and
11
+ * the store epoch are all sublevels of one Level instance, so every mutation commits as one fully
12
+ * atomic batch.
13
+ *
14
+ * A per-tenant async write mutex spans seq assignment through batch write, so commit order equals
15
+ * seq order by construction. Seq assignment is gap-free (a failed batch never persists the head),
16
+ * while the readable log stays sparse after compaction and under filters — readers never assume
17
+ * contiguity.
11
18
  */
12
- export declare class MessageStoreLevel implements MessageStore {
19
+ export declare class MessageStoreLevel implements MessageStore, ReplicationFeedReader {
13
20
  config: MessageStoreLevelConfig;
14
- blockstore: BlockstoreLevel;
15
- index: IndexLevel;
21
+ private readonly wakePublisher?;
22
+ private partitionsPromise?;
23
+ private epochPromise?;
24
+ private readonly writeLocks;
16
25
  /**
17
26
  * @param {MessageStoreLevelConfig} config
18
- * @param {string} config.blockstoreLocation - must be a directory path (relative or absolute) where
27
+ * @param {string} config.location - must be a directory path (relative or absolute) where
19
28
  * LevelDB will store its files, or in browsers, the name of the
20
29
  * {@link https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase IDBDatabase} to be opened.
21
- * @param {string} config.indexLocation - same as config.blockstoreLocation
22
30
  * @param {CompoundIndexDefinition[]} config.compoundIndexes - compound indexes to register.
23
31
  * Defaults to DEFAULT_COMPOUND_INDEXES which cover the most common DWN query patterns.
32
+ * @param {WakePublisher} config.wakePublisher - optional bus for store-owned wake publication.
24
33
  */
25
34
  constructor(config?: MessageStoreLevelConfig);
26
35
  open(): Promise<void>;
27
36
  close(): Promise<void>;
37
+ /**
38
+ * Lazily creates the single Level root and its partition handles.
39
+ */
40
+ private partitions;
41
+ private createPartitions;
42
+ /**
43
+ * The query index over the shared root. Constructed lazily alongside the partitions.
44
+ */
45
+ private indexPromise?;
46
+ private index;
47
+ /**
48
+ * Returns the persisted store epoch, generating and persisting a fresh `crypto.randomUUID()`
49
+ * at first open. Replaced only by `clear()` — a full local reset with no surviving cursors.
50
+ */
51
+ epoch(): Promise<string>;
52
+ private getEpoch;
53
+ private initializeEpoch;
28
54
  get(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<GenericMessage | undefined>;
29
55
  query(tenant: string, filters: Filter[], messageSort?: MessageSort, pagination?: Pagination, options?: MessageStoreOptions): Promise<{
30
56
  messages: GenericMessage[];
@@ -35,17 +61,71 @@ export declare class MessageStoreLevel implements MessageStore {
35
61
  * Builds the IndexLevel QueryOptions object given MessageStore sort and pagination parameters.
36
62
  */
37
63
  static buildQueryOptions(messageSort?: MessageSort, pagination?: Pagination): QueryOptions;
64
+ put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<MessageStorePutResult>;
65
+ updateIndexes(tenant: string, messageCid: string, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
66
+ updateMessageAndIndexes(tenant: string, messageCid: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
38
67
  delete(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<void>;
39
- put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
40
68
  /**
41
- * deletes everything in the underlying blockstore and indices.
69
+ * deletes everything in the underlying store, then persists a fresh epoch — a full local
70
+ * reset after which no previously issued cursor is valid.
42
71
  */
43
72
  clear(): Promise<void>;
73
+ logRead(tenant: string, options?: EventLogReadOptions): Promise<EventLogReadResult>;
74
+ private readEventFromLogEntry;
75
+ logBounds(tenant: string): Promise<{
76
+ oldest: ProgressToken;
77
+ latest: ProgressToken;
78
+ } | undefined>;
79
+ fingerprint(tenant: string, scopes: string[]): Promise<string>;
80
+ /**
81
+ * Serializes all log-mutating operations for a tenant: the lock spans seq assignment through
82
+ * batch write, so commit order equals seq order (synchronous assignment alone is insufficient —
83
+ * a later batch could land first).
84
+ */
85
+ private withTenantWriteLock;
86
+ /**
87
+ * Reads the tenant's counter high-water (the highest position ever issued), `0n` when unused.
88
+ */
89
+ private getHead;
90
+ private assertNoPreSubstrateLayout;
91
+ private static parseSublevelPartition;
92
+ private readStoredMessage;
93
+ /**
94
+ * Validates a replication cursor against the tenant stream and persisted store epoch.
95
+ * Throws `EventLogProgressGap` with bounds metadata when the cursor cannot be replayed.
96
+ */
97
+ private validateCursor;
98
+ private validateCursorPosition;
99
+ private getMessageCidAtPosition;
100
+ /**
101
+ * Resolves the log row for a same-CID mutation, throwing the given code when no row exists.
102
+ */
103
+ private getLogEntryForMutation;
104
+ /**
105
+ * Creates the batch operations that fold a message CID's contribution into the given
106
+ * fingerprint domains. XOR is self-inverse, so the same operations serve insert and delete.
107
+ */
108
+ private createFingerprintFoldOperations;
109
+ /**
110
+ * Encodes a fingerprint domain name as a Level key. The uniform prefix keeps the global
111
+ * domain (the empty string) a valid key.
112
+ */
113
+ private static fingerprintKey;
114
+ private buildToken;
115
+ /**
116
+ * Publishes a wake post-commit. Best-effort by contract — never throws into the write path.
117
+ */
118
+ private publishWake;
44
119
  }
45
120
  export type MessageStoreLevelConfig = {
46
- blockstoreLocation?: string;
47
- indexLocation?: string;
121
+ /**
122
+ * The single directory path (or IndexedDB database name in browsers) backing the whole store —
123
+ * message blocks, query indexes, the replication log, fingerprints, counters, and epoch are all
124
+ * sublevels of one Level instance.
125
+ */
126
+ location?: string;
48
127
  createLevelDatabase?: typeof createLevelDatabase;
49
128
  compoundIndexes?: CompoundIndexDefinition[];
129
+ wakePublisher?: WakePublisher;
50
130
  };
51
131
  //# sourceMappingURL=message-store-level.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-store-level.d.ts","sourceRoot":"","sources":["../../../../src/store/message-store-level.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAKnF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmD9C;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,MAAM,EAAE,uBAAuB,CAAC;IAEhC,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,UAAU,CAAC;IAElB;;;;;;;;OAQG;gBACS,MAAM,GAAE,uBAA4B;IAoB1C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAkB1G,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAC,CAAC;IA4B9D,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAOlB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,WAAW,GAAE,WAAgB,EAAE,UAAU,GAAE,UAAe,GAAG,YAAY;IA6B5F,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvF,GAAG,CACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAiBhB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAC;IACjD,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC7C,CAAC"}
1
+ {"version":3,"file":"message-store-level.d.ts","sourceRoot":"","sources":["../../../../src/store/message-store-level.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import type { DataStore } from '../types/data-store.js';
2
- import type { EventLog } from '../types/subscriptions.js';
3
2
  import type { GenericMessage } from '../types/message-types.js';
4
3
  import type { MessageStore } from '../types/message-store.js';
5
- import type { StateIndex } from '../types/state-index.js';
4
+ import type { ProgressToken } from '../types/subscriptions.js';
6
5
  import type { RecordsDeleteMessage, RecordsWriteMessage } from '../types/records-types.js';
7
6
  export type ResumableRecordsDeleteData = {
8
7
  tenant: string;
@@ -12,21 +11,20 @@ export type ResumableRecordsSquashData = {
12
11
  tenant: string;
13
12
  message: RecordsWriteMessage;
14
13
  };
14
+ export type RecordsDeleteTaskResult = {
15
+ position?: ProgressToken;
16
+ };
15
17
  /**
16
- * A class that provides an abstraction for the usage of MessageStore, DataStore, and StateIndex.
18
+ * A class that provides an abstraction for coordinated MessageStore and DataStore mutations.
17
19
  */
18
20
  export declare class StorageController {
19
21
  private readonly messageStore;
20
22
  private readonly dataStore;
21
- private readonly stateIndex;
22
- private readonly eventLog?;
23
- constructor({ messageStore, dataStore, stateIndex, eventLog }: {
23
+ constructor({ messageStore, dataStore }: {
24
24
  messageStore: MessageStore;
25
25
  dataStore: DataStore;
26
- stateIndex: StateIndex;
27
- eventLog?: EventLog;
28
26
  });
29
- performRecordsDelete({ tenant, message }: ResumableRecordsDeleteData): Promise<void>;
27
+ performRecordsDelete({ tenant, message }: ResumableRecordsDeleteData): Promise<RecordsDeleteTaskResult>;
30
28
  /**
31
29
  * Performs the squash processing for a `RecordsWrite` with `squash: true`.
32
30
  * Deletes all sibling records at the same protocol path and parent context whose
@@ -59,16 +57,21 @@ export declare class StorageController {
59
57
  * - Same-protocol cascade is already protocol-agnostic at every hop via `parentId`,
60
58
  * so treating cross-protocol boundaries differently was inconsistent.
61
59
  */
62
- static purgeRecordDescendants(tenant: string, recordId: string, messageStore: MessageStore, dataStore: DataStore, stateIndex: StateIndex): Promise<void>;
60
+ static purgeRecordDescendants(tenant: string, recordId: string, messageStore: MessageStore, dataStore: DataStore): Promise<void>;
63
61
  /**
64
62
  * Purges (permanent hard-delete) all messages of the SAME `recordId` given and their associated data and events.
65
63
  * Assumes that the given `recordMessages` are all of the same `recordId`.
66
64
  */
67
- static purgeRecordMessages(tenant: string, recordMessages: GenericMessage[], messageStore: MessageStore, dataStore: DataStore, stateIndex: StateIndex): Promise<void>;
65
+ static purgeRecordMessages(tenant: string, recordMessages: GenericMessage[], messageStore: MessageStore, dataStore: DataStore): Promise<void>;
68
66
  /**
69
- * Deletes all messages in `existingMessages` that are older than the `newestMessage` in the given tenant,
70
- * but keep the initial write write for future processing by ensuring its `isLatestBaseState` index is "false".
67
+ * Deletes all messages in `existingMessages` that the `retainedMessage` displaces, while keeping
68
+ * the initial write and the caller-supplied writes as non-latest state for future replay and
69
+ * tombstone visibility reconstruction. Displacement is deliberately NOT a timestamp comparison:
70
+ * a RecordsDelete displaces even a newer RecordsWrite (delete-wins convergence), and on
71
+ * resumable-task replay the retained message itself is back in `existingMessages` and must
72
+ * survive — so membership is decided by CID.
71
73
  */
72
- static deleteAllOlderMessagesButKeepInitialWrite(tenant: string, existingMessages: GenericMessage[], newestMessage: GenericMessage, messageStore: MessageStore, dataStore: DataStore, stateIndex: StateIndex): Promise<void>;
74
+ static deleteDisplacedMessagesAndRetainWrites(tenant: string, existingMessages: GenericMessage[], retainedMessage: GenericMessage, messageStore: MessageStore, dataStore: DataStore, additionalRetainedRecordsWrites: RecordsWriteMessage[]): Promise<void>;
75
+ private static stripInlineData;
73
76
  }
74
77
  //# sourceMappingURL=storage-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-controller.d.ts","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAA0B,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAWnH,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAW;gBAElB,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;QACpE,YAAY,EAAG,YAAY,CAAC;QAC5B,SAAS,EAAG,SAAS,CAAC;QACtB,UAAU,EAAG,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAG,QAAQ,CAAA;KAAC;IAQV,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CjG;;;;;;;;OAQG;IACU,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DjG;;;OAGG;mBACkB,2BAA2B;IA2BhD;;;;;;;;;;;;;;;;OAgBG;WACiB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC;IAkChB;;;OAGG;WACiB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAAE,EAChC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;OAGG;WACiB,yCAAyC,CAC3D,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,cAAc,EAAE,EAClC,aAAa,EAAE,cAAc,EAC7B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC;CAqCjB"}
1
+ {"version":3,"file":"storage-controller.d.ts","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAW3F,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAEnB,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE;QAC9C,YAAY,EAAG,YAAY,CAAC;QAC5B,SAAS,EAAG,SAAS,CAAC;KACvB;IAMY,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuDpH;;;;;;;;OAQG;IACU,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DjG;;;OAGG;mBACkB,2BAA2B;IA2BhD;;;;;;;;;;;;;;;;OAgBG;WACiB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC;IAkChB;;;OAGG;WACiB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAAE,EAChC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;;;;OAOG;WACiB,sCAAsC,CACxD,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,cAAc,EAAE,EAClC,eAAe,EAAE,cAAc,EAC/B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,+BAA+B,EAAE,mBAAmB,EAAE,GACrD,OAAO,CAAC,IAAI,CAAC;IAsChB,OAAO,CAAC,MAAM,CAAC,eAAe;CAK/B"}
@@ -1,8 +1,25 @@
1
+ import type { ProgressToken } from './subscriptions.js';
1
2
  import type { Filter, KeyValues, PaginationCursor } from './query-types.js';
2
3
  import type { GenericMessage, MessageSort, Pagination } from './message-types.js';
3
4
  export interface MessageStoreOptions {
4
5
  signal?: AbortSignal;
5
6
  }
7
+ /**
8
+ * Result of a {@link MessageStore.put} operation.
9
+ */
10
+ export type MessageStorePutResult = {
11
+ /**
12
+ * `inserted` when a new row was created; `duplicate` when a row for the same
13
+ * `(tenant, messageCid)` already exists.
14
+ */
15
+ status: 'inserted' | 'duplicate';
16
+ /**
17
+ * The inserted row's log position. Present for stores that maintain a
18
+ * replication log; omitted for duplicates and store implementations whose
19
+ * durable log support has not landed.
20
+ */
21
+ position?: ProgressToken;
22
+ };
6
23
  export interface MessageStore {
7
24
  /**
8
25
  * opens a connection to the underlying store
@@ -16,7 +33,7 @@ export interface MessageStore {
16
33
  * adds a message to the underlying store. Uses the message's cid as the key
17
34
  * @param indexes indexes (key-value pairs) to be included as part of this put operation
18
35
  */
19
- put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
36
+ put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<MessageStorePutResult>;
20
37
  /**
21
38
  * Fetches a single message by `cid` from the underlying store.
22
39
  * Returns `undefined` no message was found.
@@ -35,6 +52,17 @@ export interface MessageStore {
35
52
  * More efficient than query() when only the count is needed, especially when compound indexes are available.
36
53
  */
37
54
  count(tenant: string, filters: Filter[], messageSort?: MessageSort, options?: MessageStoreOptions): Promise<number>;
55
+ /**
56
+ * Replaces the indexes of an existing message in place: same row and same log
57
+ * sequence.
58
+ */
59
+ updateIndexes(tenant: string, messageCid: string, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
60
+ /**
61
+ * Replaces the stored same-CID message payload and indexes in place: same
62
+ * row and same log sequence. The replacement message must resolve to
63
+ * `messageCid` under DWN CID rules.
64
+ */
65
+ updateMessageAndIndexes(tenant: string, messageCid: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
38
66
  /**
39
67
  * Deletes the message associated with the id provided.
40
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"message-store.d.ts","sourceRoot":"","sources":["../../../../src/types/message-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CACD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAErG;;;OAGG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAC,CAAC,CAAC;IAErE;;;OAGG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"message-store.d.ts","sourceRoot":"","sources":["../../../../src/types/message-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CACD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElC;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAErG;;;OAGG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAC,CAAC,CAAC;IAErE;;;OAGG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;OAGG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;OAIG;IACH,uBAAuB,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,4 +1,5 @@
1
1
  import type { GeneralJws } from './jws-types.js';
2
+ import type { ProgressToken } from './subscriptions.js';
2
3
  import type { PublicKeyJwk } from './jose-types.js';
3
4
  import type { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
4
5
  import type { PaginationCursor, SortDirection } from './query-types.js';
@@ -127,6 +128,7 @@ export type Status = {
127
128
  };
128
129
  export type GenericMessageReply = {
129
130
  status: Status;
131
+ position?: ProgressToken;
130
132
  };
131
133
  export type MessageSort = {
132
134
  dateCreated?: SortDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../../../src/types/message-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAEnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,SAAS,EAAE,UAAU,CAAC;IAEtB;;OAEG;IACH,oBAAoB,CAAC,EAAE,iCAAiC,CAAC;IAEzD;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,iCAAiC,CAAC;IAExD;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE;QAC3B,2EAA2E;QAC3E,SAAS,EAAE,MAAM,CAAC;QAClB,kEAAkE;QAClE,YAAY,EAAE,YAAY,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,aAAa,EAAE;QACb;;WAEG;QACH,SAAS,EAAE,UAAU,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE;QACV,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC;QACpC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,aAAa,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../../../src/types/message-types.ts"],"names":[],"mappings":"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"}