@enbox/agent 0.0.1

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 (348) hide show
  1. package/dist/browser.js +2215 -0
  2. package/dist/browser.js.map +7 -0
  3. package/dist/browser.mjs +2215 -0
  4. package/dist/browser.mjs.map +7 -0
  5. package/dist/cjs/index.js +8530 -0
  6. package/dist/cjs/index.js.map +7 -0
  7. package/dist/cjs/package.json +1 -0
  8. package/dist/esm/agent-did-resolver-cache.js +87 -0
  9. package/dist/esm/agent-did-resolver-cache.js.map +1 -0
  10. package/dist/esm/bearer-identity.js +41 -0
  11. package/dist/esm/bearer-identity.js.map +1 -0
  12. package/dist/esm/connect.js +191 -0
  13. package/dist/esm/connect.js.map +1 -0
  14. package/dist/esm/crypto-api.js +346 -0
  15. package/dist/esm/crypto-api.js.map +1 -0
  16. package/dist/esm/did-api.js +278 -0
  17. package/dist/esm/did-api.js.map +1 -0
  18. package/dist/esm/dwn-api.js +336 -0
  19. package/dist/esm/dwn-api.js.map +1 -0
  20. package/dist/esm/dwn-registrar.js +120 -0
  21. package/dist/esm/dwn-registrar.js.map +1 -0
  22. package/dist/esm/hd-identity-vault.js +729 -0
  23. package/dist/esm/hd-identity-vault.js.map +1 -0
  24. package/dist/esm/identity-api.js +262 -0
  25. package/dist/esm/identity-api.js.map +1 -0
  26. package/dist/esm/index.js +23 -0
  27. package/dist/esm/index.js.map +1 -0
  28. package/dist/esm/local-key-manager.js +498 -0
  29. package/dist/esm/local-key-manager.js.map +1 -0
  30. package/dist/esm/oidc.js +507 -0
  31. package/dist/esm/oidc.js.map +1 -0
  32. package/dist/esm/permissions-api.js +322 -0
  33. package/dist/esm/permissions-api.js.map +1 -0
  34. package/dist/esm/prototyping/clients/dwn-rpc-types.js +2 -0
  35. package/dist/esm/prototyping/clients/dwn-rpc-types.js.map +1 -0
  36. package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js +74 -0
  37. package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js.map +1 -0
  38. package/dist/esm/prototyping/clients/http-dwn-rpc-client.js +105 -0
  39. package/dist/esm/prototyping/clients/http-dwn-rpc-client.js.map +1 -0
  40. package/dist/esm/prototyping/clients/json-rpc-socket.js +150 -0
  41. package/dist/esm/prototyping/clients/json-rpc-socket.js.map +1 -0
  42. package/dist/esm/prototyping/clients/json-rpc.js +58 -0
  43. package/dist/esm/prototyping/clients/json-rpc.js.map +1 -0
  44. package/dist/esm/prototyping/clients/server-info-types.js +2 -0
  45. package/dist/esm/prototyping/clients/server-info-types.js.map +1 -0
  46. package/dist/esm/prototyping/clients/web-socket-clients.js +90 -0
  47. package/dist/esm/prototyping/clients/web-socket-clients.js.map +1 -0
  48. package/dist/esm/prototyping/common/object.js +14 -0
  49. package/dist/esm/prototyping/common/object.js.map +1 -0
  50. package/dist/esm/prototyping/common/type-utils.js +2 -0
  51. package/dist/esm/prototyping/common/type-utils.js.map +1 -0
  52. package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js +147 -0
  53. package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js.map +1 -0
  54. package/dist/esm/prototyping/crypto/algorithms/aes-kw.js +137 -0
  55. package/dist/esm/prototyping/crypto/algorithms/aes-kw.js.map +1 -0
  56. package/dist/esm/prototyping/crypto/algorithms/ecdsa.js +307 -0
  57. package/dist/esm/prototyping/crypto/algorithms/ecdsa.js.map +1 -0
  58. package/dist/esm/prototyping/crypto/algorithms/eddsa.js +264 -0
  59. package/dist/esm/prototyping/crypto/algorithms/eddsa.js.map +1 -0
  60. package/dist/esm/prototyping/crypto/algorithms/hkdf.js +39 -0
  61. package/dist/esm/prototyping/crypto/algorithms/hkdf.js.map +1 -0
  62. package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js +41 -0
  63. package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js.map +1 -0
  64. package/dist/esm/prototyping/crypto/crypto-error.js +41 -0
  65. package/dist/esm/prototyping/crypto/crypto-error.js.map +1 -0
  66. package/dist/esm/prototyping/crypto/dsa.js +236 -0
  67. package/dist/esm/prototyping/crypto/dsa.js.map +1 -0
  68. package/dist/esm/prototyping/crypto/jose/jwe-compact.js +130 -0
  69. package/dist/esm/prototyping/crypto/jose/jwe-compact.js.map +1 -0
  70. package/dist/esm/prototyping/crypto/jose/jwe-flattened.js +294 -0
  71. package/dist/esm/prototyping/crypto/jose/jwe-flattened.js.map +1 -0
  72. package/dist/esm/prototyping/crypto/jose/jwe.js +308 -0
  73. package/dist/esm/prototyping/crypto/jose/jwe.js.map +1 -0
  74. package/dist/esm/prototyping/crypto/primitives/aes-gcm.js +352 -0
  75. package/dist/esm/prototyping/crypto/primitives/aes-gcm.js.map +1 -0
  76. package/dist/esm/prototyping/crypto/primitives/aes-kw.js +247 -0
  77. package/dist/esm/prototyping/crypto/primitives/aes-kw.js.map +1 -0
  78. package/dist/esm/prototyping/crypto/primitives/hkdf.js +80 -0
  79. package/dist/esm/prototyping/crypto/primitives/hkdf.js.map +1 -0
  80. package/dist/esm/prototyping/crypto/primitives/pbkdf2.js +85 -0
  81. package/dist/esm/prototyping/crypto/primitives/pbkdf2.js.map +1 -0
  82. package/dist/esm/prototyping/crypto/types/cipher.js +2 -0
  83. package/dist/esm/prototyping/crypto/types/cipher.js.map +1 -0
  84. package/dist/esm/prototyping/crypto/types/crypto-api.js +2 -0
  85. package/dist/esm/prototyping/crypto/types/crypto-api.js.map +1 -0
  86. package/dist/esm/prototyping/crypto/types/key-converter.js +2 -0
  87. package/dist/esm/prototyping/crypto/types/key-converter.js.map +1 -0
  88. package/dist/esm/prototyping/crypto/types/key-deriver.js +2 -0
  89. package/dist/esm/prototyping/crypto/types/key-deriver.js.map +1 -0
  90. package/dist/esm/prototyping/crypto/types/key-io.js +2 -0
  91. package/dist/esm/prototyping/crypto/types/key-io.js.map +1 -0
  92. package/dist/esm/prototyping/crypto/types/key-manager.js +2 -0
  93. package/dist/esm/prototyping/crypto/types/key-manager.js.map +1 -0
  94. package/dist/esm/prototyping/crypto/types/key-wrapper.js +2 -0
  95. package/dist/esm/prototyping/crypto/types/key-wrapper.js.map +1 -0
  96. package/dist/esm/prototyping/crypto/types/params-direct.js +2 -0
  97. package/dist/esm/prototyping/crypto/types/params-direct.js.map +1 -0
  98. package/dist/esm/prototyping/crypto/types/params-kms.js +2 -0
  99. package/dist/esm/prototyping/crypto/types/params-kms.js.map +1 -0
  100. package/dist/esm/prototyping/crypto/utils.js +19 -0
  101. package/dist/esm/prototyping/crypto/utils.js.map +1 -0
  102. package/dist/esm/prototyping/dids/resolver-cache-memory.js +77 -0
  103. package/dist/esm/prototyping/dids/resolver-cache-memory.js.map +1 -0
  104. package/dist/esm/prototyping/dids/utils.js +9 -0
  105. package/dist/esm/prototyping/dids/utils.js.map +1 -0
  106. package/dist/esm/rpc-client.js +123 -0
  107. package/dist/esm/rpc-client.js.map +1 -0
  108. package/dist/esm/store-data-protocols.js +38 -0
  109. package/dist/esm/store-data-protocols.js.map +1 -0
  110. package/dist/esm/store-data.js +320 -0
  111. package/dist/esm/store-data.js.map +1 -0
  112. package/dist/esm/store-did.js +136 -0
  113. package/dist/esm/store-did.js.map +1 -0
  114. package/dist/esm/store-identity.js +140 -0
  115. package/dist/esm/store-identity.js.map +1 -0
  116. package/dist/esm/store-key.js +136 -0
  117. package/dist/esm/store-key.js.map +1 -0
  118. package/dist/esm/sync-api.js +61 -0
  119. package/dist/esm/sync-api.js.map +1 -0
  120. package/dist/esm/sync-engine-level.js +618 -0
  121. package/dist/esm/sync-engine-level.js.map +1 -0
  122. package/dist/esm/test-harness.js +239 -0
  123. package/dist/esm/test-harness.js.map +1 -0
  124. package/dist/esm/types/agent.js +2 -0
  125. package/dist/esm/types/agent.js.map +1 -0
  126. package/dist/esm/types/dwn.js +31 -0
  127. package/dist/esm/types/dwn.js.map +1 -0
  128. package/dist/esm/types/identity-vault.js +2 -0
  129. package/dist/esm/types/identity-vault.js.map +1 -0
  130. package/dist/esm/types/identity.js +2 -0
  131. package/dist/esm/types/identity.js.map +1 -0
  132. package/dist/esm/types/key-manager.js +2 -0
  133. package/dist/esm/types/key-manager.js.map +1 -0
  134. package/dist/esm/types/permissions.js +2 -0
  135. package/dist/esm/types/permissions.js.map +1 -0
  136. package/dist/esm/types/sync.js +2 -0
  137. package/dist/esm/types/sync.js.map +1 -0
  138. package/dist/esm/types/vc.js +5 -0
  139. package/dist/esm/types/vc.js.map +1 -0
  140. package/dist/esm/utils-internal.js +147 -0
  141. package/dist/esm/utils-internal.js.map +1 -0
  142. package/dist/esm/utils.js +161 -0
  143. package/dist/esm/utils.js.map +1 -0
  144. package/dist/types/agent-did-resolver-cache.d.ts +30 -0
  145. package/dist/types/agent-did-resolver-cache.d.ts.map +1 -0
  146. package/dist/types/bearer-identity.d.ts +31 -0
  147. package/dist/types/bearer-identity.d.ts.map +1 -0
  148. package/dist/types/connect.d.ts +88 -0
  149. package/dist/types/connect.d.ts.map +1 -0
  150. package/dist/types/crypto-api.d.ts +286 -0
  151. package/dist/types/crypto-api.d.ts.map +1 -0
  152. package/dist/types/did-api.d.ts +119 -0
  153. package/dist/types/did-api.d.ts.map +1 -0
  154. package/dist/types/dwn-api.d.ts +66 -0
  155. package/dist/types/dwn-api.d.ts.map +1 -0
  156. package/dist/types/dwn-registrar.d.ts +29 -0
  157. package/dist/types/dwn-registrar.d.ts.map +1 -0
  158. package/dist/types/hd-identity-vault.d.ts +306 -0
  159. package/dist/types/hd-identity-vault.d.ts.map +1 -0
  160. package/dist/types/identity-api.d.ts +107 -0
  161. package/dist/types/identity-api.d.ts.map +1 -0
  162. package/dist/types/index.d.ts +30 -0
  163. package/dist/types/index.d.ts.map +1 -0
  164. package/dist/types/local-key-manager.d.ts +311 -0
  165. package/dist/types/local-key-manager.d.ts.map +1 -0
  166. package/dist/types/oidc.d.ts +247 -0
  167. package/dist/types/oidc.d.ts.map +1 -0
  168. package/dist/types/permissions-api.d.ts +35 -0
  169. package/dist/types/permissions-api.d.ts.map +1 -0
  170. package/dist/types/prototyping/clients/dwn-rpc-types.d.ts +45 -0
  171. package/dist/types/prototyping/clients/dwn-rpc-types.d.ts.map +1 -0
  172. package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts +57 -0
  173. package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts.map +1 -0
  174. package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts +13 -0
  175. package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts.map +1 -0
  176. package/dist/types/prototyping/clients/json-rpc-socket.d.ts +43 -0
  177. package/dist/types/prototyping/clients/json-rpc-socket.d.ts.map +1 -0
  178. package/dist/types/prototyping/clients/json-rpc.d.ts +49 -0
  179. package/dist/types/prototyping/clients/json-rpc.d.ts.map +1 -0
  180. package/dist/types/prototyping/clients/server-info-types.d.ts +20 -0
  181. package/dist/types/prototyping/clients/server-info-types.d.ts.map +1 -0
  182. package/dist/types/prototyping/clients/web-socket-clients.d.ts +10 -0
  183. package/dist/types/prototyping/clients/web-socket-clients.d.ts.map +1 -0
  184. package/dist/types/prototyping/common/object.d.ts +2 -0
  185. package/dist/types/prototyping/common/object.d.ts.map +1 -0
  186. package/dist/types/prototyping/common/type-utils.d.ts +7 -0
  187. package/dist/types/prototyping/common/type-utils.d.ts.map +1 -0
  188. package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts +151 -0
  189. package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts.map +1 -0
  190. package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts +109 -0
  191. package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts.map +1 -0
  192. package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts +160 -0
  193. package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts.map +1 -0
  194. package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts +157 -0
  195. package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts.map +1 -0
  196. package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts +21 -0
  197. package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts.map +1 -0
  198. package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts +21 -0
  199. package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts.map +1 -0
  200. package/dist/types/prototyping/crypto/crypto-error.d.ts +29 -0
  201. package/dist/types/prototyping/crypto/crypto-error.d.ts.map +1 -0
  202. package/dist/types/prototyping/crypto/dsa.d.ts +169 -0
  203. package/dist/types/prototyping/crypto/dsa.d.ts.map +1 -0
  204. package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts +135 -0
  205. package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts.map +1 -0
  206. package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts +134 -0
  207. package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts.map +1 -0
  208. package/dist/types/prototyping/crypto/jose/jwe.d.ts +378 -0
  209. package/dist/types/prototyping/crypto/jose/jwe.d.ts.map +1 -0
  210. package/dist/types/prototyping/crypto/primitives/aes-gcm.d.ts +245 -0
  211. package/dist/types/prototyping/crypto/primitives/aes-gcm.d.ts.map +1 -0
  212. package/dist/types/prototyping/crypto/primitives/aes-kw.d.ts +103 -0
  213. package/dist/types/prototyping/crypto/primitives/aes-kw.d.ts.map +1 -0
  214. package/dist/types/prototyping/crypto/primitives/hkdf.d.ts +90 -0
  215. package/dist/types/prototyping/crypto/primitives/hkdf.d.ts.map +1 -0
  216. package/dist/types/prototyping/crypto/primitives/pbkdf2.d.ts +84 -0
  217. package/dist/types/prototyping/crypto/primitives/pbkdf2.d.ts.map +1 -0
  218. package/dist/types/prototyping/crypto/types/cipher.d.ts +14 -0
  219. package/dist/types/prototyping/crypto/types/cipher.d.ts.map +1 -0
  220. package/dist/types/prototyping/crypto/types/crypto-api.d.ts +35 -0
  221. package/dist/types/prototyping/crypto/types/crypto-api.d.ts.map +1 -0
  222. package/dist/types/prototyping/crypto/types/key-converter.d.ts +49 -0
  223. package/dist/types/prototyping/crypto/types/key-converter.d.ts.map +1 -0
  224. package/dist/types/prototyping/crypto/types/key-deriver.d.ts +50 -0
  225. package/dist/types/prototyping/crypto/types/key-deriver.d.ts.map +1 -0
  226. package/dist/types/prototyping/crypto/types/key-io.d.ts +49 -0
  227. package/dist/types/prototyping/crypto/types/key-io.d.ts.map +1 -0
  228. package/dist/types/prototyping/crypto/types/key-manager.d.ts +69 -0
  229. package/dist/types/prototyping/crypto/types/key-manager.d.ts.map +1 -0
  230. package/dist/types/prototyping/crypto/types/key-wrapper.d.ts +14 -0
  231. package/dist/types/prototyping/crypto/types/key-wrapper.d.ts.map +1 -0
  232. package/dist/types/prototyping/crypto/types/params-direct.d.ts +75 -0
  233. package/dist/types/prototyping/crypto/types/params-direct.d.ts.map +1 -0
  234. package/dist/types/prototyping/crypto/types/params-kms.d.ts +63 -0
  235. package/dist/types/prototyping/crypto/types/params-kms.d.ts.map +1 -0
  236. package/dist/types/prototyping/crypto/utils.d.ts +7 -0
  237. package/dist/types/prototyping/crypto/utils.d.ts.map +1 -0
  238. package/dist/types/prototyping/dids/resolver-cache-memory.d.ts +57 -0
  239. package/dist/types/prototyping/dids/resolver-cache-memory.d.ts.map +1 -0
  240. package/dist/types/prototyping/dids/utils.d.ts +3 -0
  241. package/dist/types/prototyping/dids/utils.d.ts.map +1 -0
  242. package/dist/types/rpc-client.d.ts +51 -0
  243. package/dist/types/rpc-client.d.ts.map +1 -0
  244. package/dist/types/store-data-protocols.d.ts +4 -0
  245. package/dist/types/store-data-protocols.d.ts.map +1 -0
  246. package/dist/types/store-data.d.ts +95 -0
  247. package/dist/types/store-data.d.ts.map +1 -0
  248. package/dist/types/store-did.d.ts +33 -0
  249. package/dist/types/store-did.d.ts.map +1 -0
  250. package/dist/types/store-identity.d.ts +34 -0
  251. package/dist/types/store-identity.d.ts.map +1 -0
  252. package/dist/types/store-key.d.ts +32 -0
  253. package/dist/types/store-key.d.ts.map +1 -0
  254. package/dist/types/sync-api.d.ts +41 -0
  255. package/dist/types/sync-api.d.ts.map +1 -0
  256. package/dist/types/sync-engine-level.d.ts +85 -0
  257. package/dist/types/sync-engine-level.d.ts.map +1 -0
  258. package/dist/types/test-harness.d.ts +69 -0
  259. package/dist/types/test-harness.d.ts.map +1 -0
  260. package/dist/types/types/agent.d.ts +172 -0
  261. package/dist/types/types/agent.d.ts.map +1 -0
  262. package/dist/types/types/dwn.d.ts +178 -0
  263. package/dist/types/types/dwn.d.ts.map +1 -0
  264. package/dist/types/types/identity-vault.d.ts +129 -0
  265. package/dist/types/types/identity-vault.d.ts.map +1 -0
  266. package/dist/types/types/identity.d.ts +16 -0
  267. package/dist/types/types/identity.d.ts.map +1 -0
  268. package/dist/types/types/key-manager.d.ts +9 -0
  269. package/dist/types/types/key-manager.d.ts.map +1 -0
  270. package/dist/types/types/permissions.d.ts +98 -0
  271. package/dist/types/types/permissions.d.ts.map +1 -0
  272. package/dist/types/types/sync.d.ts +66 -0
  273. package/dist/types/types/sync.d.ts.map +1 -0
  274. package/dist/types/types/vc.d.ts +7 -0
  275. package/dist/types/types/vc.d.ts.map +1 -0
  276. package/dist/types/utils-internal.d.ts +50 -0
  277. package/dist/types/utils-internal.d.ts.map +1 -0
  278. package/dist/types/utils.d.ts +37 -0
  279. package/dist/types/utils.d.ts.map +1 -0
  280. package/package.json +112 -0
  281. package/src/agent-did-resolver-cache.ts +95 -0
  282. package/src/bearer-identity.ts +42 -0
  283. package/src/connect.ts +296 -0
  284. package/src/crypto-api.ts +593 -0
  285. package/src/did-api.ts +429 -0
  286. package/src/dwn-api.ts +462 -0
  287. package/src/dwn-registrar.ts +127 -0
  288. package/src/hd-identity-vault.ts +853 -0
  289. package/src/identity-api.ts +324 -0
  290. package/src/index.ts +30 -0
  291. package/src/local-key-manager.ts +672 -0
  292. package/src/oidc.ts +857 -0
  293. package/src/permissions-api.ts +408 -0
  294. package/src/prototyping/clients/dwn-rpc-types.ts +55 -0
  295. package/src/prototyping/clients/dwn-server-info-cache-memory.ts +79 -0
  296. package/src/prototyping/clients/http-dwn-rpc-client.ts +110 -0
  297. package/src/prototyping/clients/json-rpc-socket.ts +169 -0
  298. package/src/prototyping/clients/json-rpc.ts +113 -0
  299. package/src/prototyping/clients/server-info-types.ts +21 -0
  300. package/src/prototyping/clients/web-socket-clients.ts +100 -0
  301. package/src/prototyping/common/object.ts +15 -0
  302. package/src/prototyping/common/type-utils.ts +6 -0
  303. package/src/prototyping/crypto/algorithms/aes-gcm.ts +211 -0
  304. package/src/prototyping/crypto/algorithms/aes-kw.ts +164 -0
  305. package/src/prototyping/crypto/algorithms/ecdsa.ts +365 -0
  306. package/src/prototyping/crypto/algorithms/eddsa.ts +310 -0
  307. package/src/prototyping/crypto/algorithms/hkdf.ts +40 -0
  308. package/src/prototyping/crypto/algorithms/pbkdf2.ts +44 -0
  309. package/src/prototyping/crypto/crypto-error.ts +45 -0
  310. package/src/prototyping/crypto/dsa.ts +367 -0
  311. package/src/prototyping/crypto/jose/jwe-compact.ts +225 -0
  312. package/src/prototyping/crypto/jose/jwe-flattened.ts +459 -0
  313. package/src/prototyping/crypto/jose/jwe.ts +653 -0
  314. package/src/prototyping/crypto/primitives/aes-gcm.ts +374 -0
  315. package/src/prototyping/crypto/primitives/aes-kw.ts +271 -0
  316. package/src/prototyping/crypto/primitives/hkdf.ts +121 -0
  317. package/src/prototyping/crypto/primitives/pbkdf2.ts +116 -0
  318. package/src/prototyping/crypto/types/cipher.ts +17 -0
  319. package/src/prototyping/crypto/types/crypto-api.ts +78 -0
  320. package/src/prototyping/crypto/types/key-converter.ts +53 -0
  321. package/src/prototyping/crypto/types/key-deriver.ts +56 -0
  322. package/src/prototyping/crypto/types/key-io.ts +51 -0
  323. package/src/prototyping/crypto/types/key-manager.ts +83 -0
  324. package/src/prototyping/crypto/types/key-wrapper.ts +17 -0
  325. package/src/prototyping/crypto/types/params-direct.ts +95 -0
  326. package/src/prototyping/crypto/types/params-kms.ts +76 -0
  327. package/src/prototyping/crypto/utils.ts +41 -0
  328. package/src/prototyping/dids/resolver-cache-memory.ts +83 -0
  329. package/src/prototyping/dids/utils.ts +10 -0
  330. package/src/rpc-client.ts +162 -0
  331. package/src/store-data-protocols.ts +40 -0
  332. package/src/store-data.ts +400 -0
  333. package/src/store-did.ts +105 -0
  334. package/src/store-identity.ts +109 -0
  335. package/src/store-key.ts +104 -0
  336. package/src/sync-api.ts +71 -0
  337. package/src/sync-engine-level.ts +714 -0
  338. package/src/test-harness.ts +330 -0
  339. package/src/types/agent.ts +195 -0
  340. package/src/types/dwn.ts +278 -0
  341. package/src/types/identity-vault.ts +137 -0
  342. package/src/types/identity.ts +18 -0
  343. package/src/types/key-manager.ts +15 -0
  344. package/src/types/permissions.ts +115 -0
  345. package/src/types/sync.ts +58 -0
  346. package/src/types/vc.ts +7 -0
  347. package/src/utils-internal.ts +157 -0
  348. package/src/utils.ts +181 -0
