@openvtc/pnm-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +129 -0
  2. package/dist/did/derive-signing-key.d.ts +19 -0
  3. package/dist/did/derive-signing-key.d.ts.map +1 -0
  4. package/dist/did/derive-signing-key.js +96 -0
  5. package/dist/did/derive-signing-key.js.map +1 -0
  6. package/dist/did/index.d.ts +5 -0
  7. package/dist/did/index.d.ts.map +1 -0
  8. package/dist/did/index.js +5 -0
  9. package/dist/did/index.js.map +1 -0
  10. package/dist/did/peer.d.ts +37 -0
  11. package/dist/did/peer.d.ts.map +1 -0
  12. package/dist/did/peer.js +49 -0
  13. package/dist/did/peer.js.map +1 -0
  14. package/dist/did/verification-method.d.ts +43 -0
  15. package/dist/did/verification-method.d.ts.map +1 -0
  16. package/dist/did/verification-method.js +32 -0
  17. package/dist/did/verification-method.js.map +1 -0
  18. package/dist/did/verify.d.ts +49 -0
  19. package/dist/did/verify.d.ts.map +1 -0
  20. package/dist/did/verify.js +89 -0
  21. package/dist/did/verify.js.map +1 -0
  22. package/dist/didcomm/index.d.ts +235 -0
  23. package/dist/didcomm/index.d.ts.map +1 -0
  24. package/dist/didcomm/index.js +415 -0
  25. package/dist/didcomm/index.js.map +1 -0
  26. package/dist/inbound/confirm.d.ts +50 -0
  27. package/dist/inbound/confirm.d.ts.map +1 -0
  28. package/dist/inbound/confirm.js +64 -0
  29. package/dist/inbound/confirm.js.map +1 -0
  30. package/dist/inbound/dedup.d.ts +9 -0
  31. package/dist/inbound/dedup.d.ts.map +1 -0
  32. package/dist/inbound/dedup.js +31 -0
  33. package/dist/inbound/dedup.js.map +1 -0
  34. package/dist/inbound/index.d.ts +3 -0
  35. package/dist/inbound/index.d.ts.map +1 -0
  36. package/dist/inbound/index.js +3 -0
  37. package/dist/inbound/index.js.map +1 -0
  38. package/dist/index.d.ts +14 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +14 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/onboarding/index.d.ts +2 -0
  43. package/dist/onboarding/index.d.ts.map +1 -0
  44. package/dist/onboarding/index.js +2 -0
  45. package/dist/onboarding/index.js.map +1 -0
  46. package/dist/onboarding/swap.d.ts +60 -0
  47. package/dist/onboarding/swap.d.ts.map +1 -0
  48. package/dist/onboarding/swap.js +148 -0
  49. package/dist/onboarding/swap.js.map +1 -0
  50. package/dist/provision/adopt.d.ts +31 -0
  51. package/dist/provision/adopt.d.ts.map +1 -0
  52. package/dist/provision/adopt.js +114 -0
  53. package/dist/provision/adopt.js.map +1 -0
  54. package/dist/provision/armor.d.ts +19 -0
  55. package/dist/provision/armor.d.ts.map +1 -0
  56. package/dist/provision/armor.js +243 -0
  57. package/dist/provision/armor.js.map +1 -0
  58. package/dist/provision/crc24.d.ts +5 -0
  59. package/dist/provision/crc24.d.ts.map +1 -0
  60. package/dist/provision/crc24.js +30 -0
  61. package/dist/provision/crc24.js.map +1 -0
  62. package/dist/provision/hpke.d.ts +17 -0
  63. package/dist/provision/hpke.d.ts.map +1 -0
  64. package/dist/provision/hpke.js +60 -0
  65. package/dist/provision/hpke.js.map +1 -0
  66. package/dist/provision/index.d.ts +10 -0
  67. package/dist/provision/index.d.ts.map +1 -0
  68. package/dist/provision/index.js +16 -0
  69. package/dist/provision/index.js.map +1 -0
  70. package/dist/provision/open.d.ts +28 -0
  71. package/dist/provision/open.d.ts.map +1 -0
  72. package/dist/provision/open.js +224 -0
  73. package/dist/provision/open.js.map +1 -0
  74. package/dist/provision/request.d.ts +65 -0
  75. package/dist/provision/request.d.ts.map +1 -0
  76. package/dist/provision/request.js +53 -0
  77. package/dist/provision/request.js.map +1 -0
  78. package/dist/provision/run.d.ts +76 -0
  79. package/dist/provision/run.d.ts.map +1 -0
  80. package/dist/provision/run.js +110 -0
  81. package/dist/provision/run.js.map +1 -0
  82. package/dist/provision/send.d.ts +85 -0
  83. package/dist/provision/send.d.ts.map +1 -0
  84. package/dist/provision/send.js +87 -0
  85. package/dist/provision/send.js.map +1 -0
  86. package/dist/provision/types.d.ts +110 -0
  87. package/dist/provision/types.d.ts.map +1 -0
  88. package/dist/provision/types.js +17 -0
  89. package/dist/provision/types.js.map +1 -0
  90. package/dist/rp-login/didcomm.d.ts +34 -0
  91. package/dist/rp-login/didcomm.d.ts.map +1 -0
  92. package/dist/rp-login/didcomm.js +72 -0
  93. package/dist/rp-login/didcomm.js.map +1 -0
  94. package/dist/rp-login/index.d.ts +3 -0
  95. package/dist/rp-login/index.d.ts.map +1 -0
  96. package/dist/rp-login/index.js +3 -0
  97. package/dist/rp-login/index.js.map +1 -0
  98. package/dist/rp-login/step-up.d.ts +43 -0
  99. package/dist/rp-login/step-up.d.ts.map +1 -0
  100. package/dist/rp-login/step-up.js +118 -0
  101. package/dist/rp-login/step-up.js.map +1 -0
  102. package/dist/siop/index.d.ts +3 -0
  103. package/dist/siop/index.d.ts.map +1 -0
  104. package/dist/siop/index.js +3 -0
  105. package/dist/siop/index.js.map +1 -0
  106. package/dist/siop/login-client.d.ts +29 -0
  107. package/dist/siop/login-client.d.ts.map +1 -0
  108. package/dist/siop/login-client.js +79 -0
  109. package/dist/siop/login-client.js.map +1 -0
  110. package/dist/siop/self-issued.d.ts +96 -0
  111. package/dist/siop/self-issued.d.ts.map +1 -0
  112. package/dist/siop/self-issued.js +162 -0
  113. package/dist/siop/self-issued.js.map +1 -0
  114. package/dist/store/holder-identity.d.ts +241 -0
  115. package/dist/store/holder-identity.d.ts.map +1 -0
  116. package/dist/store/holder-identity.js +441 -0
  117. package/dist/store/holder-identity.js.map +1 -0
  118. package/dist/store/index.d.ts +4 -0
  119. package/dist/store/index.d.ts.map +1 -0
  120. package/dist/store/index.js +4 -0
  121. package/dist/store/index.js.map +1 -0
  122. package/dist/store/kv-store.d.ts +51 -0
  123. package/dist/store/kv-store.d.ts.map +1 -0
  124. package/dist/store/kv-store.js +100 -0
  125. package/dist/store/kv-store.js.map +1 -0
  126. package/dist/store/secret-wrap.d.ts +109 -0
  127. package/dist/store/secret-wrap.d.ts.map +1 -0
  128. package/dist/store/secret-wrap.js +85 -0
  129. package/dist/store/secret-wrap.js.map +1 -0
  130. package/dist/trust-tasks/index.d.ts +2 -0
  131. package/dist/trust-tasks/index.d.ts.map +1 -0
  132. package/dist/trust-tasks/index.js +2 -0
  133. package/dist/trust-tasks/index.js.map +1 -0
  134. package/dist/trust-tasks/sign.d.ts +31 -0
  135. package/dist/trust-tasks/sign.d.ts.map +1 -0
  136. package/dist/trust-tasks/sign.js +141 -0
  137. package/dist/trust-tasks/sign.js.map +1 -0
  138. package/dist/util/timing.d.ts +14 -0
  139. package/dist/util/timing.d.ts.map +1 -0
  140. package/dist/util/timing.js +20 -0
  141. package/dist/util/timing.js.map +1 -0
  142. package/dist/vault/delete.d.ts +19 -0
  143. package/dist/vault/delete.d.ts.map +1 -0
  144. package/dist/vault/delete.js +35 -0
  145. package/dist/vault/delete.js.map +1 -0
  146. package/dist/vault/index.d.ts +8 -0
  147. package/dist/vault/index.d.ts.map +1 -0
  148. package/dist/vault/index.js +7 -0
  149. package/dist/vault/index.js.map +1 -0
  150. package/dist/vault/list.d.ts +96 -0
  151. package/dist/vault/list.d.ts.map +1 -0
  152. package/dist/vault/list.js +106 -0
  153. package/dist/vault/list.js.map +1 -0
  154. package/dist/vault/proxy-login.d.ts +100 -0
  155. package/dist/vault/proxy-login.d.ts.map +1 -0
  156. package/dist/vault/proxy-login.js +106 -0
  157. package/dist/vault/proxy-login.js.map +1 -0
  158. package/dist/vault/release.d.ts +33 -0
  159. package/dist/vault/release.d.ts.map +1 -0
  160. package/dist/vault/release.js +83 -0
  161. package/dist/vault/release.js.map +1 -0
  162. package/dist/vault/sign-trust-task.d.ts +26 -0
  163. package/dist/vault/sign-trust-task.d.ts.map +1 -0
  164. package/dist/vault/sign-trust-task.js +53 -0
  165. package/dist/vault/sign-trust-task.js.map +1 -0
  166. package/dist/vault/transport.d.ts +50 -0
  167. package/dist/vault/transport.d.ts.map +1 -0
  168. package/dist/vault/transport.js +118 -0
  169. package/dist/vault/transport.js.map +1 -0
  170. package/dist/vault/upsert.d.ts +102 -0
  171. package/dist/vault/upsert.d.ts.map +1 -0
  172. package/dist/vault/upsert.js +92 -0
  173. package/dist/vault/upsert.js.map +1 -0
  174. package/dist/vta/bridge-mediator-session.d.ts +26 -0
  175. package/dist/vta/bridge-mediator-session.d.ts.map +1 -0
  176. package/dist/vta/bridge-mediator-session.js +37 -0
  177. package/dist/vta/bridge-mediator-session.js.map +1 -0
  178. package/dist/vta/bridge-memory.d.ts +80 -0
  179. package/dist/vta/bridge-memory.d.ts.map +1 -0
  180. package/dist/vta/bridge-memory.js +162 -0
  181. package/dist/vta/bridge-memory.js.map +1 -0
  182. package/dist/vta/client.d.ts +40 -0
  183. package/dist/vta/client.d.ts.map +1 -0
  184. package/dist/vta/client.js +91 -0
  185. package/dist/vta/client.js.map +1 -0
  186. package/dist/vta/contexts.d.ts +60 -0
  187. package/dist/vta/contexts.d.ts.map +1 -0
  188. package/dist/vta/contexts.js +118 -0
  189. package/dist/vta/contexts.js.map +1 -0
  190. package/dist/vta/didcomm.d.ts +57 -0
  191. package/dist/vta/didcomm.d.ts.map +1 -0
  192. package/dist/vta/didcomm.js +138 -0
  193. package/dist/vta/didcomm.js.map +1 -0
  194. package/dist/vta/errors.d.ts +20 -0
  195. package/dist/vta/errors.d.ts.map +1 -0
  196. package/dist/vta/errors.js +64 -0
  197. package/dist/vta/errors.js.map +1 -0
  198. package/dist/vta/index.d.ts +15 -0
  199. package/dist/vta/index.d.ts.map +1 -0
  200. package/dist/vta/index.js +15 -0
  201. package/dist/vta/index.js.map +1 -0
  202. package/dist/vta/mediation.d.ts +80 -0
  203. package/dist/vta/mediation.d.ts.map +1 -0
  204. package/dist/vta/mediation.js +29 -0
  205. package/dist/vta/mediation.js.map +1 -0
  206. package/dist/vta/mediator-client.d.ts +66 -0
  207. package/dist/vta/mediator-client.d.ts.map +1 -0
  208. package/dist/vta/mediator-client.js +139 -0
  209. package/dist/vta/mediator-client.js.map +1 -0
  210. package/dist/vta/pickup.d.ts +81 -0
  211. package/dist/vta/pickup.d.ts.map +1 -0
  212. package/dist/vta/pickup.js +30 -0
  213. package/dist/vta/pickup.js.map +1 -0
  214. package/dist/vta/protocol.d.ts +76 -0
  215. package/dist/vta/protocol.d.ts.map +1 -0
  216. package/dist/vta/protocol.js +30 -0
  217. package/dist/vta/protocol.js.map +1 -0
  218. package/dist/vta/smoke.d.ts +59 -0
  219. package/dist/vta/smoke.d.ts.map +1 -0
  220. package/dist/vta/smoke.js +408 -0
  221. package/dist/vta/smoke.js.map +1 -0
  222. package/dist/vta/transport.d.ts +55 -0
  223. package/dist/vta/transport.d.ts.map +1 -0
  224. package/dist/vta/transport.js +2 -0
  225. package/dist/vta/transport.js.map +1 -0
  226. package/dist/vta/types.d.ts +50 -0
  227. package/dist/vta/types.d.ts.map +1 -0
  228. package/dist/vta/types.js +2 -0
  229. package/dist/vta/types.js.map +1 -0
  230. package/dist/vta/wallet-session.d.ts +87 -0
  231. package/dist/vta/wallet-session.d.ts.map +1 -0
  232. package/dist/vta/wallet-session.js +106 -0
  233. package/dist/vta/wallet-session.js.map +1 -0
  234. package/dist/webauthn/base64url.d.ts +3 -0
  235. package/dist/webauthn/base64url.d.ts.map +1 -0
  236. package/dist/webauthn/base64url.js +17 -0
  237. package/dist/webauthn/base64url.js.map +1 -0
  238. package/dist/webauthn/index.d.ts +4 -0
  239. package/dist/webauthn/index.d.ts.map +1 -0
  240. package/dist/webauthn/index.js +4 -0
  241. package/dist/webauthn/index.js.map +1 -0
  242. package/dist/webauthn/multikey.d.ts +26 -0
  243. package/dist/webauthn/multikey.d.ts.map +1 -0
  244. package/dist/webauthn/multikey.js +91 -0
  245. package/dist/webauthn/multikey.js.map +1 -0
  246. package/dist/webauthn/register.d.ts +36 -0
  247. package/dist/webauthn/register.d.ts.map +1 -0
  248. package/dist/webauthn/register.js +77 -0
  249. package/dist/webauthn/register.js.map +1 -0
  250. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/vta/errors.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAe;IACnB,MAAM,CAAU;IAChB,OAAO,CAAW;IAClB,UAAU,CAAU;IAE7B,YACE,IAAkB,EAClB,OAAe,EACf,OAAoE,EAAE;QAEtE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5D,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACvE,CAAC;CACF;AAMD,MAAM,WAAW,GAA4B;IAC3C,sBAAsB;IACtB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,sBAAsB;IACtB,qBAAqB;IACrB,kBAAkB;CACnB,CAAC;AAEF,SAAS,UAAU,CAAC,GAAuB,EAAE,MAAc;IACzD,IAAI,GAAG,IAAK,WAAiC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,GAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,sBAAsB,CAAC;IAClD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IAC/C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC9C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC9C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,sBAAsB,CAAC;IAClD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC7C,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAa;IACnD,IAAI,IAAiC,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;IAC1E,MAAM,IAAI,GAA+D;QACvE,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;IACF,IAAI,IAAI,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1E,IAAI,IAAI,EAAE,KAAK,EAAE,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACnF,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,15 @@
