@enbox/dwn-sdk-js 0.0.6 → 0.0.8

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 (527) 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 +762 -911
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/src/core/abstract-message.js +4 -0
  6. package/dist/esm/src/core/abstract-message.js.map +1 -1
  7. package/dist/esm/src/core/auth.js +22 -33
  8. package/dist/esm/src/core/auth.js.map +1 -1
  9. package/dist/esm/src/core/constants.js +11 -0
  10. package/dist/esm/src/core/constants.js.map +1 -0
  11. package/dist/esm/src/core/core-protocol.js +44 -0
  12. package/dist/esm/src/core/core-protocol.js.map +1 -0
  13. package/dist/esm/src/core/dwn-constant.js +7 -7
  14. package/dist/esm/src/core/dwn-constant.js.map +1 -1
  15. package/dist/esm/src/core/dwn-error.js +10 -12
  16. package/dist/esm/src/core/dwn-error.js.map +1 -1
  17. package/dist/esm/src/core/grant-authorization.js +50 -52
  18. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  19. package/dist/esm/src/core/message.js +85 -116
  20. package/dist/esm/src/core/message.js.map +1 -1
  21. package/dist/esm/src/core/messages-grant-authorization.js +63 -78
  22. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  23. package/dist/esm/src/core/protocol-authorization-action.js +266 -0
  24. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -0
  25. package/dist/esm/src/core/protocol-authorization-validation.js +321 -0
  26. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -0
  27. package/dist/esm/src/core/protocol-authorization.js +144 -741
  28. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  29. package/dist/esm/src/core/protocols-grant-authorization.js +24 -38
  30. package/dist/esm/src/core/protocols-grant-authorization.js.map +1 -1
  31. package/dist/esm/src/core/record-chain.js +64 -0
  32. package/dist/esm/src/core/record-chain.js.map +1 -0
  33. package/dist/esm/src/core/records-grant-authorization.js +53 -72
  34. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  35. package/dist/esm/src/core/resumable-task-manager.js +50 -65
  36. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  37. package/dist/esm/src/core/tenant-gate.js +2 -13
  38. package/dist/esm/src/core/tenant-gate.js.map +1 -1
  39. package/dist/esm/src/dwn.js +108 -101
  40. package/dist/esm/src/dwn.js.map +1 -1
  41. package/dist/esm/src/event-stream/event-emitter-event-log.js +204 -0
  42. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -0
  43. package/dist/esm/src/handlers/messages-read.js +67 -81
  44. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  45. package/dist/esm/src/handlers/messages-subscribe.js +51 -63
  46. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  47. package/dist/esm/src/handlers/messages-sync.js +75 -89
  48. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  49. package/dist/esm/src/handlers/protocols-configure.js +153 -163
  50. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  51. package/dist/esm/src/handlers/protocols-query.js +52 -55
  52. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  53. package/dist/esm/src/handlers/records-count.js +97 -85
  54. package/dist/esm/src/handlers/records-count.js.map +1 -1
  55. package/dist/esm/src/handlers/records-delete.js +75 -93
  56. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  57. package/dist/esm/src/handlers/records-query.js +116 -105
  58. package/dist/esm/src/handlers/records-query.js.map +1 -1
  59. package/dist/esm/src/handlers/records-read.js +130 -132
  60. package/dist/esm/src/handlers/records-read.js.map +1 -1
  61. package/dist/esm/src/handlers/records-subscribe.js +164 -104
  62. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  63. package/dist/esm/src/handlers/records-write.js +213 -280
  64. package/dist/esm/src/handlers/records-write.js.map +1 -1
  65. package/dist/esm/src/index.js +5 -2
  66. package/dist/esm/src/index.js.map +1 -1
  67. package/dist/esm/src/interfaces/messages-read.js +24 -32
  68. package/dist/esm/src/interfaces/messages-read.js.map +1 -1
  69. package/dist/esm/src/interfaces/messages-subscribe.js +28 -41
  70. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  71. package/dist/esm/src/interfaces/messages-sync.js +26 -40
  72. package/dist/esm/src/interfaces/messages-sync.js.map +1 -1
  73. package/dist/esm/src/interfaces/protocols-configure.js +87 -65
  74. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  75. package/dist/esm/src/interfaces/protocols-query.js +55 -68
  76. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  77. package/dist/esm/src/interfaces/records-count.js +50 -66
  78. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  79. package/dist/esm/src/interfaces/records-delete.js +45 -55
  80. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  81. package/dist/esm/src/interfaces/records-query.js +60 -76
  82. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  83. package/dist/esm/src/interfaces/records-read.js +51 -67
  84. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  85. package/dist/esm/src/interfaces/records-subscribe.js +53 -68
  86. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  87. package/dist/esm/src/interfaces/records-write-query.js +102 -0
  88. package/dist/esm/src/interfaces/records-write-query.js.map +1 -0
  89. package/dist/esm/src/interfaces/records-write-signing.js +81 -0
  90. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -0
  91. package/dist/esm/src/interfaces/records-write.js +396 -610
  92. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  93. package/dist/esm/src/jose/algorithms/signing/ed25519.js +10 -19
  94. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  95. package/dist/esm/src/jose/jws/general/builder.js +23 -35
  96. package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
  97. package/dist/esm/src/jose/jws/general/verifier.js +56 -69
  98. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  99. package/dist/esm/src/protocols/permission-grant.js +43 -14
  100. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  101. package/dist/esm/src/protocols/permission-request.js +28 -14
  102. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  103. package/dist/esm/src/protocols/permissions.js +325 -227
  104. package/dist/esm/src/protocols/permissions.js.map +1 -1
  105. package/dist/esm/src/smt/smt-store-level.js +42 -64
  106. package/dist/esm/src/smt/smt-store-level.js.map +1 -1
  107. package/dist/esm/src/smt/smt-store-memory.js +19 -45
  108. package/dist/esm/src/smt/smt-store-memory.js.map +1 -1
  109. package/dist/esm/src/smt/smt-utils.js +28 -45
  110. package/dist/esm/src/smt/smt-utils.js.map +1 -1
  111. package/dist/esm/src/smt/sparse-merkle-tree.js +426 -471
  112. package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -1
  113. package/dist/esm/src/state-index/state-index-level.js +113 -150
  114. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  115. package/dist/esm/src/store/blockstore-level.js +54 -156
  116. package/dist/esm/src/store/blockstore-level.js.map +1 -1
  117. package/dist/esm/src/store/blockstore-mock.js +48 -153
  118. package/dist/esm/src/store/blockstore-mock.js.map +1 -1
  119. package/dist/esm/src/store/data-store-level.js +137 -100
  120. package/dist/esm/src/store/data-store-level.js.map +1 -1
  121. package/dist/esm/src/store/index-level-compound.js +246 -0
  122. package/dist/esm/src/store/index-level-compound.js.map +1 -0
  123. package/dist/esm/src/store/index-level.js +307 -715
  124. package/dist/esm/src/store/index-level.js.map +1 -1
  125. package/dist/esm/src/store/level-wrapper.js +143 -244
  126. package/dist/esm/src/store/level-wrapper.js.map +1 -1
  127. package/dist/esm/src/store/message-store-level.js +71 -94
  128. package/dist/esm/src/store/message-store-level.js.map +1 -1
  129. package/dist/esm/src/store/resumable-task-store-level.js +62 -101
  130. package/dist/esm/src/store/resumable-task-store-level.js.map +1 -1
  131. package/dist/esm/src/store/storage-controller.js +131 -146
  132. package/dist/esm/src/store/storage-controller.js.map +1 -1
  133. package/dist/esm/src/types/permission-types.js.map +1 -1
  134. package/dist/esm/src/types/protocols-types.js +10 -0
  135. package/dist/esm/src/types/protocols-types.js.map +1 -1
  136. package/dist/esm/src/types/records-types.js.map +1 -1
  137. package/dist/esm/src/utils/abort.js +8 -19
  138. package/dist/esm/src/utils/abort.js.map +1 -1
  139. package/dist/esm/src/utils/array.js +15 -49
  140. package/dist/esm/src/utils/array.js.map +1 -1
  141. package/dist/esm/src/utils/cid.js +29 -77
  142. package/dist/esm/src/utils/cid.js.map +1 -1
  143. package/dist/esm/src/utils/data-stream.js +37 -65
  144. package/dist/esm/src/utils/data-stream.js.map +1 -1
  145. package/dist/esm/src/utils/encryption.js +136 -162
  146. package/dist/esm/src/utils/encryption.js.map +1 -1
  147. package/dist/esm/src/utils/filter.js +1 -12
  148. package/dist/esm/src/utils/filter.js.map +1 -1
  149. package/dist/esm/src/utils/hd-key.js +45 -71
  150. package/dist/esm/src/utils/hd-key.js.map +1 -1
  151. package/dist/esm/src/utils/jws.js +9 -20
  152. package/dist/esm/src/utils/jws.js.map +1 -1
  153. package/dist/esm/src/utils/memory-cache.js +12 -23
  154. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  155. package/dist/esm/src/utils/messages.js +21 -33
  156. package/dist/esm/src/utils/messages.js.map +1 -1
  157. package/dist/esm/src/utils/private-key-signer.js +9 -17
  158. package/dist/esm/src/utils/private-key-signer.js.map +1 -1
  159. package/dist/esm/src/utils/protocols.js +62 -70
  160. package/dist/esm/src/utils/protocols.js.map +1 -1
  161. package/dist/esm/src/utils/records.js +103 -166
  162. package/dist/esm/src/utils/records.js.map +1 -1
  163. package/dist/esm/src/utils/secp256k1.js +60 -96
  164. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  165. package/dist/esm/src/utils/secp256r1.js +54 -71
  166. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  167. package/dist/esm/src/utils/time.js +5 -18
  168. package/dist/esm/src/utils/time.js.map +1 -1
  169. package/dist/esm/src/utils/url.js +3 -3
  170. package/dist/esm/src/utils/url.js.map +1 -1
  171. package/dist/esm/tests/core/auth.spec.js +3 -12
  172. package/dist/esm/tests/core/auth.spec.js.map +1 -1
  173. package/dist/esm/tests/core/message.spec.js +50 -59
  174. package/dist/esm/tests/core/message.spec.js.map +1 -1
  175. package/dist/esm/tests/core/protocol-authorization.spec.js +10 -18
  176. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  177. package/dist/esm/tests/dwn.spec.js +65 -89
  178. package/dist/esm/tests/dwn.spec.js.map +1 -1
  179. package/dist/esm/tests/event-emitter-event-log.spec.js +305 -0
  180. package/dist/esm/tests/event-emitter-event-log.spec.js.map +1 -0
  181. package/dist/esm/tests/features/author-delegated-grant.spec.js +337 -347
  182. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  183. package/dist/esm/tests/features/owner-delegated-grant.spec.js +160 -172
  184. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  185. package/dist/esm/tests/features/owner-signature.spec.js +78 -82
  186. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  187. package/dist/esm/tests/features/permissions.spec.js +449 -184
  188. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  189. package/dist/esm/tests/features/protocol-composition.spec.js +981 -360
  190. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  191. package/dist/esm/tests/features/protocol-create-action.spec.js +45 -54
  192. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  193. package/dist/esm/tests/features/protocol-delete-action.spec.js +99 -108
  194. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  195. package/dist/esm/tests/features/protocol-update-action.spec.js +108 -117
  196. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  197. package/dist/esm/tests/features/records-immutable.spec.js +315 -0
  198. package/dist/esm/tests/features/records-immutable.spec.js.map +1 -0
  199. package/dist/esm/tests/features/records-prune.spec.js +178 -194
  200. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  201. package/dist/esm/tests/features/records-record-limit.spec.js +542 -0
  202. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -0
  203. package/dist/esm/tests/features/records-tags.spec.js +456 -463
  204. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  205. package/dist/esm/tests/features/resumable-tasks.spec.js +88 -98
  206. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  207. package/dist/esm/tests/handlers/messages-read.spec.js +215 -210
  208. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  209. package/dist/esm/tests/handlers/messages-subscribe.spec.js +309 -171
  210. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  211. package/dist/esm/tests/handlers/messages-sync.spec.js +272 -199
  212. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  213. package/dist/esm/tests/handlers/protocols-configure.spec.js +247 -241
  214. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  215. package/dist/esm/tests/handlers/protocols-query.spec.js +159 -172
  216. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  217. package/dist/esm/tests/handlers/records-count.spec.js +101 -105
  218. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  219. package/dist/esm/tests/handlers/records-delete.spec.js +266 -279
  220. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  221. package/dist/esm/tests/handlers/records-query.spec.js +984 -996
  222. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  223. package/dist/esm/tests/handlers/records-read.spec.js +542 -671
  224. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  225. package/dist/esm/tests/handlers/records-subscribe.spec.js +433 -302
  226. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  227. package/dist/esm/tests/handlers/records-write.spec.js +1216 -1140
  228. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  229. package/dist/esm/tests/interfaces/messages-get.spec.js +39 -48
  230. package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -1
  231. package/dist/esm/tests/interfaces/messages-subscribe.spec.js +4 -13
  232. package/dist/esm/tests/interfaces/messages-subscribe.spec.js.map +1 -1
  233. package/dist/esm/tests/interfaces/protocols-configure.spec.js +212 -88
  234. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  235. package/dist/esm/tests/interfaces/protocols-query.spec.js +8 -17
  236. package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -1
  237. package/dist/esm/tests/interfaces/records-delete.spec.js +8 -17
  238. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  239. package/dist/esm/tests/interfaces/records-query.spec.js +20 -29
  240. package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -1
  241. package/dist/esm/tests/interfaces/records-read.spec.js +42 -51
  242. package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -1
  243. package/dist/esm/tests/interfaces/records-subscribe.spec.js +16 -25
  244. package/dist/esm/tests/interfaces/records-subscribe.spec.js.map +1 -1
  245. package/dist/esm/tests/interfaces/records-write.spec.js +190 -219
  246. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  247. package/dist/esm/tests/jose/jws/general.spec.js +36 -45
  248. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
  249. package/dist/esm/tests/protocols/permission-grant.spec.js +44 -50
  250. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
  251. package/dist/esm/tests/protocols/permission-request.spec.js +23 -32
  252. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  253. package/dist/esm/tests/protocols/permissions.spec.js +49 -55
  254. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  255. package/dist/esm/tests/scenarios/aggregator.spec.js +127 -138
  256. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  257. package/dist/esm/tests/scenarios/deleted-record.spec.js +372 -36
  258. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  259. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +55 -64
  260. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  261. package/dist/esm/tests/scenarios/nested-roles.spec.js +66 -76
  262. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  263. package/dist/esm/tests/scenarios/subscriptions.spec.js +451 -354
  264. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  265. package/dist/esm/tests/smt/smt-store-level.spec.js +76 -87
  266. package/dist/esm/tests/smt/smt-store-level.spec.js.map +1 -1
  267. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +344 -353
  268. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +1 -1
  269. package/dist/esm/tests/state-index/state-index-level.spec.js +117 -126
  270. package/dist/esm/tests/state-index/state-index-level.spec.js.map +1 -1
  271. package/dist/esm/tests/store/blockstore-level.spec.js +44 -99
  272. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -1
  273. package/dist/esm/tests/store/blockstore-mock.spec.js +40 -120
  274. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  275. package/dist/esm/tests/store/data-store-level.spec.js +160 -108
  276. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  277. package/dist/esm/tests/store/index-level.spec.js +404 -414
  278. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  279. package/dist/esm/tests/store/message-store-level.spec.js +13 -22
  280. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  281. package/dist/esm/tests/store/message-store.spec.js +229 -238
  282. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  283. package/dist/esm/tests/test-event-stream.js +12 -13
  284. package/dist/esm/tests/test-event-stream.js.map +1 -1
  285. package/dist/esm/tests/test-stores.js +16 -13
  286. package/dist/esm/tests/test-stores.js.map +1 -1
  287. package/dist/esm/tests/test-suite.js +8 -15
  288. package/dist/esm/tests/test-suite.js.map +1 -1
  289. package/dist/esm/tests/utils/cid.spec.js +24 -33
  290. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  291. package/dist/esm/tests/utils/data-stream.spec.js +48 -57
  292. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  293. package/dist/esm/tests/utils/encryption-callbacks.spec.js +45 -54
  294. package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -1
  295. package/dist/esm/tests/utils/encryption.spec.js +229 -82
  296. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  297. package/dist/esm/tests/utils/filters.spec.js +46 -55
  298. package/dist/esm/tests/utils/filters.spec.js.map +1 -1
  299. package/dist/esm/tests/utils/hd-key.spec.js +10 -19
  300. package/dist/esm/tests/utils/hd-key.spec.js.map +1 -1
  301. package/dist/esm/tests/utils/jws.spec.js +3 -12
  302. package/dist/esm/tests/utils/jws.spec.js.map +1 -1
  303. package/dist/esm/tests/utils/memory-cache.spec.js +9 -18
  304. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  305. package/dist/esm/tests/utils/messages.spec.js +18 -20
  306. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  307. package/dist/esm/tests/utils/poller.js +22 -33
  308. package/dist/esm/tests/utils/poller.js.map +1 -1
  309. package/dist/esm/tests/utils/private-key-signer.spec.js +15 -24
  310. package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -1
  311. package/dist/esm/tests/utils/records.spec.js +14 -27
  312. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  313. package/dist/esm/tests/utils/secp256k1.spec.js +16 -25
  314. package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -1
  315. package/dist/esm/tests/utils/secp256r1.spec.js +18 -27
  316. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  317. package/dist/esm/tests/utils/test-data-generator.js +446 -467
  318. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  319. package/dist/esm/tests/validation/json-schemas/definitions.spec.js +2 -11
  320. package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -1
  321. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +4 -13
  322. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -1
  323. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +8 -17
  324. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -1
  325. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +3 -12
  326. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -1
  327. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +4 -13
  328. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  329. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +2 -11
  330. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -1
  331. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js +2 -11
  332. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js.map +1 -1
  333. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +44 -24
  334. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  335. package/dist/types/generated/precompiled-validators.d.ts +49 -40
  336. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  337. package/dist/types/src/core/constants.d.ts +11 -0
  338. package/dist/types/src/core/constants.d.ts.map +1 -0
  339. package/dist/types/src/core/core-protocol.d.ts +89 -0
  340. package/dist/types/src/core/core-protocol.d.ts.map +1 -0
  341. package/dist/types/src/core/dwn-error.d.ts +9 -12
  342. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  343. package/dist/types/src/core/grant-authorization.d.ts +6 -2
  344. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  345. package/dist/types/src/core/protocol-authorization-action.d.ts +42 -0
  346. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -0
  347. package/dist/types/src/core/protocol-authorization-validation.d.ts +81 -0
  348. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -0
  349. package/dist/types/src/core/protocol-authorization.d.ts +24 -106
  350. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  351. package/dist/types/src/core/record-chain.d.ts +24 -0
  352. package/dist/types/src/core/record-chain.d.ts.map +1 -0
  353. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
  354. package/dist/types/src/dwn.d.ts +19 -7
  355. package/dist/types/src/dwn.d.ts.map +1 -1
  356. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +50 -0
  357. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -0
  358. package/dist/types/src/handlers/messages-read.d.ts +3 -8
  359. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  360. package/dist/types/src/handlers/messages-subscribe.d.ts +6 -10
  361. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  362. package/dist/types/src/handlers/messages-sync.d.ts +3 -8
  363. package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
  364. package/dist/types/src/handlers/protocols-configure.d.ts +3 -10
  365. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  366. package/dist/types/src/handlers/protocols-query.d.ts +3 -8
  367. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
  368. package/dist/types/src/handlers/records-count.d.ts +3 -6
  369. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  370. package/dist/types/src/handlers/records-delete.d.ts +3 -8
  371. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  372. package/dist/types/src/handlers/records-query.d.ts +3 -8
  373. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  374. package/dist/types/src/handlers/records-read.d.ts +3 -8
  375. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  376. package/dist/types/src/handlers/records-subscribe.d.ts +8 -10
  377. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  378. package/dist/types/src/handlers/records-write.d.ts +4 -24
  379. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  380. package/dist/types/src/index.d.ts +8 -4
  381. package/dist/types/src/index.d.ts.map +1 -1
  382. package/dist/types/src/interfaces/messages-subscribe.d.ts +5 -0
  383. package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
  384. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  385. package/dist/types/src/interfaces/records-subscribe.d.ts +5 -0
  386. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  387. package/dist/types/src/interfaces/records-write-query.d.ts +33 -0
  388. package/dist/types/src/interfaces/records-write-query.d.ts.map +1 -0
  389. package/dist/types/src/interfaces/records-write-signing.d.ts +34 -0
  390. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -0
  391. package/dist/types/src/interfaces/records-write.d.ts +13 -53
  392. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  393. package/dist/types/src/protocols/permission-grant.d.ts +1 -1
  394. package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
  395. package/dist/types/src/protocols/permission-request.d.ts +1 -1
  396. package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
  397. package/dist/types/src/protocols/permissions.d.ts +40 -3
  398. package/dist/types/src/protocols/permissions.d.ts.map +1 -1
  399. package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
  400. package/dist/types/src/store/data-store-level.d.ts +20 -4
  401. package/dist/types/src/store/data-store-level.d.ts.map +1 -1
  402. package/dist/types/src/store/index-level-compound.d.ts +70 -0
  403. package/dist/types/src/store/index-level-compound.d.ts.map +1 -0
  404. package/dist/types/src/store/index-level.d.ts +4 -58
  405. package/dist/types/src/store/index-level.d.ts.map +1 -1
  406. package/dist/types/src/store/storage-controller.d.ts +4 -4
  407. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  408. package/dist/types/src/types/message-types.d.ts +3 -3
  409. package/dist/types/src/types/message-types.d.ts.map +1 -1
  410. package/dist/types/src/types/messages-types.d.ts +12 -3
  411. package/dist/types/src/types/messages-types.d.ts.map +1 -1
  412. package/dist/types/src/types/method-handler.d.ts +24 -3
  413. package/dist/types/src/types/method-handler.d.ts.map +1 -1
  414. package/dist/types/src/types/permission-types.d.ts +7 -0
  415. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  416. package/dist/types/src/types/protocols-types.d.ts +41 -1
  417. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  418. package/dist/types/src/types/records-types.d.ts +16 -6
  419. package/dist/types/src/types/records-types.d.ts.map +1 -1
  420. package/dist/types/src/types/subscriptions.d.ts +151 -13
  421. package/dist/types/src/types/subscriptions.d.ts.map +1 -1
  422. package/dist/types/src/utils/hd-key.d.ts +1 -9
  423. package/dist/types/src/utils/hd-key.d.ts.map +1 -1
  424. package/dist/types/src/utils/messages.d.ts +7 -5
  425. package/dist/types/src/utils/messages.d.ts.map +1 -1
  426. package/dist/types/src/utils/protocols.d.ts +5 -0
  427. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  428. package/dist/types/src/utils/records.d.ts +1 -11
  429. package/dist/types/src/utils/records.d.ts.map +1 -1
  430. package/dist/types/tests/dwn.spec.d.ts.map +1 -1
  431. package/dist/types/tests/event-emitter-event-log.spec.d.ts +2 -0
  432. package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +1 -0
  433. package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
  434. package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
  435. package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
  436. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  437. package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
  438. package/dist/types/tests/features/records-immutable.spec.d.ts +2 -0
  439. package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -0
  440. package/dist/types/tests/features/records-record-limit.spec.d.ts +2 -0
  441. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -0
  442. package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
  443. package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
  444. package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
  445. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  446. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -1
  447. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  448. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
  449. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
  450. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
  451. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  452. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  453. package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
  454. package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
  455. package/dist/types/tests/test-event-stream.d.ts +11 -12
  456. package/dist/types/tests/test-event-stream.d.ts.map +1 -1
  457. package/dist/types/tests/test-suite.d.ts +2 -2
  458. package/dist/types/tests/test-suite.d.ts.map +1 -1
  459. package/dist/types/tests/utils/test-data-generator.d.ts +18 -0
  460. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
  461. package/package.json +5 -4
  462. package/src/core/constants.ts +11 -0
  463. package/src/core/core-protocol.ts +129 -0
  464. package/src/core/dwn-error.ts +15 -12
  465. package/src/core/grant-authorization.ts +20 -3
  466. package/src/core/protocol-authorization-action.ts +377 -0
  467. package/src/core/protocol-authorization-validation.ts +487 -0
  468. package/src/core/protocol-authorization.ts +111 -856
  469. package/src/core/record-chain.ts +99 -0
  470. package/src/core/records-grant-authorization.ts +6 -8
  471. package/src/dwn.ts +58 -73
  472. package/src/event-stream/event-emitter-event-log.ts +283 -0
  473. package/src/handlers/messages-read.ts +8 -9
  474. package/src/handlers/messages-subscribe.ts +24 -28
  475. package/src/handlers/messages-sync.ts +10 -16
  476. package/src/handlers/protocols-configure.ts +47 -32
  477. package/src/handlers/protocols-query.ts +6 -9
  478. package/src/handlers/records-count.ts +11 -10
  479. package/src/handlers/records-delete.ts +12 -21
  480. package/src/handlers/records-query.ts +12 -12
  481. package/src/handlers/records-read.ts +34 -22
  482. package/src/handlers/records-subscribe.ts +47 -26
  483. package/src/handlers/records-write.ts +47 -104
  484. package/src/index.ts +9 -5
  485. package/src/interfaces/messages-subscribe.ts +7 -1
  486. package/src/interfaces/protocols-configure.ts +73 -8
  487. package/src/interfaces/records-count.ts +1 -1
  488. package/src/interfaces/records-delete.ts +1 -1
  489. package/src/interfaces/records-query.ts +1 -1
  490. package/src/interfaces/records-read.ts +1 -1
  491. package/src/interfaces/records-subscribe.ts +8 -1
  492. package/src/interfaces/records-write-query.ts +139 -0
  493. package/src/interfaces/records-write-signing.ts +123 -0
  494. package/src/interfaces/records-write.ts +66 -261
  495. package/src/protocols/permission-grant.ts +1 -1
  496. package/src/protocols/permission-request.ts +1 -1
  497. package/src/protocols/permissions.ts +148 -6
  498. package/src/state-index/state-index-level.ts +5 -7
  499. package/src/store/data-store-level.ts +124 -34
  500. package/src/store/index-level-compound.ts +324 -0
  501. package/src/store/index-level.ts +68 -341
  502. package/src/store/storage-controller.ts +11 -11
  503. package/src/types/message-types.ts +3 -3
  504. package/src/types/messages-types.ts +12 -3
  505. package/src/types/method-handler.ts +26 -4
  506. package/src/types/mitt.d.ts +28 -0
  507. package/src/types/permission-types.ts +7 -0
  508. package/src/types/protocols-types.ts +46 -0
  509. package/src/types/records-types.ts +16 -6
  510. package/src/types/subscriptions.ts +178 -14
  511. package/src/utils/hd-key.ts +0 -9
  512. package/src/utils/messages.ts +17 -37
  513. package/src/utils/protocols.ts +8 -0
  514. package/src/utils/records.ts +8 -59
  515. package/dist/esm/src/event-stream/event-emitter-stream.js +0 -60
  516. package/dist/esm/src/event-stream/event-emitter-stream.js.map +0 -1
  517. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +0 -77
  518. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +0 -1
  519. package/dist/esm/tests/event-stream/event-stream.spec.js +0 -123
  520. package/dist/esm/tests/event-stream/event-stream.spec.js.map +0 -1
  521. package/dist/types/src/event-stream/event-emitter-stream.d.ts +0 -23
  522. package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +0 -1
  523. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts +0 -2
  524. package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +0 -1
  525. package/dist/types/tests/event-stream/event-stream.spec.d.ts +0 -2
  526. package/dist/types/tests/event-stream/event-stream.spec.d.ts.map +0 -1
  527. package/src/event-stream/event-emitter-stream.ts +0 -69
