@abaxxtech/id 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (711) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +31 -0
  3. package/README.npm.md +31 -0
  4. package/dist/bundles/dwn.js +83 -0
  5. package/dist/cjs/index.js +31250 -0
  6. package/dist/cjs/package.json +1 -0
  7. package/dist/esm/generated/precompiled-validators.js +7820 -0
  8. package/dist/esm/generated/precompiled-validators.js.map +1 -0
  9. package/dist/esm/json-schemas/definitions.json +23 -0
  10. package/dist/esm/src/core/abstract-message.js +37 -0
  11. package/dist/esm/src/core/abstract-message.js.map +1 -0
  12. package/dist/esm/src/core/auth.js +97 -0
  13. package/dist/esm/src/core/auth.js.map +1 -0
  14. package/dist/esm/src/core/dwn-constant.js +8 -0
  15. package/dist/esm/src/core/dwn-constant.js.map +1 -0
  16. package/dist/esm/src/core/dwn-error.js +138 -0
  17. package/dist/esm/src/core/dwn-error.js.map +1 -0
  18. package/dist/esm/src/core/grant-authorization.js +108 -0
  19. package/dist/esm/src/core/grant-authorization.js.map +1 -0
  20. package/dist/esm/src/core/message-reply.js +5 -0
  21. package/dist/esm/src/core/message-reply.js.map +1 -0
  22. package/dist/esm/src/core/message.js +200 -0
  23. package/dist/esm/src/core/message.js.map +1 -0
  24. package/dist/esm/src/core/protocol-authorization.js +449 -0
  25. package/dist/esm/src/core/protocol-authorization.js.map +1 -0
  26. package/dist/esm/src/core/records-grant-authorization.js +106 -0
  27. package/dist/esm/src/core/records-grant-authorization.js.map +1 -0
  28. package/dist/esm/src/core/tenant-gate.js +20 -0
  29. package/dist/esm/src/core/tenant-gate.js.map +1 -0
  30. package/dist/esm/src/did/did-dht-resolver.js +241 -0
  31. package/dist/esm/src/did/did-dht-resolver.js.map +1 -0
  32. package/dist/esm/src/did/did-ion-resolver.js +53 -0
  33. package/dist/esm/src/did/did-ion-resolver.js.map +1 -0
  34. package/dist/esm/src/did/did-key-resolver.js +135 -0
  35. package/dist/esm/src/did/did-key-resolver.js.map +1 -0
  36. package/dist/esm/src/did/did-resolver.js +70 -0
  37. package/dist/esm/src/did/did-resolver.js.map +1 -0
  38. package/dist/esm/src/did/did.js +36 -0
  39. package/dist/esm/src/did/did.js.map +1 -0
  40. package/dist/esm/src/dwn.js +164 -0
  41. package/dist/esm/src/dwn.js.map +1 -0
  42. package/dist/esm/src/enums/dwn-interface-method.js +22 -0
  43. package/dist/esm/src/enums/dwn-interface-method.js.map +1 -0
  44. package/dist/esm/src/event-log/event-log-level.js +112 -0
  45. package/dist/esm/src/event-log/event-log-level.js.map +1 -0
  46. package/dist/esm/src/handlers/events-get.js +48 -0
  47. package/dist/esm/src/handlers/events-get.js.map +1 -0
  48. package/dist/esm/src/handlers/messages-get.js +76 -0
  49. package/dist/esm/src/handlers/messages-get.js.map +1 -0
  50. package/dist/esm/src/handlers/permissions-grant.js +62 -0
  51. package/dist/esm/src/handlers/permissions-grant.js.map +1 -0
  52. package/dist/esm/src/handlers/permissions-request.js +63 -0
  53. package/dist/esm/src/handlers/permissions-request.js.map +1 -0
  54. package/dist/esm/src/handlers/permissions-revoke.js +114 -0
  55. package/dist/esm/src/handlers/permissions-revoke.js.map +1 -0
  56. package/dist/esm/src/handlers/protocols-configure.js +102 -0
  57. package/dist/esm/src/handlers/protocols-configure.js.map +1 -0
  58. package/dist/esm/src/handlers/protocols-query.js +72 -0
  59. package/dist/esm/src/handlers/protocols-query.js.map +1 -0
  60. package/dist/esm/src/handlers/records-delete.js +119 -0
  61. package/dist/esm/src/handlers/records-delete.js.map +1 -0
  62. package/dist/esm/src/handlers/records-query.js +206 -0
  63. package/dist/esm/src/handlers/records-query.js.map +1 -0
  64. package/dist/esm/src/handlers/records-read.js +118 -0
  65. package/dist/esm/src/handlers/records-read.js.map +1 -0
  66. package/dist/esm/src/handlers/records-write.js +252 -0
  67. package/dist/esm/src/handlers/records-write.js.map +1 -0
  68. package/dist/esm/src/index.js +43 -0
  69. package/dist/esm/src/index.js.map +1 -0
  70. package/dist/esm/src/interfaces/events-get.js +41 -0
  71. package/dist/esm/src/interfaces/events-get.js.map +1 -0
  72. package/dist/esm/src/interfaces/messages-get.js +58 -0
  73. package/dist/esm/src/interfaces/messages-get.js.map +1 -0
  74. package/dist/esm/src/interfaces/permissions-grant.js +130 -0
  75. package/dist/esm/src/interfaces/permissions-grant.js.map +1 -0
  76. package/dist/esm/src/interfaces/permissions-request.js +47 -0
  77. package/dist/esm/src/interfaces/permissions-request.js.map +1 -0
  78. package/dist/esm/src/interfaces/permissions-revoke.js +47 -0
  79. package/dist/esm/src/interfaces/permissions-revoke.js.map +1 -0
  80. package/dist/esm/src/interfaces/protocols-configure.js +149 -0
  81. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -0
  82. package/dist/esm/src/interfaces/protocols-query.js +80 -0
  83. package/dist/esm/src/interfaces/protocols-query.js.map +1 -0
  84. package/dist/esm/src/interfaces/records-delete.js +56 -0
  85. package/dist/esm/src/interfaces/records-delete.js.map +1 -0
  86. package/dist/esm/src/interfaces/records-query.js +81 -0
  87. package/dist/esm/src/interfaces/records-query.js.map +1 -0
  88. package/dist/esm/src/interfaces/records-read.js +65 -0
  89. package/dist/esm/src/interfaces/records-read.js.map +1 -0
  90. package/dist/esm/src/interfaces/records-write.js +677 -0
  91. package/dist/esm/src/interfaces/records-write.js.map +1 -0
  92. package/dist/esm/src/jose/algorithms/signing/ed25519.js +54 -0
  93. package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -0
  94. package/dist/esm/src/jose/algorithms/signing/signature-algorithms.js +13 -0
  95. package/dist/esm/src/jose/algorithms/signing/signature-algorithms.js.map +1 -0
  96. package/dist/esm/src/jose/jws/general/builder.js +47 -0
  97. package/dist/esm/src/jose/jws/general/builder.js.map +1 -0
  98. package/dist/esm/src/jose/jws/general/signer.js +36 -0
  99. package/dist/esm/src/jose/jws/general/signer.js.map +1 -0
  100. package/dist/esm/src/jose/jws/general/verifier.js +97 -0
  101. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -0
  102. package/dist/esm/src/schema-validator.js +28 -0
  103. package/dist/esm/src/schema-validator.js.map +1 -0
  104. package/dist/esm/src/store/blockstore-level.js +187 -0
  105. package/dist/esm/src/store/blockstore-level.js.map +1 -0
  106. package/dist/esm/src/store/data-store-level.js +192 -0
  107. package/dist/esm/src/store/data-store-level.js.map +1 -0
  108. package/dist/esm/src/store/index-level.js +302 -0
  109. package/dist/esm/src/store/index-level.js.map +1 -0
  110. package/dist/esm/src/store/level-wrapper.js +296 -0
  111. package/dist/esm/src/store/level-wrapper.js.map +1 -0
  112. package/dist/esm/src/store/message-store-level.js +236 -0
  113. package/dist/esm/src/store/message-store-level.js.map +1 -0
  114. package/dist/esm/src/store/storage-controller.js +69 -0
  115. package/dist/esm/src/store/storage-controller.js.map +1 -0
  116. package/dist/esm/src/types/cache.js +2 -0
  117. package/dist/esm/src/types/cache.js.map +1 -0
  118. package/dist/esm/src/types/data-store.js +2 -0
  119. package/dist/esm/src/types/data-store.js.map +1 -0
  120. package/dist/esm/src/types/delegated-grant-message.js +2 -0
  121. package/dist/esm/src/types/delegated-grant-message.js.map +1 -0
  122. package/dist/esm/src/types/did-types.js +2 -0
  123. package/dist/esm/src/types/did-types.js.map +1 -0
  124. package/dist/esm/src/types/event-log.js +2 -0
  125. package/dist/esm/src/types/event-log.js.map +1 -0
  126. package/dist/esm/src/types/event-types.js +2 -0
  127. package/dist/esm/src/types/event-types.js.map +1 -0
  128. package/dist/esm/src/types/jose-types.js +2 -0
  129. package/dist/esm/src/types/jose-types.js.map +1 -0
  130. package/dist/esm/src/types/jws-types.js +2 -0
  131. package/dist/esm/src/types/jws-types.js.map +1 -0
  132. package/dist/esm/src/types/message-interface.js +2 -0
  133. package/dist/esm/src/types/message-interface.js.map +1 -0
  134. package/dist/esm/src/types/message-store.js +2 -0
  135. package/dist/esm/src/types/message-store.js.map +1 -0
  136. package/dist/esm/src/types/message-types.js +6 -0
  137. package/dist/esm/src/types/message-types.js.map +1 -0
  138. package/dist/esm/src/types/messages-types.js +2 -0
  139. package/dist/esm/src/types/messages-types.js.map +1 -0
  140. package/dist/esm/src/types/method-handler.js +2 -0
  141. package/dist/esm/src/types/method-handler.js.map +1 -0
  142. package/dist/esm/src/types/permissions-grant-descriptor.js +6 -0
  143. package/dist/esm/src/types/permissions-grant-descriptor.js.map +1 -0
  144. package/dist/esm/src/types/permissions-types.js +2 -0
  145. package/dist/esm/src/types/permissions-types.js.map +1 -0
  146. package/dist/esm/src/types/protocols-types.js +15 -0
  147. package/dist/esm/src/types/protocols-types.js.map +1 -0
  148. package/dist/esm/src/types/records-types.js +8 -0
  149. package/dist/esm/src/types/records-types.js.map +1 -0
  150. package/dist/esm/src/types/signer.js +2 -0
  151. package/dist/esm/src/types/signer.js.map +1 -0
  152. package/dist/esm/src/utils/abort.js +40 -0
  153. package/dist/esm/src/utils/abort.js.map +1 -0
  154. package/dist/esm/src/utils/array.js +72 -0
  155. package/dist/esm/src/utils/array.js.map +1 -0
  156. package/dist/esm/src/utils/cid.js +130 -0
  157. package/dist/esm/src/utils/cid.js.map +1 -0
  158. package/dist/esm/src/utils/data-stream.js +88 -0
  159. package/dist/esm/src/utils/data-stream.js.map +1 -0
  160. package/dist/esm/src/utils/encoder.js +45 -0
  161. package/dist/esm/src/utils/encoder.js.map +1 -0
  162. package/dist/esm/src/utils/encryption.js +128 -0
  163. package/dist/esm/src/utils/encryption.js.map +1 -0
  164. package/dist/esm/src/utils/hd-key.js +60 -0
  165. package/dist/esm/src/utils/hd-key.js.map +1 -0
  166. package/dist/esm/src/utils/jws.js +89 -0
  167. package/dist/esm/src/utils/jws.js.map +1 -0
  168. package/dist/esm/src/utils/memory-cache.js +41 -0
  169. package/dist/esm/src/utils/memory-cache.js.map +1 -0
  170. package/dist/esm/src/utils/object.js +50 -0
  171. package/dist/esm/src/utils/object.js.map +1 -0
  172. package/dist/esm/src/utils/private-key-signer.js +43 -0
  173. package/dist/esm/src/utils/private-key-signer.js.map +1 -0
  174. package/dist/esm/src/utils/protocols.js +51 -0
  175. package/dist/esm/src/utils/protocols.js.map +1 -0
  176. package/dist/esm/src/utils/records.js +267 -0
  177. package/dist/esm/src/utils/records.js.map +1 -0
  178. package/dist/esm/src/utils/secp256k1.js +219 -0
  179. package/dist/esm/src/utils/secp256k1.js.map +1 -0
  180. package/dist/esm/src/utils/string.js +16 -0
  181. package/dist/esm/src/utils/string.js.map +1 -0
  182. package/dist/esm/src/utils/time.js +84 -0
  183. package/dist/esm/src/utils/time.js.map +1 -0
  184. package/dist/esm/src/utils/url.js +63 -0
  185. package/dist/esm/src/utils/url.js.map +1 -0
  186. package/dist/esm/tests/core/auth.spec.js +25 -0
  187. package/dist/esm/tests/core/auth.spec.js.map +1 -0
  188. package/dist/esm/tests/core/message-reply.spec.js +19 -0
  189. package/dist/esm/tests/core/message-reply.spec.js.map +1 -0
  190. package/dist/esm/tests/core/message.spec.js +85 -0
  191. package/dist/esm/tests/core/message.spec.js.map +1 -0
  192. package/dist/esm/tests/did/did-ion-resolver.spec.js +82 -0
  193. package/dist/esm/tests/did/did-ion-resolver.spec.js.map +1 -0
  194. package/dist/esm/tests/did/did-key-resolver.spec.js +74 -0
  195. package/dist/esm/tests/did/did-key-resolver.spec.js.map +1 -0
  196. package/dist/esm/tests/did/did-resolver.spec.js +84 -0
  197. package/dist/esm/tests/did/did-resolver.spec.js.map +1 -0
  198. package/dist/esm/tests/did/did.spec.js +22 -0
  199. package/dist/esm/tests/did/did.spec.js.map +1 -0
  200. package/dist/esm/tests/dwn.spec.js +252 -0
  201. package/dist/esm/tests/dwn.spec.js.map +1 -0
  202. package/dist/esm/tests/end-to-end-tests.spec.js +218 -0
  203. package/dist/esm/tests/end-to-end-tests.spec.js.map +1 -0
  204. package/dist/esm/tests/event-log/event-log-level.spec.js +137 -0
  205. package/dist/esm/tests/event-log/event-log-level.spec.js.map +1 -0
  206. package/dist/esm/tests/handlers/events-get.spec.js +108 -0
  207. package/dist/esm/tests/handlers/events-get.spec.js.map +1 -0
  208. package/dist/esm/tests/handlers/messages-get.spec.js +209 -0
  209. package/dist/esm/tests/handlers/messages-get.spec.js.map +1 -0
  210. package/dist/esm/tests/handlers/permissions-grant.spec.js +249 -0
  211. package/dist/esm/tests/handlers/permissions-grant.spec.js.map +1 -0
  212. package/dist/esm/tests/handlers/permissions-request.spec.js +132 -0
  213. package/dist/esm/tests/handlers/permissions-request.spec.js.map +1 -0
  214. package/dist/esm/tests/handlers/permissions-revoke.spec.js +311 -0
  215. package/dist/esm/tests/handlers/permissions-revoke.spec.js.map +1 -0
  216. package/dist/esm/tests/handlers/protocols-configure.spec.js +254 -0
  217. package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -0
  218. package/dist/esm/tests/handlers/protocols-query.spec.js +373 -0
  219. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -0
  220. package/dist/esm/tests/handlers/records-delete.spec.js +630 -0
  221. package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -0
  222. package/dist/esm/tests/handlers/records-query.spec.js +1937 -0
  223. package/dist/esm/tests/handlers/records-query.spec.js.map +1 -0
  224. package/dist/esm/tests/handlers/records-read.spec.js +1729 -0
  225. package/dist/esm/tests/handlers/records-read.spec.js.map +1 -0
  226. package/dist/esm/tests/handlers/records-write.spec.js +3381 -0
  227. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -0
  228. package/dist/esm/tests/interfaces/events-get.spec.js +73 -0
  229. package/dist/esm/tests/interfaces/events-get.spec.js.map +1 -0
  230. package/dist/esm/tests/interfaces/messages-get.spec.js +93 -0
  231. package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -0
  232. package/dist/esm/tests/interfaces/permissions-grant.spec.js +216 -0
  233. package/dist/esm/tests/interfaces/permissions-grant.spec.js.map +1 -0
  234. package/dist/esm/tests/interfaces/permissions-request.spec.js +45 -0
  235. package/dist/esm/tests/interfaces/permissions-request.spec.js.map +1 -0
  236. package/dist/esm/tests/interfaces/protocols-configure.spec.js +334 -0
  237. package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -0
  238. package/dist/esm/tests/interfaces/protocols-query.spec.js +49 -0
  239. package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -0
  240. package/dist/esm/tests/interfaces/records-delete.spec.js +42 -0
  241. package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -0
  242. package/dist/esm/tests/interfaces/records-query.spec.js +75 -0
  243. package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -0
  244. package/dist/esm/tests/interfaces/records-read.spec.js +65 -0
  245. package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -0
  246. package/dist/esm/tests/interfaces/records-write.spec.js +369 -0
  247. package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -0
  248. package/dist/esm/tests/jose/jws/general.spec.js +185 -0
  249. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -0
  250. package/dist/esm/tests/scenarios/delegated-grant.spec.js +490 -0
  251. package/dist/esm/tests/scenarios/delegated-grant.spec.js.map +1 -0
  252. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +218 -0
  253. package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -0
  254. package/dist/esm/tests/store/data-store-level.spec.js +192 -0
  255. package/dist/esm/tests/store/data-store-level.spec.js.map +1 -0
  256. package/dist/esm/tests/store/index-level.spec.js +428 -0
  257. package/dist/esm/tests/store/index-level.spec.js.map +1 -0
  258. package/dist/esm/tests/store/message-store-level.spec.js +51 -0
  259. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -0
  260. package/dist/esm/tests/store/message-store.spec.js +395 -0
  261. package/dist/esm/tests/store/message-store.spec.js.map +1 -0
  262. package/dist/esm/tests/store-dependent-tests.spec.js +8 -0
  263. package/dist/esm/tests/store-dependent-tests.spec.js.map +1 -0
  264. package/dist/esm/tests/test-stores.js +40 -0
  265. package/dist/esm/tests/test-stores.js.map +1 -0
  266. package/dist/esm/tests/test-suite.js +51 -0
  267. package/dist/esm/tests/test-suite.js.map +1 -0
  268. package/dist/esm/tests/utils/cid.spec.js +83 -0
  269. package/dist/esm/tests/utils/cid.spec.js.map +1 -0
  270. package/dist/esm/tests/utils/data-stream.spec.js +30 -0
  271. package/dist/esm/tests/utils/data-stream.spec.js.map +1 -0
  272. package/dist/esm/tests/utils/encryption.spec.js +151 -0
  273. package/dist/esm/tests/utils/encryption.spec.js.map +1 -0
  274. package/dist/esm/tests/utils/jws.spec.js +11 -0
  275. package/dist/esm/tests/utils/jws.spec.js.map +1 -0
  276. package/dist/esm/tests/utils/memory-cache.spec.js +38 -0
  277. package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -0
  278. package/dist/esm/tests/utils/object.spec.js +39 -0
  279. package/dist/esm/tests/utils/object.spec.js.map +1 -0
  280. package/dist/esm/tests/utils/private-key-signer.spec.js +47 -0
  281. package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -0
  282. package/dist/esm/tests/utils/records.spec.js +56 -0
  283. package/dist/esm/tests/utils/records.spec.js.map +1 -0
  284. package/dist/esm/tests/utils/secp256k1.spec.js +77 -0
  285. package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -0
  286. package/dist/esm/tests/utils/test-data-generator.js +570 -0
  287. package/dist/esm/tests/utils/test-data-generator.js.map +1 -0
  288. package/dist/esm/tests/utils/test-stub-generator.js +39 -0
  289. package/dist/esm/tests/utils/test-stub-generator.js.map +1 -0
  290. package/dist/esm/tests/utils/time.spec.js +67 -0
  291. package/dist/esm/tests/utils/time.spec.js.map +1 -0
  292. package/dist/esm/tests/utils/url.spec.js +46 -0
  293. package/dist/esm/tests/utils/url.spec.js.map +1 -0
  294. package/dist/esm/tests/validation/json-schemas/definitions.spec.js +36 -0
  295. package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -0
  296. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +53 -0
  297. package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -0
  298. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +39 -0
  299. package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -0
  300. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +76 -0
  301. package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -0
  302. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +74 -0
  303. package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -0
  304. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +151 -0
  305. package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -0
  306. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +389 -0
  307. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -0
  308. package/dist/esm/tests/vectors/protocol-definitions/anyone-collaborate.json +25 -0
  309. package/dist/esm/tests/vectors/protocol-definitions/author-can.json +32 -0
  310. package/dist/esm/tests/vectors/protocol-definitions/chat.json +56 -0
  311. package/dist/esm/tests/vectors/protocol-definitions/credential-issuance.json +37 -0
  312. package/dist/esm/tests/vectors/protocol-definitions/dex.json +52 -0
  313. package/dist/esm/tests/vectors/protocol-definitions/email.json +50 -0
  314. package/dist/esm/tests/vectors/protocol-definitions/free-for-all.json +30 -0
  315. package/dist/esm/tests/vectors/protocol-definitions/friend-role.json +48 -0
  316. package/dist/esm/tests/vectors/protocol-definitions/message.json +20 -0
  317. package/dist/esm/tests/vectors/protocol-definitions/minimal.json +10 -0
  318. package/dist/esm/tests/vectors/protocol-definitions/nested.json +31 -0
  319. package/dist/esm/tests/vectors/protocol-definitions/private-protocol.json +13 -0
  320. package/dist/esm/tests/vectors/protocol-definitions/recipient-can.json +36 -0
  321. package/dist/esm/tests/vectors/protocol-definitions/social-media.json +88 -0
  322. package/dist/esm/tests/vectors/protocol-definitions/thread-role.json +68 -0
  323. package/dist/types/generated/precompiled-validators.d.ts +113 -0
  324. package/dist/types/generated/precompiled-validators.d.ts.map +1 -0
  325. package/dist/types/src/core/abstract-message.d.ts +19 -0
  326. package/dist/types/src/core/abstract-message.d.ts.map +1 -0
  327. package/dist/types/src/core/auth.d.ts +30 -0
  328. package/dist/types/src/core/auth.d.ts.map +1 -0
  329. package/dist/types/src/core/dwn-constant.d.ts +8 -0
  330. package/dist/types/src/core/dwn-constant.d.ts.map +1 -0
  331. package/dist/types/src/core/dwn-error.d.ts +133 -0
  332. package/dist/types/src/core/dwn-error.d.ts.map +1 -0
  333. package/dist/types/src/core/grant-authorization.d.ts +35 -0
  334. package/dist/types/src/core/grant-authorization.d.ts.map +1 -0
  335. package/dist/types/src/core/message-reply.d.ts +33 -0
  336. package/dist/types/src/core/message-reply.d.ts.map +1 -0
  337. package/dist/types/src/core/message.d.ts +79 -0
  338. package/dist/types/src/core/message.d.ts.map +1 -0
  339. package/dist/types/src/core/protocol-authorization.d.ts +85 -0
  340. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -0
  341. package/dist/types/src/core/records-grant-authorization.d.ts +38 -0
  342. package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -0
  343. package/dist/types/src/core/tenant-gate.d.ts +16 -0
  344. package/dist/types/src/core/tenant-gate.d.ts.map +1 -0
  345. package/dist/types/src/did/did-dht-resolver.d.ts +26 -0
  346. package/dist/types/src/did/did-dht-resolver.d.ts.map +1 -0
  347. package/dist/types/src/did/did-ion-resolver.d.ts +20 -0
  348. package/dist/types/src/did/did-ion-resolver.d.ts.map +1 -0
  349. package/dist/types/src/did/did-key-resolver.d.ts +32 -0
  350. package/dist/types/src/did/did-key-resolver.d.ts.map +1 -0
  351. package/dist/types/src/did/did-resolver.d.ts +20 -0
  352. package/dist/types/src/did/did-resolver.d.ts.map +1 -0
  353. package/dist/types/src/did/did.d.ts +15 -0
  354. package/dist/types/src/did/did.d.ts.map +1 -0
  355. package/dist/types/src/dwn.d.ts +74 -0
  356. package/dist/types/src/dwn.d.ts.map +1 -0
  357. package/dist/types/src/enums/dwn-interface-method.d.ts +20 -0
  358. package/dist/types/src/enums/dwn-interface-method.d.ts.map +1 -0
  359. package/dist/types/src/event-log/event-log-level.d.ts +26 -0
  360. package/dist/types/src/event-log/event-log-level.d.ts.map +1 -0
  361. package/dist/types/src/handlers/events-get.d.ts +16 -0
  362. package/dist/types/src/handlers/events-get.d.ts.map +1 -0
  363. package/dist/types/src/handlers/messages-get.d.ts +18 -0
  364. package/dist/types/src/handlers/messages-get.d.ts.map +1 -0
  365. package/dist/types/src/handlers/permissions-grant.d.ts +17 -0
  366. package/dist/types/src/handlers/permissions-grant.d.ts.map +1 -0
  367. package/dist/types/src/handlers/permissions-request.d.ts +17 -0
  368. package/dist/types/src/handlers/permissions-request.d.ts.map +1 -0
  369. package/dist/types/src/handlers/permissions-revoke.d.ts +17 -0
  370. package/dist/types/src/handlers/permissions-revoke.d.ts.map +1 -0
  371. package/dist/types/src/handlers/protocols-configure.d.ts +21 -0
  372. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -0
  373. package/dist/types/src/handlers/protocols-query.d.ts +20 -0
  374. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -0
  375. package/dist/types/src/handlers/records-delete.d.ts +22 -0
  376. package/dist/types/src/handlers/records-delete.d.ts.map +1 -0
  377. package/dist/types/src/handlers/records-query.d.ts +78 -0
  378. package/dist/types/src/handlers/records-query.d.ts.map +1 -0
  379. package/dist/types/src/handlers/records-read.d.ts +17 -0
  380. package/dist/types/src/handlers/records-read.d.ts.map +1 -0
  381. package/dist/types/src/handlers/records-write.d.ts +61 -0
  382. package/dist/types/src/handlers/records-write.d.ts.map +1 -0
  383. package/dist/types/src/index.d.ts +72 -0
  384. package/dist/types/src/index.d.ts.map +1 -0
  385. package/dist/types/src/interfaces/events-get.d.ts +13 -0
  386. package/dist/types/src/interfaces/events-get.d.ts.map +1 -0
  387. package/dist/types/src/interfaces/messages-get.d.ts +19 -0
  388. package/dist/types/src/interfaces/messages-get.d.ts.map +1 -0
  389. package/dist/types/src/interfaces/permissions-grant.d.ts +59 -0
  390. package/dist/types/src/interfaces/permissions-grant.d.ts.map +1 -0
  391. package/dist/types/src/interfaces/permissions-request.d.ts +19 -0
  392. package/dist/types/src/interfaces/permissions-request.d.ts.map +1 -0
  393. package/dist/types/src/interfaces/permissions-revoke.d.ts +14 -0
  394. package/dist/types/src/interfaces/permissions-revoke.d.ts.map +1 -0
  395. package/dist/types/src/interfaces/protocols-configure.d.ts +21 -0
  396. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -0
  397. package/dist/types/src/interfaces/protocols-query.d.ts +17 -0
  398. package/dist/types/src/interfaces/protocols-query.d.ts.map +1 -0
  399. package/dist/types/src/interfaces/records-delete.d.ts +24 -0
  400. package/dist/types/src/interfaces/records-delete.d.ts.map +1 -0
  401. package/dist/types/src/interfaces/records-query.d.ts +29 -0
  402. package/dist/types/src/interfaces/records-query.d.ts.map +1 -0
  403. package/dist/types/src/interfaces/records-read.d.ts +31 -0
  404. package/dist/types/src/interfaces/records-read.d.ts.map +1 -0
  405. package/dist/types/src/interfaces/records-write.d.ts +259 -0
  406. package/dist/types/src/interfaces/records-write.d.ts.map +1 -0
  407. package/dist/types/src/jose/algorithms/signing/ed25519.d.ts +3 -0
  408. package/dist/types/src/jose/algorithms/signing/ed25519.d.ts.map +1 -0
  409. package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts +3 -0
  410. package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts.map +1 -0
  411. package/dist/types/src/jose/jws/general/builder.d.ts +10 -0
  412. package/dist/types/src/jose/jws/general/builder.d.ts.map +1 -0
  413. package/dist/types/src/jose/jws/general/signer.d.ts +8 -0
  414. package/dist/types/src/jose/jws/general/signer.d.ts.map +1 -0
  415. package/dist/types/src/jose/jws/general/verifier.d.ts +32 -0
  416. package/dist/types/src/jose/jws/general/verifier.d.ts.map +1 -0
  417. package/dist/types/src/schema-validator.d.ts +8 -0
  418. package/dist/types/src/schema-validator.d.ts.map +1 -0
  419. package/dist/types/src/store/blockstore-level.d.ts +35 -0
  420. package/dist/types/src/store/blockstore-level.d.ts.map +1 -0
  421. package/dist/types/src/store/data-store-level.d.ts +44 -0
  422. package/dist/types/src/store/data-store-level.d.ts.map +1 -0
  423. package/dist/types/src/store/index-level.d.ts +69 -0
  424. package/dist/types/src/store/index-level.d.ts.map +1 -0
  425. package/dist/types/src/store/level-wrapper.d.ts +44 -0
  426. package/dist/types/src/store/level-wrapper.d.ts.map +1 -0
  427. package/dist/types/src/store/message-store-level.d.ts +70 -0
  428. package/dist/types/src/store/message-store-level.d.ts.map +1 -0
  429. package/dist/types/src/store/storage-controller.d.ts +19 -0
  430. package/dist/types/src/store/storage-controller.d.ts.map +1 -0
  431. package/dist/types/src/types/cache.d.ts +16 -0
  432. package/dist/types/src/types/cache.d.ts.map +1 -0
  433. package/dist/types/src/types/data-store.d.ts +69 -0
  434. package/dist/types/src/types/data-store.d.ts.map +1 -0
  435. package/dist/types/src/types/delegated-grant-message.d.ts +14 -0
  436. package/dist/types/src/types/delegated-grant-message.d.ts.map +1 -0
  437. package/dist/types/src/types/did-types.d.ts +68 -0
  438. package/dist/types/src/types/did-types.d.ts.map +1 -0
  439. package/dist/types/src/types/event-log.d.ts +39 -0
  440. package/dist/types/src/types/event-log.d.ts.map +1 -0
  441. package/dist/types/src/types/event-types.d.ts +18 -0
  442. package/dist/types/src/types/event-types.d.ts.map +1 -0
  443. package/dist/types/src/types/jose-types.d.ts +75 -0
  444. package/dist/types/src/types/jose-types.d.ts.map +1 -0
  445. package/dist/types/src/types/jws-types.d.ts +27 -0
  446. package/dist/types/src/types/jws-types.d.ts.map +1 -0
  447. package/dist/types/src/types/message-interface.d.ts +22 -0
  448. package/dist/types/src/types/message-interface.d.ts.map +1 -0
  449. package/dist/types/src/types/message-store.d.ts +43 -0
  450. package/dist/types/src/types/message-store.d.ts.map +1 -0
  451. package/dist/types/src/types/message-types.d.ts +113 -0
  452. package/dist/types/src/types/message-types.d.ts.map +1 -0
  453. package/dist/types/src/types/messages-types.d.ts +23 -0
  454. package/dist/types/src/types/messages-types.d.ts.map +1 -0
  455. package/dist/types/src/types/method-handler.d.ts +17 -0
  456. package/dist/types/src/types/method-handler.d.ts.map +1 -0
  457. package/dist/types/src/types/permissions-grant-descriptor.d.ts +65 -0
  458. package/dist/types/src/types/permissions-grant-descriptor.d.ts.map +1 -0
  459. package/dist/types/src/types/permissions-types.d.ts +33 -0
  460. package/dist/types/src/types/permissions-types.d.ts.map +1 -0
  461. package/dist/types/src/types/protocols-types.d.ts +138 -0
  462. package/dist/types/src/types/protocols-types.d.ts.map +1 -0
  463. package/dist/types/src/types/records-types.d.ts +164 -0
  464. package/dist/types/src/types/records-types.d.ts.map +1 -0
  465. package/dist/types/src/types/signer.d.ts +26 -0
  466. package/dist/types/src/types/signer.d.ts.map +1 -0
  467. package/dist/types/src/utils/abort.d.ts +5 -0
  468. package/dist/types/src/utils/abort.d.ts.map +1 -0
  469. package/dist/types/src/utils/array.d.ts +18 -0
  470. package/dist/types/src/utils/array.d.ts.map +1 -0
  471. package/dist/types/src/utils/cid.d.ts +30 -0
  472. package/dist/types/src/utils/cid.d.ts.map +1 -0
  473. package/dist/types/src/utils/data-stream.d.ts +27 -0
  474. package/dist/types/src/utils/data-stream.d.ts.map +1 -0
  475. package/dist/types/src/utils/encoder.d.ts +14 -0
  476. package/dist/types/src/utils/encoder.d.ts.map +1 -0
  477. package/dist/types/src/utils/encryption.d.ts +44 -0
  478. package/dist/types/src/utils/encryption.d.ts.map +1 -0
  479. package/dist/types/src/utils/hd-key.d.ts +35 -0
  480. package/dist/types/src/utils/hd-key.d.ts.map +1 -0
  481. package/dist/types/src/utils/jws.d.ts +39 -0
  482. package/dist/types/src/utils/jws.d.ts.map +1 -0
  483. package/dist/types/src/utils/memory-cache.d.ts +15 -0
  484. package/dist/types/src/utils/memory-cache.d.ts.map +1 -0
  485. package/dist/types/src/utils/object.d.ts +18 -0
  486. package/dist/types/src/utils/object.d.ts.map +1 -0
  487. package/dist/types/src/utils/private-key-signer.d.ts +34 -0
  488. package/dist/types/src/utils/private-key-signer.d.ts.map +1 -0
  489. package/dist/types/src/utils/protocols.d.ts +14 -0
  490. package/dist/types/src/utils/protocols.d.ts.map +1 -0
  491. package/dist/types/src/utils/records.d.ts +68 -0
  492. package/dist/types/src/utils/records.d.ts.map +1 -0
  493. package/dist/types/src/utils/secp256k1.d.ts +78 -0
  494. package/dist/types/src/utils/secp256k1.d.ts.map +1 -0
  495. package/dist/types/src/utils/string.d.ts +6 -0
  496. package/dist/types/src/utils/string.d.ts.map +1 -0
  497. package/dist/types/src/utils/time.d.ts +49 -0
  498. package/dist/types/src/utils/time.d.ts.map +1 -0
  499. package/dist/types/src/utils/url.d.ts +5 -0
  500. package/dist/types/src/utils/url.d.ts.map +1 -0
  501. package/dist/types/tests/core/auth.spec.d.ts +2 -0
  502. package/dist/types/tests/core/auth.spec.d.ts.map +1 -0
  503. package/dist/types/tests/core/message-reply.spec.d.ts +2 -0
  504. package/dist/types/tests/core/message-reply.spec.d.ts.map +1 -0
  505. package/dist/types/tests/core/message.spec.d.ts +2 -0
  506. package/dist/types/tests/core/message.spec.d.ts.map +1 -0
  507. package/dist/types/tests/did/did-ion-resolver.spec.d.ts +2 -0
  508. package/dist/types/tests/did/did-ion-resolver.spec.d.ts.map +1 -0
  509. package/dist/types/tests/did/did-key-resolver.spec.d.ts +2 -0
  510. package/dist/types/tests/did/did-key-resolver.spec.d.ts.map +1 -0
  511. package/dist/types/tests/did/did-resolver.spec.d.ts +2 -0
  512. package/dist/types/tests/did/did-resolver.spec.d.ts.map +1 -0
  513. package/dist/types/tests/did/did.spec.d.ts +2 -0
  514. package/dist/types/tests/did/did.spec.d.ts.map +1 -0
  515. package/dist/types/tests/dwn.spec.d.ts +2 -0
  516. package/dist/types/tests/dwn.spec.d.ts.map +1 -0
  517. package/dist/types/tests/end-to-end-tests.spec.d.ts +2 -0
  518. package/dist/types/tests/end-to-end-tests.spec.d.ts.map +1 -0
  519. package/dist/types/tests/event-log/event-log-level.spec.d.ts +2 -0
  520. package/dist/types/tests/event-log/event-log-level.spec.d.ts.map +1 -0
  521. package/dist/types/tests/handlers/events-get.spec.d.ts +2 -0
  522. package/dist/types/tests/handlers/events-get.spec.d.ts.map +1 -0
  523. package/dist/types/tests/handlers/messages-get.spec.d.ts +2 -0
  524. package/dist/types/tests/handlers/messages-get.spec.d.ts.map +1 -0
  525. package/dist/types/tests/handlers/permissions-grant.spec.d.ts +2 -0
  526. package/dist/types/tests/handlers/permissions-grant.spec.d.ts.map +1 -0
  527. package/dist/types/tests/handlers/permissions-request.spec.d.ts +2 -0
  528. package/dist/types/tests/handlers/permissions-request.spec.d.ts.map +1 -0
  529. package/dist/types/tests/handlers/permissions-revoke.spec.d.ts +2 -0
  530. package/dist/types/tests/handlers/permissions-revoke.spec.d.ts.map +1 -0
  531. package/dist/types/tests/handlers/protocols-configure.spec.d.ts +2 -0
  532. package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -0
  533. package/dist/types/tests/handlers/protocols-query.spec.d.ts +2 -0
  534. package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -0
  535. package/dist/types/tests/handlers/records-delete.spec.d.ts +2 -0
  536. package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -0
  537. package/dist/types/tests/handlers/records-query.spec.d.ts +2 -0
  538. package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -0
  539. package/dist/types/tests/handlers/records-read.spec.d.ts +2 -0
  540. package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -0
  541. package/dist/types/tests/handlers/records-write.spec.d.ts +2 -0
  542. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -0
  543. package/dist/types/tests/interfaces/events-get.spec.d.ts +2 -0
  544. package/dist/types/tests/interfaces/events-get.spec.d.ts.map +1 -0
  545. package/dist/types/tests/interfaces/messages-get.spec.d.ts +2 -0
  546. package/dist/types/tests/interfaces/messages-get.spec.d.ts.map +1 -0
  547. package/dist/types/tests/interfaces/permissions-grant.spec.d.ts +2 -0
  548. package/dist/types/tests/interfaces/permissions-grant.spec.d.ts.map +1 -0
  549. package/dist/types/tests/interfaces/permissions-request.spec.d.ts +2 -0
  550. package/dist/types/tests/interfaces/permissions-request.spec.d.ts.map +1 -0
  551. package/dist/types/tests/interfaces/protocols-configure.spec.d.ts +2 -0
  552. package/dist/types/tests/interfaces/protocols-configure.spec.d.ts.map +1 -0
  553. package/dist/types/tests/interfaces/protocols-query.spec.d.ts +2 -0
  554. package/dist/types/tests/interfaces/protocols-query.spec.d.ts.map +1 -0
  555. package/dist/types/tests/interfaces/records-delete.spec.d.ts +2 -0
  556. package/dist/types/tests/interfaces/records-delete.spec.d.ts.map +1 -0
  557. package/dist/types/tests/interfaces/records-query.spec.d.ts +2 -0
  558. package/dist/types/tests/interfaces/records-query.spec.d.ts.map +1 -0
  559. package/dist/types/tests/interfaces/records-read.spec.d.ts +2 -0
  560. package/dist/types/tests/interfaces/records-read.spec.d.ts.map +1 -0
  561. package/dist/types/tests/interfaces/records-write.spec.d.ts +2 -0
  562. package/dist/types/tests/interfaces/records-write.spec.d.ts.map +1 -0
  563. package/dist/types/tests/jose/jws/general.spec.d.ts +2 -0
  564. package/dist/types/tests/jose/jws/general.spec.d.ts.map +1 -0
  565. package/dist/types/tests/scenarios/delegated-grant.spec.d.ts +2 -0
  566. package/dist/types/tests/scenarios/delegated-grant.spec.d.ts.map +1 -0
  567. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts +2 -0
  568. package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -0
  569. package/dist/types/tests/store/data-store-level.spec.d.ts +2 -0
  570. package/dist/types/tests/store/data-store-level.spec.d.ts.map +1 -0
  571. package/dist/types/tests/store/index-level.spec.d.ts +2 -0
  572. package/dist/types/tests/store/index-level.spec.d.ts.map +1 -0
  573. package/dist/types/tests/store/message-store-level.spec.d.ts +2 -0
  574. package/dist/types/tests/store/message-store-level.spec.d.ts.map +1 -0
  575. package/dist/types/tests/store/message-store.spec.d.ts +2 -0
  576. package/dist/types/tests/store/message-store.spec.d.ts.map +1 -0
  577. package/dist/types/tests/store-dependent-tests.spec.d.ts +2 -0
  578. package/dist/types/tests/store-dependent-tests.spec.d.ts.map +1 -0
  579. package/dist/types/tests/test-stores.d.ts +30 -0
  580. package/dist/types/tests/test-stores.d.ts.map +1 -0
  581. package/dist/types/tests/test-suite.d.ts +16 -0
  582. package/dist/types/tests/test-suite.d.ts.map +1 -0
  583. package/dist/types/tests/utils/cid.spec.d.ts +2 -0
  584. package/dist/types/tests/utils/cid.spec.d.ts.map +1 -0
  585. package/dist/types/tests/utils/data-stream.spec.d.ts +2 -0
  586. package/dist/types/tests/utils/data-stream.spec.d.ts.map +1 -0
  587. package/dist/types/tests/utils/encryption.spec.d.ts +2 -0
  588. package/dist/types/tests/utils/encryption.spec.d.ts.map +1 -0
  589. package/dist/types/tests/utils/jws.spec.d.ts +2 -0
  590. package/dist/types/tests/utils/jws.spec.d.ts.map +1 -0
  591. package/dist/types/tests/utils/memory-cache.spec.d.ts +2 -0
  592. package/dist/types/tests/utils/memory-cache.spec.d.ts.map +1 -0
  593. package/dist/types/tests/utils/object.spec.d.ts +2 -0
  594. package/dist/types/tests/utils/object.spec.d.ts.map +1 -0
  595. package/dist/types/tests/utils/private-key-signer.spec.d.ts +2 -0
  596. package/dist/types/tests/utils/private-key-signer.spec.d.ts.map +1 -0
  597. package/dist/types/tests/utils/records.spec.d.ts +2 -0
  598. package/dist/types/tests/utils/records.spec.d.ts.map +1 -0
  599. package/dist/types/tests/utils/secp256k1.spec.d.ts +2 -0
  600. package/dist/types/tests/utils/secp256k1.spec.d.ts.map +1 -0
  601. package/dist/types/tests/utils/test-data-generator.d.ts +323 -0
  602. package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -0
  603. package/dist/types/tests/utils/test-stub-generator.d.ts +16 -0
  604. package/dist/types/tests/utils/test-stub-generator.d.ts.map +1 -0
  605. package/dist/types/tests/utils/time.spec.d.ts +2 -0
  606. package/dist/types/tests/utils/time.spec.d.ts.map +1 -0
  607. package/dist/types/tests/utils/url.spec.d.ts +2 -0
  608. package/dist/types/tests/utils/url.spec.d.ts.map +1 -0
  609. package/dist/types/tests/validation/json-schemas/definitions.spec.d.ts +2 -0
  610. package/dist/types/tests/validation/json-schemas/definitions.spec.d.ts.map +1 -0
  611. package/dist/types/tests/validation/json-schemas/jwk/general-jwk.spec.d.ts +2 -0
  612. package/dist/types/tests/validation/json-schemas/jwk/general-jwk.spec.d.ts.map +1 -0
  613. package/dist/types/tests/validation/json-schemas/jwk/public-jwk.spec.d.ts +2 -0
  614. package/dist/types/tests/validation/json-schemas/jwk/public-jwk.spec.d.ts.map +1 -0
  615. package/dist/types/tests/validation/json-schemas/jwk-verification-method.spec.d.ts +2 -0
  616. package/dist/types/tests/validation/json-schemas/jwk-verification-method.spec.d.ts.map +1 -0
  617. package/dist/types/tests/validation/json-schemas/protocols/protocols-configure.spec.d.ts +2 -0
  618. package/dist/types/tests/validation/json-schemas/protocols/protocols-configure.spec.d.ts.map +1 -0
  619. package/dist/types/tests/validation/json-schemas/records/records-query.spec.d.ts +2 -0
  620. package/dist/types/tests/validation/json-schemas/records/records-query.spec.d.ts.map +1 -0
  621. package/dist/types/tests/validation/json-schemas/records/records-write.spec.d.ts +2 -0
  622. package/dist/types/tests/validation/json-schemas/records/records-write.spec.d.ts.map +1 -0
  623. package/package.json +156 -0
  624. package/src/core/abstract-message.ts +48 -0
  625. package/src/core/auth.ts +108 -0
  626. package/src/core/dwn-constant.ts +7 -0
  627. package/src/core/dwn-error.ts +136 -0
  628. package/src/core/grant-authorization.ts +163 -0
  629. package/src/core/message-reply.ts +42 -0
  630. package/src/core/message.ts +224 -0
  631. package/src/core/protocol-authorization.ts +691 -0
  632. package/src/core/records-grant-authorization.ts +167 -0
  633. package/src/core/tenant-gate.ts +18 -0
  634. package/src/did/did-dht-resolver.ts +241 -0
  635. package/src/did/did-ion-resolver.ts +52 -0
  636. package/src/did/did-key-resolver.ts +137 -0
  637. package/src/did/did-resolver.ts +77 -0
  638. package/src/did/did.ts +39 -0
  639. package/src/dwn.ts +213 -0
  640. package/src/enums/dwn-interface-method.ts +20 -0
  641. package/src/event-log/event-log-level.ts +116 -0
  642. package/src/handlers/events-get.ts +46 -0
  643. package/src/handlers/messages-get.ts +80 -0
  644. package/src/handlers/permissions-grant.ts +52 -0
  645. package/src/handlers/permissions-request.ts +54 -0
  646. package/src/handlers/permissions-revoke.ts +121 -0
  647. package/src/handlers/protocols-configure.ts +104 -0
  648. package/src/handlers/protocols-query.ts +81 -0
  649. package/src/handlers/records-delete.ts +139 -0
  650. package/src/handlers/records-query.ts +253 -0
  651. package/src/handlers/records-read.ts +127 -0
  652. package/src/handlers/records-write.ts +296 -0
  653. package/src/index.ts +81 -0
  654. package/src/interfaces/events-get.ts +43 -0
  655. package/src/interfaces/messages-get.ts +59 -0
  656. package/src/interfaces/permissions-grant.ts +175 -0
  657. package/src/interfaces/permissions-request.ts +55 -0
  658. package/src/interfaces/permissions-revoke.ts +46 -0
  659. package/src/interfaces/protocols-configure.ts +188 -0
  660. package/src/interfaces/protocols-query.ts +99 -0
  661. package/src/interfaces/records-delete.ts +67 -0
  662. package/src/interfaces/records-query.ts +100 -0
  663. package/src/interfaces/records-read.ts +82 -0
  664. package/src/interfaces/records-write.ts +924 -0
  665. package/src/jose/algorithms/signing/ed25519.ts +61 -0
  666. package/src/jose/algorithms/signing/signature-algorithms.ts +15 -0
  667. package/src/jose/jws/general/builder.ts +48 -0
  668. package/src/jose/jws/general/signer.ts +29 -0
  669. package/src/jose/jws/general/verifier.ts +113 -0
  670. package/src/schema-validator.ts +34 -0
  671. package/src/store/blockstore-level.ts +113 -0
  672. package/src/store/data-store-level.ts +188 -0
  673. package/src/store/index-level.ts +306 -0
  674. package/src/store/level-wrapper.ts +262 -0
  675. package/src/store/message-store-level.ts +284 -0
  676. package/src/store/storage-controller.ts +80 -0
  677. package/src/types/cache.ts +16 -0
  678. package/src/types/data-store.ts +78 -0
  679. package/src/types/delegated-grant-message.ts +15 -0
  680. package/src/types/did-types.ts +95 -0
  681. package/src/types/event-log.ts +46 -0
  682. package/src/types/event-types.ts +20 -0
  683. package/src/types/jose-types.ts +76 -0
  684. package/src/types/jws-types.ts +28 -0
  685. package/src/types/message-interface.ts +24 -0
  686. package/src/types/message-store.ts +56 -0
  687. package/src/types/message-types.ts +115 -0
  688. package/src/types/messages-types.ts +26 -0
  689. package/src/types/method-handler.ts +17 -0
  690. package/src/types/permissions-grant-descriptor.ts +79 -0
  691. package/src/types/permissions-types.ts +42 -0
  692. package/src/types/protocols-types.ts +154 -0
  693. package/src/types/records-types.ts +184 -0
  694. package/src/types/signer.ts +27 -0
  695. package/src/utils/abort.ts +31 -0
  696. package/src/utils/array.ts +39 -0
  697. package/src/utils/cid.ts +101 -0
  698. package/src/utils/data-stream.ts +85 -0
  699. package/src/utils/encoder.ts +54 -0
  700. package/src/utils/encryption.ts +145 -0
  701. package/src/utils/hd-key.ts +58 -0
  702. package/src/utils/jws.ts +95 -0
  703. package/src/utils/memory-cache.ts +31 -0
  704. package/src/utils/object.ts +55 -0
  705. package/src/utils/private-key-signer.ts +72 -0
  706. package/src/utils/protocols.ts +50 -0
  707. package/src/utils/records.ts +326 -0
  708. package/src/utils/secp256k1.ts +209 -0
  709. package/src/utils/string.ts +13 -0
  710. package/src/utils/time.ts +77 -0
  711. package/src/utils/url.ts +66 -0