1
+ export * from "./bridge-memory.js";
2
+ export * from "./bridge-mediator-session.js";
3
+ export * from "./client.js";
4
+ export * from "./contexts.js";
5
+ export * from "./didcomm.js";
6
+ export * from "./errors.js";
7
+ export * from "./mediation.js";
8
+ export * from "./mediator-client.js";
9
+ export * from "./pickup.js";
10
+ export * from "./protocol.js";
11
+ export * from "./smoke.js";
12
+ export * from "./transport.js";
13
+ export * from "./types.js";
14
+ export * from "./wallet-session.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vta/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export * from "./bridge-memory.js";
2
+ export * from "./bridge-mediator-session.js";
3
+ export * from "./client.js";
4
+ export * from "./contexts.js";
5
+ export * from "./didcomm.js";
6
+ export * from "./errors.js";
7
+ export * from "./mediation.js";
8
+ export * from "./mediator-client.js";
9
+ export * from "./pickup.js";
10
+ export * from "./protocol.js";
11
+ export * from "./smoke.js";
12
+ export * from "./transport.js";
13
+ export * from "./types.js";
14
+ export * from "./wallet-session.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vta/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * DIDComm v2 protocol — `coordinate-mediation/2.0`.
3
+ *
4
+ * Spec: <https://didcomm.org/coordinate-mediation/2.0/>
5
+ *
6
+ * A wallet uses this protocol to enroll itself with a mediator so
7
+ * the mediator will accept and queue inbound messages on the
8
+ * wallet's behalf. Three exchanges:
9
+ *
10
+ * mediate-request → mediate-grant / mediate-deny
11
+ * keylist-update → keylist-update-response
12
+ * keylist-query → keylist
13
+ *
14
+ * After a successful mediate-grant + keylist-update(add), the
15
+ * mediator will accept and queue messages addressed to any
16
+ * `recipient_did` the wallet registered. The wallet retrieves them
17
+ * via the `pickup/3.0` protocol on the same transport.
18
+ */
19
+ export declare const CoordinateMediationProtocol: {
20
+ readonly mediateRequest: "https://didcomm.org/coordinate-mediation/2.0/mediate-request";
21
+ readonly mediateGrant: "https://didcomm.org/coordinate-mediation/2.0/mediate-grant";
22
+ readonly mediateDeny: "https://didcomm.org/coordinate-mediation/2.0/mediate-deny";
23
+ readonly keylistUpdate: "https://didcomm.org/coordinate-mediation/2.0/keylist-update";
24
+ readonly keylistUpdateResponse: "https://didcomm.org/coordinate-mediation/2.0/keylist-update-response";
25
+ readonly keylistQuery: "https://didcomm.org/coordinate-mediation/2.0/keylist-query";
26
+ readonly keylist: "https://didcomm.org/coordinate-mediation/2.0/keylist";
27
+ };
28
+ export type CoordinateMediationMessageType = (typeof CoordinateMediationProtocol)[keyof typeof CoordinateMediationProtocol];
29
+ /** mediate-request body. Empty per spec. */
30
+ export interface MediateRequestBody {
31
+ }
32
+ /** mediate-grant body. */
33
+ export interface MediateGrantBody {
34
+ /**
35
+ * The DID the wallet should publish in its DID document
36
+ * `service` entry's `routingKeys` to indicate "messages for me go
37
+ * via this mediator first".
38
+ */
39
+ routing_did: string[];
40
+ }
41
+ /** mediate-deny body. */
42
+ export interface MediateDenyBody {
43
+ reason?: string;
44
+ }
45
+ export type KeylistUpdateAction = "add" | "remove";
46
+ export interface KeylistUpdateItem {
47
+ recipient_did: string;
48
+ action: KeylistUpdateAction;
49
+ }
50
+ export interface KeylistUpdateBody {
51
+ updates: KeylistUpdateItem[];
52
+ }
53
+ export type KeylistUpdateResult = "client_error" | "server_error" | "no_change" | "success";
54
+ export interface KeylistUpdateResponseItem {
55
+ recipient_did: string;
56
+ action: KeylistUpdateAction;
57
+ result: KeylistUpdateResult;
58
+ }
59
+ export interface KeylistUpdateResponseBody {
60
+ updated: KeylistUpdateResponseItem[];
61
+ }
62
+ export interface KeylistQueryBody {
63
+ /** Optional pagination cursor — opaque to the wallet. */
64
+ paginate?: {
65
+ limit?: number;
66
+ offset?: number;
67
+ };
68
+ }
69
+ export interface KeylistEntry {
70
+ recipient_did: string;
71
+ }
72
+ export interface KeylistBody {
73
+ keys: KeylistEntry[];
74
+ pagination?: {
75
+ count: number;
76
+ offset: number;
77
+ remaining: number;
78
+ };
79
+ }
80
+ //# sourceMappingURL=mediation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediation.d.ts","sourceRoot":"","sources":["../../src/vta/mediation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,eAAO,MAAM,2BAA2B;;;;;;;;CAQ9B,CAAC;AAEX,MAAM,MAAM,8BAA8B,GACxC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAMjF,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;CAElC;AAED,0BAA0B;AAC1B,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,cAAc,GACd,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * DIDComm v2 protocol — `coordinate-mediation/2.0`.
3
+ *
4
+ * Spec: <https://didcomm.org/coordinate-mediation/2.0/>
5
+ *
6
+ * A wallet uses this protocol to enroll itself with a mediator so
7
+ * the mediator will accept and queue inbound messages on the
8
+ * wallet's behalf. Three exchanges:
9
+ *
10
+ * mediate-request → mediate-grant / mediate-deny
11
+ * keylist-update → keylist-update-response
12
+ * keylist-query → keylist
13
+ *
14
+ * After a successful mediate-grant + keylist-update(add), the
15
+ * mediator will accept and queue messages addressed to any
16
+ * `recipient_did` the wallet registered. The wallet retrieves them
17
+ * via the `pickup/3.0` protocol on the same transport.
18
+ */
19
+ const BASE = "https://didcomm.org/coordinate-mediation/2.0";
20
+ export const CoordinateMediationProtocol = {
21
+ mediateRequest: `${BASE}/mediate-request`,
22
+ mediateGrant: `${BASE}/mediate-grant`,
23
+ mediateDeny: `${BASE}/mediate-deny`,
24
+ keylistUpdate: `${BASE}/keylist-update`,
25
+ keylistUpdateResponse: `${BASE}/keylist-update-response`,
26
+ keylistQuery: `${BASE}/keylist-query`,
27
+ keylist: `${BASE}/keylist`,
28
+ };
29
+ //# sourceMappingURL=mediation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediation.js","sourceRoot":"","sources":["../../src/vta/mediation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,IAAI,GAAG,8CAA8C,CAAC;AAE5D,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,cAAc,EAAE,GAAG,IAAI,kBAAkB;IACzC,YAAY,EAAE,GAAG,IAAI,gBAAgB;IACrC,WAAW,EAAE,GAAG,IAAI,eAAe;IACnC,aAAa,EAAE,GAAG,IAAI,iBAAiB;IACvC,qBAAqB,EAAE,GAAG,IAAI,0BAA0B;IACxD,YAAY,EAAE,GAAG,IAAI,gBAAgB;IACrC,OAAO,EAAE,GAAG,IAAI,UAAU;CAClB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { Identity, type PublicJwk } from "../didcomm/index.js";
2
+ import type { RemoteDidcommEndpoint } from "./didcomm.js";
3
+ import { type KeylistBody, type KeylistUpdateItem, type KeylistUpdateResponseBody, type MediateGrantBody } from "./mediation.js";
4
+ import type { DidcommMessageBridge } from "./transport.js";
5
+ export interface MediatorClientOptions {
6
+ bridge: DidcommMessageBridge;
7
+ holder: Identity;
8
+ mediator: RemoteDidcommEndpoint;
9
+ /** Per-request timeout (default 30s). */
10
+ timeoutMs?: number;
11
+ }
12
+ /**
13
+ * `coordinate-mediation/2.0` client. Talks directly to a DIDComm
14
+ * mediator (authcrypt holder→mediator; **no** forward wrapping) and
15
+ * threads request/response by DIDComm `thid` through the shared
16
+ * `DidcommMessageBridge`.
17
+ *
18
+ * Typical first-run sequence:
19
+ *
20
+ * ```ts
21
+ * const mc = new MediatorClient({ bridge, holder, mediator });
22
+ * const grant = await mc.requestMediation();
23
+ * await mc.updateKeylist([{ recipient_did: holder.did, action: "add" }]);
24
+ * // grant.routing_did → publish in your DID document's service entry
25
+ * ```
26
+ */
27
+ export declare class MediatorClient {
28
+ private readonly bridge;
29
+ private readonly holder;
30
+ private readonly mediator;
31
+ private readonly timeoutMs;
32
+ constructor(opts: MediatorClientOptions);
33
+ requestMediation(): Promise<MediateGrantBody>;
34
+ updateKeylist(updates: KeylistUpdateItem[]): Promise<KeylistUpdateResponseBody>;
35
+ queryKeylist(paginate?: {
36
+ limit?: number;
37
+ offset?: number;
38
+ }): Promise<KeylistBody>;
39
+ /**
40
+ * Toggle Pickup 3.0 live-delivery mode. When enabled, the
41
+ * mediator pushes inbound DIDComm messages on the same channel
42
+ * (via `pickup/3.0/delivery`) as soon as they arrive.
43
+ *
44
+ * Fire-and-forget per spec; no reply.
45
+ */
46
+ setLiveDelivery(enabled: boolean): Promise<void>;
47
+ /**
48
+ * Acknowledge delivery of one or more queued messages by their
49
+ * mediator-assigned IDs. Tells the mediator it can drop them
50
+ * from the holder's queue.
51
+ *
52
+ * Fire-and-forget per spec; no reply.
53
+ */
54
+ acknowledgeMessages(messageIds: string[]): Promise<void>;
55
+ private exchange;
56
+ /**
57
+ * Construct the outbound authcrypt envelope (no forward wrap —
58
+ * the mediator IS the recipient). Exposed for tests/inspection.
59
+ */
60
+ buildOutbound<Req extends object>(requestType: string, body: Req): Promise<{
61
+ outer: string;
62
+ requestId: string;
63
+ }>;
64
+ }
65
+ export type { PublicJwk };
66
+ //# sourceMappingURL=mediator-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediator-client.d.ts","sourceRoot":"","sources":["../../src/vta/mediator-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAEL,KAAK,WAAW,EAGhB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,EAAE,qBAAqB;IAOvC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAY7C,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAS/E,YAAY,CAAC,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IASlF;;;;;;OAMG;IACG,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD;;;;;;OAMG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAOhD,QAAQ;IA6CtB;;;OAGG;IACG,aAAa,CAAC,GAAG,SAAS,MAAM,EACpC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAiBjD;AAGD,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,139 @@
1
+ import { Identity, packAuthcrypt, } from "../didcomm/index.js";
2
+ import { VtaClientError } from "./errors.js";
3
+ import { CoordinateMediationProtocol, } from "./mediation.js";
4
+ import { PickupProtocol, } from "./pickup.js";
5
+ const DEFAULT_TIMEOUT_MS = 30_000;
6
+ function newMessageId() {
7
+ return globalThis.crypto.randomUUID();
8
+ }
9
+ const KNOWN_ERROR_CODES = new Set([
10
+ "e.p.msg.unauthorized",
11
+ "e.p.msg.forbidden",
12
+ "e.p.msg.notfound",
13
+ "e.p.msg.conflict",
14
+ "e.p.msg.rate_limited",
15
+ "e.p.msg.bad_request",
16
+ "e.p.msg.internal",
17
+ ]);
18
+ function coerceProblemCode(code) {
19
+ if (code && KNOWN_ERROR_CODES.has(code)) {
20
+ return code;
21
+ }
22
+ return "e.p.msg.bad_request";
23
+ }
24
+ /**
25
+ * `coordinate-mediation/2.0` client. Talks directly to a DIDComm
26
+ * mediator (authcrypt holder→mediator; **no** forward wrapping) and
27
+ * threads request/response by DIDComm `thid` through the shared
28
+ * `DidcommMessageBridge`.
29
+ *
30
+ * Typical first-run sequence:
31
+ *
32
+ * ```ts
33
+ * const mc = new MediatorClient({ bridge, holder, mediator });
34
+ * const grant = await mc.requestMediation();
35
+ * await mc.updateKeylist([{ recipient_did: holder.did, action: "add" }]);
36
+ * // grant.routing_did → publish in your DID document's service entry
37
+ * ```
38
+ */
39
+ export class MediatorClient {
40
+ bridge;
41
+ holder;
42
+ mediator;
43
+ timeoutMs;
44
+ constructor(opts) {
45
+ this.bridge = opts.bridge;
46
+ this.holder = opts.holder;
47
+ this.mediator = opts.mediator;
48
+ this.timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
49
+ }
50
+ requestMediation() {
51
+ const body = {};
52
+ return this.exchange(CoordinateMediationProtocol.mediateRequest, body, [
53
+ CoordinateMediationProtocol.mediateGrant,
54
+ CoordinateMediationProtocol.mediateDeny,
55
+ ]);
56
+ }
57
+ updateKeylist(updates) {
58
+ const body = { updates };
59
+ return this.exchange(CoordinateMediationProtocol.keylistUpdate, body, [CoordinateMediationProtocol.keylistUpdateResponse]);
60
+ }
61
+ queryKeylist(paginate) {
62
+ const body = paginate ? { paginate } : {};
63
+ return this.exchange(CoordinateMediationProtocol.keylistQuery, body, [CoordinateMediationProtocol.keylist]);
64
+ }
65
+ /**
66
+ * Toggle Pickup 3.0 live-delivery mode. When enabled, the
67
+ * mediator pushes inbound DIDComm messages on the same channel
68
+ * (via `pickup/3.0/delivery`) as soon as they arrive.
69
+ *
70
+ * Fire-and-forget per spec; no reply.
71
+ */
72
+ async setLiveDelivery(enabled) {
73
+ const body = { live_delivery: enabled };
74
+ const { outer } = await this.buildOutbound(PickupProtocol.liveDeliveryChange, body);
75
+ await this.bridge.send(outer);
76
+ }
77
+ /**
78
+ * Acknowledge delivery of one or more queued messages by their
79
+ * mediator-assigned IDs. Tells the mediator it can drop them
80
+ * from the holder's queue.
81
+ *
82
+ * Fire-and-forget per spec; no reply.
83
+ */
84
+ async acknowledgeMessages(messageIds) {
85
+ if (messageIds.length === 0)
86
+ return;
87
+ const body = { message_id_list: messageIds };
88
+ const { outer } = await this.buildOutbound(PickupProtocol.messagesReceived, body);
89
+ await this.bridge.send(outer);
90
+ }
91
+ async exchange(requestType, body, acceptedResponseTypes) {
92
+ const { outer, requestId } = await this.buildOutbound(requestType, body);
93
+ // The bridge returns the decrypted, sender-authenticated reply.
94
+ const msg = await this.bridge.sendAndAwaitReply(outer, requestId, {
95
+ timeoutMs: this.timeoutMs,
96
+ });
97
+ if (msg.type === "https://didcomm.org/report-problem/2.0/problem-report") {
98
+ const pr = (msg.body ?? {});
99
+ throw new VtaClientError(coerceProblemCode(pr.code), pr.comment ?? pr.code ?? "problem-report", {
100
+ details: pr,
101
+ });
102
+ }
103
+ if (msg.type === CoordinateMediationProtocol.mediateDeny) {
104
+ throw new VtaClientError("e.p.msg.forbidden", "mediator denied mediation request", { details: msg.body });
105
+ }
106
+ if (!msg.type || !acceptedResponseTypes.includes(msg.type)) {
107
+ throw new VtaClientError("e.client.parse", `unexpected reply type: ${msg.type ?? "(none)"}`);
108
+ }
109
+ if (msg.thid !== requestId) {
110
+ throw new VtaClientError("e.client.parse", `reply thid ${msg.thid ?? "(none)"} != request id ${requestId}`);
111
+ }
112
+ if (msg.from !== this.mediator.did) {
113
+ throw new VtaClientError("e.p.msg.unauthorized", `reply from ${msg.from ?? "(none)"} != mediator ${this.mediator.did}`);
114
+ }
115
+ return (msg.body ?? {});
116
+ }
117
+ /**
118
+ * Construct the outbound authcrypt envelope (no forward wrap —
119
+ * the mediator IS the recipient). Exposed for tests/inspection.
120
+ */
121
+ async buildOutbound(requestType, body) {
122
+ const requestId = newMessageId();
123
+ const message = {
124
+ id: requestId,
125
+ type: requestType,
126
+ from: this.holder.did,
127
+ to: [this.mediator.did],
128
+ body,
129
+ };
130
+ const outer = await packAuthcrypt(message, this.holder, [
131
+ {
132
+ kid: this.mediator.keyAgreementKid,
133
+ jwk: this.mediator.keyAgreementPublicJwk,
134
+ },
135
+ ]);
136
+ return { outer, requestId };
137
+ }
138
+ }
139
+ //# sourceMappingURL=mediator-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediator-client.js","sourceRoot":"","sources":["../../src/vta/mediator-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * DIDComm v2 protocol — `messagepickup/3.0`.
3
+ *
4
+ * Spec: <https://didcomm.org/messagepickup/3.0/>
5
+ *
6
+ * The wallet uses Pickup 3.0 to retrieve messages queued at its
7
+ * mediator. Two operating modes:
8
+ *
9
+ * - **Polling**: wallet sends `status-request` to check the queue,
10
+ * then `delivery-request` to receive batches, then
11
+ * `messages-received` to ACK so the mediator can free them.
12
+ * - **Live mode**: wallet sends `live-delivery-change` with
13
+ * `live_delivery: true` and the mediator pushes `delivery`
14
+ * messages immediately when traffic arrives. This is the mode the
15
+ * library's `MediatorSession` enables on connect.
16
+ *
17
+ * In both modes, the `delivery` envelope carries attachments where
18
+ * each attachment is one inner DIDComm message originally sent
19
+ * through the mediator on the wallet's behalf.
20
+ */
21
+ export declare const PickupProtocol: {
22
+ readonly statusRequest: "https://didcomm.org/messagepickup/3.0/status-request";
23
+ readonly status: "https://didcomm.org/messagepickup/3.0/status";
24
+ readonly deliveryRequest: "https://didcomm.org/messagepickup/3.0/delivery-request";
25
+ readonly delivery: "https://didcomm.org/messagepickup/3.0/delivery";
26
+ readonly messagesReceived: "https://didcomm.org/messagepickup/3.0/messages-received";
27
+ readonly liveDeliveryChange: "https://didcomm.org/messagepickup/3.0/live-delivery-change";
28
+ };
29
+ export type PickupMessageType = (typeof PickupProtocol)[keyof typeof PickupProtocol];
30
+ export interface StatusRequestBody {
31
+ /** Optional: filter to a specific recipient DID. */
32
+ recipient_did?: string;
33
+ }
34
+ export interface StatusBody {
35
+ /** Total messages queued. */
36
+ message_count: number;
37
+ /** Optional: count for a specific recipient if filtered. */
38
+ recipient_did?: string;
39
+ longest_waited_seconds?: number;
40
+ newest_received_time?: number;
41
+ oldest_received_time?: number;
42
+ total_bytes?: number;
43
+ live_delivery?: boolean;
44
+ }
45
+ export interface DeliveryRequestBody {
46
+ /** Maximum number of messages to deliver in this batch. */
47
+ limit: number;
48
+ /** Optional: filter to a specific recipient DID. */
49
+ recipient_did?: string;
50
+ }
51
+ export interface DeliveryAttachment {
52
+ /** Per-message id — typically the mediator's queue id. Used by
53
+ * the wallet in `messages-received.message_id_list`. */
54
+ id: string;
55
+ data: {
56
+ /** The full DIDComm JWE as JSON (parsed object), not a string. */
57
+ json: unknown;
58
+ };
59
+ }
60
+ export interface DeliveryBody {
61
+ recipient_did?: string;
62
+ }
63
+ /** Spec note: pickup/3.0/delivery's attachments live at the top
64
+ * level of the Message envelope, not in `body`. The Message struct
65
+ * in `affinidi-messaging-didcomm` exposes them via `attachments`
66
+ * (flattened on the wire by serde). */
67
+ export interface DeliveryEnvelopeShape {
68
+ type: typeof PickupProtocol.delivery;
69
+ from?: string;
70
+ to?: string[];
71
+ thid?: string;
72
+ body: DeliveryBody;
73
+ attachments: DeliveryAttachment[];
74
+ }
75
+ export interface MessagesReceivedBody {
76
+ message_id_list: string[];
77
+ }
78
+ export interface LiveDeliveryChangeBody {
79
+ live_delivery: boolean;
80
+ }
81
+ //# sourceMappingURL=pickup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickup.d.ts","sourceRoot":"","sources":["../../src/vta/pickup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAMvD,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC;6DACyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACJ,kEAAkE;QAClE,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;wCAGwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,cAAc,CAAC,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,OAAO,CAAC;CACxB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * DIDComm v2 protocol — `messagepickup/3.0`.
3
+ *
4
+ * Spec: <https://didcomm.org/messagepickup/3.0/>
5
+ *
6
+ * The wallet uses Pickup 3.0 to retrieve messages queued at its
7
+ * mediator. Two operating modes:
8
+ *
9
+ * - **Polling**: wallet sends `status-request` to check the queue,
10
+ * then `delivery-request` to receive batches, then
11
+ * `messages-received` to ACK so the mediator can free them.
12
+ * - **Live mode**: wallet sends `live-delivery-change` with
13
+ * `live_delivery: true` and the mediator pushes `delivery`
14
+ * messages immediately when traffic arrives. This is the mode the
15
+ * library's `MediatorSession` enables on connect.
16
+ *
17
+ * In both modes, the `delivery` envelope carries attachments where
18
+ * each attachment is one inner DIDComm message originally sent
19
+ * through the mediator on the wallet's behalf.
20
+ */
21
+ const BASE = "https://didcomm.org/messagepickup/3.0";
22
+ export const PickupProtocol = {
23
+ statusRequest: `${BASE}/status-request`,
24
+ status: `${BASE}/status`,
25
+ deliveryRequest: `${BASE}/delivery-request`,
26
+ delivery: `${BASE}/delivery`,
27
+ messagesReceived: `${BASE}/messages-received`,
28
+ liveDeliveryChange: `${BASE}/live-delivery-change`,
29
+ };
30
+ //# sourceMappingURL=pickup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickup.js","sourceRoot":"","sources":["../../src/vta/pickup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,IAAI,GAAG,uCAAuC,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,aAAa,EAAE,GAAG,IAAI,iBAAiB;IACvC,MAAM,EAAE,GAAG,IAAI,SAAS;IACxB,eAAe,EAAE,GAAG,IAAI,mBAAmB;IAC3C,QAAQ,EAAE,GAAG,IAAI,WAAW;IAC5B,gBAAgB,EAAE,GAAG,IAAI,oBAAoB;IAC7C,kBAAkB,EAAE,GAAG,IAAI,uBAAuB;CAC1C,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Trust-Tasks passkey-VM management over DIDComm.
3
+ *
4
+ * The VTA exposes passkey verification-method enrollment as Trust-Tasks
5
+ * under the `trusttasks.org` namespace. Over DIDComm they ride the
6
+ * framework binding (`https://trusttasks.org/binding/didcomm/0.1`): every
7
+ * request is a single reserved DIDComm message type
8
+ * ({@link TRUST_TASK_ENVELOPE_TYPE}) whose `body` is a full `TrustTask`
9
+ * document; the document's own `type` selects the operation. Replies are
10
+ * also binding envelopes whose body is the framework response document
11
+ * (success) or a `trust-task-error/0.1` document (failure), correlated by
12
+ * the DIDComm `thid`.
13
+ */
14
+ /** DIDComm message `type` for every Trust-Task envelope. The body is a
15
+ * {@link TrustTask} document. Conformant peers reject any other type. */
16
+ export declare const TRUST_TASK_ENVELOPE_TYPE = "https://trusttasks.org/binding/didcomm/0.1/envelope";
17
+ /** Framework error-document `type` — a `TrustTask` whose payload is a
18
+ * {@link TrustTaskErrorPayload}. */
19
+ export declare const TRUST_TASK_ERROR_TYPE = "https://trusttasks.org/spec/trust-task-error/0.1";
20
+ /** Trust-task operation type URIs — the value of a request envelope's
21
+ * `type` field (NOT the DIDComm message type, which is always
22
+ * {@link TRUST_TASK_ENVELOPE_TYPE}). */
23
+ export declare const PasskeyVmTask: {
24
+ readonly enrollChallenge: "https://trusttasks.org/spec/vta/passkey-vms/enroll-challenge/1.0";
25
+ readonly enrollSubmit: "https://trusttasks.org/spec/vta/passkey-vms/enroll-submit/1.0";
26
+ readonly list: "https://trusttasks.org/spec/vta/passkey-vms/list/1.0";
27
+ readonly revoke: "https://trusttasks.org/spec/vta/passkey-vms/revoke/1.0";
28
+ };
29
+ export type PasskeyVmTaskType = (typeof PasskeyVmTask)[keyof typeof PasskeyVmTask];
30
+ /**
31
+ * A Trust-Task document — the DIDComm message body. Field names are the
32
+ * canonical camelCase wire form (`trust_tasks_rs::TrustTask`).
33
+ */
34
+ export interface TrustTask<P> {
35
+ id: string;
36
+ type: string;
37
+ issuer?: string;
38
+ recipient?: string;
39
+ threadId?: string;
40
+ issuedAt?: string;
41
+ expiresAt?: string;
42
+ payload: P;
43
+ }
44
+ /** Payload of a `trust-task-error/0.1` document. `code` is a snake_case
45
+ * framework status (`permission_denied`, `malformed_request`,
46
+ * `task_failed`, `unsupported_type`, `internal_error`, …). */
47
+ export interface TrustTaskErrorPayload {
48
+ code: string;
49
+ message?: string;
50
+ retryable?: boolean;
51
+ }
52
+ export interface EnrollChallengePayload {
53
+ did: string;
54
+ label?: string;
55
+ }
56
+ export interface EnrollSubmitPayload {
57
+ did: string;
58
+ ceremonyId: string;
59
+ credentialId: string;
60
+ publicKeyMultibase: string;
61
+ coseAlgorithm: number;
62
+ attestationObject: string;
63
+ clientDataJson: string;
64
+ authenticatorData: string;
65
+ transports: AuthenticatorTransport[];
66
+ label?: string;
67
+ }
68
+ export interface ListPayload {
69
+ did: string;
70
+ }
71
+ export interface RevokePayload {
72
+ did: string;
73
+ fragment: string;
74
+ }
75
+ export type { EnrollmentChallengeResponse as EnrollChallengeResult, EnrollmentSubmitResponse as EnrollSubmitResult, PasskeyList as ListResult, } from "./types.js";
76
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/vta/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;0EAC0E;AAC1E,eAAO,MAAM,wBAAwB,wDACkB,CAAC;AAExD;qCACqC;AACrC,eAAO,MAAM,qBAAqB,qDACkB,CAAC;AAIrD;;yCAEyC;AACzC,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC;CACZ;AAED;;+DAE+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAOD,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD,YAAY,EACV,2BAA2B,IAAI,qBAAqB,EACpD,wBAAwB,IAAI,kBAAkB,EAC9C,WAAW,IAAI,UAAU,GAC1B,MAAM,YAAY,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Trust-Tasks passkey-VM management over DIDComm.
3
+ *
4
+ * The VTA exposes passkey verification-method enrollment as Trust-Tasks
5
+ * under the `trusttasks.org` namespace. Over DIDComm they ride the
6
+ * framework binding (`https://trusttasks.org/binding/didcomm/0.1`): every
7
+ * request is a single reserved DIDComm message type
8
+ * ({@link TRUST_TASK_ENVELOPE_TYPE}) whose `body` is a full `TrustTask`
9
+ * document; the document's own `type` selects the operation. Replies are
10
+ * also binding envelopes whose body is the framework response document
11
+ * (success) or a `trust-task-error/0.1` document (failure), correlated by
12
+ * the DIDComm `thid`.
13
+ */
14
+ /** DIDComm message `type` for every Trust-Task envelope. The body is a
15
+ * {@link TrustTask} document. Conformant peers reject any other type. */
16
+ export const TRUST_TASK_ENVELOPE_TYPE = "https://trusttasks.org/binding/didcomm/0.1/envelope";
17
+ /** Framework error-document `type` — a `TrustTask` whose payload is a
18
+ * {@link TrustTaskErrorPayload}. */
19
+ export const TRUST_TASK_ERROR_TYPE = "https://trusttasks.org/spec/trust-task-error/0.1";
20
+ const PASSKEY_VMS = "https://trusttasks.org/spec/vta/passkey-vms";
21
+ /** Trust-task operation type URIs — the value of a request envelope's
22
+ * `type` field (NOT the DIDComm message type, which is always
23
+ * {@link TRUST_TASK_ENVELOPE_TYPE}). */
24
+ export const PasskeyVmTask = {
25
+ enrollChallenge: `${PASSKEY_VMS}/enroll-challenge/1.0`,
26
+ enrollSubmit: `${PASSKEY_VMS}/enroll-submit/1.0`,
27
+ list: `${PASSKEY_VMS}/list/1.0`,
28
+ revoke: `${PASSKEY_VMS}/revoke/1.0`,
29
+ };
30
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/vta/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;0EAC0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GACnC,qDAAqD,CAAC;AAExD;qCACqC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAChC,kDAAkD,CAAC;AAErD,MAAM,WAAW,GAAG,6CAA6C,CAAC;AAElE;;yCAEyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,eAAe,EAAE,GAAG,WAAW,uBAAuB;IACtD,YAAY,EAAE,GAAG,WAAW,oBAAoB;IAChD,IAAI,EAAE,GAAG,WAAW,WAAW;IAC/B,MAAM,EAAE,GAAG,WAAW,aAAa;CAC3B,CAAC"}