@enbox/dwn-sdk-js 0.4.0 → 0.4.1

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 (513) hide show
  1. package/README.md +4 -4
  2. package/dist/browser.mjs +8 -8
  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 +30 -68
  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 +7 -3
  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/record-limit-occupancy.js +244 -0
  99. package/dist/esm/src/utils/record-limit-occupancy.js.map +1 -0
  100. package/dist/esm/src/utils/records.js +50 -14
  101. package/dist/esm/src/utils/records.js.map +1 -1
  102. package/dist/esm/src/utils/replication.js +85 -0
  103. package/dist/esm/src/utils/replication.js.map +1 -0
  104. package/dist/esm/tests/core/grant-authorization.spec.js +4 -4
  105. package/dist/esm/tests/core/grant-authorization.spec.js.map +1 -1
  106. package/dist/esm/tests/core/process-message-parity.spec.js +222 -0
  107. package/dist/esm/tests/core/process-message-parity.spec.js.map +1 -0
  108. package/dist/esm/tests/core/protocol-authorization.spec.js +5 -2
  109. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  110. package/dist/esm/tests/core/records-grant-authorization.spec.js +5 -5
  111. package/dist/esm/tests/core/records-grant-authorization.spec.js.map +1 -1
  112. package/dist/esm/tests/core/replication-apply.spec.js +55 -1
  113. package/dist/esm/tests/core/replication-apply.spec.js.map +1 -1
  114. package/dist/esm/tests/core/replication-replay-property.spec.js +350 -0
  115. package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -0
  116. package/dist/esm/tests/core/validation-read-closure.spec.js +469 -0
  117. package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -0
  118. package/dist/esm/tests/core/validation-state-reader.spec.js +716 -0
  119. package/dist/esm/tests/core/validation-state-reader.spec.js.map +1 -0
  120. package/dist/esm/tests/durable-event-log.spec.js +373 -0
  121. package/dist/esm/tests/durable-event-log.spec.js.map +1 -0
  122. package/dist/esm/tests/dwn.spec.js +504 -35
  123. package/dist/esm/tests/dwn.spec.js.map +1 -1
  124. package/dist/esm/tests/features/author-delegated-grant.spec.js +9 -6
  125. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  126. package/dist/esm/tests/features/owner-delegated-grant.spec.js +1 -4
  127. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  128. package/dist/esm/tests/features/owner-signature.spec.js +1 -4
  129. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  130. package/dist/esm/tests/features/permissions.spec.js +165 -4
  131. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  132. package/dist/esm/tests/features/protocol-composition.spec.js +8 -11
  133. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  134. package/dist/esm/tests/features/protocol-create-action.spec.js +1 -4
  135. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  136. package/dist/esm/tests/features/protocol-delete-action.spec.js +3 -5
  137. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  138. package/dist/esm/tests/features/protocol-update-action.spec.js +3 -6
  139. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  140. package/dist/esm/tests/features/records-delivery.spec.js +1 -4
  141. package/dist/esm/tests/features/records-delivery.spec.js.map +1 -1
  142. package/dist/esm/tests/features/records-immutable.spec.js +1 -4
  143. package/dist/esm/tests/features/records-immutable.spec.js.map +1 -1
  144. package/dist/esm/tests/features/records-nested-query-scope.spec.js +281 -0
  145. package/dist/esm/tests/features/records-nested-query-scope.spec.js.map +1 -0
  146. package/dist/esm/tests/features/records-prune-cross-protocol.spec.js +3 -7
  147. package/dist/esm/tests/features/records-prune-cross-protocol.spec.js.map +1 -1
  148. package/dist/esm/tests/features/records-prune.spec.js +11 -22
  149. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  150. package/dist/esm/tests/features/records-record-limit.spec.js +441 -231
  151. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -1
  152. package/dist/esm/tests/features/records-squash.spec.js +6 -4
  153. package/dist/esm/tests/features/records-squash.spec.js.map +1 -1
  154. package/dist/esm/tests/features/records-tags.spec.js +1 -4
  155. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  156. package/dist/esm/tests/features/resumable-tasks.spec.js +3 -5
  157. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  158. package/dist/esm/tests/fuzz/message-store.fuzz.spec.js +1 -2
  159. package/dist/esm/tests/fuzz/message-store.fuzz.spec.js.map +1 -1
  160. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js +2 -4
  161. package/dist/esm/tests/fuzz/process-message.fuzz.spec.js.map +1 -1
  162. package/dist/esm/tests/fuzz/schema-validation.fuzz.spec.js +1 -1
  163. package/dist/esm/tests/fuzz/schema-validation.fuzz.spec.js.map +1 -1
  164. package/dist/esm/tests/handlers/messages-query.spec.js +246 -0
  165. package/dist/esm/tests/handlers/messages-query.spec.js.map +1 -0
  166. package/dist/esm/tests/handlers/messages-read.spec.js +2 -5
  167. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  168. package/dist/esm/tests/handlers/messages-subscribe.spec.js +3 -14
  169. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  170. package/dist/esm/tests/handlers/protocols-configure.spec.js +27 -26
  171. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  172. package/dist/esm/tests/handlers/protocols-query.spec.js +1 -4
  173. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  174. package/dist/esm/tests/handlers/records-count.spec.js +1 -4
  175. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  176. package/dist/esm/tests/handlers/records-delete.spec.js +312 -30
  177. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  178. package/dist/esm/tests/handlers/records-query.spec.js +32 -9
  179. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  180. package/dist/esm/tests/handlers/records-read.spec.js +4 -4
  181. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  182. package/dist/esm/tests/handlers/records-subscribe.spec.js +33 -14
  183. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  184. package/dist/esm/tests/handlers/records-write.spec.js +82 -36
  185. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  186. package/dist/esm/tests/interfaces/records-delete.spec.js +69 -2
  187. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  188. package/dist/esm/tests/interfaces/records-write.spec.js +4 -3
  189. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  190. package/dist/esm/tests/protocols/permissions.spec.js +55 -6
  191. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  192. package/dist/esm/tests/scenarios/aggregator.spec.js +1 -4
  193. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  194. package/dist/esm/tests/scenarios/deleted-record.spec.js +1 -4
  195. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  196. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +1 -4
  197. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  198. package/dist/esm/tests/scenarios/nested-roles.spec.js +1 -4
  199. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  200. package/dist/esm/tests/scenarios/subscriptions.spec.js +1 -4
  201. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  202. package/dist/esm/tests/store/message-store-level.spec.js +361 -5
  203. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  204. package/dist/esm/tests/store/message-store.spec.js +60 -0
  205. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  206. package/dist/esm/tests/test-event-stream.js +7 -3
  207. package/dist/esm/tests/test-event-stream.js.map +1 -1
  208. package/dist/esm/tests/test-stores.js +19 -9
  209. package/dist/esm/tests/test-stores.js.map +1 -1
  210. package/dist/esm/tests/test-suite.js +4 -2
  211. package/dist/esm/tests/test-suite.js.map +1 -1
  212. package/dist/esm/tests/utils/test-data-generator.js +25 -0
  213. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  214. package/dist/esm/tests/utils/test-stub-generator.js.map +1 -1
  215. package/dist/esm/tests/utils/test-validation-state-reader.js +16 -0
  216. package/dist/esm/tests/utils/test-validation-state-reader.js.map +1 -0
  217. package/dist/types/generated/precompiled-validators.d.ts +6 -6
  218. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  219. package/dist/types/src/core/core-protocol.d.ts +3 -3
  220. package/dist/types/src/core/core-protocol.d.ts.map +1 -1
  221. package/dist/types/src/core/dwn-constant.d.ts +5 -0
  222. package/dist/types/src/core/dwn-constant.d.ts.map +1 -1
  223. package/dist/types/src/core/dwn-error.d.ts +12 -4
  224. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  225. package/dist/types/src/core/grant-authorization.d.ts +5 -5
  226. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  227. package/dist/types/src/core/message-reply.d.ts +5 -4
  228. package/dist/types/src/core/message-reply.d.ts.map +1 -1
  229. package/dist/types/src/core/messages-grant-authorization.d.ts +12 -14
  230. package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
  231. package/dist/types/src/core/protocol-authorization-action.d.ts +4 -5
  232. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
  233. package/dist/types/src/core/protocol-authorization-validation.d.ts +13 -16
  234. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  235. package/dist/types/src/core/protocol-authorization.d.ts +8 -33
  236. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  237. package/dist/types/src/core/protocols-grant-authorization.d.ts +4 -4
  238. package/dist/types/src/core/protocols-grant-authorization.d.ts.map +1 -1
  239. package/dist/types/src/core/recording-validation-state-reader.d.ts +75 -0
  240. package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -0
  241. package/dist/types/src/core/records-grant-authorization.d.ts +8 -8
  242. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  243. package/dist/types/src/core/replication-apply.d.ts +36 -0
  244. package/dist/types/src/core/replication-apply.d.ts.map +1 -1
  245. package/dist/types/src/core/resumable-task-manager.d.ts +1 -1
  246. package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
  247. package/dist/types/src/core/validation-state-reader.d.ts +79 -0
  248. package/dist/types/src/core/validation-state-reader.d.ts.map +1 -0
  249. package/dist/types/src/dwn.d.ts +33 -20
  250. package/dist/types/src/dwn.d.ts.map +1 -1
  251. package/dist/types/src/enums/dwn-interface-method.d.ts +0 -1
  252. package/dist/types/src/enums/dwn-interface-method.d.ts.map +1 -1
  253. package/dist/types/src/event-stream/durable-event-log.d.ts +69 -0
  254. package/dist/types/src/event-stream/durable-event-log.d.ts.map +1 -0
  255. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts +13 -0
  256. package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts.map +1 -0
  257. package/dist/types/src/handlers/messages-query.d.ts +20 -0
  258. package/dist/types/src/handlers/messages-query.d.ts.map +1 -0
  259. package/dist/types/src/handlers/messages-read.d.ts +1 -1
  260. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  261. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  262. package/dist/types/src/handlers/protocols-configure.d.ts +0 -5
  263. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  264. package/dist/types/src/handlers/records-count.d.ts +2 -1
  265. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  266. package/dist/types/src/handlers/records-delete.d.ts +2 -2
  267. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  268. package/dist/types/src/handlers/records-query.d.ts +1 -1
  269. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  270. package/dist/types/src/handlers/records-read.d.ts +2 -1
  271. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  272. package/dist/types/src/handlers/records-subscribe.d.ts +4 -5
  273. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  274. package/dist/types/src/handlers/records-write.d.ts +3 -11
  275. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  276. package/dist/types/src/index.d.ts +14 -16
  277. package/dist/types/src/index.d.ts.map +1 -1
  278. package/dist/types/src/interfaces/messages-query.d.ts +23 -0
  279. package/dist/types/src/interfaces/messages-query.d.ts.map +1 -0
  280. package/dist/types/src/interfaces/protocols-configure.d.ts +3 -3
  281. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  282. package/dist/types/src/interfaces/protocols-query.d.ts +2 -2
  283. package/dist/types/src/interfaces/protocols-query.d.ts.map +1 -1
  284. package/dist/types/src/interfaces/records-count.d.ts +3 -3
  285. package/dist/types/src/interfaces/records-count.d.ts.map +1 -1
  286. package/dist/types/src/interfaces/records-delete.d.ts +11 -3
  287. package/dist/types/src/interfaces/records-delete.d.ts.map +1 -1
  288. package/dist/types/src/interfaces/records-query.d.ts +3 -3
  289. package/dist/types/src/interfaces/records-query.d.ts.map +1 -1
  290. package/dist/types/src/interfaces/records-read.d.ts +3 -3
  291. package/dist/types/src/interfaces/records-read.d.ts.map +1 -1
  292. package/dist/types/src/interfaces/records-subscribe.d.ts +3 -3
  293. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  294. package/dist/types/src/interfaces/records-write.d.ts +15 -7
  295. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  296. package/dist/types/src/protocols/permissions.d.ts +9 -12
  297. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  298. package/dist/types/src/store/index-level.d.ts +10 -1
  299. package/dist/types/src/store/index-level.d.ts.map +1 -1
  300. package/dist/types/src/store/level-wrapper.d.ts +5 -0
  301. package/dist/types/src/store/level-wrapper.d.ts.map +1 -1
  302. package/dist/types/src/store/message-store-level.d.ts +94 -14
  303. package/dist/types/src/store/message-store-level.d.ts.map +1 -1
  304. package/dist/types/src/store/storage-controller.d.ts +17 -14
  305. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  306. package/dist/types/src/types/message-store.d.ts +29 -1
  307. package/dist/types/src/types/message-store.d.ts.map +1 -1
  308. package/dist/types/src/types/message-types.d.ts +2 -0
  309. package/dist/types/src/types/message-types.d.ts.map +1 -1
  310. package/dist/types/src/types/messages-types.d.ts +21 -37
  311. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  312. package/dist/types/src/types/method-handler.d.ts +2 -2
  313. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  314. package/dist/types/src/types/permission-types.d.ts +1 -1
  315. package/dist/types/src/types/subscriptions.d.ts +50 -39
  316. package/dist/types/src/types/subscriptions.d.ts.map +1 -1
  317. package/dist/types/src/types/validation-state-reader.d.ts +116 -0
  318. package/dist/types/src/types/validation-state-reader.d.ts.map +1 -0
  319. package/dist/types/src/utils/messages.d.ts +10 -0
  320. package/dist/types/src/utils/messages.d.ts.map +1 -1
  321. package/dist/types/src/utils/record-limit-occupancy.d.ts +40 -0
  322. package/dist/types/src/utils/record-limit-occupancy.d.ts.map +1 -0
  323. package/dist/types/src/utils/records.d.ts +25 -3
  324. package/dist/types/src/utils/records.d.ts.map +1 -1
  325. package/dist/types/src/utils/replication.d.ts +22 -0
  326. package/dist/types/src/utils/replication.d.ts.map +1 -0
  327. package/dist/types/tests/core/process-message-parity.spec.d.ts +2 -0
  328. package/dist/types/tests/core/process-message-parity.spec.d.ts.map +1 -0
  329. package/dist/types/tests/core/replication-replay-property.spec.d.ts +2 -0
  330. package/dist/types/tests/core/replication-replay-property.spec.d.ts.map +1 -0
  331. package/dist/types/tests/core/validation-read-closure.spec.d.ts +2 -0
  332. package/dist/types/tests/core/validation-read-closure.spec.d.ts.map +1 -0
  333. package/dist/types/tests/core/validation-state-reader.spec.d.ts +2 -0
  334. package/dist/types/tests/core/validation-state-reader.spec.d.ts.map +1 -0
  335. package/dist/types/tests/durable-event-log.spec.d.ts +2 -0
  336. package/dist/types/tests/durable-event-log.spec.d.ts.map +1 -0
  337. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  338. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  339. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  340. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  341. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  342. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  343. package/dist/types/tests/features/protocol-create-action.spec.d.ts.map +1 -1
  344. package/dist/types/tests/features/protocol-delete-action.spec.d.ts.map +1 -1
  345. package/dist/types/tests/features/protocol-update-action.spec.d.ts.map +1 -1
  346. package/dist/types/tests/features/records-delivery.spec.d.ts.map +1 -1
  347. package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -1
  348. package/dist/types/tests/features/records-nested-query-scope.spec.d.ts +2 -0
  349. package/dist/types/tests/features/records-nested-query-scope.spec.d.ts.map +1 -0
  350. package/dist/types/tests/features/records-prune-cross-protocol.spec.d.ts.map +1 -1
  351. package/dist/types/tests/features/records-prune.spec.d.ts.map +1 -1
  352. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -1
  353. package/dist/types/tests/features/records-squash.spec.d.ts.map +1 -1
  354. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  355. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  356. package/dist/types/tests/handlers/messages-query.spec.d.ts +2 -0
  357. package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -0
  358. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  359. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  360. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
  361. package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -1
  362. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  363. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  364. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  365. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  366. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  367. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  368. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  369. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
  370. package/dist/types/tests/scenarios/nested-roles.spec.d.ts.map +1 -1
  371. package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
  372. package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
  373. package/dist/types/tests/test-event-stream.d.ts +1 -1
  374. package/dist/types/tests/test-event-stream.d.ts.map +1 -1
  375. package/dist/types/tests/test-stores.d.ts +5 -4
  376. package/dist/types/tests/test-stores.d.ts.map +1 -1
  377. package/dist/types/tests/test-suite.d.ts +1 -2
  378. package/dist/types/tests/test-suite.d.ts.map +1 -1
  379. package/dist/types/tests/utils/test-data-generator.d.ts +20 -1
  380. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  381. package/dist/types/tests/utils/test-validation-state-reader.d.ts +15 -0
  382. package/dist/types/tests/utils/test-validation-state-reader.d.ts.map +1 -0
  383. package/package.json +2 -2
  384. package/src/core/core-protocol.ts +3 -3
  385. package/src/core/dwn-constant.ts +7 -1
  386. package/src/core/dwn-error.ts +12 -4
  387. package/src/core/grant-authorization.ts +11 -20
  388. package/src/core/message-reply.ts +6 -5
  389. package/src/core/messages-grant-authorization.ts +37 -70
  390. package/src/core/protocol-authorization-action.ts +29 -38
  391. package/src/core/protocol-authorization-validation.ts +39 -96
  392. package/src/core/protocol-authorization.ts +56 -202
  393. package/src/core/protocols-grant-authorization.ts +9 -9
  394. package/src/core/recording-validation-state-reader.ts +130 -0
  395. package/src/core/records-grant-authorization.ts +16 -16
  396. package/src/core/replication-apply.ts +172 -32
  397. package/src/core/resumable-task-manager.ts +10 -8
  398. package/src/core/validation-state-reader.ts +350 -0
  399. package/src/dwn.ts +285 -192
  400. package/src/enums/dwn-interface-method.ts +0 -1
  401. package/src/event-stream/durable-event-log.ts +509 -0
  402. package/src/event-stream/event-emitter-wake-publisher.ts +34 -0
  403. package/src/handlers/messages-query.ts +203 -0
  404. package/src/handlers/messages-read.ts +9 -10
  405. package/src/handlers/messages-subscribe.ts +12 -13
  406. package/src/handlers/protocols-configure.ts +37 -58
  407. package/src/handlers/protocols-query.ts +1 -1
  408. package/src/handlers/records-count.ts +24 -17
  409. package/src/handlers/records-delete.ts +29 -27
  410. package/src/handlers/records-query.ts +38 -17
  411. package/src/handlers/records-read.ts +63 -50
  412. package/src/handlers/records-subscribe.ts +132 -19
  413. package/src/handlers/records-write.ts +77 -168
  414. package/src/index.ts +14 -17
  415. package/src/interfaces/messages-query.ts +70 -0
  416. package/src/interfaces/protocols-configure.ts +12 -4
  417. package/src/interfaces/protocols-query.ts +4 -5
  418. package/src/interfaces/records-count.ts +9 -4
  419. package/src/interfaces/records-delete.ts +25 -5
  420. package/src/interfaces/records-query.ts +9 -4
  421. package/src/interfaces/records-read.ts +4 -4
  422. package/src/interfaces/records-subscribe.ts +9 -4
  423. package/src/interfaces/records-write.ts +41 -13
  424. package/src/protocols/permissions.ts +32 -52
  425. package/src/store/index-level.ts +30 -9
  426. package/src/store/level-wrapper.ts +9 -1
  427. package/src/store/message-store-level.ts +757 -47
  428. package/src/store/storage-controller.ts +74 -63
  429. package/src/types/message-store.ts +45 -2
  430. package/src/types/message-types.ts +3 -1
  431. package/src/types/messages-types.ts +26 -45
  432. package/src/types/method-handler.ts +3 -3
  433. package/src/types/permission-types.ts +1 -1
  434. package/src/types/subscriptions.ts +53 -42
  435. package/src/types/validation-state-reader.ts +127 -0
  436. package/src/utils/messages.ts +25 -1
  437. package/src/utils/record-limit-occupancy.ts +377 -0
  438. package/src/utils/records.ts +69 -13
  439. package/src/utils/replication.ts +122 -0
  440. package/dist/esm/src/core/record-chain.js +0 -64
  441. package/dist/esm/src/core/record-chain.js.map +0 -1
  442. package/dist/esm/src/event-stream/event-emitter-event-log.js +0 -334
  443. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +0 -1
  444. package/dist/esm/src/handlers/messages-sync.js +0 -278
  445. package/dist/esm/src/handlers/messages-sync.js.map +0 -1
  446. package/dist/esm/src/interfaces/messages-sync.js.map +0 -1
  447. package/dist/esm/src/smt/smt-store-level.js +0 -103
  448. package/dist/esm/src/smt/smt-store-level.js.map +0 -1
  449. package/dist/esm/src/smt/smt-store-memory.js +0 -41
  450. package/dist/esm/src/smt/smt-store-memory.js.map +0 -1
  451. package/dist/esm/src/smt/smt-utils.js +0 -129
  452. package/dist/esm/src/smt/smt-utils.js.map +0 -1
  453. package/dist/esm/src/smt/sparse-merkle-tree.js +0 -577
  454. package/dist/esm/src/smt/sparse-merkle-tree.js.map +0 -1
  455. package/dist/esm/src/state-index/state-index-level.js +0 -191
  456. package/dist/esm/src/state-index/state-index-level.js.map +0 -1
  457. package/dist/esm/src/types/smt-types.js +0 -5
  458. package/dist/esm/src/types/smt-types.js.map +0 -1
  459. package/dist/esm/src/types/state-index.js +0 -2
  460. package/dist/esm/src/types/state-index.js.map +0 -1
  461. package/dist/esm/tests/event-emitter-event-log.spec.js +0 -499
  462. package/dist/esm/tests/event-emitter-event-log.spec.js.map +0 -1
  463. package/dist/esm/tests/handlers/messages-sync.spec.js +0 -1088
  464. package/dist/esm/tests/handlers/messages-sync.spec.js.map +0 -1
  465. package/dist/esm/tests/smt/smt-store-level.spec.js +0 -132
  466. package/dist/esm/tests/smt/smt-store-level.spec.js.map +0 -1
  467. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +0 -732
  468. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +0 -1
  469. package/dist/esm/tests/state-index/state-index-level.spec.js +0 -245
  470. package/dist/esm/tests/state-index/state-index-level.spec.js.map +0 -1
  471. package/dist/types/src/core/record-chain.d.ts +0 -24
  472. package/dist/types/src/core/record-chain.d.ts.map +0 -1
  473. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +0 -80
  474. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +0 -1
  475. package/dist/types/src/handlers/messages-sync.d.ts +0 -39
  476. package/dist/types/src/handlers/messages-sync.d.ts.map +0 -1
  477. package/dist/types/src/interfaces/messages-sync.d.ts +0 -20
  478. package/dist/types/src/interfaces/messages-sync.d.ts.map +0 -1
  479. package/dist/types/src/smt/smt-store-level.d.ts +0 -32
  480. package/dist/types/src/smt/smt-store-level.d.ts.map +0 -1
  481. package/dist/types/src/smt/smt-store-memory.d.ts +0 -22
  482. package/dist/types/src/smt/smt-store-memory.d.ts.map +0 -1
  483. package/dist/types/src/smt/smt-utils.d.ts +0 -58
  484. package/dist/types/src/smt/smt-utils.d.ts.map +0 -1
  485. package/dist/types/src/smt/sparse-merkle-tree.d.ts +0 -124
  486. package/dist/types/src/smt/sparse-merkle-tree.d.ts.map +0 -1
  487. package/dist/types/src/state-index/state-index-level.d.ts +0 -83
  488. package/dist/types/src/state-index/state-index-level.d.ts.map +0 -1
  489. package/dist/types/src/types/smt-types.d.ts +0 -81
  490. package/dist/types/src/types/smt-types.d.ts.map +0 -1
  491. package/dist/types/src/types/state-index.d.ts +0 -90
  492. package/dist/types/src/types/state-index.d.ts.map +0 -1
  493. package/dist/types/tests/event-emitter-event-log.spec.d.ts +0 -2
  494. package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +0 -1
  495. package/dist/types/tests/handlers/messages-sync.spec.d.ts +0 -2
  496. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +0 -1
  497. package/dist/types/tests/smt/smt-store-level.spec.d.ts +0 -2
  498. package/dist/types/tests/smt/smt-store-level.spec.d.ts.map +0 -1
  499. package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts +0 -2
  500. package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts.map +0 -1
  501. package/dist/types/tests/state-index/state-index-level.spec.d.ts +0 -2
  502. package/dist/types/tests/state-index/state-index-level.spec.d.ts.map +0 -1
  503. package/src/core/record-chain.ts +0 -99
  504. package/src/event-stream/event-emitter-event-log.ts +0 -430
  505. package/src/handlers/messages-sync.ts +0 -403
  506. package/src/interfaces/messages-sync.ts +0 -69
  507. package/src/smt/smt-store-level.ts +0 -143
  508. package/src/smt/smt-store-memory.ts +0 -53
  509. package/src/smt/smt-utils.ts +0 -149
  510. package/src/smt/sparse-merkle-tree.ts +0 -698
  511. package/src/state-index/state-index-level.ts +0 -239
  512. package/src/types/smt-types.ts +0 -95
  513. package/src/types/state-index.ts +0 -100
