@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records-squash.spec.js","sourceRoot":"","sources":["../../../../tests/features/records-squash.spec.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { Records } from '../../src/utils/records.js';
7
7
  import { RecordsRead } from '../../src/interfaces/records-read.js';
8
8
  import { RecordsWrite } from '../../src/interfaces/records-write.js';
9
9
  import { TestDataGenerator } from '../utils/test-data-generator.js';
10
- import { TestEventStream } from '../test-event-stream.js';
10
+ import { TestEventLog } from '../test-event-stream.js';
11
11
  import { TestStores } from '../test-stores.js';
12
12
  import { UniversalResolver } from '@enbox/dids';
13
13
  import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
@@ -19,7 +19,7 @@ export function testRecordsTags() {
19
19
  let dataStore;
20
20
  let resumableTaskStore;
21
21
  let stateIndex;
22
- let eventStream;
22
+ let eventLog;
23
23
  let dwn;
24
24
  // important to follow the `before` and `after` pattern to initialize and clean the stores in tests
25
25
  // so that different test suites can reuse the same backend store for testing
@@ -30,8 +30,8 @@ export function testRecordsTags() {
30
30
  dataStore = stores.dataStore;
31
31
  resumableTaskStore = stores.resumableTaskStore;
32
32
  stateIndex = stores.stateIndex;
33
- eventStream = TestEventStream.get();
34
- dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventStream, resumableTaskStore });
33
+ eventLog = TestEventLog.get();
34
+ dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventLog, resumableTaskStore });
35
35
  });
36
36
  beforeEach(async () => {
37
37
  sinon.restore(); // wipe all previous stubs/spies/mocks/fakes
@@ -1789,6 +1789,7 @@ export function testRecordsTags() {
1789
1789
  });
1790
1790
  it('should be able to write a Record with tags', async () => {
1791
1791
  const alice = await TestDataGenerator.generateDidKeyPersona();
1792
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
1792
1793
  // create tags that represent `string[]`, `number[]`, `string`, `number`, or `boolean` values.
1793
1794
  const stringTag = 'string-value';
1794
1795
  const stringArrayTag = ['string-value', 'string-value2'];
@@ -1824,6 +1825,7 @@ export function testRecordsTags() {
1824
1825
  });
1825
1826
  it('should overwrite tags when updating a Record', async () => {
1826
1827
  const alice = await TestDataGenerator.generateDidKeyPersona();
1828
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
1827
1829
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
1828
1830
  author: alice,
1829
1831
  published: true,
@@ -1890,6 +1892,7 @@ export function testRecordsTags() {
1890
1892
  const buildTagIndexSpy = sinon.spy(Records, 'buildTagIndexes');
1891
1893
  const constructIndexesSpy = sinon.spy(RecordsWrite.prototype, 'constructIndexes');
1892
1894
  const alice = await TestDataGenerator.generateDidKeyPersona();
1895
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
1893
1896
  // write a record with tags, this should trigger the `buildTagIndexes` method
1894
1897
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
1895
1898
  author: alice,
@@ -1929,6 +1932,7 @@ export function testRecordsTags() {
1929
1932
  describe('RecordsQuery filter for tags', () => {
1930
1933
  it('should be able to filter by string match', async () => {
1931
1934
  const alice = await TestDataGenerator.generateDidKeyPersona();
1935
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
1932
1936
  const stringTag = 'string-value';
1933
1937
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
1934
1938
  author: alice,
@@ -1979,6 +1983,7 @@ export function testRecordsTags() {
1979
1983
  });
1980
1984
  it('should be able to filter by number match', async () => {
1981
1985
  const alice = await TestDataGenerator.generateDidKeyPersona();
1986
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
1982
1987
  const numberTag = 54566975;
1983
1988
  // write a record with a numerical value tag
1984
1989
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
@@ -2036,6 +2041,7 @@ export function testRecordsTags() {
2036
2041
  // 4. Query for records with a `booleanTag` set to false, and validate the result.
2037
2042
  // 5. Query for records with a non existent boolean tag, should not return a result.
2038
2043
  const alice = await TestDataGenerator.generateDidKeyPersona();
2044
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
2039
2045
  // write a record with a true boolean value tag
2040
2046
  const tagsRecordTrue = await TestDataGenerator.generateRecordsWrite({
2041
2047
  author: alice,
@@ -2099,6 +2105,7 @@ export function testRecordsTags() {
2099
2105
  });
2100
2106
  it('should be able to range filter by string value', async () => {
2101
2107
  const alice = await TestDataGenerator.generateDidKeyPersona();
2108
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
2102
2109
  // create four records with different first names
2103
2110
  const aliceRecord = await TestDataGenerator.generateRecordsWrite({
2104
2111
  author: alice,
@@ -2198,6 +2205,7 @@ export function testRecordsTags() {
2198
2205
  });
2199
2206
  it('should be able to filter by string prefix', async () => {
2200
2207
  const alice = await TestDataGenerator.generateDidKeyPersona();
2208
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
2201
2209
  // create two records that match the prefix 'string-'
2202
2210
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
2203
2211
  author: alice,
@@ -2260,6 +2268,7 @@ export function testRecordsTags() {
2260
2268
  });
2261
2269
  it('should be able to range filter by number value', async () => {
2262
2270
  const alice = await TestDataGenerator.generateDidKeyPersona();
2271
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
2263
2272
  // create four records with different test scores
2264
2273
  const aliceRecord = await TestDataGenerator.generateRecordsWrite({
2265
2274
  author: alice,
@@ -2380,6 +2389,7 @@ export function testRecordsTags() {
2380
2389
  });
2381
2390
  it('should return results based on the latest tag values', async () => {
2382
2391
  const alice = await TestDataGenerator.generateDidKeyPersona();
2392
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
2383
2393
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
2384
2394
  author: alice,
2385
2395
  published: true,
@@ -2417,6 +2427,7 @@ export function testRecordsTags() {
2417
2427
  });
2418
2428
  it('should not return results if the record was updated with empty tags', async () => {
2419
2429
  const alice = await TestDataGenerator.generateDidKeyPersona();
2430
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
2420
2431
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
2421
2432
  author: alice,
2422
2433
  published: true,
@@ -2455,6 +2466,7 @@ export function testRecordsTags() {
2455
2466
  describe('RecordsDelete with tags', () => {
2456
2467
  it('should delete record with tags', async () => {
2457
2468
  const alice = await TestDataGenerator.generateDidKeyPersona();
2469
+ await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
2458
2470
  // create a record with a tag
2459
2471
  const tagsRecord1 = await TestDataGenerator.generateRecordsWrite({
2460
2472
  author: alice,