@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
@@ -0,0 +1,84 @@
1
+ /**
2
+ * A `ValidationStateReader` decorator that records every read before delegating to the wrapped
3
+ * reader. Used by the replay-basis closure tests (and harnesses) to assert that admission
4
+ * performs no validation read outside the reader surface, and to keep recorded read-traces as a
5
+ * regression artifact when validation reads change.
6
+ *
7
+ * Inject via `DwnConfig.instrumentValidationStateReader`.
8
+ */
9
+ export class RecordingValidationStateReader {
10
+ inner;
11
+ recordedReads = [];
12
+ constructor(inner) {
13
+ this.inner = inner;
14
+ }
15
+ /** All reads recorded since construction or the last `clearRecordedReads()`. */
16
+ get reads() {
17
+ return [...this.recordedReads];
18
+ }
19
+ /** Clears the recorded reads, e.g. between closure-test scenarios. */
20
+ clearRecordedReads() {
21
+ this.recordedReads.length = 0;
22
+ }
23
+ /** @inheritdoc */
24
+ async fetchInitialRecordsWrite(tenant, recordId) {
25
+ this.recordedReads.push({ method: 'fetchInitialRecordsWrite' });
26
+ return this.inner.fetchInitialRecordsWrite(tenant, recordId);
27
+ }
28
+ /** @inheritdoc */
29
+ async fetchInitialWrite(tenant, recordId) {
30
+ this.recordedReads.push({ method: 'fetchInitialWrite' });
31
+ return this.inner.fetchInitialWrite(tenant, recordId);
32
+ }
33
+ /** @inheritdoc */
34
+ async constructRecordChain(tenant, descendantRecordId) {
35
+ this.recordedReads.push({ method: 'constructRecordChain' });
36
+ return this.inner.constructRecordChain(tenant, descendantRecordId);
37
+ }
38
+ /** @inheritdoc */
39
+ async fetchParentRecord(input) {
40
+ this.recordedReads.push({ method: 'fetchParentRecord' });
41
+ return this.inner.fetchParentRecord(input);
42
+ }
43
+ /** @inheritdoc */
44
+ async hasMatchingRoleRecord(input) {
45
+ this.recordedReads.push({ method: 'hasMatchingRoleRecord' });
46
+ return this.inner.hasMatchingRoleRecord(input);
47
+ }
48
+ /** @inheritdoc */
49
+ async queryLatestRoleRecords(input) {
50
+ this.recordedReads.push({ method: 'queryLatestRoleRecords' });
51
+ return this.inner.queryLatestRoleRecords(input);
52
+ }
53
+ /** @inheritdoc */
54
+ async fetchGrant(tenant, permissionGrantId) {
55
+ this.recordedReads.push({ method: 'fetchGrant' });
56
+ return this.inner.fetchGrant(tenant, permissionGrantId);
57
+ }
58
+ /** @inheritdoc */
59
+ async fetchOldestGrantRevocation(tenant, permissionGrantId) {
60
+ this.recordedReads.push({ method: 'fetchOldestGrantRevocation' });
61
+ return this.inner.fetchOldestGrantRevocation(tenant, permissionGrantId);
62
+ }
63
+ /** @inheritdoc */
64
+ async fetchNewestRecordsWrite(tenant, recordId) {
65
+ this.recordedReads.push({ method: 'fetchNewestRecordsWrite' });
66
+ return this.inner.fetchNewestRecordsWrite(tenant, recordId);
67
+ }
68
+ /** @inheritdoc */
69
+ async fetchProtocolDefinition(tenant, protocolUri, messageTimestamp) {
70
+ this.recordedReads.push({ method: 'fetchProtocolDefinition' });
71
+ return this.inner.fetchProtocolDefinition(tenant, protocolUri, messageTimestamp);
72
+ }
73
+ /** @inheritdoc */
74
+ async fetchLatestSquashRecordAtScope(input) {
75
+ this.recordedReads.push({ method: 'fetchLatestSquashRecordAtScope' });
76
+ return this.inner.fetchLatestSquashRecordAtScope(input);
77
+ }
78
+ /** @inheritdoc */
79
+ async hasStoredData(tenant, recordId, dataCid) {
80
+ this.recordedReads.push({ method: 'hasStoredData' });
81
+ return this.inner.hasStoredData(tenant, recordId, dataCid);
82
+ }
83
+ }
84
+ //# sourceMappingURL=recording-validation-state-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording-validation-state-reader.js","sourceRoot":"","sources":["../../../../src/core/recording-validation-state-reader.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,13 @@ export class RecordsGrantAuthorization {
7
7
  * Authorizes the given RecordsWrite in the scope of the DID given.