@@ -1,5 +1,5 @@
1
- import type { MessageStore } from '../types/message-store.js';
2
1
  import type { PermissionGrant } from '../protocols/permission-grant.js';
2
+ import type { ValidationStateReader } from '../types/validation-state-reader.js';
3
3
  import type { RecordsCountMessage, RecordsDeleteMessage, RecordsQueryMessage, RecordsReadMessage, RecordsSubscribeMessage, RecordsWriteMessage } from '../types/records-types.js';
4
4
  export declare class RecordsGrantAuthorization {
5
5
  /**
@@ -10,11 +10,11 @@ export declare class RecordsGrantAuthorization {
10
10
  expectedGrantor: string;
11
11
  expectedGrantee: string;
12
12
  permissionGrant: PermissionGrant;
13
- messageStore: MessageStore;
13
+ validationStateReader: ValidationStateReader;
14
14
  }): Promise<void>;
15
15
  /**
16
16
  * Authorizes a RecordsReadMessage using the given permission grant.
17
- * @param messageStore Used to check if the given grant has been revoked.
17
+ * @param validationStateReader Used to check if the given grant has been revoked.
18
18
  */
19
19
  static authorizeRead(input: {
20
20
  recordsReadMessage: RecordsReadMessage;
@@ -22,22 +22,22 @@ export declare class RecordsGrantAuthorization {
22
22
  expectedGrantor: string;
23
23
  expectedGrantee: string;
24
24
  permissionGrant: PermissionGrant;
25
- messageStore: MessageStore;
25
+ validationStateReader: ValidationStateReader;
26
26
  }): Promise<void>;
27
27
  /**
28
28
  * Authorizes the scope of a permission grant for RecordsQuery or RecordsSubscribe.
29
- * @param messageStore Used to check if the grant has been revoked.
29
+ * @param validationStateReader Used to check if the grant has been revoked.
30
30
  */
31
31
  static authorizeQueryOrSubscribe(input: {
32
32
  incomingMessage: RecordsCountMessage | RecordsQueryMessage | RecordsSubscribeMessage;
33
33
  expectedGrantor: string;
34
34
  expectedGrantee: string;
35
35
  permissionGrant: PermissionGrant;
36
- messageStore: MessageStore;
36
+ validationStateReader: ValidationStateReader;
37
37
  }): Promise<void>;
38
38
  /**
39
39
  * Authorizes the scope of a permission grant for RecordsDelete.
40
- * @param messageStore Used to check if the grant has been revoked.
40
+ * @param validationStateReader Used to check if the grant has been revoked.
41
41
  */
42
42
  static authorizeDelete(input: {
43
43
  recordsDeleteMessage: RecordsDeleteMessage;
@@ -45,7 +45,7 @@ export declare class RecordsGrantAuthorization {
45
45
  expectedGrantor: string;
46
46
  expectedGrantee: string;
47
47
  permissionGrant: PermissionGrant;
48
- messageStore: MessageStore;
48
+ validationStateReader: ValidationStateReader;
49
49
  }): Promise<void>;
50
50
  /**
51
51
  * Verifies a record against the scope of the given grant.
@@ -1 +1 @@
1
- {"version":3,"file":"records-grant-authorization.d.ts","sourceRoot":"","sources":["../../../../src/core/records-grant-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOlL,qBAAa,yBAAyB;IACpC;;OAEG;WACiB,cAAc,CAAC,KAAK,EAAE;QACxC,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjB;;;OAGG;WACiB,aAAa,CAAC,KAAK,EAAE;QACvC,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,2BAA2B,EAAE,mBAAmB,CAAC;QACjD,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjB;;;OAGG;WACiB,yBAAyB,CAAC,KAAK,EAAE;QACnD,eAAe,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;QACrF,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjB;;;OAGG;WACiB,eAAe,CAAC,KAAK,EAAE;QACzC,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,oBAAoB,EAAE,mBAAmB,CAAC;QAC1C,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAoB1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoBhC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAQrC,OAAO,CAAC,MAAM,CAAC,oCAAoC;IA0BnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAkBhC"}
1
+ {"version":3,"file":"records-grant-authorization.d.ts","sourceRoot":"","sources":["../../../../src/core/records-grant-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOlL,qBAAa,yBAAyB;IACpC;;OAEG;WACiB,cAAc,CAAC,KAAK,EAAE;QACxC,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjB;;;OAGG;WACiB,aAAa,CAAC,KAAK,EAAE;QACvC,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,2BAA2B,EAAE,mBAAmB,CAAC;QACjD,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjB;;;OAGG;WACiB,yBAAyB,CAAC,KAAK,EAAE;QACnD,eAAe,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;QACrF,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjB;;;OAGG;WACiB,eAAe,CAAC,KAAK,EAAE;QACzC,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,oBAAoB,EAAE,mBAAmB,CAAC;QAC1C,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,qBAAqB,EAAE,qBAAqB,CAAC;KAC9C,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAoB1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoBhC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAQrC,OAAO,CAAC,MAAM,CAAC,oCAAoC;IA0BnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAkBhC"}
@@ -1,10 +1,16 @@
1
1
  import type { GenericMessage } from '../types/message-types.js';
2
+ import type { ProgressToken } from '../types/subscriptions.js';
2
3
  import type { ProtocolDefinition } from '../types/protocols-types.js';
4
+ import type { ValidationStateReader } from '../types/validation-state-reader.js';
3
5
  export type ReplicationApplyOptions = {
4
6
  dataStream?: ReadableStream<Uint8Array>;
5
7
  };
6
8
  export type ReplicationApplyResult = {
7
9
  kind: 'Applied';
10
+ /** True when the local store retained dependency ancestry but did not advance latest state. */
11
+ ancestryOnly?: true;
12
+ /** Local admission position, when the receiving store has a durable replication log. */
13
+ position?: ProgressToken;
8
14
  } | {
9
15
  kind: 'Duplicate';
10
16
  } | {
@@ -21,6 +27,14 @@ export type ReplicationApplyResult = {
21
27
  };
22
28
  export type ReplicationApplyResultContext = {
23
29
  protocolDefinition?: ProtocolDefinition;
30
+ /**
31
+ * Complete set of locally-missing ancestor recordIds for a missing-ancestor failure
32
+ * (immediate parent or record-chain construction), ordered root-first with the failure-named
33
+ * ancestor last, as computed by `missingAncestorRecordIdsFromReply()`. When present, the
34
+ * resulting `Incomplete` carries one ref per entry so the entire ancestry resolves in a
35
+ * single fetch pass instead of one ancestry level per retry.
36
+ */
37
+ missingAncestorRecordIds?: string[];
24
38
  };
25
39
  export type DependencyRef = {
26
40
  type: 'Protocol';
@@ -89,5 +103,27 @@ export declare function replicationApplyResultFromReply(message: GenericMessage,
89
103
  code: number;
90
104
  detail?: string;
91
105
  };
106
+ position?: ProgressToken;
92
107
  }, context?: ReplicationApplyResultContext): ReplicationApplyResult;
108
+ /**
109
+ * Computes the complete set of locally-missing ancestor recordIds for a replicated message that
110
+ * failed on a missing ancestor — either the immediate parent referential check
111
+ * (`ProtocolAuthorizationParentRecordNotFound`) or record-chain construction
112
+ * (`ProtocolAuthorizationParentNotFoundConstructingRecordChain`).
113
+ *
114
+ * Both failures name a single ancestor, but the message's `contextId` names the full ancestor
115
+ * recordId chain, so every segment the failed check could not reach is presence-checked here and
116
+ * all absent segments are returned in one batch (ordered root-first, named ancestor last).
117
+ * Feeding the result to `replicationApplyResultFromReply()` via `ReplicationApplyResultContext`
118
+ * lets sync fetch the entire ancestry in a single pass instead of one level per retry.
119
+ *
120
+ * @returns the missing ancestor recordIds, or `undefined` when the reply is not a
121
+ * missing-ancestor failure or the chain cannot be determined from the message (callers
122
+ * then fall back to emitting the single ancestor named by the failure).
123
+ */
124
+ export declare function missingAncestorRecordIdsFromReply(tenant: string, message: GenericMessage, reply: {
125
+ status: {
126
+ detail?: string;
127
+ };
128
+ }, validationStateReader: ValidationStateReader): Promise<string[] | undefined>;
93
129
  //# sourceMappingURL=replication-apply.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication-apply.d.ts","sourceRoot":"","sources":["../../../../src/core/replication-apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replication-apply.d.ts","sourceRoot":"","sources":["../../../../src/core/replication-apply.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export declare class ResumableTaskManager {
20
20
  /**
21
21
  * Runs a new resumable task.
22
22
  */
23
- run(task: ResumableTask): Promise<void>;
23
+ run<T = unknown>(task: ResumableTask): Promise<T>;
24
24
  /**
25
25
  * Runs a resumable task with automatic timeout extension.
26
26
  * Deletes the task from the resumable task store once it is completed.
@@ -1 +1 @@
1
- {"version":3,"file":"resumable-task-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/resumable-task-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAwB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEjG,oBAAY,iBAAiB;IAC3B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAGF,qBAAa,oBAAoB;IAUZ,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IARtD;;OAEG;IACH,gBAAuB,kCAAkC,MAAM;IAE/D,OAAO,CAAC,sBAAsB,CAAO;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqD;gBAEvD,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB;IAUhH;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD;;;OAGG;YACW,gCAAgC;IAkB9C;;;;OAIG;WACW,0BAA0B,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI;IAIrF;;OAEG;IACU,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7D;;;OAGG;YACW,yBAAyB;CAkBxC"}
1
+ {"version":3,"file":"resumable-task-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/resumable-task-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAwB,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEjG,oBAAY,iBAAiB;IAC3B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAIF,qBAAa,oBAAoB;IAUZ,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IARtD;;OAEG;IACH,gBAAuB,kCAAkC,MAAM;IAE/D,OAAO,CAAC,sBAAsB,CAAO;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyC;gBAE3C,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB;IAUhH;;OAEG;IACU,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ9D;;;OAGG;YACW,gCAAgC;IAmB9C;;;;OAIG;WACW,0BAA0B,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI;IAIrF;;OAEG;IACU,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7D;;;OAGG;YACW,yBAAyB;CAkBxC"}
@@ -0,0 +1,79 @@
1
+ import type { CoreProtocolRegistry } from './core-protocol.js';
2
+ import type { DataStore } from '../types/data-store.js';
3
+ import type { GenericMessage } from '../types/message-types.js';
4
+ import type { MessageStore } from '../types/message-store.js';
5
+ import type { ValidationStateReader } from '../types/validation-state-reader.js';
6
+ import type { RecordsWriteMessage } from '../types/records-types.js';
7
+ import type { ProtocolDefinition } from '../types/protocols-types.js';
8
+ import { PermissionGrant } from '../protocols/permission-grant.js';
9
+ import { RecordsWrite } from '../interfaces/records-write.js';
10
+ /**
11
+ * The store-backed `ValidationStateReader` — the single place where validation-time state reads
12
+ * touch the `MessageStore`/`DataStore`.
13
+ */
14
+ export declare class StoreValidationStateReader implements ValidationStateReader {
15
+ private readonly messageStore;
16
+ private readonly dataStore;
17
+ private readonly coreProtocols?;
18
+ constructor(input: {
19
+ messageStore: MessageStore;
20
+ dataStore: DataStore;
21
+ coreProtocols?: CoreProtocolRegistry;
22
+ });
23
+ /** @inheritdoc */
24
+ fetchInitialRecordsWrite(tenant: string, recordId: string): Promise<RecordsWrite | undefined>;
25
+ /** @inheritdoc */
26
+ fetchInitialWrite(tenant: string, recordId: string): Promise<RecordsWriteMessage | undefined>;
27
+ /** @inheritdoc */
28
+ constructRecordChain(tenant: string, descendantRecordId: string | undefined): Promise<RecordsWriteMessage[]>;
29
+ /** @inheritdoc */
30
+ fetchParentRecord(input: {
31
+ tenant: string;
32
+ parentProtocolUri: string;
33
+ parentId: string;
34
+ }): Promise<RecordsWriteMessage | undefined>;
35
+ /** @inheritdoc */
36
+ hasMatchingRoleRecord(input: {
37
+ tenant: string;
38
+ protocol: string;
39
+ protocolPath: string;
40
+ recipient: string;
41
+ contextIdPrefix?: string;
42
+ }): Promise<boolean>;
43
+ /** @inheritdoc */
44
+ queryLatestRoleRecords(input: {
45
+ tenant: string;
46
+ protocol: string;
47
+ protocolPath: string;
48
+ recipient: string;
49
+ contextIdPrefix?: string;
50
+ }): Promise<RecordsWriteMessage[]>;
51
+ /** @inheritdoc */
52
+ fetchGrant(tenant: string, permissionGrantId: string): Promise<PermissionGrant>;
53
+ /** @inheritdoc */
54
+ fetchOldestGrantRevocation(tenant: string, permissionGrantId: string): Promise<GenericMessage | undefined>;
55
+ /** @inheritdoc */
56
+ fetchNewestRecordsWrite(tenant: string, recordId: string): Promise<RecordsWriteMessage>;
57
+ /** @inheritdoc */
58
+ fetchProtocolDefinition(tenant: string, protocolUri: string, messageTimestamp?: string): Promise<ProtocolDefinition>;
59
+ /** @inheritdoc */
60
+ fetchLatestSquashRecordAtScope(input: {
61
+ tenant: string;
62
+ protocol: string;
63
+ protocolPath: string;
64
+ contextIdPrefix?: string;
65
+ }): Promise<RecordsWriteMessage | undefined>;
66
+ /** @inheritdoc */
67
+ hasStoredData(tenant: string, recordId: string, dataCid: string): Promise<boolean>;
68
+ /**
69
+ * Checks whether a `RecordsDelete` tombstone for the given record is locally present.
70
+ * Retained initial writes can prove immutable parent/role facts, but a tombstone still wins.
71
+ */
72
+ private recordHasLocalTombstone;
73
+ /**
74
+ * Constructs the role-record selector filter shared by the invoked-role lookup and the
75
+ * duplicate-role-recipient uniqueness check.
76
+ */
77
+ private static constructRoleRecordFilter;
78
+ }
79
+ //# sourceMappingURL=validation-state-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-state-reader.d.ts","sourceRoot":"","sources":["../../../../src/core/validation-state-reader.ts"],"names":[],"mappings":"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"}
@@ -2,28 +2,33 @@ import type { DataStore } from './types/data-store.js';
2
2
  import type { DidResolver } from '@enbox/dids';
3
3
  import type { MessageStore } from './types/message-store.js';
4
4
  import type { ResumableTaskStore } from './types/resumable-task-store.js';
5
- import type { StateIndex } from './types/state-index.js';
6
5
  import type { TenantGate } from './core/tenant-gate.js';
7
6
  import type { UnionMessageReply } from './core/message-reply.js';
7
+ import type { ValidationStateReader } from './types/validation-state-reader.js';
8
8
  import type { EventLog, SubscriptionListener } from './types/subscriptions.js';
9
9
  import type { GenericMessage, GenericMessageReply } from './types/message-types.js';
10
- import type { MessagesReadMessage, MessagesReadReply, MessagesSubscribeMessage, MessagesSubscribeMessageOptions, MessagesSubscribeReply, MessagesSyncMessage, MessagesSyncReply } from './types/messages-types.js';
10
+ import type { MessagesQueryMessage, MessagesQueryReply, MessagesReadMessage, MessagesReadReply, MessagesSubscribeMessage, MessagesSubscribeMessageOptions, MessagesSubscribeReply } from './types/messages-types.js';
11
11
  import type { ProtocolsConfigureMessage, ProtocolsQueryMessage, ProtocolsQueryReply } from './types/protocols-types.js';
12
12
  import type { RecordsCountMessage, RecordsCountReply, RecordsDeleteMessage, RecordsQueryMessage, RecordsQueryReply, RecordsReadMessage, RecordsReadReply, RecordsSubscribeMessage, RecordsSubscribeMessageOptions, RecordsSubscribeReply, RecordsWriteMessage, RecordsWriteMessageOptions } from './types/records-types.js';
13
13
  import type { ReplicationApplyOptions, ReplicationApplyResult } from './core/replication-apply.js';
14
14
  import { CoreProtocolRegistry } from './core/core-protocol.js';
15
+ type DwnStorage = {
16
+ dataStore: DataStore;
17
+ messageStore: MessageStore;
18
+ eventLog: EventLog | undefined;
19
+ };
15
20
  export declare class Dwn {
16
21
  private readonly methodHandlers;
17
22
  private readonly didResolver;
18
23
  private readonly messageStore;
19
24
  private readonly dataStore;
20
25
  private readonly resumableTaskStore;
21
- private readonly stateIndex;
22
26
  private readonly tenantGate;
23
27
  private readonly eventLog?;
24
28
  private readonly storageController;
25
29
  private readonly resumableTaskManager;
26
30
  private readonly _coreProtocols;
31
+ private readonly validationStateReader;
27
32
  /** Whether the DWN owns the resolver's lifecycle (i.e., created it via defaults). */
28
33
  private readonly ownsResolver;
29
34
  private constructor();
@@ -44,23 +49,18 @@ export declare class Dwn {
44
49
  get coreProtocols(): CoreProtocolRegistry;
45
50
  /**
46
51
  * Returns the internal storage components for advanced operations that
47
- * cannot be expressed through the standard `processMessage()` pipeline
48
- * (e.g., owner-upgrade of externally authored encrypted records).
52
+ * cannot be expressed through the standard `processMessage()` pipeline.
49
53
  *
50
54
  * Callers are responsible for maintaining consistency across stores.
51
55
  */
52
- get storage(): {
53
- messageStore: MessageStore;
54
- stateIndex: StateIndex;
55
- eventLog: EventLog | undefined;
56
- };
56
+ get storage(): DwnStorage;
57
57
  /**
58
58
  * Processes the given DWN message and returns with a reply.
59
59
  * @param tenant The tenant DID to route the given message to.
60
60
  */
61
61
  processMessage(tenant: string, rawMessage: MessagesSubscribeMessage, options?: MessagesSubscribeMessageOptions): Promise<MessagesSubscribeReply>;
62
62
  processMessage(tenant: string, rawMessage: MessagesReadMessage): Promise<MessagesReadReply>;
63
- processMessage(tenant: string, rawMessage: MessagesSyncMessage): Promise<MessagesSyncReply>;
63
+ processMessage(tenant: string, rawMessage: MessagesQueryMessage): Promise<MessagesQueryReply>;
64
64
  processMessage(tenant: string, rawMessage: ProtocolsConfigureMessage): Promise<GenericMessageReply>;
65
65
  processMessage(tenant: string, rawMessage: ProtocolsQueryMessage): Promise<ProtocolsQueryReply>;
66
66
  processMessage(tenant: string, rawMessage: RecordsCountMessage): Promise<RecordsCountReply>;
@@ -78,18 +78,25 @@ export declare class Dwn {
78
78
  * message as permanently invalid.
79
79
  */
80
80
  applyReplicatedMessage(tenant: string, rawMessage: GenericMessage, options?: ReplicationApplyOptions): Promise<ReplicationApplyResult>;
81
+ /**
82
+ * Computes the layer-batched missing-ancestor set for a replicated message that failed on a
83
+ * missing ancestor (immediate parent or record-chain construction), so the resulting
84
+ * `Incomplete` names every locally-absent ancestor at once. Returns `undefined`
85
+ * (single-ancestor emission) when the set cannot be computed.
86
+ */
87
+ private getReplicationApplyMissingAncestors;
88
+ private storeReplicatedWriteBeatenByDelete;
89
+ private validateReplicatedWriteBeatenByDelete;
90
+ private validateReplicatedWriteBeatenByDeleteOrThrow;
91
+ private static validateReplicatedWriteBeatenByDeleteDataStream;
92
+ private validateReplicatedWriteBeatenByDeleteExistingData;
93
+ private static getDataStreamByteLength;
81
94
  private getReplicationApplyProtocolDefinition;
95
+ private static getReplicationApplyProtocolDefinitionLookup;
82
96
  private static getMessageProtocolForReplicationApply;
97
+ private static isRecordsWriteMessage;
83
98
  private replicatedMessageAlreadyStored;
84
99
  private getExistingMessagesForReplicationDedup;
85
- private static existingReplicatedWriteMayNeedDataCompletion;
86
- private repairReplicationIndexesForDuplicate;
87
- private eventLogHasMessage;
88
- private constructReplicationIndexRepair;
89
- private static isNewestStoredMessage;
90
- private static getStoredMessageForCid;
91
- private getInitialWriteForReplicationEvent;
92
- private static replicatedWriteHasQueryableData;
93
100
  /**
94
101
  * Checks tenant gate to see if tenant is allowed.
95
102
  * @param tenant The tenant DID to route the given message to.
@@ -131,9 +138,15 @@ export type DwnConfig = {
131
138
  * Optional — if not provided, subscriptions will not be supported.
132
139
  */
133
140
  eventLog?: EventLog;
141
+ /**
142
+ * Instrumentation seam: wraps the internally constructed `ValidationStateReader` before it is
143
+ * handed to the handlers (e.g. with a `RecordingValidationStateReader`). Used by the
144
+ * replay-basis closure tests and harnesses to record every validation-time state read.
145
+ */
146
+ instrumentValidationStateReader?: (validationStateReader: ValidationStateReader) => ValidationStateReader;
134
147
  messageStore: MessageStore;
135
148
  dataStore: DataStore;
136
- stateIndex: StateIndex;
137
149
  resumableTaskStore: ResumableTaskStore;
138
150
  };
151
+ export {};
139
152
  //# sourceMappingURL=dwn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dwn.d.ts","sourceRoot":"","sources":["../../../src/dwn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dwn.d.ts","sourceRoot":"","sources":["../../../src/dwn.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,6 @@ export declare enum DwnMethodName {
10
10
  Query = "Query",
11
11
  Read = "Read",
12
12
  Subscribe = "Subscribe",
13
- Sync = "Sync",
14
13
  Write = "Write"
15
14
  }
16
15
  //# sourceMappingURL=dwn-interface-method.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dwn-interface-method.d.ts","sourceRoot":"","sources":["../../../../src/enums/dwn-interface-method.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB"}
1
+ {"version":3,"file":"dwn-interface-method.d.ts","sourceRoot":"","sources":["../../../../src/enums/dwn-interface-method.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB"}
@@ -0,0 +1,69 @@
1
+ import type { MessageStore } from '../types/message-store.js';
2
+ import type { EventLog, EventLogReadOptions, EventLogReadResult, EventLogSubscribeOptions, EventSubscription, ProgressToken, ReplicationFeedReader, SubscriptionListener, WakeSubscriber } from '../types/subscriptions.js';
3
+ export type DurableEventLogStore = ReplicationFeedReader & Pick<MessageStore, 'query'>;
4
+ export type DurableEventLogConfig = {
5
+ /**
6
+ * Maximum number of log rows read per drain step.
7
+ * Defaults to 100.
8
+ */
9
+ readLimit?: number;
10
+ /**
11
+ * Interval for idle re-drain. This bounds dropped-wake latency.
12
+ * Set to 0 to disable the interval.
13
+ */
14
+ idleRedrainIntervalMs?: number;
15
+ /**
16
+ * Optional handler for background subscription-drain errors.
17
+ */
18
+ errorHandler?: (error: unknown) => void;
19
+ };
20
+ /**
21
+ * EventLog implementation backed by the durable replication feed.
22
+ *
23
+ * Writes are store-owned: MessageStore commits publish wakes after the row is
24
+ * durable.
25
+ */
26
+ export declare class DurableEventLog implements EventLog {
27
+ private readonly store;
28
+ private readonly wakeSubscriber;
29
+ private readonly subscriptions;
30
+ private readonly readLimit;
31
+ private readonly idleRedrainIntervalMs;
32
+ private readonly errorHandler;
33
+ private unsubscribeWake?;
34
+ private idleRedrainTimer?;
35
+ private isOpen;
36
+ constructor(store: DurableEventLogStore, wakeSubscriber: WakeSubscriber, config?: DurableEventLogConfig);
37
+ open(): Promise<void>;
38
+ close(): Promise<void>;
39
+ read(tenant: string, options?: EventLogReadOptions): Promise<EventLogReadResult>;
40
+ subscribe(tenant: string, id: string, listener: SubscriptionListener, options?: EventLogSubscribeOptions): Promise<EventSubscription>;
41
+ getReplayBounds(tenant: string): Promise<{
42
+ oldest: ProgressToken;
43
+ latest: ProgressToken;
44
+ } | undefined>;
45
+ private getInitialCursor;
46
+ private handleWake;
47
+ private redrainAll;
48
+ private scheduleDrain;
49
+ private handleDrainError;
50
+ private catchUpSubscription;
51
+ private getCatchUpHighWater;
52
+ private deliverCatchUpPage;
53
+ private drainSubscription;
54
+ private drainOnce;
55
+ private deliverEntry;
56
+ private attachInitialWrites;
57
+ private attachInitialWrite;
58
+ private static needsInitialWrite;
59
+ private static getRecordId;
60
+ private buildToken;
61
+ private static getEntryPosition;
62
+ private static getProgressGapInfo;
63
+ private static isCatchUpComplete;
64
+ private static finishCatchUp;
65
+ private static isLatestBaseState;
66
+ private static getProtocol;
67
+ private static detachEntryEncodedData;
68
+ }
69
+ //# sourceMappingURL=durable-event-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-event-log.d.ts","sourceRoot":"","sources":["../../../../src/event-stream/durable-event-log.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EACV,QAAQ,EAER,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EAGjB,aAAa,EACb,qBAAqB,EAErB,oBAAoB,EAEpB,cAAc,EACf,MAAM,2BAA2B,CAAC;AASnC,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAEvF,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC,CAAC;AAsBF;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAU5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAVjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,gBAAgB,CAAC,CAAiC;IAC1D,OAAO,CAAC,MAAM,CAAkB;gBAGb,KAAK,EAAE,oBAAoB,EAC3B,cAAc,EAAE,cAAc,EAC/C,MAAM,GAAE,qBAA0B;IAOvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBtB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQpF,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAwChB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,GAAG,SAAS,CAAC;YAIrG,gBAAgB;IAS9B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;YA6BV,mBAAmB;YA+BnB,mBAAmB;YAQnB,kBAAkB;YAyBlB,iBAAiB;YAiBjB,SAAS;YAgCT,YAAY;YA4BZ,mBAAmB;YAYnB,kBAAkB;mBAoBX,iBAAiB;IAStC,OAAO,CAAC,MAAM,CAAC,WAAW;YAUZ,UAAU;IAcxB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IASjC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAShC,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,OAAO,CAAC,MAAM,CAAC,WAAW;IAK1B,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAatC"}
@@ -0,0 +1,13 @@
1
+ import type { Wake, WakePublisher } from '../types/subscriptions.js';
2
+ export type WakeListener = (wake: Wake) => void;
3
+ /**
4
+ * In-process {@link WakePublisher}. Publication is best-effort: listener
5
+ * failures must not affect the write path that already committed the row.
6
+ */
7
+ export declare class EventEmitterWakePublisher implements WakePublisher {
8
+ private readonly emitter;
9
+ publish(wake: Wake): void;
10
+ subscribe(listener: WakeListener): () => void;
11
+ clear(): void;
12
+ }
13
+ //# sourceMappingURL=event-emitter-wake-publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter-wake-publisher.d.ts","sourceRoot":"","sources":["../../../../src/event-stream/event-emitter-wake-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAQrE,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;AAEhD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,aAAa;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAEvC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQzB,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;IAK7C,KAAK,IAAI,IAAI;CAGrB"}
@@ -0,0 +1,20 @@
1
+ import type { HandlerDependencies, MethodHandler } from '../types/method-handler.js';
2
+ import type { MessagesQueryMessage, MessagesQueryReply } from '../types/messages-types.js';
3
+ export declare class MessagesQueryHandler implements MethodHandler {
4
+ private readonly deps;
5
+ constructor(deps: HandlerDependencies);
6
+ handle({ tenant, message }: {
7
+ tenant: string;
8
+ message: MessagesQueryMessage;
9
+ }): Promise<MessagesQueryReply>;
10
+ private authorizeMessagesQuery;
11
+ private static asReplicationFeedReader;
12
+ private static convertFilters;
13
+ private static buildEntries;
14
+ private static buildEntry;
15
+ private static getStringIndex;
16
+ private static isLatestBaseState;
17
+ private static computeFingerprintScopes;
18
+ private static getProgressGapInfo;
19
+ }
20
+ //# sourceMappingURL=messages-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages-query.d.ts","sourceRoot":"","sources":["../../../../src/handlers/messages-query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAkB,oBAAoB,EAAE,kBAAkB,EAA2B,MAAM,4BAA4B,CAAC;AAYpI,qBAAa,oBAAqB,YAAW,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;YA2D1G,sBAAsB;IA4BpC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAYtC,OAAO,CAAC,MAAM,CAAC,cAAc;mBAQR,YAAY;mBAaZ,UAAU;IA0B/B,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAwBvC,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAIlC"}
@@ -9,7 +9,7 @@ export declare class MessagesReadHandler implements MethodHandler {
9
9
  constructor(deps: HandlerDependencies);
10
10
  handle({ tenant, message }: HandleArgs): Promise<MessagesReadReply>;
11
11
  /**
12
- * @param messageStore Used to fetch related permission grant, permission revocation, and/or RecordsWrites for permission scope validation.
12
+ * @param deps Used to fetch related permission grant, permission revocation, and/or RecordsWrites for permission scope validation.
13
13
  */
14
14
  private static authorizeMessagesRead;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"messages-read.d.ts","sourceRoot":"","sources":["../../../../src/handlers/messages-read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAA0B,MAAM,4BAA4B,CAAC;AAYjH,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAEnE,qBAAa,mBAAoB,YAAW,aAAa;IAE3C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmDhF;;OAEG;mBACkB,qBAAqB;CA2B3C"}
1
+ {"version":3,"file":"messages-read.d.ts","sourceRoot":"","sources":["../../../../src/handlers/messages-read.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAA0B,MAAM,4BAA4B,CAAC;AAYjH,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAEnE,qBAAa,mBAAoB,YAAW,aAAa;IAE3C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmDhF;;OAEG;mBACkB,qBAAqB;CA2B3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"messages-subscribe.d.ts","sourceRoot":"","sources":["../../../../src/handlers/messages-subscribe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAyD,oBAAoB,EAAuB,MAAM,2BAA2B,CAAC;AAClJ,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAyBnG,qBAAa,wBAAyB,YAAW,aAAa;IAEhD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,EACP,mBAAmB,EACpB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,wBAAwB,CAAC;QAClC,mBAAmB,EAAE,oBAAoB,CAAC;KAC3C,GAAG,OAAO,CAAC,sBAAsB,CAAC;mBAyDd,0BAA0B;IA+B/C,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAsGxC"}
1
+ {"version":3,"file":"messages-subscribe.d.ts","sourceRoot":"","sources":["../../../../src/handlers/messages-subscribe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyD,oBAAoB,EAAuB,MAAM,2BAA2B,CAAC;AAClJ,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAyBnG,qBAAa,wBAAyB,YAAW,aAAa;IAEhD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,EACP,mBAAmB,EACpB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,wBAAwB,CAAC;QAClC,mBAAmB,EAAE,oBAAoB,CAAC;KAC3C,GAAG,OAAO,CAAC,sBAAsB,CAAC;mBAyDd,0BAA0B;IA+B/C,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAsGxC"}
@@ -25,11 +25,6 @@ export declare class ProtocolsConfigureHandler implements MethodHandler {
25
25
  * This is a no-op if the protocol definition has no `uses` map.
26
26
  */
27
27
  private static validateCompositionDependencies;
28
- /**
29
- * Fetches the latest installed protocol definition for the given protocol URI.
30
- * @returns The protocol definition, or `undefined` if not installed.
31
- */
32
- private static fetchInstalledProtocolDefinition;
33
28
  /**
34
29
  * Recursively walks the structure tree to validate:
35
30
  * - `$ref` type paths exist in the referenced protocol's structure
@@ -1 +1 @@
1
- {"version":3,"file":"protocols-configure.d.ts","sourceRoot":"","sources":["../../../../src/handlers/protocols-configure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAuC,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAOlH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AA2B1E,qBAAa,yBAA0B,YAAW,aAAa;IAEjD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,GACR,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,yBAAyB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoGvF,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE;mBAgB3G,2BAA2B;YAuBlC,uCAAuC;YAkDvC,mCAAmC;IAqBjD,OAAO,CAAC,MAAM,CAAC,sCAAsC;IAIrD;;;;;;;OAOG;mBACkB,+BAA+B;IA4BpD;;;OAGG;mBACkB,gCAAgC;IAkBrD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;CAsH/C"}
1
+ {"version":3,"file":"protocols-configure.d.ts","sourceRoot":"","sources":["../../../../src/handlers/protocols-configure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAuC,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAMlH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AA2B1E,qBAAa,yBAA0B,YAAW,aAAa;IAEjD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,GACR,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,yBAAyB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgGxF,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE;mBAgB3G,2BAA2B;YAuBlC,uCAAuC;YAiDvC,mCAAmC;IAqBjD,OAAO,CAAC,MAAM,CAAC,sCAAsC;IAIrD;;;;;;;OAOG;mBACkB,+BAA+B;IAkCpD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;CAsH/C"}
@@ -3,7 +3,7 @@ import type { RecordsCountMessage, RecordsCountReply } from '../types/records-ty
3
3
  export declare class RecordsCountHandler implements MethodHandler {
4
4
  private readonly deps;
5
5
  constructor(deps: HandlerDependencies);
6
- handle({ tenant, message }: {
6
+ handle({ tenant, message, }: {
7
7
  tenant: string;
8
8
  message: RecordsCountMessage;
9
9
  }): Promise<RecordsCountReply>;
@@ -19,6 +19,7 @@ export declare class RecordsCountHandler implements MethodHandler {
19
19
  * Counts only published records.
20
20
  */
21
21
  private countPublishedRecords;
22
+ private countProjectedRecords;
22
23
  private static buildPublishedRecordsFilter;
23
24
  /**
24
25
  * Creates a filter for unpublished records that are intended for the count author (where `recipient` is the author).
@@ -1 +1 @@
1
- {"version":3,"file":"records-count.d.ts","sourceRoot":"","sources":["../../../../src/handlers/records-count.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAYxF,qBAAa,mBAAoB,YAAW,aAAa;IAE3C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,EACR,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAA;KAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoC9E;;OAEG;YACW,mBAAmB;IAYjC;;OAEG;YACW,sBAAsB;IA6BpC;;OAEG;YACW,qBAAqB;IAKnC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAW1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2CAA2C;IAY1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,+CAA+C;IAW9D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sDAAsD;IAWrE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,0CAA0C;IAYzD;;OAEG;mBACkB,qBAAqB;CA+B3C"}
1
+ {"version":3,"file":"records-count.d.ts","sourceRoot":"","sources":["../../../../src/handlers/records-count.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAYxF,qBAAa,mBAAoB,YAAW,aAAa;IAE3C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,GACR,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAA;KAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoC9E;;OAEG;YACW,mBAAmB;IAYjC;;OAEG;YACW,sBAAsB;IA6BpC;;OAEG;YACW,qBAAqB;YAKrB,qBAAqB;IAUnC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAW1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2CAA2C;IAY1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,+CAA+C;IAW9D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sDAAsD;IAWrE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,0CAA0C;IAYzD;;OAEG;mBACkB,qBAAqB;CA8B3C"}
@@ -4,7 +4,7 @@ import type { HandlerDependencies, MethodHandler } from '../types/method-handler
4
4
  export declare class RecordsDeleteHandler implements MethodHandler {
5
5
  private readonly deps;
6
6
  constructor(deps: HandlerDependencies);
7
- handle({ tenant, message }: {
7
+ handle({ tenant, message, }: {
8
8
  tenant: string;
9
9
  message: RecordsDeleteMessage;
10
10
  }): Promise<GenericMessageReply>;
@@ -13,6 +13,6 @@ export declare class RecordsDeleteHandler implements MethodHandler {
13
13
  *
14
14
  * @param recordsWrite A RecordsWrite of the record to be deleted.
15
15
  */
16
- private static authorizeRecordsDelete;
16
+ private authorizeRecordsDelete;
17
17
  }
18
18
  //# sourceMappingURL=records-delete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"records-delete.d.ts","sourceRoot":"","sources":["../../../../src/handlers/records-delete.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAcrF,qBAAa,oBAAqB,YAAW,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,EACR,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,oBAAoB,CAAA;KAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoElF;;;;OAIG;mBACkB,sBAAsB;CA6B5C"}
1
+ {"version":3,"file":"records-delete.d.ts","sourceRoot":"","sources":["../../../../src/handlers/records-delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAYrF,qBAAa,oBAAqB,YAAW,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEzC,MAAM,CAAC,EAClB,MAAM,EACN,OAAO,GACR,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyEnF;;;;OAIG;YACW,sBAAsB;CA4BrC"}
@@ -3,7 +3,7 @@ import type { RecordsQueryMessage, RecordsQueryReply } from '../types/records-ty
3
3
  export declare class RecordsQueryHandler implements MethodHandler {
4
4
  private readonly deps;
5
5
  constructor(deps: HandlerDependencies);
6
- handle({ tenant, message }: {
6
+ handle({ tenant, message, }: {
7
7
  tenant: string;
8
8
  message: RecordsQueryMessage;
9
9
  }): Promise<RecordsQueryReply>;