@@ -0,0 +1,284 @@
1
+
2
+ import type { RecordsWriteMessage } from '../types/records-types.js';
3
+ import type { Filter, GenericMessage, MessageSort, Pagination } from '../types/message-types.js';
4
+ import type { MessageStore, MessageStoreOptions } from '../types/message-store.js';
5
+
6
+ import * as block from 'multiformats/block';
7
+ import * as cbor from '@ipld/dag-cbor';
8
+
9
+ import { ArrayUtility } from '../utils/array.js';
10
+ import { BlockstoreLevel } from './blockstore-level.js';
11
+ import { Cid } from '../utils/cid.js';
12
+ import { CID } from 'multiformats/cid';
13
+ import { createLevelDatabase } from './level-wrapper.js';
14
+ import { executeUnlessAborted } from '../utils/abort.js';
15
+ import { IndexLevel } from './index-level.js';
16
+ import { Message } from '../core/message.js';
17
+ import { sha256 } from 'multiformats/hashes/sha2';
18
+ import { SortOrder } from '../types/message-types.js';
19
+
20
+
21
+ /**
22
+ * A simple implementation of {@link MessageStore} that works in both the browser and server-side.
23
+ * Leverages LevelDB under the hood.
24
+ */
25
+ export class MessageStoreLevel implements MessageStore {
26
+ config: MessageStoreLevelConfig;
27
+
28
+ blockstore: BlockstoreLevel;
29
+
30
+ index: IndexLevel;
31
+
32
+ /**
33
+ * @param {MessageStoreLevelConfig} config
34
+ * @param {string} config.blockstoreLocation - must be a directory path (relative or absolute) where
35
+ * LevelDB will store its files, or in browsers, the name of the
36
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase IDBDatabase} to be opened.
37
+ * @param {string} config.indexLocation - same as config.blockstoreLocation
38
+ */
39
+ constructor(config: MessageStoreLevelConfig = {}) {
40
+ this.config = {
41
+ blockstoreLocation : 'data/MESSAGESTORE',
42
+ indexLocation : 'data/INDEX',
43
+ createLevelDatabase,
44
+ ...config
45
+ };
46
+
47
+ this.blockstore = new BlockstoreLevel({
48
+ location : this.config.blockstoreLocation!,
49
+ createLevelDatabase : this.config.createLevelDatabase,
50
+ });
51
+
52
+ this.index = new IndexLevel({
53
+ location : this.config.indexLocation!,
54
+ createLevelDatabase : this.config.createLevelDatabase,
55
+ });
56
+ }
57
+
58
+ async open(): Promise<void> {
59
+ await this.blockstore.open();
60
+ await this.index.open();
61
+ }
62
+
63
+ async close(): Promise<void> {
64
+ await this.blockstore.close();
65
+ await this.index.close();
66
+ }
67
+
68
+ async get(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<GenericMessage | undefined> {
69
+ options?.signal?.throwIfAborted();
70
+
71
+ const partition = await executeUnlessAborted(this.blockstore.partition(tenant), options?.signal);
72
+
73
+ const cid = CID.parse(cidString);
74
+ const bytes = await partition.get(cid, options);
75
+
76
+ if (!bytes) {
77
+ return undefined;
78
+ }
79
+
80
+ const decodedBlock = await executeUnlessAborted(block.decode({ bytes, codec: cbor, hasher: sha256 }), options?.signal);
81
+
82
+ const message = decodedBlock.value as GenericMessage;
83
+ return message;
84
+ }
85
+
86
+ async query(
87
+ tenant: string,
88
+ filters: Filter[],
89
+ messageSort?: MessageSort,
90
+ pagination?: Pagination,
91
+ options?: MessageStoreOptions
92
+ ): Promise<{ messages: GenericMessage[], cursor?: string }> {
93
+ options?.signal?.throwIfAborted();
94
+
95
+ const messages: GenericMessage[] = [];
96
+ // note: injecting tenant into filters to allow querying with an "empty" filter.
97
+ // if there are no other filters present it will return all the messages the tenant.
98
+ const resultIds = await this.index.query(tenant, filters.map(f => ({ ...f, tenant })), options);
99
+
100
+ // as an optimization for large data sets, we are finding the message object which matches the cursor here.
101
+ // we can use this within the pagination function after sorting to determine the starting point of the array in a more efficient way.
102
+ let paginationMessage: GenericMessage | undefined;
103
+ for (const id of resultIds) {
104
+ const message = await this.get(tenant, id, options);
105
+ if (message) { messages.push(message); }
106
+ if (pagination?.cursor && pagination.cursor === id) {
107
+ paginationMessage = message;
108
+ }
109
+ }
110
+
111
+ if (pagination?.cursor !== undefined && paginationMessage === undefined) {
112
+ return { messages: [] }; //if paginationMessage is not found, do not return any results
113
+ }
114
+
115
+ const sortedRecords = await MessageStoreLevel.sortMessages(messages, messageSort);
116
+ return this.paginateMessages(sortedRecords, paginationMessage, pagination);
117
+ }
118
+
119
+ private async paginateMessages(
120
+ messages: GenericMessage[],
121
+ paginationMessage?: GenericMessage,
122
+ pagination: Pagination = { }
123
+ ): Promise<{ messages: GenericMessage[], cursor?: string } > {
124
+ const { limit } = pagination;
125
+ if (paginationMessage === undefined && limit === undefined) {
126
+ return { messages }; // return all without pagination pointer.
127
+ }
128
+
129
+ // we are passing the pagination message object for an easier lookup
130
+ // since we know this object exists within the array if passed, we can assume that it will always have a value greater than -1
131
+ const cursorIndex = paginationMessage ? messages.indexOf(paginationMessage) : undefined;
132
+
133
+ // the first element of the returned results is always the message immediately following the cursor.
134
+ const start = cursorIndex === undefined ? 0 : cursorIndex + 1;
135
+ const end = limit === undefined ? undefined : start + limit;
136
+ const results = messages.slice(start, end);
137
+
138
+ // we only return a cursor cursor if there are more results
139
+ const hasMoreResults = end !== undefined && end < messages.length;
140
+ let cursor: string|undefined;
141
+ if (hasMoreResults) {
142
+ // we extract the cid of the last message in the result set.
143
+ const lastMessage = results.at(-1);
144
+ cursor = await Message.getCid(lastMessage!);
145
+ }
146
+
147
+ return { messages: results, cursor };
148
+ }
149
+
150
+ /**
151
+ * Compares the chosen property of two messages in lexicographical order.
152
+ * When the value is the same between the two objects, `messageCid` comparison is used to tiebreak.
153
+ * tiebreaker always compares messageA to messageB
154
+ *
155
+ * @returns if SortOrder is Ascending:
156
+ * 1 if the chosen property of `messageA` is larger than of `messageB`;
157
+ * -1 if the chosen property `messageA` is smaller/older than of `messageB`;
158
+ * 0 otherwise
159
+ * if SortOrder is Descending:
160
+ * 1 if the chosen property of `messageB` is larger than of `messageA`;
161
+ * -1 if the chosen property `messageB` is smaller/older than of `messageA`;
162
+ * 0 otherwise
163
+ */
164
+ static async lexicographicalCompare(
165
+ messageA: GenericMessage,
166
+ messageB: GenericMessage,
167
+ comparedPropertyName: string,
168
+ sortOrder: SortOrder): Promise<number>
169
+ {
170
+ const a = (messageA.descriptor as any)[comparedPropertyName];
171
+ const b = (messageB.descriptor as any)[comparedPropertyName];
172
+
173
+ if (sortOrder === SortOrder.Ascending) {
174
+ if (a > b) {
175
+ return 1;
176
+ } else if (a < b) {
177
+ return -1;
178
+ }
179
+ } else {
180
+ // descending order
181
+ if (b > a) {
182
+ return 1;
183
+ } else if (b < a) {
184
+ return -1;
185
+ }
186
+ }
187
+
188
+ // if we reach here it means the compared properties have the same values, we need to fall back to compare the `messageCid` instead
189
+ return await Message.compareCid(messageA, messageB);
190
+ }
191
+
192
+ /**
193
+ * This is a temporary naive sort, it will eventually be done within the underlying data store.
194
+ *
195
+ * If sorting is based on date published, records that are not published are filtered out.
196
+ * @param messages - Messages to be sorted if dateSort is present
197
+ * @param sort - Sorting scheme
198
+ * @returns Sorted Messages
199
+ */
200
+ public static async sortMessages(
201
+ messages: GenericMessage[],
202
+ messageSort: MessageSort = { }
203
+ ): Promise<GenericMessage[]> {
204
+ const { dateCreated, datePublished, messageTimestamp } = messageSort;
205
+
206
+ let sortOrder = SortOrder.Ascending; // default
207
+ let messagesToSort = messages; // default
208
+ let propertyToCompare: keyof MessageSort | undefined; // `keyof MessageSort` = name of all properties of `MessageSort`
209
+
210
+ if (dateCreated !== undefined) {
211
+ propertyToCompare = 'dateCreated';
212
+ } else if (datePublished !== undefined) {
213
+ propertyToCompare = 'datePublished';
214
+ messagesToSort = (messages as RecordsWriteMessage[]).filter(message => message.descriptor.published);
215
+ } else if (messageTimestamp !== undefined) {
216
+ propertyToCompare = 'messageTimestamp';
217
+ }
218
+
219
+ if (propertyToCompare !== undefined) {
220
+ sortOrder = messageSort[propertyToCompare]!;
221
+ } else {
222
+ propertyToCompare = 'messageTimestamp';
223
+ }
224
+
225
+ const asyncComparer = (a: GenericMessage, b: GenericMessage): Promise<number> => {
226
+ return MessageStoreLevel.lexicographicalCompare(a, b, propertyToCompare!, sortOrder);
227
+ };
228
+
229
+ // NOTE: we needed to implement our own asynchronous sort method because Array.sort() does not take an async comparer
230
+ return await ArrayUtility.asyncSort(messagesToSort, asyncComparer);
231
+ }
232
+
233
+ async delete(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<void> {
234
+ options?.signal?.throwIfAborted();
235
+
236
+ const partition = await executeUnlessAborted(this.blockstore.partition(tenant), options?.signal);
237
+
238
+ const cid = CID.parse(cidString);
239
+ await partition.delete(cid, options);
240
+ await this.index.delete(tenant, cidString, options);
241
+ }
242
+
243
+ async put(
244
+ tenant: string,
245
+ message: GenericMessage,
246
+ indexes: { [key: string]: string | boolean },
247
+ options?: MessageStoreOptions
248
+ ): Promise<void> {
249
+ options?.signal?.throwIfAborted();
250
+
251
+ const partition = await executeUnlessAborted(this.blockstore.partition(tenant), options?.signal);
252
+
253
+ const encodedMessageBlock = await executeUnlessAborted(block.encode({ value: message, codec: cbor, hasher: sha256 }), options?.signal);
254
+
255
+ // MessageStore data may contain `encodedData` which is not taken into account when calculating the blockCID as it is optional data.
256
+ const messageCid = Cid.parseCid(await Message.getCid(message));
257
+ await partition.put(messageCid, encodedMessageBlock.bytes, options);
258
+
259
+ const messageCidString = messageCid.toString();
260
+
261
+ // note: leaving the additional tenant indexing to allow for querying with an "empty" filter.
262
+ // when querying, we also inject a filter for the specific tenant.
263
+ // if there are no other filters present it will return all the messages for that tenant.
264
+ const indexDocument = {
265
+ ...indexes,
266
+ tenant,
267
+ };
268
+ await this.index.put(tenant, messageCidString, indexDocument, options);
269
+ }
270
+
271
+ /**
272
+ * deletes everything in the underlying blockstore and indices.
273
+ */
274
+ async clear(): Promise<void> {
275
+ await this.blockstore.clear();
276
+ await this.index.clear();
277
+ }
278
+ }
279
+
280
+ type MessageStoreLevelConfig = {
281
+ blockstoreLocation?: string,
282
+ indexLocation?: string,
283
+ createLevelDatabase?: typeof createLevelDatabase,
284
+ };
@@ -0,0 +1,80 @@
1
+ import type { DataStore } from '../types/data-store.js';
2
+ import type { EventLog } from '../types/event-log.js';
3
+ import type { GenericMessage } from '../types/message-types.js';
4
+ import type { MessageStore } from '../types/message-store.js';
5
+ import type { RecordsWriteMessage, RecordsWriteMessageWithOptionalEncodedData } from '../types/records-types.js';
6
+
7
+ import { DwnConstant } from '../core/dwn-constant.js';
8
+ import { DwnMethodName } from '../enums/dwn-interface-method.js';
9
+ import { Message } from '../core/message.js';
10
+ import { RecordsWrite } from '../interfaces/records-write.js';
11
+
12
+ /**
13
+ * A class that provides an abstraction for the usage of MessageStore, DataStore, and EventLog.
14
+ */
15
+ export class StorageController {
16
+ /**
17
+ * Deletes a message.
18
+ */
19
+ private static async delete(
20
+ messageStore: MessageStore,
21
+ dataStore: DataStore,
22
+ tenant: string,
23
+ message: GenericMessage
24
+ ): Promise<void> {
25
+ const messageCid = await Message.getCid(message);
26
+
27
+ if (message.descriptor.method === DwnMethodName.Write &&
28
+ (message as RecordsWriteMessage).descriptor.dataSize > DwnConstant.maxDataSizeAllowedToBeEncoded) {
29
+ const recordsWriteMessage = message as RecordsWriteMessage;
30
+ await dataStore.delete(tenant, messageCid, recordsWriteMessage.descriptor.dataCid);
31
+ }
32
+
33
+ await messageStore.delete(tenant, messageCid);
34
+ }
35
+
36
+
37
+ /**
38
+ * Deletes all messages in `existingMessages` that are older than the `comparedToMessage` in the given tenant,
39
+ * but keep the initial write write for future processing by ensuring its `isLatestBaseState` index is "false".
40
+ */
41
+ public static async deleteAllOlderMessagesButKeepInitialWrite(
42
+ tenant: string,
43
+ existingMessages: GenericMessage[],
44
+ comparedToMessage: GenericMessage,
45
+ messageStore: MessageStore,
46
+ dataStore: DataStore,
47
+ eventLog: EventLog
48
+ ): Promise<void> {
49
+ const deletedMessageCids: string[] = [];
50
+
51
+ // NOTE: under normal operation, there should only be at most two existing records per `recordId` (initial + a potential subsequent write/delete),
52
+ // but the DWN may crash before `delete()` is called below, so we use a loop as a tactic to clean up lingering data as needed
53
+ for (const message of existingMessages) {
54
+ const messageIsOld = await Message.isOlder(message, comparedToMessage);
55
+ if (messageIsOld) {
56
+ // the easiest implementation here is delete each old messages
57
+ // and re-create it with the right index (isLatestBaseState = 'false') if the message is the initial write,
58
+ // but there is room for better/more efficient implementation here
59
+ await StorageController.delete(messageStore, dataStore, tenant, message);
60
+
61
+ // if the existing message is the initial write
62
+ // we actually need to keep it BUT, need to ensure the message is no longer marked as the latest state
63
+ const existingMessageIsInitialWrite = await RecordsWrite.isInitialWrite(message);
64
+ if (existingMessageIsInitialWrite) {
65
+ const existingRecordsWrite = await RecordsWrite.parse(message as RecordsWriteMessage);
66
+ const isLatestBaseState = false;
67
+ const indexes = await existingRecordsWrite.constructRecordsWriteIndexes(isLatestBaseState);
68
+ const writeMessage = message as RecordsWriteMessageWithOptionalEncodedData;
69
+ delete writeMessage.encodedData;
70
+ await messageStore.put(tenant, writeMessage, indexes);
71
+ } else {
72
+ const messageCid = await Message.getCid(message);
73
+ deletedMessageCids.push(messageCid);
74
+ }
75
+ }
76
+
77
+ await eventLog.deleteEventsByCid(tenant, deletedMessageCids);
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A generalized cache interface.
3
+ * The motivation behind this interface is so that code that depend on the cache can remain independent to the underlying implementation.
4
+ */
5
+ export interface Cache {
6
+ /**
7
+ * Sets a key-value pair. Does not throw error.
8
+ */
9
+ set(key: string, value: any): Promise<void>;
10
+
11
+ /**
12
+ * Gets the value corresponding to the given key.
13
+ * @returns value stored corresponding to the given key; `undefined` if key is not found or expired
14
+ */
15
+ get(key: string): Promise<any | undefined>;
16
+ }
@@ -0,0 +1,78 @@
1
+ import type { Readable } from 'readable-stream';
2
+
3
+ /**
4
+ * The interface that defines how to store and fetch data associated with a message
5
+ */
6
+ export interface DataStore {
7
+ /**
8
+ * Opens a connection to the underlying store.
9
+ */
10
+ open(): Promise<void>;
11
+
12
+ /**
13
+ * Closes the connection to the underlying store.
14
+ */
15
+ close(): Promise<void>;
16
+
17
+ /**
18
+ * Puts the given data in store.
19
+ * It is expected that the CID of the dataStream matches the given dataCid.
20
+ * The returned dataCid and returned dataSize will be verified against the given dataCid (and inferred dataSize).
21
+ * @param messageCid CID of the message that references the data.
22
+ * @returns The CID and size in number of bytes of the data stored.
23
+ */
24
+ put(tenant: string, messageCid: string, dataCid: string, dataStream: Readable): Promise<PutResult>;
25
+
26
+ /**
27
+ * Fetches the specified data.
28
+ * The returned dataCid and returned dataSize will be verified against the given dataCid (and inferred dataSize).
29
+ * @param messageCid CID of the message that references the data.
30
+ */
31
+ get(tenant: string, messageCid: string, dataCid: string): Promise<GetResult | undefined>;
32
+
33
+ /**
34
+ * Associates dataCid of existing data with the given messageCid.
35
+ * The returned dataCid and returned dataSize will be verified against the given dataCid (and inferred dataSize).
36
+ * @param tenant The tenant in which the data must exist under for the association to occur.
37
+ * @param messageCid CID of the message that references the data.
38
+ * @param dataCid The CID of the data stored.
39
+ * @returns {AssociateResult} if association succeeds. `undefined` if data to be associated is not found.
40
+ */
41
+ associate(tenant: string, messageCid: string, dataCid: string): Promise<AssociateResult | undefined>;
42
+
43
+ /**
44
+ * Deletes the specified data.
45
+ * @param messageCid CID of the message that references the data.
46
+ */
47
+ delete(tenant: string, messageCid: string, dataCid: string): Promise<void>;
48
+
49
+ /**
50
+ * Clears the entire store. Mainly used for cleaning up in test environment.
51
+ */
52
+ clear(): Promise<void>;
53
+ }
54
+
55
+ /**
56
+ * Result of a data store `put()` method call.
57
+ */
58
+ export type PutResult = {
59
+ dataCid: string;
60
+ dataSize: number;
61
+ };
62
+
63
+ /**
64
+ * Result of a data store `get()` method call.
65
+ */
66
+ export type GetResult = {
67
+ dataCid: string;
68
+ dataSize: number;
69
+ dataStream: Readable;
70
+ };
71
+
72
+ /**
73
+ * Result of a data store `associate()` method call.
74
+ */
75
+ export type AssociateResult = {
76
+ dataCid: string;
77
+ dataSize: number;
78
+ };
@@ -0,0 +1,15 @@
1
+ import type { GeneralJws } from './jws-types.js';
2
+ import type { PermissionsGrantDescriptor } from './permissions-grant-descriptor.js';
3
+
4
+ export type DelegatedGrantMessage = {
5
+ authorization: {
6
+ /**
7
+ * The signature of the message signer.
8
+ */
9
+ signature: GeneralJws;
10
+ };
11
+
12
+ descriptor: PermissionsGrantDescriptor & {
13
+ delegated: true;
14
+ };
15
+ };
@@ -0,0 +1,95 @@
1
+ import type { PublicJwk } from './jose-types.js';
2
+
3
+ /**
4
+ * A generalized interface that can be implemented for individual
5
+ * DID methods
6
+ */
7
+ export interface DidMethodResolver {
8
+ /**
9
+ * @returns the DID method supported by {@link DidMethodResolver.resolve}
10
+ */
11
+ method(): string;
12
+
13
+ /**
14
+ * attempts to resolve the DID provided into its respective DID Document.
15
+ * More info on resolving DIDs can be found
16
+ * {@link https://www.w3.org/TR/did-core/#resolution here}
17
+ * @param did - the DID to resolve
18
+ * @throws {Error} if unable to resolve the DID
19
+ */
20
+ resolve(did: string): Promise<DidResolutionResult>;
21
+ }
22
+
23
+
24
+
25
+ export type DidDocument = {
26
+ '@context'?: 'https://www.w3.org/ns/did/v1' | string | string[]
27
+ id: string
28
+ alsoKnownAs?: string[]
29
+ controller?: string | string[]
30
+ verificationMethod?: VerificationMethod[]
31
+ service?: ServiceEndpoint[]
32
+ authentication?: VerificationMethod[] | string[]
33
+ assertionMethod?: VerificationMethod[] | string[]
34
+ keyAgreement?: VerificationMethod[] | string[]
35
+ capabilityInvocation?: VerificationMethod[] | string[]
36
+ capabilityDelegation?: VerificationMethod[] | string[]
37
+ };
38
+
39
+ export type DwnServiceEndpoint = {
40
+ nodes: string[]
41
+ };
42
+
43
+ export type ServiceEndpoint = {
44
+ id: string
45
+ type: string
46
+ serviceEndpoint: string | DwnServiceEndpoint
47
+ description?: string
48
+ };
49
+
50
+ export type VerificationMethod = {
51
+ id: string
52
+ // one of the valid verification method types as per
53
+ // https://www.w3.org/TR/did-spec-registries/#verification-method-types
54
+ type: string
55
+ // DID of the key's controller
56
+ controller: string
57
+ // a JSON Web Key that conforms to https://datatracker.ietf.org/doc/html/rfc7517
58
+ publicKeyJwk?: PublicJwk
59
+ };
60
+
61
+ export type DidResolutionResult = {
62
+ '@context'?: 'https://w3id.org/did-resolution/v1' | string | string[]
63
+ didResolutionMetadata: DidResolutionMetadata
64
+ didDocument?: DidDocument
65
+ didDocumentMetadata: DidDocumentMetadata
66
+ };
67
+
68
+ export type DidResolutionMetadata = {
69
+ contentType?: string
70
+ error?: 'invalidDid' | 'notFound' | 'representationNotSupported' |
71
+ 'unsupportedDidMethod' | string
72
+ };
73
+
74
+ export type DidDocumentMetadata = {
75
+ // indicates the timestamp of the Create operation. ISO8601 timestamp
76
+ created?: string
77
+ // indicates the timestamp of the last Update operation for the document version which was
78
+ // resolved. ISO8601 timestamp
79
+ updated?: string
80
+ // indicates whether the DID has been deactivated
81
+ deactivated?: boolean
82
+ // indicates the version of the last Update operation for the document version which
83
+ // was resolved
84
+ versionId?: string
85
+ // indicates the timestamp of the next Update operation if the resolved document version
86
+ // is not the latest version of the document.
87
+ nextUpdate?: string
88
+ // indicates the version of the next Update operation if the resolved document version
89
+ // is not the latest version of the document.
90
+ nextVersionId?: string
91
+ // @see https://www.w3.org/TR/did-core/#dfn-equivalentid
92
+ equivalentId?: string
93
+ // @see https://www.w3.org/TR/did-core/#dfn-canonicalid
94
+ canonicalId?: string
95
+ };
@@ -0,0 +1,46 @@
1
+ export type Event = {
2
+ watermark: string,
3
+ messageCid: string
4
+ };
5
+
6
+
7
+ export type GetEventsOptions = {
8
+ gt: string
9
+ };
10
+
11
+ export interface EventLog {
12
+ /**
13
+ * opens a connection to the underlying store
14
+ */
15
+ open(): Promise<void>;
16
+
17
+ /**
18
+ * closes the connection to the underlying store
19
+ */
20
+ close(): Promise<void>;
21
+
22
+ /**
23
+ * adds an event to a tenant's event log
24
+ * @param tenant - the tenant's DID
25
+ * @param messageCid - the CID of the message
26
+ * @returns {Promise<string>} watermark
27
+ */
28
+ append(tenant: string, messageCid: string): Promise<string>
29
+
30
+ /**
31
+ * retrieves all of a tenant's events that occurred after the watermark provided.
32
+ * If no watermark is provided, all events for a given tenant will be returned.
33
+ */
34
+ getEvents(tenant: string, options?: GetEventsOptions): Promise<Array<Event>>
35
+
36
+ /**
37
+ * deletes any events that have any of the cids provided
38
+ * @returns {Promise<number>} the number of events deleted
39
+ */
40
+ deleteEventsByCid(tenant: string, cids: Array<string>): Promise<number>
41
+
42
+ /**
43
+ * Clears the entire store. Mainly used for cleaning up in test environment.
44
+ */
45
+ clear(): Promise<void>;
46
+ }
@@ -0,0 +1,20 @@
1
+ import type { Event } from './event-log.js';
2
+ import type { GenericMessageReply } from '../core/message-reply.js';
3
+ import type { AuthorizationModel, GenericMessage } from './message-types.js';
4
+ import type { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
5
+
6
+ export type EventsGetDescriptor = {
7
+ interface : DwnInterfaceName.Events;
8
+ method: DwnMethodName.Get;
9
+ watermark?: string;
10
+ messageTimestamp: string;
11
+ };
12
+
13
+ export type EventsGetMessage = GenericMessage & {
14
+ authorization: AuthorizationModel; // overriding `GenericMessage` with `authorization` being required
15
+ descriptor: EventsGetDescriptor;
16
+ };
17
+
18
+ export type EventsGetReply = GenericMessageReply & {
19
+ events?: Event[];
20
+ };