@@ -1,13 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import EventEmitter from 'events';
11
1
  import minimalProtocolDefinition from '../vectors/protocol-definitions/minimal.json' with { type: 'json' };
12
2
  import sinon from 'sinon';
13
3
  import { DataStream } from '../../src/utils/data-stream.js';
@@ -17,7 +7,7 @@ import { Poller } from '../utils/poller.js';
17
7
  import { RecordsRead } from '../../src/interfaces/records-read.js';
18
8
  import { RecordsWrite } from '../../src/interfaces/records-write.js';
19
9
  import { TestDataGenerator } from '../utils/test-data-generator.js';
20
- import { TestEventStream } from '../test-event-stream.js';
10
+ import { TestEventLog } from '../test-event-stream.js';
21
11
  import { TestStores } from '../test-stores.js';
22
12
  import { useFakeTimers } from 'sinon';
23
13
  import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
@@ -32,13 +22,13 @@ export function testResumableTasks() {
32
22
  let dataStore;
33
23
  let resumableTaskStore;
34
24
  let stateIndex;
35
- let eventStream;
25
+ let eventLog;
36
26
  let dwn;
37
27
  let consoleError;
38
28
  ;
39
29
  // important to follow the `before` and `after` pattern to initialize and clean the stores in tests
40
30
  // so that different test suites can reuse the same backend store for testing
41
- beforeAll(() => __awaiter(this, void 0, void 0, function* () {
31
+ beforeAll(async () => {
42
32
  // suppress console.error output during tests
43
33
  consoleError = console.error;
44
34
  console.error = () => { };
@@ -48,42 +38,42 @@ export function testResumableTasks() {
48
38
  dataStore = stores.dataStore;
49
39
  resumableTaskStore = stores.resumableTaskStore;
50
40
  stateIndex = stores.stateIndex;
51
- eventStream = TestEventStream.get();
52
- dwn = yield Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventStream, resumableTaskStore });
53
- }));
54
- beforeEach(() => __awaiter(this, void 0, void 0, function* () {
41
+ eventLog = TestEventLog.get();
42
+ dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventLog, resumableTaskStore });
43
+ });
44
+ beforeEach(async () => {
55
45
  sinon.restore(); // wipe all previous stubs/spies/mocks/fakes/clock
56
46
  clock = useFakeTimers({ shouldAdvanceTime: true }); // IMPORTANT: MUST be called AFTER `sinon.restore()` because `sinon.restore()`
57
47
  // clean up before each test rather than after so that a test does not depend on other tests to do the clean up
58
- yield messageStore.clear();
59
- yield dataStore.clear();
60
- yield resumableTaskStore.clear();
61
- yield stateIndex.clear();
62
- }));
63
- afterEach(() => __awaiter(this, void 0, void 0, function* () {
48
+ await messageStore.clear();
49
+ await dataStore.clear();
50
+ await resumableTaskStore.clear();
51
+ await stateIndex.clear();
52
+ });
53
+ afterEach(async () => {
64
54
  if (clock !== undefined) {
65
55
  clock.restore(); // IMPORTANT: MUST be called, else some clock tests the heavily rely on timers and event emitters may hang forever.
66
56
  }
67
- }));
68
- afterAll(() => __awaiter(this, void 0, void 0, function* () {
57
+ });
58
+ afterAll(async () => {
69
59
  // restore console.error
70
60
  console.error = consoleError;
71
- yield dwn.close();
72
- }));
73
- it('should resume tasks that are not completed when DWN starts', () => __awaiter(this, void 0, void 0, function* () {
61
+ await dwn.close();
62
+ });
63
+ it('should resume tasks that are not completed when DWN starts', async () => {
74
64
  // Scenario: DWN has a `RecordsDelete` task that is not completed, it should resume the task upon restart
75
65
  // 1. Write a record to DWN (for deletion later).
76
66
  // 2. Insert a resumable `RecordDelete` task into the resumable task store bypassing message handler to avoid it being processed.
77
67
  // 3. Restart the DWN to trigger the resumable task to be resumed.
78
68
  // 4. Verify that the record is deleted.
79
- const alice = yield TestDataGenerator.generateDidKeyPersona();
69
+ const alice = await TestDataGenerator.generateDidKeyPersona();
80
70
  // install a protocol to allow records to be written
81
71
  const protocolDefinition = minimalProtocolDefinition;
82
- const protocolsConfig = yield ProtocolsConfigure.create({
72
+ const protocolsConfig = await ProtocolsConfigure.create({
83
73
  definition: protocolDefinition,
84
74
  signer: Jws.createSigner(alice)
85
75
  });
86
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
76
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
87
77
  expect(protocolsConfigureReply.status.code).toBe(202);
88
78
  // 1. Write a record to DWN (for deletion later).
89
79
  const data = TestDataGenerator.randomBytes(100);
@@ -94,13 +84,13 @@ export function testResumableTasks() {
94
84
  dataFormat: 'any-data-format',
95
85
  data: data
96
86
  };
97
- const recordsWrite = yield RecordsWrite.create(messageOptions);
98
- const recordsWriteResponse = yield dwn.processMessage(alice.did, recordsWrite.message, { dataStream: DataStream.fromBytes(data) });
87
+ const recordsWrite = await RecordsWrite.create(messageOptions);
88
+ const recordsWriteResponse = await dwn.processMessage(alice.did, recordsWrite.message, { dataStream: DataStream.fromBytes(data) });
99
89
  expect(recordsWriteResponse.status.code).toBe(202);
100
90
  // 2. Insert a resumable `RecordDelete` task into the resumable task store bypassing message handler to avoid it being processed.
101
91
  // IMPORTANT!!! This is to avoid `RecordsDelete` having the same timestamp as `RecordsWrite` which causes the delete to be disgarded.
102
- yield clock.tickAsync(1);
103
- const recordsDelete = yield RecordsDelete.create({
92
+ await clock.tickAsync(1);
93
+ const recordsDelete = await RecordsDelete.create({
104
94
  recordId: recordsWrite.message.recordId,
105
95
  prune: true,
106
96
  signer: Jws.createSigner(alice)
@@ -112,24 +102,24 @@ export function testResumableTasks() {
112
102
  message: recordsDelete.message
113
103
  }
114
104
  };
115
- yield resumableTaskStore.register(resumableTask, 0); // 0 timeout to ensure it immediately times out for resuming
105
+ await resumableTaskStore.register(resumableTask, 0); // 0 timeout to ensure it immediately times out for resuming
116
106
  // sanity check that the record is still there
117
- const recordsRead = yield RecordsRead.create({
107
+ const recordsRead = await RecordsRead.create({
118
108
  signer: Jws.createSigner(alice),
119
109
  filter: { recordId: recordsWrite.message.recordId }
120
110
  });
121
- const readReply = yield dwn.processMessage(alice.did, recordsRead.message);
111
+ const readReply = await dwn.processMessage(alice.did, recordsRead.message);
122
112
  expect(readReply.status.code).toBe(200);
123
113
  expect(readReply.entry.recordsWrite).toBeDefined();
124
114
  // 3. Restart the DWN to trigger the resumable task to be resumed.
125
- yield dwn.close();
126
- yield dwn.open();
115
+ await dwn.close();
116
+ await dwn.open();
127
117
  // 4. Verify that the record is deleted.
128
- const readReply2 = yield dwn.processMessage(alice.did, recordsRead.message);
118
+ const readReply2 = await dwn.processMessage(alice.did, recordsRead.message);
129
119
  expect(readReply2.status.code).toBe(404);
130
120
  expect(readReply2.entry.recordsWrite).toBeUndefined();
131
- }));
132
- it('should only resume tasks that are timed-out up to the batch size when DWN starts', () => __awaiter(this, void 0, void 0, function* () {
121
+ });
122
+ it('should only resume tasks that are timed-out up to the batch size when DWN starts', async () => {
133
123
  // Scenario: DWN has multiple `RecordsDelete` tasks that are not completed,
134
124
  // it should grab tasks no greater than the batch size and only tasks that are timed-out.
135
125
  // 1. Set ResumableTaskManager.resumableTaskBatchSize to 2.
@@ -142,14 +132,14 @@ export function testResumableTasks() {
142
132
  // 6. Verify that 3 processed resumable tasks are deleted from resumable task store.
143
133
  // 7. Verify that only 1 record remains in the DWN.
144
134
  // 8. Set ResumableTaskManager.resumableTaskBatchSize back to original value.
145
- const alice = yield TestDataGenerator.generateDidKeyPersona();
135
+ const alice = await TestDataGenerator.generateDidKeyPersona();
146
136
  // install a protocol to allow records to be written
147
137
  const protocolDefinition = minimalProtocolDefinition;
148
- const protocolsConfig = yield ProtocolsConfigure.create({
138
+ const protocolsConfig = await ProtocolsConfigure.create({
149
139
  definition: protocolDefinition,
150
140
  signer: Jws.createSigner(alice)
151
141
  });
152
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
142
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
153
143
  expect(protocolsConfigureReply.status.code).toBe(202);
154
144
  // 1. Set ResumableTaskManager.resumableTaskBatchSize to 2.
155
145
  const originalResumableTaskBatchSize = dwn['resumableTaskManager']['resumableTaskBatchSize'];
@@ -165,8 +155,8 @@ export function testResumableTasks() {
165
155
  dataFormat: 'any-data-format',
166
156
  data: data
167
157
  };
168
- const recordsWrite = yield RecordsWrite.create(messageOptions);
169
- const recordsWriteResponse = yield dwn.processMessage(alice.did, recordsWrite.message, { dataStream: DataStream.fromBytes(data) });
158
+ const recordsWrite = await RecordsWrite.create(messageOptions);
159
+ const recordsWriteResponse = await dwn.processMessage(alice.did, recordsWrite.message, { dataStream: DataStream.fromBytes(data) });
170
160
  expect(recordsWriteResponse.status.code).toBe(202);
171
161
  recordsWrites.push(recordsWrite);
172
162
  }
@@ -174,9 +164,9 @@ export function testResumableTasks() {
174
164
  // a. 1 task that is not timed-out (currently in-flight).
175
165
  // b. 3 tasks that are already timed-out.
176
166
  // IMPORTANT!!! This is to avoid `RecordsDelete` having the same timestamp as `RecordsWrite` which causes the delete to be discarded.
177
- yield clock.tickAsync(1);
167
+ await clock.tickAsync(1);
178
168
  for (let i = 0; i < 4; i++) {
179
- const recordsDelete = yield RecordsDelete.create({
169
+ const recordsDelete = await RecordsDelete.create({
180
170
  recordId: recordsWrites[i].message.recordId,
181
171
  prune: true,
182
172
  signer: Jws.createSigner(alice)
@@ -188,46 +178,46 @@ export function testResumableTasks() {
188
178
  message: recordsDelete.message
189
179
  }
190
180
  };
191
- yield resumableTaskStore.register(resumableTask, i === 0 ? 1000 : 0); // 1000 second timeout for the first task, 0 timeout for the rest
181
+ await resumableTaskStore.register(resumableTask, i === 0 ? 1000 : 0); // 1000 second timeout for the first task, 0 timeout for the rest
192
182
  }
193
183
  // 4. Restart the DWN to trigger the resumable task to be resumed.
194
184
  const grabSpy = sinon.spy(resumableTaskStore, 'grab');
195
- yield dwn.close();
196
- yield dwn.open();
185
+ await dwn.close();
186
+ await dwn.open();
197
187
  // 5. Verify tasks were resumed in 2 batches (2 calls of `ResumableTaskStore.grab()`).
198
188
  expect(grabSpy.calledThrice).toBe(true);
199
- const resumeTaskBatch1 = yield grabSpy.firstCall.returnValue;
200
- const resumeTaskBatch2 = yield grabSpy.secondCall.returnValue;
201
- const resumeTaskBatch3 = yield grabSpy.thirdCall.returnValue;
189
+ const resumeTaskBatch1 = await grabSpy.firstCall.returnValue;
190
+ const resumeTaskBatch2 = await grabSpy.secondCall.returnValue;
191
+ const resumeTaskBatch3 = await grabSpy.thirdCall.returnValue;
202
192
  expect(resumeTaskBatch1.length).toBe(2);
203
193
  expect(resumeTaskBatch2.length).toBe(1);
204
194
  expect(resumeTaskBatch3.length).toBe(0);
205
195
  // 6. Verify that 3 processed resumable tasks are deleted from resumable task store.
206
196
  const [task2, task3] = resumeTaskBatch1;
207
197
  const [task4] = resumeTaskBatch2;
208
- expect(yield resumableTaskStore.read(task2.id)).toBeUndefined();
209
- expect(yield resumableTaskStore.read(task3.id)).toBeUndefined();
210
- expect(yield resumableTaskStore.read(task4.id)).toBeUndefined();
198
+ expect(await resumableTaskStore.read(task2.id)).toBeUndefined();
199
+ expect(await resumableTaskStore.read(task3.id)).toBeUndefined();
200
+ expect(await resumableTaskStore.read(task4.id)).toBeUndefined();
211
201
  // 7. Verify that only 1 record remains in the DWN.
212
- const recordsQuery = yield RecordsQuery.create({
202
+ const recordsQuery = await RecordsQuery.create({
213
203
  signer: Jws.createSigner(alice),
214
204
  filter: { protocol: protocolDefinition.protocol }
215
205
  });
216
- const recordsQueryResponse = yield dwn.processMessage(alice.did, recordsQuery.message);
206
+ const recordsQueryResponse = await dwn.processMessage(alice.did, recordsQuery.message);
217
207
  expect(recordsQueryResponse.status.code).toBe(200);
218
208
  expect(recordsQueryResponse.entries).toHaveLength(1);
219
209
  expect(recordsQueryResponse.entries[0].recordId).toBe(recordsWrites[0].message.recordId);
220
210
  // 8. Set ResumableTaskManager.resumableTaskBatchSize back to original value.
221
211
  dwn['resumableTaskManager']['resumableTaskBatchSize'] = originalResumableTaskBatchSize;
222
- }));
223
- it('should continue to retry tasks that throw exceptions until success when DWN starts', () => __awaiter(this, void 0, void 0, function* () {
212
+ });
213
+ it('should continue to retry tasks that throw exceptions until success when DWN starts', async () => {
224
214
  // Scenario:
225
215
  // 1. Insert a 1 resumable `RecordDelete` task into the resumable task store bypassing message handler to avoid it being processed.
226
216
  // 2. Restart the DWN to trigger the resumable task to be resumed, force the task to throw an exception on the first attempt.
227
217
  // 3. Verify the task is retried until it succeeds.
228
- const alice = yield TestDataGenerator.generateDidKeyPersona();
218
+ const alice = await TestDataGenerator.generateDidKeyPersona();
229
219
  // 1. Insert a 1 resumable `RecordDelete` task into the resumable task store bypassing message handler to avoid it being processed.
230
- const recordsDelete = yield RecordsDelete.create({
220
+ const recordsDelete = await RecordsDelete.create({
231
221
  recordId: 'non-existent-record-id', // opportunistically testing non-existent record delete path
232
222
  prune: true,
233
223
  signer: Jws.createSigner(alice)
@@ -239,23 +229,23 @@ export function testResumableTasks() {
239
229
  message: recordsDelete.message
240
230
  }
241
231
  };
242
- yield resumableTaskStore.register(resumableTask, 0); // 0 timeout to ensure it immediately times out for resuming
232
+ await resumableTaskStore.register(resumableTask, 0); // 0 timeout to ensure it immediately times out for resuming
243
233
  // 2. Restart the DWN to trigger the resumable task to be resumed, force the task to throw an exception on the first attempt.
244
234
  const originalPerformRecordsDelete = dwn['storageController']['performRecordsDelete'].bind(dwn['storageController']);
245
235
  let attemptCount = 0;
246
- sinon.stub(dwn['storageController'], 'performRecordsDelete').callsFake((input) => __awaiter(this, void 0, void 0, function* () {
236
+ sinon.stub(dwn['storageController'], 'performRecordsDelete').callsFake(async (input) => {
247
237
  attemptCount++;
248
238
  if (attemptCount === 1) {
249
239
  throw new Error('This is fine, we deliberately force an error in the first attempt in this test.');
250
240
  }
251
- yield originalPerformRecordsDelete(input);
252
- }));
253
- yield dwn.close();
254
- yield dwn.open();
241
+ await originalPerformRecordsDelete(input);
242
+ });
243
+ await dwn.close();
244
+ await dwn.open();
255
245
  // 3. Verify the task is retried until it succeeds.
256
246
  expect(attemptCount).toBe(2);
257
- }));
258
- it('should extend long running tasks automatically to prevent it from timing out', () => __awaiter(this, void 0, void 0, function* () {
247
+ });
248
+ it('should extend long running tasks automatically to prevent it from timing out', async () => {
259
249
  // Scenario: DWN is executing a long running `RecordsDelete`, it extends the timeout automatically to prevent it from timing out
260
250
  // 1. Mock code to never complete the `RecordsDelete` until given a signal to complete.
261
251
  // 2. Write a record to DWN.
@@ -264,23 +254,23 @@ export function testResumableTasks() {
264
254
  // 5. Signal the mocked code to complete the `RecordsDelete`.
265
255
  // 6. Verify that automatic timeout extension loop is cleared.
266
256
  // 7. Verify that the resumable task is deleted.
267
- const alice = yield TestDataGenerator.generateDidKeyPersona();
257
+ const alice = await TestDataGenerator.generateDidKeyPersona();
268
258
  // install a protocol to allow records to be written
269
259
  const protocolDefinition = minimalProtocolDefinition;
270
- const protocolsConfig = yield ProtocolsConfigure.create({
260
+ const protocolsConfig = await ProtocolsConfigure.create({
271
261
  definition: protocolDefinition,
272
262
  signer: Jws.createSigner(alice)
273
263
  });
274
- const protocolsConfigureReply = yield dwn.processMessage(alice.did, protocolsConfig.message);
264
+ const protocolsConfigureReply = await dwn.processMessage(alice.did, protocolsConfig.message);
275
265
  expect(protocolsConfigureReply.status.code).toBe(202);
276
266
  // 1. Mock code to never complete the `RecordsDelete` until given a signal to complete.
277
- const completeDeleteSignal = new EventEmitter();
267
+ let signalDeleteComplete;
278
268
  const completeDeletePromise = new Promise((resolve) => {
279
- completeDeleteSignal.once('complete-delete', resolve);
269
+ signalDeleteComplete = resolve;
270
+ });
271
+ sinon.stub(dwn['storageController'], 'performRecordsDelete').callsFake(async () => {
272
+ await completeDeletePromise;
280
273
  });
281
- sinon.stub(dwn['storageController'], 'performRecordsDelete').callsFake(() => __awaiter(this, void 0, void 0, function* () {
282
- yield completeDeletePromise;
283
- }));
284
274
  // 2. Write a record to DWN.
285
275
  const data = TestDataGenerator.randomBytes(100);
286
276
  const messageOptions = {
@@ -290,15 +280,15 @@ export function testResumableTasks() {
290
280
  dataFormat: 'any-data-format',
291
281
  data: data
292
282
  };
293
- const recordsWrite = yield RecordsWrite.create(messageOptions);
294
- const recordsWriteResponse = yield dwn.processMessage(alice.did, recordsWrite.message, { dataStream: DataStream.fromBytes(data) });
283
+ const recordsWrite = await RecordsWrite.create(messageOptions);
284
+ const recordsWriteResponse = await dwn.processMessage(alice.did, recordsWrite.message, { dataStream: DataStream.fromBytes(data) });
295
285
  expect(recordsWriteResponse.status.code).toBe(202);
296
286
  // 3. Submit a `RecordsDelete` without awaiting on its completion.
297
287
  const resumableTaskRegisterSpy = sinon.spy(resumableTaskStore, 'register');
298
288
  const clearTimeoutExtensionTimerSpy = sinon.spy(ResumableTaskManager, 'clearTimeoutExtensionTimer');
299
289
  // IMPORTANT!!! This is to avoid `RecordsDelete` having the same timestamp as `RecordsWrite` which causes the delete to be discarded.
300
- yield clock.tickAsync(1);
301
- const recordsDelete = yield RecordsDelete.create({
290
+ await clock.tickAsync(1);
291
+ const recordsDelete = await RecordsDelete.create({
302
292
  recordId: recordsWrite.message.recordId,
303
293
  prune: true,
304
294
  signer: Jws.createSigner(alice)
@@ -306,7 +296,7 @@ export function testResumableTasks() {
306
296
  let isDeleteComplete = false;
307
297
  const recordsDeletePromise = dwn.processMessage(alice.did, recordsDelete.message).then(() => isDeleteComplete = true);
308
298
  // wait until the resumable `RecordsDelete` task is registered
309
- yield new Promise((resolve) => {
299
+ await new Promise((resolve) => {
310
300
  const interval = setInterval(() => {
311
301
  if (resumableTaskRegisterSpy.called) {
312
302
  clearInterval(interval);
@@ -314,34 +304,34 @@ export function testResumableTasks() {
314
304
  }
315
305
  }, 10);
316
306
  });
317
- const initialResumableTaskState = yield resumableTaskRegisterSpy.firstCall.returnValue;
307
+ const initialResumableTaskState = await resumableTaskRegisterSpy.firstCall.returnValue;
318
308
  // 4. Verify that the task timeout is automatically extended.
319
- yield clock.tickAsync(ResumableTaskManager.timeoutExtensionFrequencyInSeconds * 2 * 1000); // advancing time up to 2 extension cycles
309
+ await clock.tickAsync(ResumableTaskManager.timeoutExtensionFrequencyInSeconds * 2 * 1000); // advancing time up to 2 extension cycles
320
310
  // IMPORTANT: This call ensures all scheduled timers are executed
321
311
  // In theory calling `tickAsync()` or `runToLastAsync()` alone should execute all scheduled timers
322
312
  // but for some reason this behavior does not happen ONLY in Safari. I found 2 workarounds:
323
313
  // 1. call BOTH `tickAsync()` and `runToLastAsync()`.
324
314
  // 2. call `tickAsync()` with a longer time.
325
315
  // Chose the first workaround because it is should be the more reliable of the two.
326
- yield clock.runToLastAsync();
316
+ await clock.runToLastAsync();
327
317
  let latestResumableTaskState;
328
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
329
- latestResumableTaskState = yield resumableTaskStore.read(initialResumableTaskState.id);
318
+ await Poller.pollUntilSuccessOrTimeout(async () => {
319
+ latestResumableTaskState = await resumableTaskStore.read(initialResumableTaskState.id);
330
320
  expect(latestResumableTaskState.timeout).toBeGreaterThan(initialResumableTaskState.timeout);
331
- }));
321
+ });
332
322
  // 5. Signal the mocked code to complete the `RecordsDelete`.
333
- completeDeleteSignal.emit('complete-delete');
323
+ signalDeleteComplete();
334
324
  // wait until the `RecordsDelete` is completed
335
- yield recordsDeletePromise;
325
+ await recordsDeletePromise;
336
326
  expect(isDeleteComplete).toBe(true);
337
327
  // 6. Verify that automatic timeout extension loop is cleared.
338
328
  expect(clearTimeoutExtensionTimerSpy.calledOnce).toBe(true);
339
329
  // 7. Verify that the resumable task is deleted.
340
- yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
341
- latestResumableTaskState = yield resumableTaskStore.read(initialResumableTaskState.id);
330
+ await Poller.pollUntilSuccessOrTimeout(async () => {
331
+ latestResumableTaskState = await resumableTaskStore.read(initialResumableTaskState.id);
342
332
  expect(latestResumableTaskState).toBeUndefined();
343
- }));
344
- }));
333
+ });
334
+ });
345
335
  });
346
336
  }
347
337
  //# sourceMappingURL=resumable-tasks.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resumable-tasks.spec.js","sourceRoot":"","sources":["../../../../tests/features/resumable-tasks.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resumable-tasks.spec.js","sourceRoot":"","sources":["../../../../tests/features/resumable-tasks.spec.ts"],"names":[],"mappings":"AAKA,OAAO,yBAAyB,MAAM,8CAA8C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3G,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAGnG,MAAM,UAAU,kBAAkB;IAChC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,KAA4B,CAAC;QACjC,IAAI,WAAwB,CAAC;QAC7B,IAAI,YAA0B,CAAC;QAC/B,IAAI,SAAoB,CAAC;QACzB,IAAI,kBAAsC,CAAC;QAC3C,IAAI,UAAsB,CAAC;QAC3B,IAAI,QAAkB,CAAC;QACvB,IAAI,GAAQ,CAAC;QACb,IAAI,YAA+D,CAAC;QAAA,CAAC;QAErE,mGAAmG;QACnG,6EAA6E;QAC7E,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,6CAA6C;YAC7C,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;YAC7B,OAAO,CAAC,KAAK,GAAG,GAAQ,EAAE,GAAG,CAAC,CAAC;YAE/B,WAAW,GAAG,IAAI,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAEhE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;YAChC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACnC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC7B,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;YAC/C,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YAC/B,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;YAE9B,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,kDAAkD;YACnE,KAAK,GAAG,aAAa,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,8EAA8E;YAElI,+GAA+G;YAC/G,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,mHAAmH;YACtI,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,wBAAwB;YACxB,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;YAC7B,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,yGAAyG;YACzG,iDAAiD;YACjD,iIAAiI;YACjI,kEAAkE;YAClE,wCAAwC;YAExC,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,oDAAoD;YACpD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;YACrD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;gBACtD,UAAU,EAAG,kBAAkB;gBAC/B,MAAM,EAAO,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;aACrC,CAAC,CAAC;YACH,MAAM,uBAAuB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtD,iDAAiD;YACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,cAAc,GAAG;gBACrB,MAAM,EAAS,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;gBACtC,QAAQ,EAAO,kBAAkB,CAAC,QAAQ;gBAC1C,YAAY,EAAG,KAAK;gBACpB,UAAU,EAAK,iBAAiB;gBAChC,IAAI,EAAW,IAAI;aACpB,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/D,MAAM,oBAAoB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnI,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEnD,iIAAiI;YAEjI,qIAAqI;YACrI,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;gBAC/C,QAAQ,EAAG,YAAY,CAAC,OAAO,CAAC,QAAQ;gBACxC,KAAK,EAAM,IAAI;gBACf,MAAM,EAAK,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAkB;gBACnC,IAAI,EAAG,iBAAiB,CAAC,aAAa;gBACtC,IAAI,EAAG;oBACL,MAAM,EAAI,KAAK,CAAC,GAAG;oBACnB,OAAO,EAAG,aAAa,CAAC,OAAO;iBAChC;aACF,CAAC;YACF,MAAM,kBAAkB,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,4DAA4D;YAEjH,8CAA8C;YAC9C,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC;gBAC3C,MAAM,EAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;gBAChC,MAAM,EAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;aACrD,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,KAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAEpD,kEAAkE;YAClE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,wCAAwC;YACxC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5E,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,KAAM,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;YAChG,2EAA2E;YAC3E,yFAAyF;YACzF,2DAA2D;YAC3D,kDAAkD;YAClD,mIAAmI;YACnI,4DAA4D;YAC5D,4CAA4C;YAC5C,kEAAkE;YAClE,sFAAsF;YACtF,oFAAoF;YACpF,mDAAmD;YACnD,6EAA6E;YAE7E,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,oDAAoD;YACpD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;YACrD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;gBACtD,UAAU,EAAG,kBAAkB;gBAC/B,MAAM,EAAO,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;aACrC,CAAC,CAAC;YACH,MAAM,uBAAuB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtD,2DAA2D;YAC3D,MAAM,8BAA8B,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,wBAAwB,CAAC,CAAC;YAC7F,GAAG,CAAC,sBAAsB,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAE1D,kDAAkD;YAClD,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,cAAc,GAAG;oBACrB,MAAM,EAAS,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;oBACtC,QAAQ,EAAO,kBAAkB,CAAC,QAAQ;oBAC1C,YAAY,EAAG,KAAK;oBACpB,UAAU,EAAK,iBAAiB;oBAChC,IAAI,EAAW,IAAI;iBACpB,CAAC;gBAEF,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC/D,MAAM,oBAAoB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnI,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEnD,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC;YAED,mIAAmI;YACnI,4DAA4D;YAC5D,4CAA4C;YAE5C,qIAAqI;YACrI,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;oBAC/C,QAAQ,EAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;oBAC5C,KAAK,EAAM,IAAI;oBACf,MAAM,EAAK,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;iBACnC,CAAC,CAAC;gBAEH,MAAM,aAAa,GAAkB;oBACnC,IAAI,EAAG,iBAAiB,CAAC,aAAa;oBACtC,IAAI,EAAG;wBACL,MAAM,EAAI,KAAK,CAAC,GAAG;wBACnB,OAAO,EAAG,aAAa,CAAC,OAAO;qBAChC;iBACF,CAAC;gBACF,MAAM,kBAAkB,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iEAAiE;YACzI,CAAC;YAED,kEAAkE;YAClE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,sFAAsF;YACtF,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;YAC7D,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;YAC9D,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;YAC7D,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAExC,oFAAoF;YACpF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;YACjC,MAAM,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAChE,MAAM,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAChE,MAAM,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAEhE,mDAAmD;YACnD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;gBAC7C,MAAM,EAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;gBAChC,MAAM,EAAG,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE;aACnD,CAAC,CAAC;YACH,MAAM,oBAAoB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YACvF,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,oBAAoB,CAAC,OAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE1F,6EAA6E;YAC7E,GAAG,CAAC,sBAAsB,CAAC,CAAC,wBAAwB,CAAC,GAAG,8BAA8B,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YAClG,YAAY;YACZ,mIAAmI;YACnI,6HAA6H;YAC7H,mDAAmD;YAEnD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,mIAAmI;YACnI,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;gBAC/C,QAAQ,EAAG,wBAAwB,EAAE,4DAA4D;gBACjG,KAAK,EAAM,IAAI;gBACf,MAAM,EAAK,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAkB;gBACnC,IAAI,EAAG,iBAAiB,CAAC,aAAa;gBACtC,IAAI,EAAG;oBACL,MAAM,EAAI,KAAK,CAAC,GAAG;oBACnB,OAAO,EAAG,aAAa,CAAC,OAAO;iBAChC;aACF,CAAC;YACF,MAAM,kBAAkB,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,4DAA4D;YAEjH,6HAA6H;YAC7H,MAAM,4BAA4B,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACrH,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrF,YAAY,EAAE,CAAC;gBAEf,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;gBACrG,CAAC;gBAED,MAAM,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,mDAAmD;YACnD,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;YAC5F,gIAAgI;YAChI,uFAAuF;YACvF,4BAA4B;YAC5B,kEAAkE;YAClE,6DAA6D;YAC7D,6DAA6D;YAC7D,8DAA8D;YAC9D,gDAAgD;YAEhD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAE9D,oDAAoD;YACpD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;YACrD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC;gBACtD,UAAU,EAAG,kBAAkB;gBAC/B,MAAM,EAAO,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;aACrC,CAAC,CAAC;YACH,MAAM,uBAAuB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtD,uFAAuF;YACvF,IAAI,oBAAgC,CAAC;YACrC,MAAM,qBAAqB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC1D,oBAAoB,GAAG,OAAO,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;gBAChF,MAAM,qBAAqB,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,4BAA4B;YAC5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,cAAc,GAAG;gBACrB,MAAM,EAAS,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;gBACtC,QAAQ,EAAO,kBAAkB,CAAC,QAAQ;gBAC1C,YAAY,EAAG,KAAK;gBACpB,UAAU,EAAK,iBAAiB;gBAChC,IAAI,EAAW,IAAI;aACpB,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/D,MAAM,oBAAoB,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnI,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEnD,kEAAkE;YAClE,MAAM,wBAAwB,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;YAC3E,MAAM,6BAA6B,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,4BAA4B,CAAC,CAAC;YAEpG,qIAAqI;YACrI,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;gBAC/C,QAAQ,EAAG,YAAY,CAAC,OAAO,CAAC,QAAQ;gBACxC,KAAK,EAAM,IAAI;gBACf,MAAM,EAAK,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;YAEH,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAEtH,8DAA8D;YAC9D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAChC,IAAI,wBAAwB,CAAC,MAAM,EAAE,CAAC;wBACpC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACxB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,CAAC;YACH,MAAM,yBAAyB,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC;YAEvF,6DAA6D;YAC7D,MAAM,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,kCAAkC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,0CAA0C;YACrI,iEAAiE;YACjE,kGAAkG;YAClG,2FAA2F;YAC3F,qDAAqD;YACrD,4CAA4C;YAC5C,mFAAmF;YACnF,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;YAE7B,IAAI,wBAAwB,CAAC;YAC7B,MAAM,MAAM,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE;gBAChD,wBAAwB,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;gBACvF,MAAM,CAAC,wBAAyB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC/F,CAAC,CAAC,CAAC;YAEH,6DAA6D;YAC7D,oBAAqB,EAAE,CAAC;YAExB,8CAA8C;YAC9C,MAAM,oBAAoB,CAAC;YAC3B,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpC,8DAA8D;YAC9D,MAAM,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5D,gDAAgD;YAChD,MAAM,MAAM,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE;gBAChD,wBAAwB,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;gBACvF,MAAM,CAAC,wBAAwB,CAAC,CAAC,aAAa,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}