@@ -0,0 +1,498 @@
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
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { isPrivateJwk, Sha2Algorithm, EcdsaAlgorithm, EdDsaAlgorithm, AesGcmAlgorithm, KEY_URI_PREFIX_JWK, computeJwkThumbprint, } from '@enbox/crypto';
22
+ import { InMemoryKeyStore } from './store-key.js';
23
+ import { AesKwAlgorithm } from './prototyping/crypto/algorithms/aes-kw.js';
24
+ import { CryptoError, CryptoErrorCode } from './prototyping/crypto/crypto-error.js';
25
+ /**
26
+ * `supportedAlgorithms` is an object mapping algorithm names to their respective implementations
27
+ * Each entry in this map specifies the algorithm name and its associated properties, including the
28
+ * implementation class and any relevant names or identifiers for the algorithm. This structure
29
+ * allows for easy retrieval and instantiation of algorithm implementations based on the algorithm
30
+ * name or key specification. It facilitates the support of multiple algorithms within the
31
+ * `LocalKeyManager` class.
32
+ */
33
+ const supportedAlgorithms = {
34
+ 'AES-GCM': {
35
+ implementation: AesGcmAlgorithm,
36
+ names: ['A128GCM', 'A192GCM', 'A256GCM'],
37
+ },
38
+ 'AES-KW': {
39
+ implementation: AesKwAlgorithm,
40
+ names: ['A128KW', 'A192KW', 'A256KW'],
41
+ },
42
+ 'Ed25519': {
43
+ implementation: EdDsaAlgorithm,
44
+ names: ['Ed25519'],
45
+ },
46
+ 'secp256k1': {
47
+ implementation: EcdsaAlgorithm,
48
+ names: ['ES256K', 'secp256k1'],
49
+ },
50
+ 'secp256r1': {
51
+ implementation: EcdsaAlgorithm,
52
+ names: ['ES256', 'secp256r1'],
53
+ },
54
+ 'SHA-256': {
55
+ implementation: Sha2Algorithm,
56
+ names: ['SHA-256']
57
+ }
58
+ };
59
+ export class LocalKeyManager {
60
+ constructor({ agent, keyStore } = {}) {
61
+ /**
62
+ * A private map that stores instances of cryptographic algorithm implementations. Each key in
63
+ * this map is an `AlgorithmConstructor`, and its corresponding value is an instance of a class
64
+ * that implements a specific cryptographic algorithm. This map is used to cache and reuse
65
+ * instances for performance optimization, ensuring that each algorithm is instantiated only once.
66
+ */
67
+ this._algorithmInstances = new Map();
68
+ this._agent = agent;
69
+ this._keyStore = keyStore !== null && keyStore !== void 0 ? keyStore : new InMemoryKeyStore();
70
+ }
71
+ /**
72
+ * Retrieves the `Web5PlatformAgent` execution context.
73
+ *
74
+ * @returns The `Web5PlatformAgent` instance that represents the current execution context.
75
+ * @throws Will throw an error if the `agent` instance property is undefined.
76
+ */
77
+ get agent() {
78
+ if (this._agent === undefined) {
79
+ throw new Error('LocalKeyManager: Unable to determine agent execution context.');
80
+ }
81
+ return this._agent;
82
+ }
83
+ set agent(agent) {
84
+ this._agent = agent;
85
+ }
86
+ decrypt(_a) {
87
+ var { keyUri } = _a, params = __rest(_a, ["keyUri"]);
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ // Get the private key from the key store.
90
+ const privateKey = yield this.getPrivateKey({ keyUri });
91
+ // Determine the algorithm name based on the JWK's `alg` property.
92
+ const algorithm = this.getAlgorithmName({ key: privateKey });
93
+ // Get the cipher algorithm based on the algorithm name.
94
+ const cipher = this.getAlgorithm({ algorithm });
95
+ // Encrypt the data.
96
+ const ciphertext = yield cipher.decrypt(Object.assign({ key: privateKey }, params));
97
+ return ciphertext;
98
+ });
99
+ }
100
+ digest(_params) {
101
+ throw new Error('Method not implemented.');
102
+ }
103
+ encrypt(_a) {
104
+ var { keyUri } = _a, params = __rest(_a, ["keyUri"]);
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ // Get the private key from the key store.
107
+ const privateKey = yield this.getPrivateKey({ keyUri });
108
+ // Determine the algorithm name based on the JWK's `alg` property.
109
+ const algorithm = this.getAlgorithmName({ key: privateKey });
110
+ // Get the cipher algorithm based on the algorithm name.
111
+ const cipher = this.getAlgorithm({ algorithm });
112
+ // Encrypt the data.
113
+ const ciphertext = yield cipher.encrypt(Object.assign({ key: privateKey }, params));
114
+ return ciphertext;
115
+ });
116
+ }
117
+ /**
118
+ * Exports a private key identified by the provided key URI from the local KMS.
119
+ *
120
+ * @remarks
121
+ * This method retrieves the key from the key store and returns it. It is primarily used
122
+ * for extracting keys for backup or transfer purposes.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const keyManager = new LocalKeyManager();
127
+ * const keyUri = await keyManager.generateKey({ algorithm: 'Ed25519' });
128
+ * const privateKey = await keyManager.exportKey({ keyUri });
129
+ * ```
130
+ *
131
+ * @param params - Parameters for exporting the key.
132
+ * @param params.keyUri - The key URI identifying the key to export.
133
+ *
134
+ * @returns A Promise resolving to the JWK representation of the exported key.
135
+ */
136
+ exportKey({ keyUri }) {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ // Get the private key from the key store.
139
+ const privateKey = yield this.getPrivateKey({ keyUri });
140
+ return privateKey;
141
+ });
142
+ }
143
+ /**
144
+ * Generates a new cryptographic key in the local KMS with the specified algorithm and returns a
145
+ * unique key URI which can be used to reference the key in subsequent operations.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * const keyManager = new LocalKeyManager();
150
+ * const keyUri = await keyManager.generateKey({ algorithm: 'Ed25519' });
151
+ * console.log(keyUri); // Outputs the key URI
152
+ * ```
153
+ *
154
+ * @param params - The parameters for key generation.
155
+ * @param params.algorithm - The algorithm to use for key generation, defined in `SupportedAlgorithm`.
156
+ *
157
+ * @returns A Promise that resolves to the key URI, a unique identifier for the generated key.
158
+ */
159
+ generateKey({ algorithm: algorithmIdentifier }) {
160
+ var _a;
161
+ return __awaiter(this, void 0, void 0, function* () {
162
+ // Determine the algorithm name based on the given algorithm identifier.
163
+ const algorithm = this.getAlgorithmName({ key: { alg: algorithmIdentifier } });
164
+ // Get the key generator implementation based on the algorithm.
165
+ const keyGenerator = this.getAlgorithm({ algorithm });
166
+ // Generate the key.
167
+ const privateKey = yield keyGenerator.generateKey({ algorithm: algorithmIdentifier });
168
+ // If the key ID is undefined, set it to the JWK thumbprint.
169
+ (_a = privateKey.kid) !== null && _a !== void 0 ? _a : (privateKey.kid = yield computeJwkThumbprint({ jwk: privateKey }));
170
+ // Compute the key URI for the key.
171
+ const keyUri = yield this.getKeyUri({ key: privateKey });
172
+ // Store the key in the key store.
173
+ yield this._keyStore.set({
174
+ id: keyUri,
175
+ data: privateKey,
176
+ agent: this.agent,
177
+ preventDuplicates: false,
178
+ useCache: true
179
+ });
180
+ return keyUri;
181
+ });
182
+ }
183
+ /**
184
+ * Computes the Key URI for a given public JWK (JSON Web Key).
185
+ *
186
+ * @remarks
187
+ * This method generates a {@link https://datatracker.ietf.org/doc/html/rfc3986 | URI}
188
+ * (Uniform Resource Identifier) for the given JWK, which uniquely identifies the key across all
189
+ * `CryptoApi` implementations. The key URI is constructed by appending the
190
+ * {@link https://datatracker.ietf.org/doc/html/rfc7638 | JWK thumbprint} to the prefix
191
+ * `urn:jwk:`. The JWK thumbprint is deterministically computed from the JWK and is consistent
192
+ * regardless of property order or optional property inclusion in the JWK. This ensures that the
193
+ * same key material represented as a JWK will always yield the same thumbprint, and therefore,
194
+ * the same key URI.
195
+ *
196
+ * @example
197
+ * ```ts
198
+ * const keyManager = new LocalKeyManager();
199
+ * const keyUri = await keyManager.generateKey({ algorithm: 'Ed25519' });
200
+ * const publicKey = await keyManager.getPublicKey({ keyUri });
201
+ * const keyUriFromPublicKey = await keyManager.getKeyUri({ key: publicKey });
202
+ * console.log(keyUri === keyUriFromPublicKey); // Outputs `true`
203
+ * ```
204
+ *
205
+ * @param params - The parameters for getting the key URI.
206
+ * @param params.key - The JWK for which to compute the key URI.
207
+ *
208
+ * @returns A Promise that resolves to the key URI as a string.
209
+ */
210
+ getKeyUri({ key }) {
211
+ return __awaiter(this, void 0, void 0, function* () {
212
+ // Compute the JWK thumbprint.
213
+ const jwkThumbprint = yield computeJwkThumbprint({ jwk: key });
214
+ // Construct the key URI by appending the JWK thumbprint to the key URI prefix.
215
+ const keyUri = `${KEY_URI_PREFIX_JWK}${jwkThumbprint}`;
216
+ return keyUri;
217
+ });
218
+ }
219
+ /**
220
+ * Retrieves the public key associated with a previously generated private key, identified by
221
+ * the provided key URI.
222
+ *
223
+ * @example
224
+ * ```ts
225
+ * const keyManager = new LocalKeyManager();
226
+ * const keyUri = await keyManager.generateKey({ algorithm: 'Ed25519' });
227
+ * const publicKey = await keyManager.getPublicKey({ keyUri });
228
+ * ```
229
+ *
230
+ * @param params - The parameters for retrieving the public key.
231
+ * @param params.keyUri - The key URI of the private key to retrieve the public key for.
232
+ *
233
+ * @returns A Promise that resolves to the public key in JWK format.
234
+ */
235
+ getPublicKey({ keyUri }) {
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ // Get the private key from the key store.
238
+ const privateKey = yield this.getPrivateKey({ keyUri });
239
+ // Determine the algorithm name based on the JWK's `alg` and `crv` properties.
240
+ const algorithm = this.getAlgorithmName({ key: privateKey });
241
+ // Get the key generator based on the algorithm name.
242
+ const keyGenerator = this.getAlgorithm({ algorithm });
243
+ // Get the public key properties from the private JWK.
244
+ const publicKey = yield keyGenerator.getPublicKey({ key: privateKey });
245
+ return publicKey;
246
+ });
247
+ }
248
+ /**
249
+ * Imports a private key into the local KMS.
250
+ *
251
+ * @remarks
252
+ * This method stores the provided JWK in the key store, making it available for subsequent
253
+ * cryptographic operations. It is particularly useful for initializing the KMS with pre-existing
254
+ * keys or for restoring keys from backups.
255
+ *
256
+ * Note that, if defined, the `kid` (key ID) property of the JWK is used as the key URI for the
257
+ * imported key. If the `kid` property is not provided, the key URI is computed from the JWK
258
+ * thumbprint of the key.
259
+ *
260
+ * @example
261
+ * ```ts
262
+ * const keyManager = new LocalKeyManager();
263
+ * const privateKey = { ... } // A private key in JWK format
264
+ * const keyUri = await keyManager.importKey({ key: privateKey });
265
+ * ```
266
+ *
267
+ * @param params - Parameters for importing the key.
268
+ * @param params.key - The private key to import to in JWK format.
269
+ *
270
+ * @returns A Promise resolving to the key URI, uniquely identifying the imported key.
271
+ */
272
+ importKey({ key }) {
273
+ var _a;
274
+ return __awaiter(this, void 0, void 0, function* () {
275
+ if (!isPrivateJwk(key))
276
+ throw new TypeError('Invalid key provided. Must be a private key in JWK format.');
277
+ // Make a deep copy of the key to avoid mutating the original.
278
+ const privateKey = structuredClone(key);
279
+ // If the key ID is undefined, set it to the JWK thumbprint.
280
+ (_a = privateKey.kid) !== null && _a !== void 0 ? _a : (privateKey.kid = yield computeJwkThumbprint({ jwk: privateKey }));
281
+ // Compute the key URI for the key.
282
+ const keyUri = yield this.getKeyUri({ key: privateKey });
283
+ // Store the key in the key store.
284
+ yield this._keyStore.set({
285
+ id: keyUri,
286
+ data: privateKey,
287
+ agent: this.agent,
288
+ preventDuplicates: true,
289
+ useCache: true
290
+ });
291
+ return keyUri;
292
+ });
293
+ }
294
+ /**
295
+ * Signs the provided data using the private key identified by the provided key URI.
296
+ *
297
+ * @remarks
298
+ * This method uses the signature algorithm determined by the `alg` and/or `crv` properties of the
299
+ * private key identified by the provided key URI to sign the provided data. The signature can
300
+ * later be verified by parties with access to the corresponding public key, ensuring that the
301
+ * data has not been tampered with and was indeed signed by the holder of the private key.
302
+ *
303
+ * @example
304
+ * ```ts
305
+ * const keyManager = new LocalKeyManager();
306
+ * const keyUri = await keyManager.generateKey({ algorithm: 'Ed25519' });
307
+ * const data = new TextEncoder().encode('Message to sign');
308
+ * const signature = await keyManager.sign({ keyUri, data });
309
+ * ```
310
+ *
311
+ * @param params - The parameters for the signing operation.
312
+ * @param params.keyUri - The key URI of the private key to use for signing.
313
+ * @param params.data - The data to sign.
314
+ *
315
+ * @returns A Promise resolving to the digital signature as a `Uint8Array`.
316
+ */
317
+ sign({ keyUri, data }) {
318
+ return __awaiter(this, void 0, void 0, function* () {
319
+ // Get the private key from the key store.
320
+ const privateKey = yield this.getPrivateKey({ keyUri });
321
+ // Determine the algorithm name based on the JWK's `alg` and `crv` properties.
322
+ const algorithm = this.getAlgorithmName({ key: privateKey });
323
+ // Get the signature algorithm based on the algorithm name.
324
+ const signer = this.getAlgorithm({ algorithm });
325
+ // Sign the data.
326
+ const signature = signer.sign({ data, key: privateKey });
327
+ return signature;
328
+ });
329
+ }
330
+ unwrapKey({ wrappedKeyBytes, wrappedKeyAlgorithm, decryptionKeyUri }) {
331
+ return __awaiter(this, void 0, void 0, function* () {
332
+ // Get the private key from the key store.
333
+ const decryptionKey = yield this.getPrivateKey({ keyUri: decryptionKeyUri });
334
+ // Determine the algorithm name based on the JWK's `alg` property.
335
+ const algorithm = this.getAlgorithmName({ key: decryptionKey });
336
+ // Get the key wrapping algorithm based on the algorithm name.
337
+ const keyWrapper = this.getAlgorithm({ algorithm });
338
+ // Decrypt the key.
339
+ const unwrappedKey = yield keyWrapper.unwrapKey({ wrappedKeyBytes, wrappedKeyAlgorithm, decryptionKey });
340
+ return unwrappedKey;
341
+ });
342
+ }
343
+ /**
344
+ * Verifies a digital signature associated the provided data using the provided key.
345
+ *
346
+ * @remarks
347
+ * This method uses the signature algorithm determined by the `alg` and/or `crv` properties of the
348
+ * provided key to check the validity of a digital signature against the original data. It
349
+ * confirms whether the signature was created by the holder of the corresponding private key and
350
+ * that the data has not been tampered with.
351
+ *
352
+ * @example
353
+ * ```ts
354
+ * const keyManager = new LocalKeyManager();
355
+ * const keyUri = await keyManager.generateKey({ algorithm: 'Ed25519' });
356
+ * const data = new TextEncoder().encode('Message to sign');
357
+ * const signature = await keyManager.sign({ keyUri, data });
358
+ * const isSignatureValid = await keyManager.verify({ keyUri, data, signature });
359
+ * ```
360
+ *
361
+ * @param params - The parameters for the verification operation.
362
+ * @param params.key - The key to use for verification.
363
+ * @param params.signature - The signature to verify.
364
+ * @param params.data - The data to verify.
365
+ *
366
+ * @returns A Promise resolving to a boolean indicating whether the signature is valid.
367
+ */
368
+ verify({ key, signature, data }) {
369
+ return __awaiter(this, void 0, void 0, function* () {
370
+ // Determine the algorithm name based on the JWK's `alg` and `crv` properties.
371
+ const algorithm = this.getAlgorithmName({ key });
372
+ // Get the signature algorithm based on the algorithm name.
373
+ const signer = this.getAlgorithm({ algorithm });
374
+ // Verify the signature.
375
+ const isSignatureValid = signer.verify({ key, signature, data });
376
+ return isSignatureValid;
377
+ });
378
+ }
379
+ wrapKey({ unwrappedKey, encryptionKeyUri }) {
380
+ return __awaiter(this, void 0, void 0, function* () {
381
+ // Get the private key from the key store.
382
+ const encryptionKey = yield this.getPrivateKey({ keyUri: encryptionKeyUri });
383
+ // Determine the algorithm name based on the JWK's `alg` property.
384
+ const algorithm = this.getAlgorithmName({ key: encryptionKey });
385
+ // Get the key wrapping algorithm based on the algorithm name.
386
+ const keyWrapper = this.getAlgorithm({ algorithm });
387
+ // Encrypt the key.
388
+ const wrappedKeyBytes = yield keyWrapper.wrapKey({ unwrappedKey, encryptionKey });
389
+ return wrappedKeyBytes;
390
+ });
391
+ }
392
+ deleteKey({ keyUri }) {
393
+ return __awaiter(this, void 0, void 0, function* () {
394
+ // Get the private key from the key store.
395
+ const jwk = yield this._keyStore.get({ id: keyUri, agent: this.agent, useCache: true });
396
+ if (!jwk) {
397
+ throw new Error(`Key not found: ${keyUri}`);
398
+ }
399
+ yield this._keyStore.delete({ id: keyUri, agent: this.agent });
400
+ });
401
+ }
402
+ /**
403
+ * Retrieves an algorithm implementation instance based on the provided algorithm name.
404
+ *
405
+ * @remarks
406
+ * This method checks if the requested algorithm is supported and returns a cached instance
407
+ * if available. If an instance does not exist, it creates and caches a new one. This approach
408
+ * optimizes performance by reusing algorithm instances across cryptographic operations.
409
+ *
410
+ * @example
411
+ * ```ts
412
+ * const signer = this.getAlgorithm({ algorithm: 'Ed25519' });
413
+ * ```
414
+ *
415
+ * @param params - The parameters for retrieving the algorithm implementation.
416
+ * @param params.algorithm - The name of the algorithm to retrieve.
417
+ *
418
+ * @returns An instance of the requested algorithm implementation.
419
+ *
420
+ * @throws Error if the requested algorithm is not supported.
421
+ */
422
+ getAlgorithm({ algorithm }) {
423
+ var _a;
424
+ // Check if algorithm is supported.
425
+ const AlgorithmImplementation = (_a = supportedAlgorithms[algorithm]) === null || _a === void 0 ? void 0 : _a['implementation'];
426
+ if (!AlgorithmImplementation) {
427
+ throw new CryptoError(CryptoErrorCode.AlgorithmNotSupported, `Algorithm not supported: ${algorithm}`);
428
+ }
429
+ // Check if instance already exists for the `AlgorithmImplementation`.
430
+ if (!this._algorithmInstances.has(AlgorithmImplementation)) {
431
+ // If not, create a new instance and store it in the cache
432
+ this._algorithmInstances.set(AlgorithmImplementation, new AlgorithmImplementation());
433
+ }
434
+ // Return the cached instance
435
+ return this._algorithmInstances.get(AlgorithmImplementation);
436
+ }
437
+ /**
438
+ * Determines the algorithm name based on the key's properties.
439
+ *
440
+ * @remarks
441
+ * This method facilitates the identification of the correct algorithm for cryptographic
442
+ * operations based on the `alg` or `crv` properties of a {@link Jwk | JWK}.
443
+ *
444
+ * @example
445
+ * ```ts
446
+ * const publicKey = { ... }; // Public key in JWK format
447
+ * const algorithm = this.getAlgorithmName({ key: publicKey });
448
+ * ```
449
+ *
450
+ * @param params - The parameters for determining the algorithm name.
451
+ * @param params.key - A JWK containing the `alg` or `crv` properties.
452
+ *
453
+ * @returns The algorithm name associated with the key.
454
+ *
455
+ * @throws Error if the algorithm name cannot be determined from the provided input.
456
+ */
457
+ getAlgorithmName({ key }) {
458
+ const algProperty = key.alg;
459
+ const crvProperty = key.crv;
460
+ for (const algorithmIdentifier of Object.keys(supportedAlgorithms)) {
461
+ const algorithmNames = supportedAlgorithms[algorithmIdentifier].names;
462
+ if (algProperty && algorithmNames.includes(algProperty)) {
463
+ return algorithmIdentifier;
464
+ }
465
+ else if (crvProperty && algorithmNames.includes(crvProperty)) {
466
+ return algorithmIdentifier;
467
+ }
468
+ }
469
+ throw new CryptoError(CryptoErrorCode.AlgorithmNotSupported, `Algorithm not supported based on provided input: alg=${algProperty}, crv=${crvProperty}. ` +
470
+ 'Please check the documentation for the list of supported algorithms.');
471
+ }
472
+ /**
473
+ * Retrieves a private key from the key store based on the provided key URI.
474
+ *
475
+ * @example
476
+ * ```ts
477
+ * const privateKey = this.getPrivateKey({ keyUri: 'urn:jwk:...' });
478
+ * ```
479
+ *
480
+ * @param params - Parameters for retrieving the private key.
481
+ * @param params.keyUri - The key URI identifying the private key to retrieve.
482
+ *
483
+ * @returns A Promise resolving to the JWK representation of the private key.
484
+ *
485
+ * @throws Error if the key is not found in the key store.
486
+ */
487
+ getPrivateKey({ keyUri }) {
488
+ return __awaiter(this, void 0, void 0, function* () {
489
+ // Get the private key from the key store.
490
+ const privateKey = yield this._keyStore.get({ id: keyUri, agent: this.agent, useCache: true });
491
+ if (!privateKey) {
492
+ throw new Error(`Key not found: ${keyUri}`);
493
+ }
494
+ return privateKey;
495
+ });
496
+ }
497
+ }
498
+ //# sourceMappingURL=local-key-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-key-manager.js","sourceRoot":"","sources":["../../src/local-key-manager.ts"],"names":[],"mappings":"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"}