@enbox/dwn-sdk-js 0.0.7 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/dist/browser.mjs +8 -8
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/generated/precompiled-validators.js +817 -911
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/src/core/constants.js +11 -0
  6. package/dist/esm/src/core/constants.js.map +1 -0
  7. package/dist/esm/src/core/core-protocol.js +44 -0
  8. package/dist/esm/src/core/core-protocol.js.map +1 -0
  9. package/dist/esm/src/core/dwn-error.js +12 -12
  10. package/dist/esm/src/core/dwn-error.js.map +1 -1
  11. package/dist/esm/src/core/grant-authorization.js +16 -3
  12. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  13. package/dist/esm/src/core/protocol-authorization-action.js +5 -0
  14. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
  15. package/dist/esm/src/core/protocol-authorization-validation.js +91 -0
  16. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  17. package/dist/esm/src/core/protocol-authorization.js +53 -30
  18. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  19. package/dist/esm/src/core/records-grant-authorization.js +6 -8
  20. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  21. package/dist/esm/src/core/resumable-task-manager.js +2 -0
  22. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  23. package/dist/esm/src/dwn.js +42 -18
  24. package/dist/esm/src/dwn.js.map +1 -1
  25. package/dist/esm/src/event-stream/event-emitter-event-log.js +204 -0
  26. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -0
  27. package/dist/esm/src/handlers/messages-read.js +7 -11
  28. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  29. package/dist/esm/src/handlers/messages-subscribe.js +22 -24
  30. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  31. package/dist/esm/src/handlers/messages-sync.js +11 -15
  32. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  33. package/dist/esm/src/handlers/protocols-configure.js +37 -27
  34. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  35. package/dist/esm/src/handlers/protocols-query.js +7 -11
  36. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  37. package/dist/esm/src/handlers/records-count.js +10 -12
  38. package/dist/esm/src/handlers/records-count.js.map +1 -1
  39. package/dist/esm/src/handlers/records-delete.js +10 -18
  40. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  41. package/dist/esm/src/handlers/records-query.js +11 -15
  42. package/dist/esm/src/handlers/records-query.js.map +1 -1
  43. package/dist/esm/src/handlers/records-read.js +31 -26
  44. package/dist/esm/src/handlers/records-read.js.map +1 -1
  45. package/dist/esm/src/handlers/records-subscribe.js +39 -26
  46. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  47. package/dist/esm/src/handlers/records-write.js +128 -105
  48. package/dist/esm/src/handlers/records-write.js.map +1 -1
  49. package/dist/esm/src/index.js +5 -2
  50. package/dist/esm/src/index.js.map +1 -1
  51. package/dist/esm/src/interfaces/messages-subscribe.js +1 -0
  52. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  53. package/dist/esm/src/interfaces/protocols-configure.js +33 -3
  54. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  55. package/dist/esm/src/interfaces/records-count.js +1 -1
  56. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  57. package/dist/esm/src/interfaces/records-delete.js +1 -1
  58. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  59. package/dist/esm/src/interfaces/records-query.js +1 -1
  60. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  61. package/dist/esm/src/interfaces/records-read.js +1 -1
  62. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  63. package/dist/esm/src/interfaces/records-subscribe.js +2 -1
  64. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  65. package/dist/esm/src/interfaces/records-write-signing.js +1 -12
  66. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -1
  67. package/dist/esm/src/interfaces/records-write.js +25 -41
  68. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  69. package/dist/esm/src/protocols/permission-grant.js +1 -1
  70. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  71. package/dist/esm/src/protocols/permission-request.js +1 -1
  72. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  73. package/dist/esm/src/protocols/permissions.js +113 -5
  74. package/dist/esm/src/protocols/permissions.js.map +1 -1
  75. package/dist/esm/src/state-index/state-index-level.js +5 -7
  76. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  77. package/dist/esm/src/store/data-store-level.js +110 -33
  78. package/dist/esm/src/store/data-store-level.js.map +1 -1
  79. package/dist/esm/src/store/index-level.js +42 -32
  80. package/dist/esm/src/store/index-level.js.map +1 -1
  81. package/dist/esm/src/store/storage-controller.js +70 -6
  82. package/dist/esm/src/store/storage-controller.js.map +1 -1
  83. package/dist/esm/src/types/permission-types.js.map +1 -1
  84. package/dist/esm/src/types/protocols-types.js +11 -0
  85. package/dist/esm/src/types/protocols-types.js.map +1 -1
  86. package/dist/esm/src/types/records-types.js.map +1 -1
  87. package/dist/esm/src/utils/hd-key.js +0 -8
  88. package/dist/esm/src/utils/hd-key.js.map +1 -1
  89. package/dist/esm/src/utils/messages.js +16 -34
  90. package/dist/esm/src/utils/messages.js.map +1 -1
  91. package/dist/esm/src/utils/records.js +5 -43
  92. package/dist/esm/src/utils/records.js.map +1 -1
  93. package/dist/esm/tests/core/protocol-authorization.spec.js +2 -1
  94. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  95. package/dist/esm/tests/dwn.spec.js +32 -43
  96. package/dist/esm/tests/dwn.spec.js.map +1 -1
  97. package/dist/esm/tests/event-emitter-event-log.spec.js +305 -0
  98. package/dist/esm/tests/event-emitter-event-log.spec.js.map +1 -0
  99. package/dist/esm/tests/features/author-delegated-grant.spec.js +14 -7
  100. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  101. package/dist/esm/tests/features/owner-delegated-grant.spec.js +9 -5
  102. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  103. package/dist/esm/tests/features/owner-signature.spec.js +14 -7
  104. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  105. package/dist/esm/tests/features/permissions.spec.js +12 -12
  106. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  107. package/dist/esm/tests/features/protocol-composition.spec.js +636 -5
  108. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  109. package/dist/esm/tests/features/protocol-create-action.spec.js +4 -4
  110. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  111. package/dist/esm/tests/features/protocol-delete-action.spec.js +7 -7
  112. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  113. package/dist/esm/tests/features/protocol-update-action.spec.js +4 -4
  114. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  115. package/dist/esm/tests/features/records-delivery.spec.js +236 -0
  116. package/dist/esm/tests/features/records-delivery.spec.js.map +1 -0
  117. package/dist/esm/tests/features/records-immutable.spec.js +315 -0
  118. package/dist/esm/tests/features/records-immutable.spec.js.map +1 -0
  119. package/dist/esm/tests/features/records-prune.spec.js +4 -4
  120. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  121. package/dist/esm/tests/features/records-record-limit.spec.js +542 -0
  122. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -0
  123. package/dist/esm/tests/features/records-squash.spec.js +1055 -0
  124. package/dist/esm/tests/features/records-squash.spec.js.map +1 -0
  125. package/dist/esm/tests/features/records-tags.spec.js +16 -4
  126. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  127. package/dist/esm/tests/features/resumable-tasks.spec.js +7 -8
  128. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  129. package/dist/esm/tests/handlers/messages-read.spec.js +11 -5
  130. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  131. package/dist/esm/tests/handlers/messages-subscribe.spec.js +169 -22
  132. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  133. package/dist/esm/tests/handlers/messages-sync.spec.js +103 -21
  134. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  135. package/dist/esm/tests/handlers/protocols-configure.spec.js +5 -5
  136. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  137. package/dist/esm/tests/handlers/protocols-query.spec.js +5 -5
  138. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  139. package/dist/esm/tests/handlers/records-count.spec.js +9 -4
  140. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  141. package/dist/esm/tests/handlers/records-delete.spec.js +24 -25
  142. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  143. package/dist/esm/tests/handlers/records-query.spec.js +68 -9
  144. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  145. package/dist/esm/tests/handlers/records-read.spec.js +24 -138
  146. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  147. package/dist/esm/tests/handlers/records-subscribe.spec.js +175 -35
  148. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  149. package/dist/esm/tests/handlers/records-write.spec.js +176 -72
  150. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  151. package/dist/esm/tests/interfaces/records-write.spec.js +52 -68
  152. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  153. package/dist/esm/tests/protocols/permission-grant.spec.js +6 -6
  154. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
  155. package/dist/esm/tests/protocols/permission-request.spec.js +4 -4
  156. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  157. package/dist/esm/tests/protocols/permissions.spec.js +4 -4
  158. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  159. package/dist/esm/tests/scenarios/aggregator.spec.js +4 -4
  160. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  161. package/dist/esm/tests/scenarios/deleted-record.spec.js +350 -5
  162. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  163. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +4 -4
  164. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  165. package/dist/esm/tests/scenarios/nested-roles.spec.js +4 -4
  166. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  167. package/dist/esm/tests/scenarios/subscriptions.spec.js +93 -40
  168. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  169. package/dist/esm/tests/store/data-store-level.spec.js +102 -41
  170. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  171. package/dist/esm/tests/test-event-stream.js +12 -13
  172. package/dist/esm/tests/test-event-stream.js.map +1 -1
  173. package/dist/esm/tests/test-suite.js +10 -4
  174. package/dist/esm/tests/test-suite.js.map +1 -1
  175. package/dist/esm/tests/utils/messages.spec.js +12 -5
  176. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  177. package/dist/esm/tests/utils/records.spec.js +8 -12
  178. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  179. package/dist/esm/tests/utils/test-data-generator.js +36 -2
  180. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  181. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +37 -8
  182. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  183. package/dist/types/generated/precompiled-validators.d.ts +49 -40
  184. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  185. package/dist/types/src/core/constants.d.ts +11 -0
  186. package/dist/types/src/core/constants.d.ts.map +1 -0
  187. package/dist/types/src/core/core-protocol.d.ts +89 -0
  188. package/dist/types/src/core/core-protocol.d.ts.map +1 -0
  189. package/dist/types/src/core/dwn-error.d.ts +12 -12
  190. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  191. package/dist/types/src/core/grant-authorization.d.ts +6 -2
  192. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  193. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
  194. package/dist/types/src/core/protocol-authorization-validation.d.ts +30 -0
  195. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  196. package/dist/types/src/core/protocol-authorization.d.ts +19 -11
  197. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  198. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  199. package/dist/types/src/core/resumable-task-manager.d.ts +2 -1
  200. package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
  201. package/dist/types/src/dwn.d.ts +19 -7
  202. package/dist/types/src/dwn.d.ts.map +1 -1
  203. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +50 -0
  204. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -0
  205. package/dist/types/src/handlers/messages-read.d.ts +3 -8
  206. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  207. package/dist/types/src/handlers/messages-subscribe.d.ts +6 -10
  208. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  209. package/dist/types/src/handlers/messages-sync.d.ts +3 -8
  210. package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
  211. package/dist/types/src/handlers/protocols-configure.d.ts +3 -10
  212. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  213. package/dist/types/src/handlers/protocols-query.d.ts +3 -8
  214. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
  215. package/dist/types/src/handlers/records-count.d.ts +3 -6
  216. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  217. package/dist/types/src/handlers/records-delete.d.ts +3 -8
  218. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  219. package/dist/types/src/handlers/records-query.d.ts +3 -8
  220. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  221. package/dist/types/src/handlers/records-read.d.ts +3 -8
  222. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  223. package/dist/types/src/handlers/records-subscribe.d.ts +8 -10
  224. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  225. package/dist/types/src/handlers/records-write.d.ts +12 -25
  226. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  227. package/dist/types/src/index.d.ts +8 -4
  228. package/dist/types/src/index.d.ts.map +1 -1
  229. package/dist/types/src/interfaces/messages-subscribe.d.ts +5 -0
  230. package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
  231. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  232. package/dist/types/src/interfaces/records-subscribe.d.ts +5 -0
  233. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  234. package/dist/types/src/interfaces/records-write-signing.d.ts +3 -4
  235. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -1
  236. package/dist/types/src/interfaces/records-write.d.ts +11 -11
  237. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  238. package/dist/types/src/protocols/permission-grant.d.ts +1 -1
  239. package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
  240. package/dist/types/src/protocols/permission-request.d.ts +1 -1
  241. package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
  242. package/dist/types/src/protocols/permissions.d.ts +40 -3
  243. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  244. package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
  245. package/dist/types/src/store/data-store-level.d.ts +20 -4
  246. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  247. package/dist/types/src/store/index-level.d.ts +4 -0
  248. package/dist/types/src/store/index-level.d.ts.map +1 -1
  249. package/dist/types/src/store/storage-controller.d.ts +20 -6
  250. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  251. package/dist/types/src/types/message-types.d.ts +3 -3
  252. package/dist/types/src/types/message-types.d.ts.map +1 -1
  253. package/dist/types/src/types/messages-types.d.ts +12 -3
  254. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  255. package/dist/types/src/types/method-handler.d.ts +24 -3
  256. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  257. package/dist/types/src/types/permission-types.d.ts +7 -0
  258. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  259. package/dist/types/src/types/protocols-types.d.ts +69 -2
  260. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  261. package/dist/types/src/types/records-types.d.ts +23 -6
  262. package/dist/types/src/types/records-types.d.ts.map +1 -1
  263. package/dist/types/src/types/subscriptions.d.ts +151 -13
  264. package/dist/types/src/types/subscriptions.d.ts.map +1 -1
  265. package/dist/types/src/utils/hd-key.d.ts +1 -9
  266. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  267. package/dist/types/src/utils/messages.d.ts +7 -5
  268. package/dist/types/src/utils/messages.d.ts.map +1 -1
  269. package/dist/types/src/utils/records.d.ts +1 -11
  270. package/dist/types/src/utils/records.d.ts.map +1 -1
  271. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  272. package/dist/types/tests/event-emitter-event-log.spec.d.ts +2 -0
  273. package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +1 -0
  274. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  275. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  276. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  277. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  278. package/dist/types/tests/features/records-delivery.spec.d.ts +2 -0
  279. package/dist/types/tests/features/records-delivery.spec.d.ts.map +1 -0
  280. package/dist/types/tests/features/records-immutable.spec.d.ts +2 -0
  281. package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -0
  282. package/dist/types/tests/features/records-record-limit.spec.d.ts +2 -0
  283. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -0
  284. package/dist/types/tests/features/records-squash.spec.d.ts +2 -0
  285. package/dist/types/tests/features/records-squash.spec.d.ts.map +1 -0
  286. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  287. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  288. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  289. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  290. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -1
  291. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  292. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  293. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  294. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  295. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  296. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  297. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  298. package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
  299. package/dist/types/tests/test-event-stream.d.ts +11 -12
  300. package/dist/types/tests/test-event-stream.d.ts.map +1 -1
  301. package/dist/types/tests/test-suite.d.ts +2 -2
  302. package/dist/types/tests/test-suite.d.ts.map +1 -1
  303. package/dist/types/tests/utils/test-data-generator.d.ts +19 -0
  304. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  305. package/package.json +5 -4
  306. package/src/core/constants.ts +11 -0
  307. package/src/core/core-protocol.ts +129 -0
  308. package/src/core/dwn-error.ts +18 -12
  309. package/src/core/grant-authorization.ts +20 -3
  310. package/src/core/protocol-authorization-action.ts +5 -0
  311. package/src/core/protocol-authorization-validation.ts +133 -0
  312. package/src/core/protocol-authorization.ts +71 -23
  313. package/src/core/records-grant-authorization.ts +6 -8
  314. package/src/core/resumable-task-manager.ts +3 -1
  315. package/src/dwn.ts +58 -73
  316. package/src/event-stream/event-emitter-event-log.ts +283 -0
  317. package/src/handlers/messages-read.ts +8 -9
  318. package/src/handlers/messages-subscribe.ts +24 -28
  319. package/src/handlers/messages-sync.ts +10 -16
  320. package/src/handlers/protocols-configure.ts +47 -32
  321. package/src/handlers/protocols-query.ts +6 -9
  322. package/src/handlers/records-count.ts +11 -10
  323. package/src/handlers/records-delete.ts +12 -21
  324. package/src/handlers/records-query.ts +12 -12
  325. package/src/handlers/records-read.ts +34 -22
  326. package/src/handlers/records-subscribe.ts +47 -26
  327. package/src/handlers/records-write.ts +152 -119
  328. package/src/index.ts +9 -5
  329. package/src/interfaces/messages-subscribe.ts +7 -1
  330. package/src/interfaces/protocols-configure.ts +51 -3
  331. package/src/interfaces/records-count.ts +1 -1
  332. package/src/interfaces/records-delete.ts +1 -1
  333. package/src/interfaces/records-query.ts +1 -1
  334. package/src/interfaces/records-read.ts +1 -1
  335. package/src/interfaces/records-subscribe.ts +8 -1
  336. package/src/interfaces/records-write-signing.ts +2 -22
  337. package/src/interfaces/records-write.ts +35 -48
  338. package/src/protocols/permission-grant.ts +1 -1
  339. package/src/protocols/permission-request.ts +1 -1
  340. package/src/protocols/permissions.ts +148 -6
  341. package/src/state-index/state-index-level.ts +5 -7
  342. package/src/store/data-store-level.ts +124 -34
  343. package/src/store/index-level.ts +44 -35
  344. package/src/store/storage-controller.ts +89 -12
  345. package/src/types/message-types.ts +3 -3
  346. package/src/types/messages-types.ts +12 -3
  347. package/src/types/method-handler.ts +26 -4
  348. package/src/types/mitt.d.ts +28 -0
  349. package/src/types/permission-types.ts +7 -0
  350. package/src/types/protocols-types.ts +78 -1
  351. package/src/types/records-types.ts +24 -6
  352. package/src/types/subscriptions.ts +178 -14
  353. package/src/utils/hd-key.ts +0 -9
  354. package/src/utils/messages.ts +17 -37
  355. package/src/utils/records.ts +7 -58
  356. package/dist/esm/src/event-stream/event-emitter-stream.js +0 -46
  357. package/dist/esm/src/event-stream/event-emitter-stream.js.map +0 -1
  358. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +0 -68
  359. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +0 -1
  360. package/dist/esm/tests/event-stream/event-stream.spec.js +0 -114
  361. package/dist/esm/tests/event-stream/event-stream.spec.js.map +0 -1
  362. package/dist/types/src/event-stream/event-emitter-stream.d.ts +0 -23
  363. package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +0 -1
  364. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts +0 -2
  365. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +0 -1
  366. package/dist/types/tests/event-stream/event-stream.spec.d.ts +0 -2
  367. package/dist/types/tests/event-stream/event-stream.spec.d.ts.map +0 -1
  368. package/src/event-stream/event-emitter-stream.ts +0 -69
