@enbox/dwn-sdk-js 0.0.6 → 0.0.7

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 (361) 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 +1 -2
  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/dwn-constant.js +7 -7
  10. package/dist/esm/src/core/dwn-constant.js.map +1 -1
  11. package/dist/esm/src/core/dwn-error.js +1 -0
  12. package/dist/esm/src/core/dwn-error.js.map +1 -1
  13. package/dist/esm/src/core/grant-authorization.js +37 -52
  14. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  15. package/dist/esm/src/core/message.js +85 -116
  16. package/dist/esm/src/core/message.js.map +1 -1
  17. package/dist/esm/src/core/messages-grant-authorization.js +63 -78
  18. package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
  19. package/dist/esm/src/core/protocol-authorization-action.js +266 -0
  20. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -0
  21. package/dist/esm/src/core/protocol-authorization-validation.js +254 -0
  22. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -0
  23. package/dist/esm/src/core/protocol-authorization.js +122 -740
  24. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  25. package/dist/esm/src/core/protocols-grant-authorization.js +24 -38
  26. package/dist/esm/src/core/protocols-grant-authorization.js.map +1 -1
  27. package/dist/esm/src/core/record-chain.js +64 -0
  28. package/dist/esm/src/core/record-chain.js.map +1 -0
  29. package/dist/esm/src/core/records-grant-authorization.js +55 -72
  30. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  31. package/dist/esm/src/core/resumable-task-manager.js +50 -65
  32. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  33. package/dist/esm/src/core/tenant-gate.js +2 -13
  34. package/dist/esm/src/core/tenant-gate.js.map +1 -1
  35. package/dist/esm/src/dwn.js +69 -86
  36. package/dist/esm/src/dwn.js.map +1 -1
  37. package/dist/esm/src/event-stream/event-emitter-stream.js +17 -31
  38. package/dist/esm/src/event-stream/event-emitter-stream.js.map +1 -1
  39. package/dist/esm/src/handlers/messages-read.js +67 -77
  40. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  41. package/dist/esm/src/handlers/messages-subscribe.js +51 -61
  42. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  43. package/dist/esm/src/handlers/messages-sync.js +75 -85
  44. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  45. package/dist/esm/src/handlers/protocols-configure.js +135 -155
  46. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  47. package/dist/esm/src/handlers/protocols-query.js +52 -51
  48. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  49. package/dist/esm/src/handlers/records-count.js +96 -82
  50. package/dist/esm/src/handlers/records-count.js.map +1 -1
  51. package/dist/esm/src/handlers/records-delete.js +78 -88
  52. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  53. package/dist/esm/src/handlers/records-query.js +116 -101
  54. package/dist/esm/src/handlers/records-query.js.map +1 -1
  55. package/dist/esm/src/handlers/records-read.js +124 -131
  56. package/dist/esm/src/handlers/records-read.js.map +1 -1
  57. package/dist/esm/src/handlers/records-subscribe.js +150 -103
  58. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  59. package/dist/esm/src/handlers/records-write.js +250 -259
  60. package/dist/esm/src/handlers/records-write.js.map +1 -1
  61. package/dist/esm/src/interfaces/messages-read.js +24 -32
  62. package/dist/esm/src/interfaces/messages-read.js.map +1 -1
  63. package/dist/esm/src/interfaces/messages-subscribe.js +27 -41
  64. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  65. package/dist/esm/src/interfaces/messages-sync.js +26 -40
  66. package/dist/esm/src/interfaces/messages-sync.js.map +1 -1
  67. package/dist/esm/src/interfaces/protocols-configure.js +63 -63
  68. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  69. package/dist/esm/src/interfaces/protocols-query.js +55 -68
  70. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  71. package/dist/esm/src/interfaces/records-count.js +50 -66
  72. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  73. package/dist/esm/src/interfaces/records-delete.js +45 -55
  74. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  75. package/dist/esm/src/interfaces/records-query.js +60 -76
  76. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  77. package/dist/esm/src/interfaces/records-read.js +51 -67
  78. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  79. package/dist/esm/src/interfaces/records-subscribe.js +52 -68
  80. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  81. package/dist/esm/src/interfaces/records-write-query.js +102 -0
  82. package/dist/esm/src/interfaces/records-write-query.js.map +1 -0
  83. package/dist/esm/src/interfaces/records-write-signing.js +92 -0
  84. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -0
  85. package/dist/esm/src/interfaces/records-write.js +407 -602
  86. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  87. package/dist/esm/src/jose/algorithms/signing/ed25519.js +10 -19
  88. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
  89. package/dist/esm/src/jose/jws/general/builder.js +23 -35
  90. package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
  91. package/dist/esm/src/jose/jws/general/verifier.js +56 -69
  92. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  93. package/dist/esm/src/protocols/permission-grant.js +44 -15
  94. package/dist/esm/src/protocols/permission-grant.js.map +1 -1
  95. package/dist/esm/src/protocols/permission-request.js +29 -15
  96. package/dist/esm/src/protocols/permission-request.js.map +1 -1
  97. package/dist/esm/src/protocols/permissions.js +216 -226
  98. package/dist/esm/src/protocols/permissions.js.map +1 -1
  99. package/dist/esm/src/smt/smt-store-level.js +42 -64
  100. package/dist/esm/src/smt/smt-store-level.js.map +1 -1
  101. package/dist/esm/src/smt/smt-store-memory.js +19 -45
  102. package/dist/esm/src/smt/smt-store-memory.js.map +1 -1
  103. package/dist/esm/src/smt/smt-utils.js +28 -45
  104. package/dist/esm/src/smt/smt-utils.js.map +1 -1
  105. package/dist/esm/src/smt/sparse-merkle-tree.js +426 -471
  106. package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -1
  107. package/dist/esm/src/state-index/state-index-level.js +115 -150
  108. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  109. package/dist/esm/src/store/blockstore-level.js +54 -156
  110. package/dist/esm/src/store/blockstore-level.js.map +1 -1
  111. package/dist/esm/src/store/blockstore-mock.js +48 -153
  112. package/dist/esm/src/store/blockstore-mock.js.map +1 -1
  113. package/dist/esm/src/store/data-store-level.js +59 -99
  114. package/dist/esm/src/store/data-store-level.js.map +1 -1
  115. package/dist/esm/src/store/index-level-compound.js +246 -0
  116. package/dist/esm/src/store/index-level-compound.js.map +1 -0
  117. package/dist/esm/src/store/index-level.js +295 -713
  118. package/dist/esm/src/store/index-level.js.map +1 -1
  119. package/dist/esm/src/store/level-wrapper.js +143 -244
  120. package/dist/esm/src/store/level-wrapper.js.map +1 -1
  121. package/dist/esm/src/store/message-store-level.js +71 -94
  122. package/dist/esm/src/store/message-store-level.js.map +1 -1
  123. package/dist/esm/src/store/resumable-task-store-level.js +62 -101
  124. package/dist/esm/src/store/resumable-task-store-level.js.map +1 -1
  125. package/dist/esm/src/store/storage-controller.js +129 -144
  126. package/dist/esm/src/store/storage-controller.js.map +1 -1
  127. package/dist/esm/src/utils/abort.js +8 -19
  128. package/dist/esm/src/utils/abort.js.map +1 -1
  129. package/dist/esm/src/utils/array.js +15 -49
  130. package/dist/esm/src/utils/array.js.map +1 -1
  131. package/dist/esm/src/utils/cid.js +29 -77
  132. package/dist/esm/src/utils/cid.js.map +1 -1
  133. package/dist/esm/src/utils/data-stream.js +37 -65
  134. package/dist/esm/src/utils/data-stream.js.map +1 -1
  135. package/dist/esm/src/utils/encryption.js +136 -162
  136. package/dist/esm/src/utils/encryption.js.map +1 -1
  137. package/dist/esm/src/utils/filter.js +1 -12
  138. package/dist/esm/src/utils/filter.js.map +1 -1
  139. package/dist/esm/src/utils/hd-key.js +45 -63
  140. package/dist/esm/src/utils/hd-key.js.map +1 -1
  141. package/dist/esm/src/utils/jws.js +9 -20
  142. package/dist/esm/src/utils/jws.js.map +1 -1
  143. package/dist/esm/src/utils/memory-cache.js +12 -23
  144. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  145. package/dist/esm/src/utils/messages.js +9 -3
  146. package/dist/esm/src/utils/messages.js.map +1 -1
  147. package/dist/esm/src/utils/private-key-signer.js +9 -17
  148. package/dist/esm/src/utils/private-key-signer.js.map +1 -1
  149. package/dist/esm/src/utils/protocols.js +62 -70
  150. package/dist/esm/src/utils/protocols.js.map +1 -1
  151. package/dist/esm/src/utils/records.js +100 -125
  152. package/dist/esm/src/utils/records.js.map +1 -1
  153. package/dist/esm/src/utils/secp256k1.js +60 -96
  154. package/dist/esm/src/utils/secp256k1.js.map +1 -1
  155. package/dist/esm/src/utils/secp256r1.js +54 -71
  156. package/dist/esm/src/utils/secp256r1.js.map +1 -1
  157. package/dist/esm/src/utils/time.js +5 -18
  158. package/dist/esm/src/utils/time.js.map +1 -1
  159. package/dist/esm/src/utils/url.js +3 -3
  160. package/dist/esm/src/utils/url.js.map +1 -1
  161. package/dist/esm/tests/core/auth.spec.js +3 -12
  162. package/dist/esm/tests/core/auth.spec.js.map +1 -1
  163. package/dist/esm/tests/core/message.spec.js +50 -59
  164. package/dist/esm/tests/core/message.spec.js.map +1 -1
  165. package/dist/esm/tests/core/protocol-authorization.spec.js +9 -18
  166. package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
  167. package/dist/esm/tests/dwn.spec.js +45 -58
  168. package/dist/esm/tests/dwn.spec.js.map +1 -1
  169. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +24 -33
  170. package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +1 -1
  171. package/dist/esm/tests/event-stream/event-stream.spec.js +46 -55
  172. package/dist/esm/tests/event-stream/event-stream.spec.js.map +1 -1
  173. package/dist/esm/tests/features/author-delegated-grant.spec.js +326 -343
  174. package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
  175. package/dist/esm/tests/features/owner-delegated-grant.spec.js +153 -169
  176. package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
  177. package/dist/esm/tests/features/owner-signature.spec.js +67 -78
  178. package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
  179. package/dist/esm/tests/features/permissions.spec.js +446 -181
  180. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  181. package/dist/esm/tests/features/protocol-composition.spec.js +346 -356
  182. package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
  183. package/dist/esm/tests/features/protocol-create-action.spec.js +42 -51
  184. package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
  185. package/dist/esm/tests/features/protocol-delete-action.spec.js +94 -103
  186. package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
  187. package/dist/esm/tests/features/protocol-update-action.spec.js +105 -114
  188. package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
  189. package/dist/esm/tests/features/records-prune.spec.js +175 -191
  190. package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
  191. package/dist/esm/tests/features/records-tags.spec.js +441 -460
  192. package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
  193. package/dist/esm/tests/features/resumable-tasks.spec.js +82 -91
  194. package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
  195. package/dist/esm/tests/handlers/messages-read.spec.js +206 -207
  196. package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
  197. package/dist/esm/tests/handlers/messages-subscribe.spec.js +145 -154
  198. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  199. package/dist/esm/tests/handlers/messages-sync.spec.js +174 -183
  200. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  201. package/dist/esm/tests/handlers/protocols-configure.spec.js +244 -238
  202. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
  203. package/dist/esm/tests/handlers/protocols-query.spec.js +156 -169
  204. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  205. package/dist/esm/tests/handlers/records-count.spec.js +93 -102
  206. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  207. package/dist/esm/tests/handlers/records-delete.spec.js +252 -264
  208. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
  209. package/dist/esm/tests/handlers/records-query.spec.js +917 -988
  210. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
  211. package/dist/esm/tests/handlers/records-read.spec.js +549 -564
  212. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
  213. package/dist/esm/tests/handlers/records-subscribe.spec.js +269 -278
  214. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  215. package/dist/esm/tests/handlers/records-write.spec.js +1057 -1082
  216. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  217. package/dist/esm/tests/interfaces/messages-get.spec.js +39 -48
  218. package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -1
  219. package/dist/esm/tests/interfaces/messages-subscribe.spec.js +4 -13
  220. package/dist/esm/tests/interfaces/messages-subscribe.spec.js.map +1 -1
  221. package/dist/esm/tests/interfaces/protocols-configure.spec.js +212 -88
  222. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
  223. package/dist/esm/tests/interfaces/protocols-query.spec.js +8 -17
  224. package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -1
  225. package/dist/esm/tests/interfaces/records-delete.spec.js +8 -17
  226. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
  227. package/dist/esm/tests/interfaces/records-query.spec.js +20 -29
  228. package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -1
  229. package/dist/esm/tests/interfaces/records-read.spec.js +42 -51
  230. package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -1
  231. package/dist/esm/tests/interfaces/records-subscribe.spec.js +16 -25
  232. package/dist/esm/tests/interfaces/records-subscribe.spec.js.map +1 -1
  233. package/dist/esm/tests/interfaces/records-write.spec.js +152 -165
  234. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
  235. package/dist/esm/tests/jose/jws/general.spec.js +36 -45
  236. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
  237. package/dist/esm/tests/protocols/permission-grant.spec.js +44 -50
  238. package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
  239. package/dist/esm/tests/protocols/permission-request.spec.js +23 -32
  240. package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
  241. package/dist/esm/tests/protocols/permissions.spec.js +49 -55
  242. package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
  243. package/dist/esm/tests/scenarios/aggregator.spec.js +124 -135
  244. package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
  245. package/dist/esm/tests/scenarios/deleted-record.spec.js +23 -32
  246. package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
  247. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +52 -61
  248. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
  249. package/dist/esm/tests/scenarios/nested-roles.spec.js +63 -73
  250. package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
  251. package/dist/esm/tests/scenarios/subscriptions.spec.js +377 -333
  252. package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
  253. package/dist/esm/tests/smt/smt-store-level.spec.js +76 -87
  254. package/dist/esm/tests/smt/smt-store-level.spec.js.map +1 -1
  255. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +344 -353
  256. package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +1 -1
  257. package/dist/esm/tests/state-index/state-index-level.spec.js +117 -126
  258. package/dist/esm/tests/state-index/state-index-level.spec.js.map +1 -1
  259. package/dist/esm/tests/store/blockstore-level.spec.js +44 -99
  260. package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -1
  261. package/dist/esm/tests/store/blockstore-mock.spec.js +40 -120
  262. package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
  263. package/dist/esm/tests/store/data-store-level.spec.js +86 -95
  264. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
  265. package/dist/esm/tests/store/index-level.spec.js +404 -414
  266. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  267. package/dist/esm/tests/store/message-store-level.spec.js +13 -22
  268. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  269. package/dist/esm/tests/store/message-store.spec.js +229 -238
  270. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  271. package/dist/esm/tests/test-event-stream.js +3 -3
  272. package/dist/esm/tests/test-event-stream.js.map +1 -1
  273. package/dist/esm/tests/test-stores.js +16 -13
  274. package/dist/esm/tests/test-stores.js.map +1 -1
  275. package/dist/esm/tests/test-suite.js +2 -11
  276. package/dist/esm/tests/test-suite.js.map +1 -1
  277. package/dist/esm/tests/utils/cid.spec.js +24 -33
  278. package/dist/esm/tests/utils/cid.spec.js.map +1 -1
  279. package/dist/esm/tests/utils/data-stream.spec.js +48 -57
  280. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
  281. package/dist/esm/tests/utils/encryption-callbacks.spec.js +45 -54
  282. package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -1
  283. package/dist/esm/tests/utils/encryption.spec.js +229 -82
  284. package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
  285. package/dist/esm/tests/utils/filters.spec.js +46 -55
  286. package/dist/esm/tests/utils/filters.spec.js.map +1 -1
  287. package/dist/esm/tests/utils/hd-key.spec.js +10 -19
  288. package/dist/esm/tests/utils/hd-key.spec.js.map +1 -1
  289. package/dist/esm/tests/utils/jws.spec.js +3 -12
  290. package/dist/esm/tests/utils/jws.spec.js.map +1 -1
  291. package/dist/esm/tests/utils/memory-cache.spec.js +9 -18
  292. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
  293. package/dist/esm/tests/utils/messages.spec.js +6 -15
  294. package/dist/esm/tests/utils/messages.spec.js.map +1 -1
  295. package/dist/esm/tests/utils/poller.js +22 -33
  296. package/dist/esm/tests/utils/poller.js.map +1 -1
  297. package/dist/esm/tests/utils/private-key-signer.spec.js +15 -24
  298. package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -1
  299. package/dist/esm/tests/utils/records.spec.js +10 -19
  300. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  301. package/dist/esm/tests/utils/secp256k1.spec.js +16 -25
  302. package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -1
  303. package/dist/esm/tests/utils/secp256r1.spec.js +18 -27
  304. package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
  305. package/dist/esm/tests/utils/test-data-generator.js +414 -468
  306. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  307. package/dist/esm/tests/validation/json-schemas/definitions.spec.js +2 -11
  308. package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -1
  309. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +4 -13
  310. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -1
  311. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +8 -17
  312. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -1
  313. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +3 -12
  314. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -1
  315. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +4 -13
  316. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
  317. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +2 -11
  318. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -1
  319. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js +2 -11
  320. package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js.map +1 -1
  321. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +7 -16
  322. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  323. package/dist/types/src/core/protocol-authorization-action.d.ts +42 -0
  324. package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -0
  325. package/dist/types/src/core/protocol-authorization-validation.d.ts +60 -0
  326. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -0
  327. package/dist/types/src/core/protocol-authorization.d.ts +10 -100
  328. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  329. package/dist/types/src/core/record-chain.d.ts +24 -0
  330. package/dist/types/src/core/record-chain.d.ts.map +1 -0
  331. package/dist/types/src/handlers/records-write.d.ts +2 -1
  332. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  333. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  334. package/dist/types/src/interfaces/records-write-query.d.ts +33 -0
  335. package/dist/types/src/interfaces/records-write-query.d.ts.map +1 -0
  336. package/dist/types/src/interfaces/records-write-signing.d.ts +35 -0
  337. package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -0
  338. package/dist/types/src/interfaces/records-write.d.ts +10 -44
  339. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  340. package/dist/types/src/store/index-level-compound.d.ts +70 -0
  341. package/dist/types/src/store/index-level-compound.d.ts.map +1 -0
  342. package/dist/types/src/store/index-level.d.ts +0 -58
  343. package/dist/types/src/store/index-level.d.ts.map +1 -1
  344. package/dist/types/src/utils/protocols.d.ts +5 -0
  345. package/dist/types/src/utils/protocols.d.ts.map +1 -1
  346. package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
  347. package/package.json +2 -2
  348. package/src/core/protocol-authorization-action.ts +377 -0
  349. package/src/core/protocol-authorization-validation.ts +391 -0
  350. package/src/core/protocol-authorization.ts +60 -849
  351. package/src/core/record-chain.ts +99 -0
  352. package/src/handlers/records-read.ts +1 -1
  353. package/src/handlers/records-write.ts +37 -21
  354. package/src/interfaces/protocols-configure.ts +33 -5
  355. package/src/interfaces/records-write-query.ts +139 -0
  356. package/src/interfaces/records-write-signing.ts +143 -0
  357. package/src/interfaces/records-write.ts +49 -221
  358. package/src/store/index-level-compound.ts +324 -0
  359. package/src/store/index-level.ts +24 -306
  360. package/src/utils/protocols.ts +8 -0
  361. package/src/utils/records.ts +1 -1