8
8
  */
9
9
  static async authorizeWrite(input) {
10
- const { recordsWriteMessage, expectedGrantor, expectedGrantee, permissionGrant, messageStore } = input;
10
+ const { recordsWriteMessage, expectedGrantor, expectedGrantee, permissionGrant, validationStateReader } = input;
11
11
  await GrantAuthorization.performBaseValidation({
12
12
  incomingMessage: recordsWriteMessage,
13
13
  expectedGrantor,
14
14
  expectedGrantee,
15
15
  permissionGrant,
16
- messageStore
16
+ validationStateReader
17
17
  });
18
18
  // NOTE: validated the invoked permission is for Records in GrantAuthorization.performBaseValidation()
19
19
  RecordsGrantAuthorization.verifyScope(recordsWriteMessage, permissionGrant.scope);
@@ -21,32 +21,32 @@ export class RecordsGrantAuthorization {
21
21
  }
22
22
  /**
23
23
  * Authorizes a RecordsReadMessage using the given permission grant.
24
- * @param messageStore Used to check if the given grant has been revoked.
24
+ * @param validationStateReader Used to check if the given grant has been revoked.
25
25
  */
26
26
  static async authorizeRead(input) {
27
- const { recordsReadMessage, recordsWriteMessageToBeRead, expectedGrantor, expectedGrantee, permissionGrant, messageStore } = input;
27
+ const { recordsReadMessage, recordsWriteMessageToBeRead, expectedGrantor, expectedGrantee, permissionGrant, validationStateReader } = input;
28
28
  await GrantAuthorization.performBaseValidation({
29
29
  incomingMessage: recordsReadMessage,
30
30
  expectedGrantor,
31
31
  expectedGrantee,
32
32
  permissionGrant,
33
- messageStore
33
+ validationStateReader
34
34
  });
35
35
  // NOTE: validated the invoked permission is for Records in GrantAuthorization.performBaseValidation()
36
36
  RecordsGrantAuthorization.verifyScope(recordsWriteMessageToBeRead, permissionGrant.scope);
37
37
  }
38
38
  /**
39
39
  * Authorizes the scope of a permission grant for RecordsQuery or RecordsSubscribe.
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 async authorizeQueryOrSubscribe(input) {
43
- const { incomingMessage, expectedGrantor, expectedGrantee, permissionGrant, messageStore } = input;
43
+ const { incomingMessage, expectedGrantor, expectedGrantee, permissionGrant, validationStateReader } = input;
44
44
  await GrantAuthorization.performBaseValidation({
45
45
  incomingMessage,
46
46
  expectedGrantor,
47
47
  expectedGrantee,
48
48
  permissionGrant,
49
- messageStore
49
+ validationStateReader
50
50
  });
51
51
  // The grant's protocol must match the query/subscribe filter's protocol.
52
52
  // NOTE: validated the invoked permission is for Records in GrantAuthorization.performBaseValidation()
@@ -62,16 +62,16 @@ export class RecordsGrantAuthorization {
62
62
  }
63
63
  /**
64
64
  * Authorizes the scope of a permission grant for RecordsDelete.
65
- * @param messageStore Used to check if the grant has been revoked.
65
+ * @param validationStateReader Used to check if the grant has been revoked.
66
66
  */
67
67
  static async authorizeDelete(input) {
68
- const { recordsDeleteMessage, recordsWriteToDelete, expectedGrantor, expectedGrantee, permissionGrant, messageStore } = input;
68
+ const { recordsDeleteMessage, recordsWriteToDelete, expectedGrantor, expectedGrantee, permissionGrant, validationStateReader } = input;
69
69
  await GrantAuthorization.performBaseValidation({
70
70
  incomingMessage: recordsDeleteMessage,
71
71
  expectedGrantor,
72
72
  expectedGrantee,
73
73
  permissionGrant,
74
- messageStore
74
+ validationStateReader
75
75
  });
76
76
  // NOTE: validated the invoked permission is for Records in GrantAuthorization.performBaseValidation()
77
77
  RecordsGrantAuthorization.verifyDeleteScope(recordsWriteToDelete, permissionGrant.scope);
@@ -1 +1 @@
1
- {"version":3,"file":"records-grant-authorization.js","sourceRoot":"","sources":["../../../../src/core/records-grant-authorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-grant-authorization.js","sourceRoot":"","sources":["../../../../src/core/records-grant-authorization.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,11 @@ import { isCrossProtocolRef, parseCrossProtocolRef } from '../utils/protocols.js
12
12
  export function replicationApplyResultFromReply(message, reply, context = {}) {
13
13
  const { code, detail = '' } = reply.status;
14
14
  if (code === 202 || code === 204) {
15
- return { kind: 'Applied' };
15
+ return {
16
+ kind: 'Applied',
17
+ ...(code === 204 ? { ancestryOnly: true } : {}),
18
+ ...(reply.position === undefined ? {} : { position: reply.position }),
19
+ };
16
20
  }
17
21
  if (code === 409) {
18
22
  return { kind: 'Superseded' };
@@ -23,42 +27,99 @@ export function replicationApplyResultFromReply(message, reply, context = {}) {
23
27
  if (isResolverFailure(detail)) {
24
28
  return { kind: 'Deferred', reason: 'resolver-unavailable' };
25
29
  }
26
- const missing = dependencyRefFromStatus(message, code, detail, context);
27
- if (missing !== undefined) {
28
- return { kind: 'Incomplete', missing: [missing] };
30
+ const missing = dependencyRefsFromStatus(message, code, detail, context);
31
+ if (missing.length > 0) {
32
+ return { kind: 'Incomplete', missing };
29
33
  }
30
34
  if (code >= 500) {
31
35
  return { kind: 'Deferred', reason: 'storage' };
32
36
  }
33
37
  return { kind: 'Invalid', reason: detail || `replicated message rejected with status ${code}` };
34
38
  }
35
- function dependencyRefFromStatus(message, code, detail, context) {
39
+ /**
40
+ * Computes the complete set of locally-missing ancestor recordIds for a replicated message that
41
+ * failed on a missing ancestor — either the immediate parent referential check
42
+ * (`ProtocolAuthorizationParentRecordNotFound`) or record-chain construction
43
+ * (`ProtocolAuthorizationParentNotFoundConstructingRecordChain`).
44
+ *
45
+ * Both failures name a single ancestor, but the message's `contextId` names the full ancestor
46
+ * recordId chain, so every segment the failed check could not reach is presence-checked here and
47
+ * all absent segments are returned in one batch (ordered root-first, named ancestor last).
48
+ * Feeding the result to `replicationApplyResultFromReply()` via `ReplicationApplyResultContext`
49
+ * lets sync fetch the entire ancestry in a single pass instead of one level per retry.
50
+ *
51
+ * @returns the missing ancestor recordIds, or `undefined` when the reply is not a
52
+ * missing-ancestor failure or the chain cannot be determined from the message (callers
53
+ * then fall back to emitting the single ancestor named by the failure).
54
+ */
55
+ export async function missingAncestorRecordIdsFromReply(tenant, message, reply, validationStateReader) {
56
+ const detail = reply.status.detail ?? '';
57
+ const errorCode = getDwnErrorCode(detail);
58
+ let namedRecordId;
59
+ if (errorCode === DwnErrorCode.ProtocolAuthorizationParentRecordNotFound) {
60
+ namedRecordId = parentRecordIdFromMessage(message, detail);
61
+ }
62
+ else if (errorCode === DwnErrorCode.ProtocolAuthorizationParentNotFoundConstructingRecordChain) {
63
+ namedRecordId = ancestorRecordIdFromDetail(detail);
64
+ }
65
+ else {
66
+ return undefined;
67
+ }
68
+ const contextId = message.contextId;
69
+ if (namedRecordId === undefined || typeof contextId !== 'string') {
70
+ return undefined;
71
+ }
72
+ // `contextId` is the ancestor recordId chain ending with the record's own recordId. The failed
73
+ // check stopped at `namedRecordId`, so every segment below it is locally present; only the
74
+ // segments above it (closer to the root) still need a presence check. Presence means an initial
75
+ // write exists — exactly what record-chain construction reads for the segments above the
76
+ // immediate parent.
77
+ const ancestorRecordIds = contextId.split('/').slice(0, -1);
78
+ const namedIndex = ancestorRecordIds.indexOf(namedRecordId);
79
+ if (namedIndex === -1) {
80
+ return undefined;
81
+ }
82
+ const missingRecordIds = [];
83
+ for (const ancestorRecordId of ancestorRecordIds.slice(0, namedIndex)) {
84
+ const initialWrite = await validationStateReader.fetchInitialWrite(tenant, ancestorRecordId);
85
+ if (initialWrite === undefined) {
86
+ missingRecordIds.push(ancestorRecordId);
87
+ }
88
+ }
89
+ missingRecordIds.push(namedRecordId);
90
+ return missingRecordIds;
91
+ }
92
+ function dependencyRefsFromStatus(message, code, detail, context) {
36
93
  const errorCode = getDwnErrorCode(detail);
37
94
  switch (errorCode) {
38
95
  case DwnErrorCode.ProtocolAuthorizationProtocolNotFound:
39
96
  case DwnErrorCode.ProtocolsConfigureComposedProtocolNotInstalled:
40
- return protocolDependencyFromMessage(message, detail);
97
+ return toRefList(protocolDependencyFromMessage(message, detail));
41
98
  case DwnErrorCode.ProtocolAuthorizationParentRecordNotFound:
99
+ return parentDependenciesFromMessage(message, detail, context);
42
100
  case DwnErrorCode.ProtocolAuthorizationCrossProtocolParentNotFound:
43
- return parentDependencyFromMessage(message, detail);
101
+ return toRefList(parentDependencyFromMessage(message, detail));
44
102
  case DwnErrorCode.ProtocolAuthorizationParentNotFoundConstructingRecordChain:
45
- return ancestorDependencyFromMessage(message, detail);
103
+ return ancestorDependenciesFromMessage(message, detail, context);
46
104
  case DwnErrorCode.RecordsWriteGetInitialWriteNotFound:
47
- return initialWriteDependencyFromMessage(message);
105
+ return toRefList(initialWriteDependencyFromMessage(message));
48
106
  case DwnErrorCode.GrantAuthorizationGrantMissing:
49
- return grantDependencyFromMessage(message);
107
+ return toRefList(grantDependencyFromMessage(message));
50
108
  case DwnErrorCode.ProtocolAuthorizationMatchingRoleRecordNotFound:
51
- return roleDependencyFromMessage(message, context);
109
+ return toRefList(roleDependencyFromMessage(message, context));
52
110
  case DwnErrorCode.RecordsWriteMissingDataInPrevious:
53
111
  case DwnErrorCode.RecordsWriteMissingEncodedDataInPrevious:
54
- return recordDataDependencyFromMessage(message);
112
+ return toRefList(recordDataDependencyFromMessage(message));
55
113
  default:
56
114
  break;
57
115
  }
58
116
  if (code === 404 && isRecordsDelete(message)) {
59
- return { type: 'InitialWrite', recordId: getRecordsDeleteRecordId(message) };
117
+ return [{ type: 'InitialWrite', recordId: getRecordsDeleteRecordId(message) }];
60
118
  }
61
- return undefined;
119
+ return [];
120
+ }
121
+ function toRefList(ref) {
122
+ return ref === undefined ? [] : [ref];
62
123
  }
63
124
  function getDwnErrorCode(detail) {
64
125
  const delimiter = detail.indexOf(':');
@@ -75,28 +136,62 @@ function protocolDependencyFromMessage(message, detail) {
75
136
  const protocol = message.descriptor.protocol;
76
137
  return typeof protocol === 'string' ? { type: 'Protocol', protocol } : undefined;
77
138
  }
139
+ /**
140
+ * Emits the refs for an immediate-parent referential failure. The missing parent keeps its
141
+ * existing `Parent` ref; when the apply context carries the layer-batched missing-ancestor set
142
+ * (see `missingAncestorRecordIdsFromReply()`), an `Ancestor` ref is additionally emitted for
143
+ * every locally-absent segment above the parent, so the entire ancestry resolves in a single
144
+ * fetch pass instead of one level per retry.
145
+ */
146
+ function parentDependenciesFromMessage(message, detail, context) {
147
+ const parentRef = parentDependencyFromMessage(message, detail);
148
+ if (parentRef === undefined) {
149
+ return [];
150
+ }
151
+ const protocol = message.descriptor.protocol;
152
+ const protocolProperty = typeof protocol === 'string' ? { protocol } : {};
153
+ const ancestorRefs = (context.missingAncestorRecordIds ?? [])
154
+ .filter((recordId) => recordId !== parentRef.recordId)
155
+ .map((recordId) => ({ type: 'Ancestor', recordId, ...protocolProperty }));
156
+ return [...ancestorRefs, parentRef];
157
+ }
78
158
  function parentDependencyFromMessage(message, detail) {
79
159
  const descriptor = message.descriptor;
80
- const parentId = typeof descriptor.parentId === 'string'
81
- ? descriptor.parentId
82
- : /parent record '([^']+)'/.exec(detail)?.[1];
160
+ const parentId = parentRecordIdFromMessage(message, detail);
83
161
  const protocol = /in protocol '([^']+)'/.exec(detail)?.[1] ?? descriptor.protocol;
84
- if (typeof parentId !== 'string' || typeof protocol !== 'string') {
162
+ if (parentId === undefined || typeof protocol !== 'string') {
85
163
  return undefined;
86
164
  }
87
165
  return { type: 'Parent', recordId: parentId, protocol };
88
166
  }
89
- function ancestorDependencyFromMessage(message, detail) {
90
- const recordId = /ID ([^ ]+)/.exec(detail)?.[1];
91
- if (recordId === undefined) {
92
- return undefined;
93
- }
167
+ function parentRecordIdFromMessage(message, detail) {
168
+ const descriptor = message.descriptor;
169
+ return typeof descriptor.parentId === 'string'
170
+ ? descriptor.parentId
171
+ : /parent record '([^']+)'/.exec(detail)?.[1];
172
+ }
173
+ /**
174
+ * Emits `Ancestor` refs for a record-chain construction failure. When the apply context carries
175
+ * the layer-batched missing-ancestor set (see `missingAncestorRecordIdsFromReply()`), one ref is
176
+ * emitted per missing segment so the entire ancestry resolves in a single fetch pass; otherwise
177
+ * falls back to the single ancestor named by the failure detail (e.g. for messages that carry no
178
+ * `contextId` chain).
179
+ */
180
+ function ancestorDependenciesFromMessage(message, detail, context) {
94
181
  const protocol = message.descriptor.protocol;
95
- return {
96
- type: 'Ancestor',
97
- recordId,
98
- ...(typeof protocol === 'string' ? { protocol } : {}),
99
- };
182
+ const protocolProperty = typeof protocol === 'string' ? { protocol } : {};
183
+ const batchedRecordIds = context.missingAncestorRecordIds;
184
+ if (batchedRecordIds !== undefined && batchedRecordIds.length > 0) {
185
+ return batchedRecordIds.map((recordId) => ({ type: 'Ancestor', recordId, ...protocolProperty }));
186
+ }
187
+ const namedRecordId = ancestorRecordIdFromDetail(detail);
188
+ if (namedRecordId === undefined) {
189
+ return [];
190
+ }
191
+ return [{ type: 'Ancestor', recordId: namedRecordId, ...protocolProperty }];
192
+ }
193
+ function ancestorRecordIdFromDetail(detail) {
194
+ return /ID ([^ ]+)/.exec(detail)?.[1];
100
195
  }
101
196
  function initialWriteDependencyFromMessage(message) {
102
197
  if (!isRecordsWrite(message)) {
@@ -1 +1 @@
1
- {"version":3,"file":"replication-apply.js","sourceRoot":"","sources":["../../../../src/core/replication-apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replication-apply.js","sourceRoot":"","sources":["../../../../src/core/replication-apply.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,8 @@ export class ResumableTaskManager {
17
17
  this.resumableTaskHandlers = {
18
18
  // NOTE: The arrow function is IMPORTANT here, else the `this` context will be lost within the invoked method.
19
19
  // e.g. code within performRecordsDelete() won't know `this` refers to the `storageController` instance.
20
- [ResumableTaskName.RecordsDelete]: async (task) => await storageController.performRecordsDelete(task),
21
- [ResumableTaskName.RecordsSquash]: async (task) => await storageController.performRecordsSquash(task),
20
+ [ResumableTaskName.RecordsDelete]: async (task) => storageController.performRecordsDelete(task),
21
+ [ResumableTaskName.RecordsSquash]: async (task) => storageController.performRecordsSquash(task),
22
22
  };
23
23
  }
24
24
  /**
@@ -28,7 +28,7 @@ export class ResumableTaskManager {
28
28
  const timeoutInSeconds = ResumableTaskManager.timeoutExtensionFrequencyInSeconds * 2; // give ample time for extension to take place
29
29
  // register the new resumable task before running it so that it can be resumed if it times out for any reason
30
30
  const managedResumableTask = await this.resumableTaskStore.register(task, timeoutInSeconds);
31
- await this.runWithAutomaticTimeoutExtension(managedResumableTask);
31
+ return this.runWithAutomaticTimeoutExtension(managedResumableTask);
32
32
  }
33
33
  /**
34
34
  * Runs a resumable task with automatic timeout extension.
@@ -43,8 +43,9 @@ export class ResumableTaskManager {
43
43
  this.resumableTaskStore.extend(managedTask.id, timeoutInSeconds);
44
44
  }, ResumableTaskManager.timeoutExtensionFrequencyInSeconds * 1000);
45
45
  const handler = this.resumableTaskHandlers[managedTask.task.name];
46
- await handler(managedTask.task.data);
46
+ const result = await handler(managedTask.task.data);
47
47
  await this.resumableTaskStore.delete(managedTask.id);
48
+ return result;
48
49
  }
49
50
  finally {
50
51
  ResumableTaskManager.clearTimeoutExtensionTimer(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"resumable-task-manager.js","sourceRoot":"","sources":["../../../../src/core/resumable-task-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resumable-task-manager.js","sourceRoot":"","sources":["../../../../src/core/resumable-task-manager.ts"],"names":[],"mappings":"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"}