@@ -165,6 +165,15 @@ export function RecordsWriteUnidentified(data: any, { instancePath, parentData,
165
165
  }): boolean;
166
166
  export namespace RecordsWriteUnidentified {
167
167
  export namespace evaluated_9 {
168
+ export namespace props_9 {
169
+ let recordId: boolean;
170
+ let contextId: boolean;
171
+ let attestation: boolean;
172
+ let authorization: boolean;
173
+ let encryption: boolean;
174
+ let descriptor: boolean;
175
+ }
176
+ export { props_9 as props };
168
177
  let dynamicProps_9: boolean;
169
178
  export { dynamicProps_9 as dynamicProps };
170
179
  let dynamicItems_9: boolean;
@@ -213,8 +222,8 @@ export function GeneralJws(data: any, { instancePath, parentData, parentDataProp
213
222
  }): boolean;
214
223
  export namespace GeneralJws {
215
224
  export namespace evaluated_12 {
216
- let props_9: boolean;
217
- export { props_9 as props };
225
+ let props_10: boolean;
226
+ export { props_10 as props };
218
227
  let dynamicProps_12: boolean;
219
228
  export { dynamicProps_12 as dynamicProps };
220
229
  let dynamicItems_12: boolean;
@@ -231,8 +240,8 @@ export function JwkVerificationMethod(data: any, { instancePath, parentData, par
231
240
  }): boolean;
232
241
  export namespace JwkVerificationMethod {
233
242
  export namespace evaluated_13 {
234
- let props_10: boolean;
235
- export { props_10 as props };
243
+ let props_11: boolean;
244
+ export { props_11 as props };
236
245
  let dynamicProps_13: boolean;
237
246
  export { dynamicProps_13 as dynamicProps };
238
247
  let dynamicItems_13: boolean;
@@ -249,8 +258,8 @@ export function MessagesFilter(data: any, { instancePath, parentData, parentData
249
258
  }): boolean;
250
259
  export namespace MessagesFilter {
251
260
  export namespace evaluated_14 {
252
- let props_11: boolean;
253
- export { props_11 as props };
261
+ let props_12: boolean;
262
+ export { props_12 as props };
254
263
  let dynamicProps_14: boolean;
255
264
  export { dynamicProps_14 as dynamicProps };
256
265
  let dynamicItems_14: boolean;
@@ -267,8 +276,8 @@ export function MessagesRead(data: any, { instancePath, parentData, parentDataPr
267
276
  }): boolean;
268
277
  export namespace MessagesRead {
269
278
  export namespace evaluated_15 {
270
- let props_12: boolean;
271
- export { props_12 as props };
279
+ let props_13: boolean;
280
+ export { props_13 as props };
272
281
  let dynamicProps_15: boolean;
273
282
  export { dynamicProps_15 as dynamicProps };
274
283
  let dynamicItems_15: boolean;
@@ -285,8 +294,8 @@ export function MessagesSubscribe(data: any, { instancePath, parentData, parentD
285
294
  }): boolean;
286
295
  export namespace MessagesSubscribe {
287
296
  export namespace evaluated_16 {
288
- let props_13: boolean;
289
- export { props_13 as props };
297
+ let props_14: boolean;
298
+ export { props_14 as props };
290
299
  let dynamicProps_16: boolean;
291
300
  export { dynamicProps_16 as dynamicProps };
292
301
  let dynamicItems_16: boolean;
@@ -303,8 +312,8 @@ export function MessagesSync(data: any, { instancePath, parentData, parentDataPr
303
312
  }): boolean;
304
313
  export namespace MessagesSync {
305
314
  export namespace evaluated_17 {
306
- let props_14: boolean;
307
- export { props_14 as props };
315
+ let props_15: boolean;
316
+ export { props_15 as props };
308
317
  let dynamicProps_17: boolean;
309
318
  export { dynamicProps_17 as dynamicProps };
310
319
  let dynamicItems_17: boolean;
@@ -321,8 +330,8 @@ export function NumberRangeFilter(data: any, { instancePath, parentData, parentD
321
330
  }): boolean;
322
331
  export namespace NumberRangeFilter {
323
332
  export namespace evaluated_18 {
324
- let props_15: boolean;
325
- export { props_15 as props };
333
+ let props_16: boolean;
334
+ export { props_16 as props };
326
335
  let dynamicProps_18: boolean;
327
336
  export { dynamicProps_18 as dynamicProps };
328
337
  let dynamicItems_18: boolean;
@@ -339,8 +348,8 @@ export function PaginationCursor(data: any, { instancePath, parentData, parentDa
339
348
  }): boolean;
340
349
  export namespace PaginationCursor {
341
350
  export namespace evaluated_19 {
342
- let props_16: boolean;
343
- export { props_16 as props };
351
+ let props_17: boolean;
352
+ export { props_17 as props };
344
353
  let dynamicProps_19: boolean;
345
354
  export { dynamicProps_19 as dynamicProps };
346
355
  let dynamicItems_19: boolean;
@@ -357,8 +366,8 @@ export function PermissionGrantData(data: any, { instancePath, parentData, paren
357
366
  }): boolean;
358
367
  export namespace PermissionGrantData {
359
368
  export namespace evaluated_20 {
360
- let props_17: boolean;
361
- export { props_17 as props };
369
+ let props_18: boolean;
370
+ export { props_18 as props };
362
371
  let dynamicProps_20: boolean;
363
372
  export { dynamicProps_20 as dynamicProps };
364
373
  let dynamicItems_20: boolean;
@@ -375,8 +384,8 @@ export function PermissionRequestData(data: any, { instancePath, parentData, par
375
384
  }): boolean;
376
385
  export namespace PermissionRequestData {
377
386
  export namespace evaluated_21 {
378
- let props_18: boolean;
379
- export { props_18 as props };
387
+ let props_19: boolean;
388
+ export { props_19 as props };
380
389
  let dynamicProps_21: boolean;
381
390
  export { dynamicProps_21 as dynamicProps };
382
391
  let dynamicItems_21: boolean;
@@ -393,8 +402,8 @@ export function PermissionRevocationData(data: any, { instancePath, parentData,
393
402
  }): boolean;
394
403
  export namespace PermissionRevocationData {
395
404
  export namespace evaluated_22 {
396
- let props_19: boolean;
397
- export { props_19 as props };
405
+ let props_20: boolean;
406
+ export { props_20 as props };
398
407
  let dynamicProps_22: boolean;
399
408
  export { dynamicProps_22 as dynamicProps };
400
409
  let dynamicItems_22: boolean;
@@ -443,8 +452,8 @@ export function ProtocolDefinition(data: any, { instancePath, parentData, parent
443
452
  }): boolean;
444
453
  export namespace ProtocolDefinition {
445
454
  export namespace evaluated_25 {
446
- let props_20: boolean;
447
- export { props_20 as props };
455
+ let props_21: boolean;
456
+ export { props_21 as props };
448
457
  let dynamicProps_25: boolean;
449
458
  export { dynamicProps_25 as dynamicProps };
450
459
  let dynamicItems_25: boolean;
@@ -461,8 +470,8 @@ export function ProtocolRuleSet(data: any, { instancePath, parentData, parentDat
461
470
  }): boolean;
462
471
  export namespace ProtocolRuleSet {
463
472
  export namespace evaluated_26 {
464
- let props_21: boolean;
465
- export { props_21 as props };
473
+ let props_22: boolean;
474
+ export { props_22 as props };
466
475
  let dynamicProps_26: boolean;
467
476
  export { dynamicProps_26 as dynamicProps };
468
477
  let dynamicItems_26: boolean;
@@ -479,8 +488,8 @@ export function ProtocolsConfigure(data: any, { instancePath, parentData, parent
479
488
  }): boolean;
480
489
  export namespace ProtocolsConfigure {
481
490
  export namespace evaluated_27 {
482
- let props_22: boolean;
483
- export { props_22 as props };
491
+ let props_23: boolean;
492
+ export { props_23 as props };
484
493
  let dynamicProps_27: boolean;
485
494
  export { dynamicProps_27 as dynamicProps };
486
495
  let dynamicItems_27: boolean;
@@ -497,8 +506,8 @@ export function ProtocolsQuery(data: any, { instancePath, parentData, parentData
497
506
  }): boolean;
498
507
  export namespace ProtocolsQuery {
499
508
  export namespace evaluated_28 {
500
- let props_23: boolean;
501
- export { props_23 as props };
509
+ let props_24: boolean;
510
+ export { props_24 as props };
502
511
  let dynamicProps_28: boolean;
503
512
  export { dynamicProps_28 as dynamicProps };
504
513
  let dynamicItems_28: boolean;
@@ -515,8 +524,8 @@ export function RecordsRead(data: any, { instancePath, parentData, parentDataPro
515
524
  }): boolean;
516
525
  export namespace RecordsRead {
517
526
  export namespace evaluated_29 {
518
- let props_24: boolean;
519
- export { props_24 as props };
527
+ let props_25: boolean;
528
+ export { props_25 as props };
520
529
  let dynamicProps_29: boolean;
521
530
  export { dynamicProps_29 as dynamicProps };
522
531
  let dynamicItems_29: boolean;
@@ -533,8 +542,8 @@ export function RecordsFilter(data: any, { instancePath, parentData, parentDataP
533
542
  }): boolean;
534
543
  export namespace RecordsFilter {
535
544
  export namespace evaluated_30 {
536
- let props_25: boolean;
537
- export { props_25 as props };
545
+ let props_26: boolean;
546
+ export { props_26 as props };
538
547
  let dynamicProps_30: boolean;
539
548
  export { dynamicProps_30 as dynamicProps };
540
549
  let dynamicItems_30: boolean;
@@ -567,8 +576,8 @@ export function GenericSignaturePayload(data: any, { instancePath, parentData, p
567
576
  }): boolean;
568
577
  export namespace GenericSignaturePayload {
569
578
  export namespace evaluated_32 {
570
- let props_26: boolean;
571
- export { props_26 as props };
579
+ let props_27: boolean;
580
+ export { props_27 as props };
572
581
  let dynamicProps_32: boolean;
573
582
  export { dynamicProps_32 as dynamicProps };
574
583
  let dynamicItems_32: boolean;
@@ -585,8 +594,8 @@ export function RecordsWriteSignaturePayload(data: any, { instancePath, parentDa
585
594
  }): boolean;
586
595
  export namespace RecordsWriteSignaturePayload {
587
596
  export namespace evaluated_33 {
588
- let props_27: boolean;
589
- export { props_27 as props };
597
+ let props_28: boolean;
598
+ export { props_28 as props };
590
599
  let dynamicProps_33: boolean;
591
600
  export { dynamicProps_33 as dynamicProps };
592
601
  let dynamicItems_33: boolean;
@@ -603,8 +612,8 @@ export function StringRangeFilter(data: any, { instancePath, parentData, parentD
603
612
  }): boolean;
604
613
  export namespace StringRangeFilter {
605
614
  export namespace evaluated_34 {
606
- let props_28: boolean;
607
- export { props_28 as props };
615
+ let props_29: boolean;
616
+ export { props_29 as props };
608
617
  let dynamicProps_34: boolean;
609
618
  export { dynamicProps_34 as dynamicProps };
610
619
  let dynamicItems_34: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"precompiled-validators.d.ts","sourceRoot":"","sources":["../../../generated/precompiled-validators.js"],"names":[],"mappings":"AAC66K;;;;;;YAA+tC;;;;;;;;AAMkrY;;;;;;YAA2wD;;;;;;;;;;;;AAN6vjB;;;;;;YAG9ykC;;;;;;;;;;;;AAGgupE;;;;;;YAA4oL;;;;;;;;;;;;AAA62B;;;;;;YAA6pM;;;;;;;;;;;;AAAiiD;;;;;;YAAkzV;;;;;;;;;;;;AAAiuC;;;;;;YAA0zV;;;;;;;;;;;;AAA8X;;;;;;YAAq/C;;;;;;;;;;;;AAA/29F;;;;;;YAA8+D;;;;;;;;;;;;AAHtod;;;;;;YAGslZ;;;;;;;;;;AAAqy/F;;;;;;YAAinB;;;;;;;;;;AAAwG;;;;;;YAAk5e;;;;;;;;;;AANlk/H;;;;;;YAAi1I;;;;;;;;;;;;AAM+43H;;;;;;YAAsnH;;;;;;;;;;;;AAAwxB;;;;;;YAAiuL;;;;;;;;;;;;AAAi2B;;;;;;YAAuqM;;;;;;;;;;;;AAA63B;;;;;;YAAikM;;;;;;;;;;;;AAAsqC;;;;;;YAA+iU;;;;;;;;;;;;AAA4H;;;;;;YAA8sK;;;;;;;;;;;;AAA2H;;;;;;YAAqvE;;;;;;;;;;;;AAA05/C;;;;;;YAAw0K;;;;;;;;;;;;AAAgv3C;;;;;;YAAyiI;;;;;;;;;;;;AAA6X;;;;;;YAAgtC;;;;;;;;;;;;AAA4nD;;;;;;YAA6nB;;;;;;;;;;AAA0jG;;;;;;YAA+nB;;;;;;;;;;AAA+n1B;;;;;;YAAm2P;;;;;;;;;;;;AAA/m8B;;;;;;YAA4rsB;;;;;;;;;;;;AAAg6R;;;;;;YAAksM;;;;;;;;;;;;AAA2/B;;;;;;YAAovQ;;;;;;;;;;;;AAAgjC;;;;;;YAA8/N;;;;;;;;;;;;AAApx1T;;;;;;YAAo2/C;;;;;;;;;;;;AANp/zD;;;;;;YAAwivB;;;;;;;;;;AAM0k8S;;;;;;YAAwwF;;;;;;;;;;;;AAAmsB;;;;;;YAA6mJ;;;;;;;;;;;;AAA4H;;;;;;YAAkiK"}
1
+ {"version":3,"file":"precompiled-validators.d.ts","sourceRoot":"","sources":["../../../generated/precompiled-validators.js"],"names":[],"mappings":"AAC66K;;;;;;YAA+tC;;;;;;;;AAMs+Z;;;;;;YAA2wD;;;;;;;;;;;;AANinhB;;;;;;YAGt9jC;;;;;;;;;;;;AAGohrE;;;;;;YAA4oL;;;;;;;;;;;;AAA62B;;;;;;YAA6pM;;;;;;;;;;;;AAAiiD;;;;;;YAAkzV;;;;;;;;;;;;AAA4vC;;;;;;YAAqsW;;;;;;;;;;;;AAA8X;;;;;;YAAgkD;;;;;;;;;;;;AAAp4+F;;;;;;YAAkhE;;;;;;;;;;;;AAH17e;;;;;;YAG8ua;;;;;;;;;;;;;;;;;;;AAAk7gG;;;;;;YAAinB;;;;;;;;;;AAAwG;;;;;;YAAk5e;;;;;;;;;;AANv2hI;;;;;;YAAi1I;;;;;;;;;;;;AAMor6H;;;;;;YAAsnH;;;;;;;;;;;;AAAwxB;;;;;;YAAiuL;;;;;;;;;;;;AAAi2B;;;;;;YAAuqM;;;;;;;;;;;;AAAw5B;;;;;;YAA48M;;;;;;;;;;;;AAAsqC;;;;;;YAA+iU;;;;;;;;;;;;AAA4H;;;;;;YAA8sK;;;;;;;;;;;;AAA2H;;;;;;YAAqvE;;;;;;;;;;;;AAA05/C;;;;;;YAAw0K;;;;;;;;;;;;AAAgv3C;;;;;;YAAyiI;;;;;;;;;;;;AAA6X;;;;;;YAAgtC;;;;;;;;;;;;AAA4nD;;;;;;YAA6nB;;;;;;;;;;AAA0jG;;;;;;YAA+nB;;;;;;;;;;AAAis/B;;;;;;YAAm2P;;;;;;;;;;;;AAAj4kC;;;;;;YAA880B;;;;;;;;;;;;AAAg6R;;;;;;YAAksM;;;;;;;;;;;;AAA2/B;;;;;;YAAovQ;;;;;;;;;;;;AAAgjC;;;;;;YAA8/N;;;;;;;;;;;;AAA7uhU;;;;;;YAAo2/C;;;;;;;;;;;;AANho2D;;;;;;YAAwivB;;;;;;;;;;AAM+qqT;;;;;;YAAwwF;;;;;;;;;;;;AAAmsB;;;;;;YAA6mJ;;;;;;;;;;;;AAA4H;;;;;;YAAkiK"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Cross-cutting constants that are shared between modules which cannot directly
3
+ * import each other without creating circular dependencies.
4
+ */
5
+ /**
6
+ * Well-known protocol path for permission grant revocation records.
7
+ * Defined here (rather than on `PermissionsProtocol`) to avoid circular
8
+ * dependencies between `grant-authorization.ts` and `protocols/permissions.ts`.
9
+ */
10
+ export declare const PERMISSIONS_REVOCATION_PATH = "grant/revocation";
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,qBAAqB,CAAC"}
@@ -0,0 +1,89 @@
1
+ import type { DataStore } from '../types/data-store.js';
2
+ import type { Filter } from '../types/query-types.js';
3
+ import type { MessagesFilter } from '../types/messages-types.js';
4
+ import type { MessageStore } from '../types/message-store.js';
5
+ import type { ProtocolDefinition } from '../types/protocols-types.js';
6
+ import type { RecordsWrite } from '../interfaces/records-write.js';
7
+ import type { RecordsWriteMessage } from '../types/records-types.js';
8
+ import type { StateIndex } from '../types/state-index.js';
9
+ /**
10
+ * Bundled store references passed to core protocol post-processing hooks.
11
+ */
12
+ export type CoreProtocolStores = {
13
+ messageStore: MessageStore;
14
+ dataStore: DataStore;
15
+ stateIndex: StateIndex;
16
+ };
17
+ /**
18
+ * A core protocol is a hardcoded, immutable, always-installed DWN protocol
19
+ * with lifecycle hooks that participate in the Records message processing pipeline.
20
+ *
21
+ * Core protocols are returned from `fetchProtocolDefinition()` without a database
22
+ * lookup and cannot be overridden by `ProtocolsConfigure`. They provide system-level
23
+ * behavior (e.g., permissions) while riding on the Records interface for CRUD and sync.
24
+ */
25
+ export interface CoreProtocol {
26
+ /** The immutable protocol definition. */
27
+ readonly definition: ProtocolDefinition;
28
+ /** The protocol URI (shorthand for `definition.protocol`). */
29
+ readonly uri: string;
30
+ /**
31
+ * Validate the data payload of a record being written under this protocol.
32
+ * Called after protocol authorization but before storage.
33
+ * @throws DwnError to reject the write with the appropriate status code.
34
+ */
35
+ validateRecord?(message: RecordsWriteMessage, dataBytes: Uint8Array): void;
36
+ /**
37
+ * Pre-processing hook: runs before storing a record under this protocol.
38
+ * Can perform cross-record validation (e.g., revocation tag consistency checks).
39
+ * @throws DwnError to reject the write.
40
+ */
41
+ preProcessWrite?(tenant: string, message: RecordsWriteMessage, messageStore: MessageStore): Promise<void>;
42
+ /**
43
+ * Post-processing hook: runs after successfully storing a record under this protocol.
44
+ * Can perform cascading side effects (e.g., cleanup of grant-authorized messages on revocation).
45
+ */
46
+ postProcessWrite?(tenant: string, recordsWrite: RecordsWrite, stores: CoreProtocolStores): Promise<void>;
47
+ /**
48
+ * Map an error code from this protocol's validation to an HTTP status code.
49
+ * Return `undefined` if the error code is not owned by this protocol.
50
+ */
51
+ mapErrorToStatusCode?(errorCode: string): number | undefined;
52
+ /**
53
+ * Construct an additional filter to include this protocol's records in
54
+ * protocol-scoped `MessagesFilter` conversions (e.g., sync, subscribe, read).
55
+ *
56
+ * This is used when permission records (or similar system records) are tagged
57
+ * with a target protocol and must appear alongside that protocol's records in
58
+ * message-level queries.
59
+ *
60
+ * Return `undefined` if no additional filter is needed for the given input.
61
+ */
62
+ constructAdditionalMessageFilter?(filter: MessagesFilter): Filter | undefined;
63
+ }
64
+ /**
65
+ * Registry of core protocols. Owned by a `Dwn` instance (not a static singleton)
66
+ * so that each DWN — including those in tests — gets an isolated registry.
67
+ */
68
+ export declare class CoreProtocolRegistry {
69
+ private readonly _protocols;
70
+ /** Register a core protocol. */
71
+ register(protocol: CoreProtocol): void;
72
+ /** Get a core protocol by URI, or `undefined` if not registered. */
73
+ get(uri: string): CoreProtocol | undefined;
74
+ /**
75
+ * Get the protocol definition for a core protocol, or `undefined`.
76
+ * Used by `fetchProtocolDefinition()` to bypass the message store for core protocols.
77
+ */
78
+ getDefinition(uri: string): ProtocolDefinition | undefined;
79
+ /** Check whether a URI is a registered core protocol. */
80
+ has(uri: string): boolean;
81
+ /** Get all registered core protocols. */
82
+ all(): CoreProtocol[];
83
+ /**
84
+ * Delegate error code mapping to all registered core protocols.
85
+ * Returns the first non-`undefined` status code, or `undefined` if no protocol claims the error.
86
+ */
87
+ mapErrorToStatusCode(errorCode: string): number | undefined;
88
+ }
89
+ //# sourceMappingURL=core-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-protocol.d.ts","sourceRoot":"","sources":["../../../../src/core/core-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAG,YAAY,CAAC;IAC5B,SAAS,EAAG,SAAS,CAAC;IACtB,UAAU,EAAG,UAAU,CAAC;CACzB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAExC,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,cAAc,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAE3E;;;;OAIG;IACH,eAAe,CAAC,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,gBAAgB,CAAC,CACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,oBAAoB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAE7D;;;;;;;;;OASG;IACH,gCAAgC,CAAC,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;CAC/E;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IAEnE,gCAAgC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI7C,oEAAoE;IAC7D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;;OAGG;IACI,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIjE,yDAAyD;IAClD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,yCAAyC;IAClC,GAAG,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACI,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CASnE"}
@@ -16,10 +16,10 @@ export declare enum DwnErrorCode {
16
16
  ComputeCidCodecNotSupported = "ComputeCidCodecNotSupported",
17
17
  ComputeCidMultihashNotSupported = "ComputeCidMultihashNotSupported",
18
18
  Ed25519InvalidJwk = "Ed25519InvalidJwk",
19
- EventEmitterStreamNotOpenError = "EventEmitterStreamNotOpenError",
19
+ EventLogNotOpenError = "EventLogNotOpenError",
20
20
  MessagesGrantAuthorizationMismatchedProtocol = "EventsGrantAuthorizationMismatchedProtocol",
21
21
  MessagesSubscribeAuthorizationFailed = "MessagesSubscribeAuthorizationFailed",
22
- MessagesSubscribeEventStreamUnimplemented = "MessagesSubscribeEventStreamUnimplemented",
22
+ MessagesSubscribeEventLogUnimplemented = "MessagesSubscribeEventLogUnimplemented",
23
23
  GeneralJwsVerifierGetPublicKeyNotFound = "GeneralJwsVerifierGetPublicKeyNotFound",
24
24
  GeneralJwsVerifierInvalidSignature = "GeneralJwsVerifierInvalidSignature",
25
25
  GeneralJwsVerifierMissingAlg = "GeneralJwsVerifierMissingAlg",
@@ -74,11 +74,17 @@ export declare enum DwnErrorCode {
74
74
  ProtocolAuthorizationIncorrectProtocolPath = "ProtocolAuthorizationIncorrectProtocolPath",
75
75
  ProtocolAuthorizationDuplicateRoleRecipient = "ProtocolAuthorizationDuplicateRoleRecipient",
76
76
  ProtocolAuthorizationEncryptionRequired = "ProtocolAuthorizationEncryptionRequired",
77
+ ProtocolAuthorizationImmutableRecord = "ProtocolAuthorizationImmutableRecord",
77
78
  ProtocolAuthorizationInvalidSchema = "ProtocolAuthorizationInvalidSchema",
78
79
  ProtocolAuthorizationInvalidType = "ProtocolAuthorizationInvalidType",
79
80
  ProtocolAuthorizationMatchingRoleRecordNotFound = "ProtocolAuthorizationMatchingRoleRecordNotFound",
80
81
  ProtocolAuthorizationMaxSizeInvalid = "ProtocolAuthorizationMaxSizeInvalid",
81
82
  ProtocolAuthorizationMinSizeInvalid = "ProtocolAuthorizationMinSizeInvalid",
83
+ ProtocolAuthorizationRecordLimitExceeded = "ProtocolAuthorizationRecordLimitExceeded",
84
+ ProtocolAuthorizationRecordLimitStrategyNotImplemented = "ProtocolAuthorizationRecordLimitStrategyNotImplemented",
85
+ ProtocolAuthorizationSquashNotEnabled = "ProtocolAuthorizationSquashNotEnabled",
86
+ ProtocolAuthorizationSquashNotInitialWrite = "ProtocolAuthorizationSquashNotInitialWrite",
87
+ ProtocolAuthorizationSquashBackstop = "ProtocolAuthorizationSquashBackstop",
82
88
  ProtocolAuthorizationMissingContextId = "ProtocolAuthorizationMissingContextId",
83
89
  ProtocolAuthorizationMissingRuleSet = "ProtocolAuthorizationMissingRuleSet",
84
90
  ProtocolAuthorizationParentlessIncorrectProtocolPath = "ProtocolAuthorizationParentlessIncorrectProtocolPath",
@@ -95,6 +101,8 @@ export declare enum DwnErrorCode {
95
101
  ProtocolsConfigureInvalidRefNodeHasDirectives = "ProtocolsConfigureInvalidRefNodeHasDirectives",
96
102
  ProtocolsConfigureInvalidRefNotAtRoot = "ProtocolsConfigureInvalidRefNotAtRoot",
97
103
  ProtocolsConfigureInvalidRefProtocolPath = "ProtocolsConfigureInvalidRefProtocolPath",
104
+ ProtocolsConfigureInvalidRefTargetThroughRef = "ProtocolsConfigureInvalidRefTargetThroughRef",
105
+ ProtocolsConfigureInvalidRecordLimit = "ProtocolsConfigureInvalidRecordLimit",
98
106
  ProtocolsConfigureInvalidSize = "ProtocolsConfigureInvalidSize",
99
107
  ProtocolsConfigureInvalidActionMissingOf = "ProtocolsConfigureInvalidActionMissingOf",
100
108
  ProtocolsConfigureInvalidActionOfNotAnAncestor = "ProtocolsConfigureInvalidActionOfNotAnAncestor",
@@ -121,7 +129,6 @@ export declare enum DwnErrorCode {
121
129
  RecordsAuthorDelegatedGrantNotADelegatedGrant = "RecordsAuthorDelegatedGrantNotADelegatedGrant",
122
130
  RecordsDecryptNoMatchingKeyEncryptedFound = "RecordsDecryptNoMatchingKeyEncryptedFound",
123
131
  RecordsCountFilterMissingRequiredProperties = "RecordsCountFilterMissingRequiredProperties",
124
- RecordsDeleteAuthorizationFailed = "RecordsDeleteAuthorizationFailed",
125
132
  RecordsQueryCreateFilterPublishedSortInvalid = "RecordsQueryCreateFilterPublishedSortInvalid",
126
133
  RecordsQueryParseFilterPublishedSortInvalid = "RecordsQueryParseFilterPublishedSortInvalid",
127
134
  RecordsGrantAuthorizationConditionPublicationProhibited = "RecordsGrantAuthorizationConditionPublicationProhibited",
@@ -137,23 +144,18 @@ export declare enum DwnErrorCode {
137
144
  RecordsOwnerDelegatedGrantCidMismatch = "RecordsOwnerDelegatedGrantCidMismatch",
138
145
  RecordsOwnerDelegatedGrantGrantedToAndOwnerSignatureMismatch = "RecordsOwnerDelegatedGrantGrantedToAndOwnerSignatureMismatch",
139
146
  RecordsOwnerDelegatedGrantNotADelegatedGrant = "RecordsOwnerDelegatedGrantNotADelegatedGrant",
140
- RecordsProtocolContextDerivationSchemeMissingContextId = "RecordsProtocolContextDerivationSchemeMissingContextId",
141
- RecordsProtocolPathDerivationSchemeMissingProtocol = "RecordsProtocolPathDerivationSchemeMissingProtocol",
142
147
  RecordsQueryFilterMissingRequiredProperties = "RecordsQueryFilterMissingRequiredProperties",
143
- RecordsReadAuthorizationFailed = "RecordsReadAuthorizationFailed",
144
148
  RecordsReadCreateFilterPublishedSortInvalid = "RecordsReadCreateFilterPublishedSortInvalid",
145
149
  RecordsReadParseFilterPublishedSortInvalid = "RecordsReadParseFilterPublishedSortInvalid",
146
- RecordsSubscribeEventStreamUnimplemented = "RecordsSubscribeEventStreamUnimplemented",
150
+ RecordsSubscribeEventLogUnimplemented = "RecordsSubscribeEventLogUnimplemented",
147
151
  RecordsSubscribeFilterMissingRequiredProperties = "RecordsSubscribeFilterMissingRequiredProperties",
148
- RecordsSchemasDerivationSchemeMissingSchema = "RecordsSchemasDerivationSchemeMissingSchema",
149
152
  RecordsWriteAttestationIntegrityMoreThanOneSignature = "RecordsWriteAttestationIntegrityMoreThanOneSignature",
150
153
  RecordsWriteAttestationIntegrityDescriptorCidMismatch = "RecordsWriteAttestationIntegrityDescriptorCidMismatch",
151
154
  RecordsWriteAttestationIntegrityInvalidPayloadProperty = "RecordsWriteAttestationIntegrityInvalidPayloadProperty",
152
- RecordsWriteAuthorizationFailed = "RecordsWriteAuthorizationFailed",
153
155
  RecordsWriteCreateMissingSigner = "RecordsWriteCreateMissingSigner",
154
156
  RecordsWriteCreateDataAndDataCidMutuallyExclusive = "RecordsWriteCreateDataAndDataCidMutuallyExclusive",
155
157
  RecordsWriteCreateDataCidAndDataSizeMutuallyInclusive = "RecordsWriteCreateDataCidAndDataSizeMutuallyInclusive",
156
- RecordsWriteCreateProtocolAndProtocolPathMutuallyInclusive = "RecordsWriteCreateProtocolAndProtocolPathMutuallyInclusive",
158
+ RecordsWriteCreateMissingProtocol = "RecordsWriteCreateMissingProtocol",
157
159
  RecordsWriteDataCidMismatch = "RecordsWriteDataCidMismatch",
158
160
  RecordsWriteDataSizeMismatch = "RecordsWriteDataSizeMismatch",
159
161
  RecordsWriteGetEntryIdUndefinedAuthor = "RecordsWriteGetEntryIdUndefinedAuthor",
@@ -164,8 +166,6 @@ export declare enum DwnErrorCode {
164
166
  RecordsWriteMissingDataInPrevious = "RecordsWriteMissingDataInPrevious",
165
167
  RecordsWriteMissingEncodedDataInPrevious = "RecordsWriteMissingEncodedDataInPrevious",
166
168
  RecordsWriteMissingEncryption = "RecordsWriteMissingEncryption",
167
- RecordsWriteMissingProtocol = "RecordsWriteMissingProtocol",
168
- RecordsWriteMissingSchema = "RecordsWriteMissingSchema",
169
169
  RecordsWriteNotAllowedAfterDelete = "RecordsWriteNotAllowedAfterDelete",
170
170
  RecordsWriteOwnerAndTenantMismatch = "RecordsWriteOwnerAndTenantMismatch",
171
171
  RecordsWriteSignAsOwnerDelegateUnknownAuthor = "RecordsWriteSignAsOwnerDelegateUnknownAuthor",
@@ -1 +1 @@
1
- {"version":3,"file":"dwn-error.d.ts","sourceRoot":"","sources":["../../../../src/core/dwn-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dwn-error.d.ts","sourceRoot":"","sources":["../../../../src/core/dwn-error.ts"],"names":[],"mappings":"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"}
@@ -34,8 +34,12 @@ export declare class GrantAuthorization {
34
34
  */
35
35
  private static verifyGrantActive;
36
36
  /**
37
- * Verify that the `interface` and `method` grant scopes match the incoming message
38
- * @param permissionGrantId Purely being passed for logging purposes.
37
+ * Verify that the `interface` and `method` grant scopes match the incoming message.
38
+ *
39
+ * For the Messages interface, a `Read` scope is treated as a unified scope that also authorizes
40
+ * `Subscribe` and `Sync` operations. This mirrors how protocol `$actions` treats `read` as a
41
+ * unified action covering read, query, subscribe, and count.
42
+ *
39
43
  * @throws {DwnError} if the `interface` and `method` of the incoming message do not match the scope of the permission grant.
40
44
  */
41
45
  private static verifyGrantScopeInterfaceAndMethod;
@@ -1 +1 @@
1
- {"version":3,"file":"grant-authorization.d.ts","sourceRoot":"","sources":["../../../../src/core/grant-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKxE,qBAAa,kBAAkB;IAE7B;;;;;;;;;;OAUG;WACiB,qBAAqB,CAAC,KAAK,EAAE;QAC/C,eAAe,EAAE,cAAc,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAuB9C;;;;;OAKG;mBACkB,iBAAiB;IAwCtC;;;;OAIG;mBACkB,kCAAkC;CAkBxD"}
1
+ {"version":3,"file":"grant-authorization.d.ts","sourceRoot":"","sources":["../../../../src/core/grant-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOxE,qBAAa,kBAAkB;IAE7B;;;;;;;;;;OAUG;WACiB,qBAAqB,CAAC,KAAK,EAAE;QAC/C,eAAe,EAAE,cAAc,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAuB9C;;;;;OAKG;mBACkB,iBAAiB;IAwCtC;;;;;;;;OAQG;mBACkB,kCAAkC;CA6BxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-authorization-action.d.ts","sourceRoot":"","sources":["../../../../src/core/protocol-authorization-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG3G,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,OAAO,EAAE,cAAc,EAAiB,MAAM,6BAA6B,CAAC;AAE5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,EAC5G,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Ff;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,EAC5G,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,cAAc,EAAE,CAAC,CA4E3B;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,EAC5G,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,mBAAmB,EAAE,EAClC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,IAAI,CAAC,CAyFf;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,kBAAkB,EAC9B,WAAW,EAAE,mBAAmB,EAAE,EAClC,mBAAmB,CAAC,EAAE,kBAAkB,GACvC,OAAO,CAAC,OAAO,CAAC,CA0ClB"}
1
+ {"version":3,"file":"protocol-authorization-action.d.ts","sourceRoot":"","sources":["../../../../src/core/protocol-authorization-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG3G,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,OAAO,EAAE,cAAc,EAAiB,MAAM,6BAA6B,CAAC;AAE5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,EAC5G,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Ff;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,EAC5G,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,cAAc,EAAE,CAAC,CAiF3B;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,EAC5G,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,mBAAmB,EAAE,EAClC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,IAAI,CAAC,CAyFf;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,kBAAkB,EAC9B,WAAW,EAAE,mBAAmB,EAAE,EAClC,mBAAmB,CAAC,EAAE,kBAAkB,GACvC,OAAO,CAAC,OAAO,CAAC,CA0ClB"}
@@ -57,4 +57,34 @@ export declare function verifyTagsIfNeeded(incomingMessage: RecordsWrite, ruleSe
57
57
  * 1. The same role has not been assigned to the same entity/recipient.
58
58
  */
59
59
  export declare function verifyAsRoleRecordIfNeeded(tenant: string, incomingMessage: RecordsWrite, ruleSet: ProtocolRuleSet, messageStore: MessageStore): Promise<void>;
60
+ /**
61
+ * Verifies that a new record creation does not exceed the `$recordLimit` defined in the rule set.
62
+ *
63
+ * This check only applies to initial writes (new records). Updates to existing records are not counted.
64
+ * The count is scoped to the same `protocol + protocolPath` within the parent context:
65
+ * - For root-level records: counted across the entire protocol for the tenant.
66
+ * - For nested records: counted within the parent record's context.
67
+ *
68
+ * @throws {DwnError} with `ProtocolAuthorizationRecordLimitExceeded` if the limit is reached and strategy is `reject`.
69
+ * @throws {DwnError} with `ProtocolAuthorizationRecordLimitStrategyNotImplemented` if strategy is not yet implemented.
70
+ */
71
+ export declare function verifyRecordLimit(tenant: string, incomingMessage: RecordsWrite, ruleSet: ProtocolRuleSet, messageStore: MessageStore): Promise<void>;
72
+ /**
73
+ * Verifies that a `RecordsWrite` with `squash: true` is eligible:
74
+ * 1. The protocol rule set at the record's `protocolPath` must have `$squash: true`.
75
+ * 2. The squash write must be an initial write (a new record, not an update).
76
+ *
77
+ * @throws {DwnError} with `ProtocolAuthorizationSquashNotEnabled` if `$squash` is not enabled.
78
+ * @throws {DwnError} with `ProtocolAuthorizationSquashNotInitialWrite` if the squash write is not an initial write.
79
+ */
80
+ export declare function verifySquashEligibility(incomingMessage: RecordsWrite, ruleSet: ProtocolRuleSet): Promise<void>;
81
+ /**
82
+ * Verifies that an update is not attempted on a record whose protocol path has `$immutable: true`.
83
+ *
84
+ * Only non-initial writes (updates) are rejected — initial writes are always allowed.
85
+ * `RecordsDelete` is not affected by this check; immutability prevents data mutation, not removal.
86
+ *
87
+ * @throws {DwnError} with `ProtocolAuthorizationImmutableRecord` if an update is attempted on an immutable record.
88
+ */
89
+ export declare function verifyImmutability(incomingMessage: RecordsWrite, ruleSet: ProtocolRuleSet): Promise<void>;
60
90
  //# sourceMappingURL=protocol-authorization-validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-authorization-validation.d.ts","sourceRoot":"","sources":["../../../../src/core/protocol-authorization-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAgB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AASnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,YAAY,EAC5B,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,CAuCjB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,mBAAmB,EACnC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,cAAc,EAAE,mBAAmB,EACnC,aAAa,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAsCN;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,GACvB,IAAI,CAgBN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,GACvB,IAAI,CA8BN;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
1
+ {"version":3,"file":"protocol-authorization-validation.d.ts","sourceRoot":"","sources":["../../../../src/core/protocol-authorization-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAgB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AASnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,YAAY,EAC5B,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,CAuCjB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,mBAAmB,EACnC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,yBAAyB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,cAAc,EAAE,mBAAmB,EACnC,aAAa,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAsCN;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,GACvB,IAAI,CAgBN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,GACvB,IAAI,CA8BN;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -1,3 +1,4 @@
1
+ import type { CoreProtocolRegistry } from './core-protocol.js';
1
2
  import type { MessageStore } from '../types/message-store.js';
2
3
  import type { RecordsCount } from '../interfaces/records-count.js';
3
4
  import type { RecordsDelete } from '../interfaces/records-delete.js';
@@ -16,39 +17,46 @@ export declare class ProtocolAuthorization {
16
17
  * Performs validation on the structure of RecordsWrite messages that use a protocol.
17
18
  * @throws {Error} if validation fails.
18
19
  */
19
- static validateReferentialIntegrity(tenant: string, incomingMessage: RecordsWrite, messageStore: MessageStore): Promise<void>;
20
+ static validateReferentialIntegrity(tenant: string, incomingMessage: RecordsWrite, messageStore: MessageStore, coreProtocols?: CoreProtocolRegistry): Promise<void>;
20
21
  /**
21
22
  * Performs protocol-based authorization against the incoming RecordsWrite message.
22
23
  * @throws {Error} if authorization fails.
23
24
  */
24
- static authorizeWrite(tenant: string, incomingMessage: RecordsWrite, messageStore: MessageStore): Promise<void>;
25
+ static authorizeWrite(tenant: string, incomingMessage: RecordsWrite, messageStore: MessageStore, coreProtocols?: CoreProtocolRegistry): Promise<void>;
25
26
  /**
26
27
  * Performs protocol-based authorization against the incoming `RecordsRead` message.
27
28
  * @param newestRecordsWrite The latest RecordsWrite associated with the recordId being read.
28
29
  * @throws {Error} if authorization fails.
29
30
  */
30
- static authorizeRead(tenant: string, incomingMessage: RecordsRead, newestRecordsWrite: RecordsWrite, messageStore: MessageStore): Promise<void>;
31
- static authorizeQueryOrSubscribe(tenant: string, incomingMessage: RecordsCount | RecordsQuery | RecordsSubscribe, messageStore: MessageStore): Promise<void>;
31
+ static authorizeRead(tenant: string, incomingMessage: RecordsRead, newestRecordsWrite: RecordsWrite, messageStore: MessageStore, coreProtocols?: CoreProtocolRegistry): Promise<void>;
32
+ static authorizeQueryOrSubscribe(tenant: string, incomingMessage: RecordsCount | RecordsQuery | RecordsSubscribe, messageStore: MessageStore, coreProtocols?: CoreProtocolRegistry): Promise<void>;
32
33
  /**
33
34
  * Performs protocol-based authorization against the incoming `RecordsDelete` message.
34
35
  * @param recordsWrite A `RecordsWrite` of the record being deleted.
35
36
  */
36
- static authorizeDelete(tenant: string, incomingMessage: RecordsDelete, recordsWrite: RecordsWrite, messageStore: MessageStore): Promise<void>;
37
+ static authorizeDelete(tenant: string, incomingMessage: RecordsDelete, recordsWrite: RecordsWrite, messageStore: MessageStore, coreProtocols?: CoreProtocolRegistry): Promise<void>;
37
38
  /**
38
39
  * Fetches the protocol definition based on the protocol specified in the given message.
39
40
  * When `messageTimestamp` is provided, returns the protocol definition that was active at that
40
41
  * point in time — i.e. the ProtocolsConfigure with the greatest `messageTimestamp` that is <= the
41
42
  * given timestamp. When not provided, returns the latest (current) protocol definition.
43
+ *
44
+ * When `coreProtocols` is provided, core protocol definitions are returned directly from the
45
+ * registry without a message store query. The extra parameter does not affect the
46
+ * `FetchProtocolDefinitionFn` callback type — callers that pass this function as a callback
47
+ * should bind the registry via a closure (see `createBoundFetchDefinition`).
42
48
  */
43
- static fetchProtocolDefinition(tenant: string, protocolUri: string, messageStore: MessageStore, messageTimestamp?: string): Promise<ProtocolDefinition>;
49
+ static fetchProtocolDefinition(tenant: string, protocolUri: string, messageStore: MessageStore, messageTimestamp?: string, coreProtocols?: CoreProtocolRegistry): Promise<ProtocolDefinition>;
44
50
  /**
45
- * Gets the rule set corresponding to the given protocolPath.
51
+ * Creates a `FetchProtocolDefinitionFn` closure that binds the given `CoreProtocolRegistry`.
52
+ * This allows core protocol definitions to be resolved from the registry without changing
53
+ * the `FetchProtocolDefinitionFn` type signature — zero ripple to downstream consumers
54
+ * like `protocol-authorization-action.ts` and `protocol-authorization-validation.ts`.
46
55
  */
47
- private static getRuleSet;
56
+ private static createBoundFetchDefinition;
48
57
  /**
49
- * Returns all the ProtocolActions that would authorize the incoming message.
50
- * Delegates to the standalone function in `protocol-authorization-action.ts`.
58
+ * Gets the rule set corresponding to the given protocolPath.
51
59
  */
52
- private static getActionsSeekingARuleMatch;
60
+ private static getRuleSet;
53
61
  }
54
62
  //# sourceMappingURL=protocol-authorization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-authorization.d.ts","sourceRoot":"","sources":["../../../../src/core/protocol-authorization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAA8C,MAAM,6BAA6B,CAAC;AAkBlH;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,CAAC,EAAE,MAAM,KACtB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,qBAAa,qBAAqB;IAEhC;;;OAGG;WACiB,4BAA4B,CAC9C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;IAkDhB;;;OAGG;WACiB,cAAc,CAChC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;IAuDhB;;;;OAIG;WACiB,aAAa,CAC/B,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,WAAW,EAC5B,kBAAkB,EAAE,YAAY,EAChC,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;WAmDI,yBAAyB,CAC3C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,YAAY,GAAG,gBAAgB,EAC/D,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;IAsChB;;;OAGG;WACiB,eAAe,CACjC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,aAAa,EAC9B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC;IAmDhB;;;;;OAKG;WACiB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,kBAAkB,CAAC;IAoC9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAYzB;;;OAGG;mBACkB,2BAA2B;CAOjD"}
1
+ {"version":3,"file":"protocol-authorization.d.ts","sourceRoot":"","sources":["../../../../src/core/protocol-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAA8C,MAAM,6BAA6B,CAAC;AAoBlH;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,CAAC,EAAE,MAAM,KACtB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,qBAAa,qBAAqB;IAEhC;;;OAGG;WACiB,4BAA4B,CAC9C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,IAAI,CAAC;IA+DhB;;;OAGG;WACiB,cAAc,CAChC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,IAAI,CAAC;IA0DhB;;;;OAIG;WACiB,aAAa,CAC/B,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,WAAW,EAC5B,kBAAkB,EAAE,YAAY,EAChC,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,IAAI,CAAC;WAsDI,yBAAyB,CAC3C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,GAAG,YAAY,GAAG,gBAAgB,EAC/D,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,IAAI,CAAC;IA0ChB;;;OAGG;WACiB,eAAe,CACjC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,aAAa,EAC9B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,IAAI,CAAC;IAsDhB;;;;;;;;;;OAUG;WACiB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,CAAC,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,kBAAkB,CAAC;IAuC9B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAWzC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAY1B"}
@@ -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;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMlL,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;IA0BjB;;;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;IA0BjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAgC1B;;;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,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMlL,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;IAyBjB;;;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;IAyBjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAgC1B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAkBhC"}