@@ -1,12 +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
1
  import { Encoder } from '../utils/encoder.js';
11
2
  import { PermissionGrant } from './permission-grant.js';
12
3
  import { PermissionRequest } from './permission-request.js';
@@ -20,133 +11,206 @@ import { normalizeProtocolUrl, validateProtocolUrlNormalized } from '../utils/ur
20
11
  * This is a first-class DWN protocol for managing permission grants of a given DWN.
21
12
  */
22
13
  export class PermissionsProtocol {
14
+ /**
15
+ * The URI of the DWN Permissions protocol.
16
+ */
17
+ static uri = 'https://tbd.website/dwn/permissions';
18
+ /**
19
+ * The protocol path of the `request` record.
20
+ */
21
+ static requestPath = 'request';
22
+ /**
23
+ * The protocol path of the `grant` record.
24
+ */
25
+ static grantPath = 'grant';
26
+ /**
27
+ * The protocol path of the `revocation` record.
28
+ */
29
+ static revocationPath = 'grant/revocation';
30
+ /**
31
+ * The definition of the Permissions protocol.
32
+ */
33
+ static definition = {
34
+ published: true,
35
+ protocol: PermissionsProtocol.uri,
36
+ types: {
37
+ request: {
38
+ dataFormats: ['application/json']
39
+ },
40
+ grant: {
41
+ dataFormats: ['application/json']
42
+ },
43
+ revocation: {
44
+ dataFormats: ['application/json']
45
+ }
46
+ },
47
+ structure: {
48
+ request: {
49
+ $size: {
50
+ max: 10000
51
+ },
52
+ $actions: [
53
+ {
54
+ who: 'anyone',
55
+ can: ['create']
56
+ }
57
+ ]
58
+ },
59
+ grant: {
60
+ $size: {
61
+ max: 10000
62
+ },
63
+ $actions: [
64
+ {
65
+ who: 'recipient',
66
+ of: 'grant',
67
+ can: ['read']
68
+ }
69
+ ],
70
+ revocation: {
71
+ $size: {
72
+ max: 10000
73
+ },
74
+ $actions: [
75
+ {
76
+ who: 'anyone',
77
+ can: ['read']
78
+ }
79
+ ]
80
+ }
81
+ }
82
+ }
83
+ };
23
84
  static parseRequest(base64UrlEncodedRequest) {
24
85
  return Encoder.base64UrlToObject(base64UrlEncodedRequest);
25
86
  }
26
87
  /**
27
88
  * Convenience method to create a permission request.
28
89
  */
29
- static createRequest(options) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- if (this.isRecordPermissionScope(options.scope) && options.scope.protocol === undefined) {
32
- throw new DwnError(DwnErrorCode.PermissionsProtocolCreateRequestRecordsScopeMissingProtocol, 'Permission request for Records must have a scope with a `protocol` property');
33
- }
34
- const scope = PermissionsProtocol.normalizePermissionScope(options.scope);
35
- const permissionRequestData = {
36
- description: options.description,
37
- delegated: options.delegated,
38
- scope,
39
- conditions: options.conditions,
40
- };
41
- // If the request is scoped to a protocol, the protocol tag must be included with the record.
42
- // This is done in order to ensure a subset message query filtered to a protocol includes the permission requests associated with it.
43
- let permissionTags = undefined;
44
- if (this.hasProtocolScope(scope)) {
45
- permissionTags = {
46
- protocol: scope.protocol
47
- };
48
- }
49
- const permissionRequestBytes = Encoder.objectToBytes(permissionRequestData);
50
- const recordsWrite = yield RecordsWrite.create({
51
- signer: options.signer,
52
- messageTimestamp: options.dateRequested,
53
- protocol: PermissionsProtocol.uri,
54
- protocolPath: PermissionsProtocol.requestPath,
55
- dataFormat: 'application/json',
56
- data: permissionRequestBytes,
57
- tags: permissionTags,
58
- });
59
- const dataEncodedMessage = Object.assign(Object.assign({}, recordsWrite.message), { encodedData: Encoder.bytesToBase64Url(permissionRequestBytes) });
60
- return {
61
- recordsWrite,
62
- permissionRequestData,
63
- permissionRequestBytes,
64
- dataEncodedMessage
90
+ static async createRequest(options) {
91
+ if (this.isRecordPermissionScope(options.scope) && options.scope.protocol === undefined) {
92
+ throw new DwnError(DwnErrorCode.PermissionsProtocolCreateRequestRecordsScopeMissingProtocol, 'Permission request for Records must have a scope with a `protocol` property');
93
+ }
94
+ const scope = PermissionsProtocol.normalizePermissionScope(options.scope);
95
+ const permissionRequestData = {
96
+ description: options.description,
97
+ delegated: options.delegated,
98
+ scope,
99
+ conditions: options.conditions,
100
+ };
101
+ // If the request is scoped to a protocol, the protocol tag must be included with the record.
102
+ // This is done in order to ensure a subset message query filtered to a protocol includes the permission requests associated with it.
103
+ let permissionTags = undefined;
104
+ if (this.hasProtocolScope(scope)) {
105
+ permissionTags = {
106
+ protocol: scope.protocol
65
107
  };
108
+ }
109
+ const permissionRequestBytes = Encoder.objectToBytes(permissionRequestData);
110
+ const recordsWrite = await RecordsWrite.create({
111
+ signer: options.signer,
112
+ messageTimestamp: options.dateRequested,
113
+ protocol: PermissionsProtocol.uri,
114
+ protocolPath: PermissionsProtocol.requestPath,
115
+ dataFormat: 'application/json',
116
+ data: permissionRequestBytes,
117
+ tags: permissionTags,
66
118
  });
119
+ const dataEncodedMessage = {
120
+ ...recordsWrite.message,
121
+ encodedData: Encoder.bytesToBase64Url(permissionRequestBytes)
122
+ };
123
+ return {
124
+ recordsWrite,
125
+ permissionRequestData,
126
+ permissionRequestBytes,
127
+ dataEncodedMessage
128
+ };
67
129
  }
68
130
  /**
69
131
  * Convenience method to create a permission grant.
70
132
  */
71
- static createGrant(options) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- if (this.isRecordPermissionScope(options.scope) && options.scope.protocol === undefined) {
74
- throw new DwnError(DwnErrorCode.PermissionsProtocolCreateGrantRecordsScopeMissingProtocol, 'Permission grants for Records must have a scope with a `protocol` property');
75
- }
76
- const scope = PermissionsProtocol.normalizePermissionScope(options.scope);
77
- const permissionGrantData = {
78
- dateExpires: options.dateExpires,
79
- requestId: options.requestId,
80
- description: options.description,
81
- delegated: options.delegated,
82
- scope,
83
- conditions: options.conditions,
84
- };
85
- // If the grant is scoped to a protocol, the protocol tag must be included with the record.
86
- // This is done in order to ensure a subset message query filtered to a protocol includes the permission grants associated with it.
87
- let permissionTags = undefined;
88
- if (this.hasProtocolScope(scope)) {
89
- permissionTags = {
90
- protocol: scope.protocol
91
- };
92
- }
93
- const permissionGrantBytes = Encoder.objectToBytes(permissionGrantData);
94
- const recordsWrite = yield RecordsWrite.create({
95
- signer: options.signer,
96
- messageTimestamp: options.dateGranted,
97
- dateCreated: options.dateGranted,
98
- recipient: options.grantedTo,
99
- protocol: PermissionsProtocol.uri,
100
- protocolPath: PermissionsProtocol.grantPath,
101
- dataFormat: 'application/json',
102
- data: permissionGrantBytes,
103
- tags: permissionTags,
104
- });
105
- const dataEncodedMessage = Object.assign(Object.assign({}, recordsWrite.message), { encodedData: Encoder.bytesToBase64Url(permissionGrantBytes) });
106
- return {
107
- recordsWrite,
108
- permissionGrantData,
109
- permissionGrantBytes,
110
- dataEncodedMessage
133
+ static async createGrant(options) {
134
+ if (this.isRecordPermissionScope(options.scope) && options.scope.protocol === undefined) {
135
+ throw new DwnError(DwnErrorCode.PermissionsProtocolCreateGrantRecordsScopeMissingProtocol, 'Permission grants for Records must have a scope with a `protocol` property');
136
+ }
137
+ const scope = PermissionsProtocol.normalizePermissionScope(options.scope);
138
+ const permissionGrantData = {
139
+ dateExpires: options.dateExpires,
140
+ requestId: options.requestId,
141
+ description: options.description,
142
+ delegated: options.delegated,
143
+ scope,
144
+ conditions: options.conditions,
145
+ };
146
+ // If the grant is scoped to a protocol, the protocol tag must be included with the record.
147
+ // This is done in order to ensure a subset message query filtered to a protocol includes the permission grants associated with it.
148
+ let permissionTags = undefined;
149
+ if (this.hasProtocolScope(scope)) {
150
+ permissionTags = {
151
+ protocol: scope.protocol
111
152
  };
153
+ }
154
+ const permissionGrantBytes = Encoder.objectToBytes(permissionGrantData);
155
+ const recordsWrite = await RecordsWrite.create({
156
+ signer: options.signer,
157
+ messageTimestamp: options.dateGranted,
158
+ dateCreated: options.dateGranted,
159
+ recipient: options.grantedTo,
160
+ protocol: PermissionsProtocol.uri,
161
+ protocolPath: PermissionsProtocol.grantPath,
162
+ dataFormat: 'application/json',
163
+ data: permissionGrantBytes,
164
+ tags: permissionTags,
112
165
  });
166
+ const dataEncodedMessage = {
167
+ ...recordsWrite.message,
168
+ encodedData: Encoder.bytesToBase64Url(permissionGrantBytes)
169
+ };
170
+ return {
171
+ recordsWrite,
172
+ permissionGrantData,
173
+ permissionGrantBytes,
174
+ dataEncodedMessage
175
+ };
113
176
  }
114
177
  /**
115
178
  * Convenience method to create a permission revocation.
116
179
  */
117
- static createRevocation(options) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- const permissionRevocationData = {
120
- description: options.description,
121
- };
122
- const grantId = options.grant.id;
123
- // if the grant was scoped to a protocol, the protocol tag must be included in the revocation
124
- // This is done in order to ensure a subset message query filtered to a protocol includes the permission revocations associated with it.
125
- //
126
- // NOTE: the added tag is validated against the original grant when the revocation is processed by the DWN.
127
- let permissionTags = undefined;
128
- if (this.hasProtocolScope(options.grant.scope)) {
129
- const protocol = normalizeProtocolUrl(options.grant.scope.protocol);
130
- permissionTags = { protocol };
131
- }
132
- const permissionRevocationBytes = Encoder.objectToBytes(permissionRevocationData);
133
- const recordsWrite = yield RecordsWrite.create({
134
- signer: options.signer,
135
- parentContextId: grantId, // NOTE: since the grant is the root record, its record ID is also the context ID
136
- protocol: PermissionsProtocol.uri,
137
- protocolPath: PermissionsProtocol.revocationPath,
138
- dataFormat: 'application/json',
139
- data: permissionRevocationBytes,
140
- tags: permissionTags,
141
- });
142
- const dataEncodedMessage = Object.assign(Object.assign({}, recordsWrite.message), { encodedData: Encoder.bytesToBase64Url(permissionRevocationBytes) });
143
- return {
144
- recordsWrite,
145
- permissionRevocationData,
146
- permissionRevocationBytes,
147
- dataEncodedMessage
148
- };
180
+ static async createRevocation(options) {
181
+ const permissionRevocationData = {
182
+ description: options.description,
183
+ };
184
+ const grantId = options.grant.id;
185
+ // if the grant was scoped to a protocol, the protocol tag must be included in the revocation
186
+ // This is done in order to ensure a subset message query filtered to a protocol includes the permission revocations associated with it.
187
+ //
188
+ // NOTE: the added tag is validated against the original grant when the revocation is processed by the DWN.
189
+ let permissionTags = undefined;
190
+ if (this.hasProtocolScope(options.grant.scope)) {
191
+ const protocol = normalizeProtocolUrl(options.grant.scope.protocol);
192
+ permissionTags = { protocol };
193
+ }
194
+ const permissionRevocationBytes = Encoder.objectToBytes(permissionRevocationData);
195
+ const recordsWrite = await RecordsWrite.create({
196
+ signer: options.signer,
197
+ parentContextId: grantId, // NOTE: since the grant is the root record, its record ID is also the context ID
198
+ protocol: PermissionsProtocol.uri,
199
+ protocolPath: PermissionsProtocol.revocationPath,
200
+ dataFormat: 'application/json',
201
+ data: permissionRevocationBytes,
202
+ tags: permissionTags,
149
203
  });
204
+ const dataEncodedMessage = {
205
+ ...recordsWrite.message,
206
+ encodedData: Encoder.bytesToBase64Url(permissionRevocationBytes)
207
+ };
208
+ return {
209
+ recordsWrite,
210
+ permissionRevocationData,
211
+ permissionRevocationBytes,
212
+ dataEncodedMessage
213
+ };
150
214
  }
151
215
  /**
152
216
  * Validates the given Permissions protocol RecordsWrite. It can be a request, grant, or revocation.
@@ -180,25 +244,23 @@ export class PermissionsProtocol {
180
244
  * @returns the PermissionGrant matching the `recordId` specified.
181
245
  * @throws {Error} if PermissionGrant does not exist
182
246
  */
183
- static fetchGrant(tenant, messageStore, permissionGrantId) {
184
- return __awaiter(this, void 0, void 0, function* () {
185
- const grantQuery = {
186
- recordId: permissionGrantId,
187
- isLatestBaseState: true
188
- };
189
- const { messages } = yield messageStore.query(tenant, [grantQuery]);
190
- const possibleGrantMessage = messages[0];
191
- const dwnInterface = possibleGrantMessage === null || possibleGrantMessage === void 0 ? void 0 : possibleGrantMessage.descriptor.interface;
192
- const dwnMethod = possibleGrantMessage === null || possibleGrantMessage === void 0 ? void 0 : possibleGrantMessage.descriptor.method;
193
- if (dwnInterface !== DwnInterfaceName.Records ||
194
- dwnMethod !== DwnMethodName.Write ||
195
- possibleGrantMessage.descriptor.protocolPath !== PermissionsProtocol.grantPath) {
196
- throw new DwnError(DwnErrorCode.GrantAuthorizationGrantMissing, `Could not find permission grant with record ID ${permissionGrantId}.`);
197
- }
198
- const permissionGrantMessage = possibleGrantMessage;
199
- const permissionGrant = yield PermissionGrant.parse(permissionGrantMessage);
200
- return permissionGrant;
201
- });
247
+ static async fetchGrant(tenant, messageStore, permissionGrantId) {
248
+ const grantQuery = {
249
+ recordId: permissionGrantId,
250
+ isLatestBaseState: true
251
+ };
252
+ const { messages } = await messageStore.query(tenant, [grantQuery]);
253
+ const possibleGrantMessage = messages[0];
254
+ const dwnInterface = possibleGrantMessage?.descriptor.interface;
255
+ const dwnMethod = possibleGrantMessage?.descriptor.method;
256
+ if (dwnInterface !== DwnInterfaceName.Records ||
257
+ dwnMethod !== DwnMethodName.Write ||
258
+ possibleGrantMessage.descriptor.protocolPath !== PermissionsProtocol.grantPath) {
259
+ throw new DwnError(DwnErrorCode.GrantAuthorizationGrantMissing, `Could not find permission grant with record ID ${permissionGrantId}.`);
260
+ }
261
+ const permissionGrantMessage = possibleGrantMessage;
262
+ const permissionGrant = await PermissionGrant.parse(permissionGrantMessage);
263
+ return permissionGrant;
202
264
  }
203
265
  /**
204
266
  * Gets the scope from the given permission record.
@@ -206,32 +268,30 @@ export class PermissionsProtocol {
206
268
  *
207
269
  * @param messageStore The message store to fetch the grant for a revocation.
208
270
  */
209
- static getScopeFromPermissionRecord(tenant, messageStore, incomingMessage) {
210
- return __awaiter(this, void 0, void 0, function* () {
211
- if (incomingMessage.descriptor.protocol !== PermissionsProtocol.uri) {
212
- throw new DwnError(DwnErrorCode.PermissionsProtocolGetScopeInvalidProtocol, `Unexpected protocol for permission record: ${incomingMessage.descriptor.protocol}`);
213
- }
214
- if (incomingMessage.descriptor.protocolPath === PermissionsProtocol.revocationPath) {
215
- const grant = yield PermissionsProtocol.fetchGrant(tenant, messageStore, incomingMessage.descriptor.parentId);
216
- return grant.scope;
217
- }
218
- else if (incomingMessage.descriptor.protocolPath === PermissionsProtocol.grantPath) {
219
- const grant = yield PermissionGrant.parse(incomingMessage);
220
- return grant.scope;
221
- }
222
- else {
223
- // if the record is not a grant or revocation, it must be a request
224
- const request = yield PermissionRequest.parse(incomingMessage);
225
- return request.scope;
226
- }
227
- });
271
+ static async getScopeFromPermissionRecord(tenant, messageStore, incomingMessage) {
272
+ if (incomingMessage.descriptor.protocol !== PermissionsProtocol.uri) {
273
+ throw new DwnError(DwnErrorCode.PermissionsProtocolGetScopeInvalidProtocol, `Unexpected protocol for permission record: ${incomingMessage.descriptor.protocol}`);
274
+ }
275
+ if (incomingMessage.descriptor.protocolPath === PermissionsProtocol.revocationPath) {
276
+ const grant = await PermissionsProtocol.fetchGrant(tenant, messageStore, incomingMessage.descriptor.parentId);
277
+ return grant.scope;
278
+ }
279
+ else if (incomingMessage.descriptor.protocolPath === PermissionsProtocol.grantPath) {
280
+ const grant = await PermissionGrant.parse(incomingMessage);
281
+ return grant.scope;
282
+ }
283
+ else {
284
+ // if the record is not a grant or revocation, it must be a request
285
+ const request = await PermissionRequest.parse(incomingMessage);
286
+ return request.scope;
287
+ }
228
288
  }
229
289
  /**
230
290
  * Normalizes the given permission scope if needed.
231
291
  * @returns The normalized permission scope.
232
292
  */
233
293
  static normalizePermissionScope(permissionScope) {
234
- const scope = Object.assign({}, permissionScope);
294
+ const scope = { ...permissionScope };
235
295
  if (PermissionsProtocol.hasProtocolScope(scope)) {
236
296
  scope.protocol = normalizeProtocolUrl(scope.protocol);
237
297
  }
@@ -283,75 +343,5 @@ export class PermissionsProtocol {
283
343
  }
284
344
  }
285
345
  }
286
- /**
287
- * The URI of the DWN Permissions protocol.
288
- */
289
- PermissionsProtocol.uri = 'https://tbd.website/dwn/permissions';
290
- /**
291
- * The protocol path of the `request` record.
292
- */
293
- PermissionsProtocol.requestPath = 'request';
294
- /**
295
- * The protocol path of the `grant` record.
296
- */
297
- PermissionsProtocol.grantPath = 'grant';
298
- /**
299
- * The protocol path of the `revocation` record.
300
- */
301
- PermissionsProtocol.revocationPath = 'grant/revocation';
302
- /**
303
- * The definition of the Permissions protocol.
304
- */
305
- PermissionsProtocol.definition = {
306
- published: true,
307
- protocol: PermissionsProtocol.uri,
308
- types: {
309
- request: {
310
- dataFormats: ['application/json']
311
- },
312
- grant: {
313
- dataFormats: ['application/json']
314
- },
315
- revocation: {
316
- dataFormats: ['application/json']
317
- }
318
- },
319
- structure: {
320
- request: {
321
- $size: {
322
- max: 10000
323
- },
324
- $actions: [
325
- {
326
- who: 'anyone',
327
- can: ['create']
328
- }
329
- ]
330
- },
331
- grant: {
332
- $size: {
333
- max: 10000
334
- },
335
- $actions: [
336
- {
337
- who: 'recipient',
338
- of: 'grant',
339
- can: ['read']
340
- }
341
- ],
342
- revocation: {
343
- $size: {
344
- max: 10000
345
- },
346
- $actions: [
347
- {
348
- who: 'anyone',
349
- can: ['read']
350
- }
351
- ]
352
- }
353
- }
354
- }
355
- };
356
346
  ;
357
347
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../src/protocols/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../src/protocols/permissions.ts"],"names":[],"mappings":"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"}