@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.
- package/README.md +129 -0
- package/dist/did/derive-signing-key.d.ts +19 -0
- package/dist/did/derive-signing-key.d.ts.map +1 -0
- package/dist/did/derive-signing-key.js +96 -0
- package/dist/did/derive-signing-key.js.map +1 -0
- package/dist/did/index.d.ts +5 -0
- package/dist/did/index.d.ts.map +1 -0
- package/dist/did/index.js +5 -0
- package/dist/did/index.js.map +1 -0
- package/dist/did/peer.d.ts +37 -0
- package/dist/did/peer.d.ts.map +1 -0
- package/dist/did/peer.js +49 -0
- package/dist/did/peer.js.map +1 -0
- package/dist/did/verification-method.d.ts +43 -0
- package/dist/did/verification-method.d.ts.map +1 -0
- package/dist/did/verification-method.js +32 -0
- package/dist/did/verification-method.js.map +1 -0
- package/dist/did/verify.d.ts +49 -0
- package/dist/did/verify.d.ts.map +1 -0
- package/dist/did/verify.js +89 -0
- package/dist/did/verify.js.map +1 -0
- package/dist/didcomm/index.d.ts +235 -0
- package/dist/didcomm/index.d.ts.map +1 -0
- package/dist/didcomm/index.js +415 -0
- package/dist/didcomm/index.js.map +1 -0
- package/dist/inbound/confirm.d.ts +50 -0
- package/dist/inbound/confirm.d.ts.map +1 -0
- package/dist/inbound/confirm.js +64 -0
- package/dist/inbound/confirm.js.map +1 -0
- package/dist/inbound/dedup.d.ts +9 -0
- package/dist/inbound/dedup.d.ts.map +1 -0
- package/dist/inbound/dedup.js +31 -0
- package/dist/inbound/dedup.js.map +1 -0
- package/dist/inbound/index.d.ts +3 -0
- package/dist/inbound/index.d.ts.map +1 -0
- package/dist/inbound/index.js +3 -0
- package/dist/inbound/index.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/onboarding/index.d.ts +2 -0
- package/dist/onboarding/index.d.ts.map +1 -0
- package/dist/onboarding/index.js +2 -0
- package/dist/onboarding/index.js.map +1 -0
- package/dist/onboarding/swap.d.ts +60 -0
- package/dist/onboarding/swap.d.ts.map +1 -0
- package/dist/onboarding/swap.js +148 -0
- package/dist/onboarding/swap.js.map +1 -0
- package/dist/provision/adopt.d.ts +31 -0
- package/dist/provision/adopt.d.ts.map +1 -0
- package/dist/provision/adopt.js +114 -0
- package/dist/provision/adopt.js.map +1 -0
- package/dist/provision/armor.d.ts +19 -0
- package/dist/provision/armor.d.ts.map +1 -0
- package/dist/provision/armor.js +243 -0
- package/dist/provision/armor.js.map +1 -0
- package/dist/provision/crc24.d.ts +5 -0
- package/dist/provision/crc24.d.ts.map +1 -0
- package/dist/provision/crc24.js +30 -0
- package/dist/provision/crc24.js.map +1 -0
- package/dist/provision/hpke.d.ts +17 -0
- package/dist/provision/hpke.d.ts.map +1 -0
- package/dist/provision/hpke.js +60 -0
- package/dist/provision/hpke.js.map +1 -0
- package/dist/provision/index.d.ts +10 -0
- package/dist/provision/index.d.ts.map +1 -0
- package/dist/provision/index.js +16 -0
- package/dist/provision/index.js.map +1 -0
- package/dist/provision/open.d.ts +28 -0
- package/dist/provision/open.d.ts.map +1 -0
- package/dist/provision/open.js +224 -0
- package/dist/provision/open.js.map +1 -0
- package/dist/provision/request.d.ts +65 -0
- package/dist/provision/request.d.ts.map +1 -0
- package/dist/provision/request.js +53 -0
- package/dist/provision/request.js.map +1 -0
- package/dist/provision/run.d.ts +76 -0
- package/dist/provision/run.d.ts.map +1 -0
- package/dist/provision/run.js +110 -0
- package/dist/provision/run.js.map +1 -0
- package/dist/provision/send.d.ts +85 -0
- package/dist/provision/send.d.ts.map +1 -0
- package/dist/provision/send.js +87 -0
- package/dist/provision/send.js.map +1 -0
- package/dist/provision/types.d.ts +110 -0
- package/dist/provision/types.d.ts.map +1 -0
- package/dist/provision/types.js +17 -0
- package/dist/provision/types.js.map +1 -0
- package/dist/rp-login/didcomm.d.ts +34 -0
- package/dist/rp-login/didcomm.d.ts.map +1 -0
- package/dist/rp-login/didcomm.js +72 -0
- package/dist/rp-login/didcomm.js.map +1 -0
- package/dist/rp-login/index.d.ts +3 -0
- package/dist/rp-login/index.d.ts.map +1 -0
- package/dist/rp-login/index.js +3 -0
- package/dist/rp-login/index.js.map +1 -0
- package/dist/rp-login/step-up.d.ts +43 -0
- package/dist/rp-login/step-up.d.ts.map +1 -0
- package/dist/rp-login/step-up.js +118 -0
- package/dist/rp-login/step-up.js.map +1 -0
- package/dist/siop/index.d.ts +3 -0
- package/dist/siop/index.d.ts.map +1 -0
- package/dist/siop/index.js +3 -0
- package/dist/siop/index.js.map +1 -0
- package/dist/siop/login-client.d.ts +29 -0
- package/dist/siop/login-client.d.ts.map +1 -0
- package/dist/siop/login-client.js +79 -0
- package/dist/siop/login-client.js.map +1 -0
- package/dist/siop/self-issued.d.ts +96 -0
- package/dist/siop/self-issued.d.ts.map +1 -0
- package/dist/siop/self-issued.js +162 -0
- package/dist/siop/self-issued.js.map +1 -0
- package/dist/store/holder-identity.d.ts +241 -0
- package/dist/store/holder-identity.d.ts.map +1 -0
- package/dist/store/holder-identity.js +441 -0
- package/dist/store/holder-identity.js.map +1 -0
- package/dist/store/index.d.ts +4 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +4 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/kv-store.d.ts +51 -0
- package/dist/store/kv-store.d.ts.map +1 -0
- package/dist/store/kv-store.js +100 -0
- package/dist/store/kv-store.js.map +1 -0
- package/dist/store/secret-wrap.d.ts +109 -0
- package/dist/store/secret-wrap.d.ts.map +1 -0
- package/dist/store/secret-wrap.js +85 -0
- package/dist/store/secret-wrap.js.map +1 -0
- package/dist/trust-tasks/index.d.ts +2 -0
- package/dist/trust-tasks/index.d.ts.map +1 -0
- package/dist/trust-tasks/index.js +2 -0
- package/dist/trust-tasks/index.js.map +1 -0
- package/dist/trust-tasks/sign.d.ts +31 -0
- package/dist/trust-tasks/sign.d.ts.map +1 -0
- package/dist/trust-tasks/sign.js +141 -0
- package/dist/trust-tasks/sign.js.map +1 -0
- package/dist/util/timing.d.ts +14 -0
- package/dist/util/timing.d.ts.map +1 -0
- package/dist/util/timing.js +20 -0
- package/dist/util/timing.js.map +1 -0
- package/dist/vault/delete.d.ts +19 -0
- package/dist/vault/delete.d.ts.map +1 -0
- package/dist/vault/delete.js +35 -0
- package/dist/vault/delete.js.map +1 -0
- package/dist/vault/index.d.ts +8 -0
- package/dist/vault/index.d.ts.map +1 -0
- package/dist/vault/index.js +7 -0
- package/dist/vault/index.js.map +1 -0
- package/dist/vault/list.d.ts +96 -0
- package/dist/vault/list.d.ts.map +1 -0
- package/dist/vault/list.js +106 -0
- package/dist/vault/list.js.map +1 -0
- package/dist/vault/proxy-login.d.ts +100 -0
- package/dist/vault/proxy-login.d.ts.map +1 -0
- package/dist/vault/proxy-login.js +106 -0
- package/dist/vault/proxy-login.js.map +1 -0
- package/dist/vault/release.d.ts +33 -0
- package/dist/vault/release.d.ts.map +1 -0
- package/dist/vault/release.js +83 -0
- package/dist/vault/release.js.map +1 -0
- package/dist/vault/sign-trust-task.d.ts +26 -0
- package/dist/vault/sign-trust-task.d.ts.map +1 -0
- package/dist/vault/sign-trust-task.js +53 -0
- package/dist/vault/sign-trust-task.js.map +1 -0
- package/dist/vault/transport.d.ts +50 -0
- package/dist/vault/transport.d.ts.map +1 -0
- package/dist/vault/transport.js +118 -0
- package/dist/vault/transport.js.map +1 -0
- package/dist/vault/upsert.d.ts +102 -0
- package/dist/vault/upsert.d.ts.map +1 -0
- package/dist/vault/upsert.js +92 -0
- package/dist/vault/upsert.js.map +1 -0
- package/dist/vta/bridge-mediator-session.d.ts +26 -0
- package/dist/vta/bridge-mediator-session.d.ts.map +1 -0
- package/dist/vta/bridge-mediator-session.js +37 -0
- package/dist/vta/bridge-mediator-session.js.map +1 -0
- package/dist/vta/bridge-memory.d.ts +80 -0
- package/dist/vta/bridge-memory.d.ts.map +1 -0
- package/dist/vta/bridge-memory.js +162 -0
- package/dist/vta/bridge-memory.js.map +1 -0
- package/dist/vta/client.d.ts +40 -0
- package/dist/vta/client.d.ts.map +1 -0
- package/dist/vta/client.js +91 -0
- package/dist/vta/client.js.map +1 -0
- package/dist/vta/contexts.d.ts +60 -0
- package/dist/vta/contexts.d.ts.map +1 -0
- package/dist/vta/contexts.js +118 -0
- package/dist/vta/contexts.js.map +1 -0
- package/dist/vta/didcomm.d.ts +57 -0
- package/dist/vta/didcomm.d.ts.map +1 -0
- package/dist/vta/didcomm.js +138 -0
- package/dist/vta/didcomm.js.map +1 -0
- package/dist/vta/errors.d.ts +20 -0
- package/dist/vta/errors.d.ts.map +1 -0
- package/dist/vta/errors.js +64 -0
- package/dist/vta/errors.js.map +1 -0
- package/dist/vta/index.d.ts +15 -0
- package/dist/vta/index.d.ts.map +1 -0
- package/dist/vta/index.js +15 -0
- package/dist/vta/index.js.map +1 -0
- package/dist/vta/mediation.d.ts +80 -0
- package/dist/vta/mediation.d.ts.map +1 -0
- package/dist/vta/mediation.js +29 -0
- package/dist/vta/mediation.js.map +1 -0
- package/dist/vta/mediator-client.d.ts +66 -0
- package/dist/vta/mediator-client.d.ts.map +1 -0
- package/dist/vta/mediator-client.js +139 -0
- package/dist/vta/mediator-client.js.map +1 -0
- package/dist/vta/pickup.d.ts +81 -0
- package/dist/vta/pickup.d.ts.map +1 -0
- package/dist/vta/pickup.js +30 -0
- package/dist/vta/pickup.js.map +1 -0
- package/dist/vta/protocol.d.ts +76 -0
- package/dist/vta/protocol.d.ts.map +1 -0
- package/dist/vta/protocol.js +30 -0
- package/dist/vta/protocol.js.map +1 -0
- package/dist/vta/smoke.d.ts +59 -0
- package/dist/vta/smoke.d.ts.map +1 -0
- package/dist/vta/smoke.js +408 -0
- package/dist/vta/smoke.js.map +1 -0
- package/dist/vta/transport.d.ts +55 -0
- package/dist/vta/transport.d.ts.map +1 -0
- package/dist/vta/transport.js +2 -0
- package/dist/vta/transport.js.map +1 -0
- package/dist/vta/types.d.ts +50 -0
- package/dist/vta/types.d.ts.map +1 -0
- package/dist/vta/types.js +2 -0
- package/dist/vta/types.js.map +1 -0
- package/dist/vta/wallet-session.d.ts +87 -0
- package/dist/vta/wallet-session.d.ts.map +1 -0
- package/dist/vta/wallet-session.js +106 -0
- package/dist/vta/wallet-session.js.map +1 -0
- package/dist/webauthn/base64url.d.ts +3 -0
- package/dist/webauthn/base64url.d.ts.map +1 -0
- package/dist/webauthn/base64url.js +17 -0
- package/dist/webauthn/base64url.js.map +1 -0
- package/dist/webauthn/index.d.ts +4 -0
- package/dist/webauthn/index.d.ts.map +1 -0
- package/dist/webauthn/index.js +4 -0
- package/dist/webauthn/index.js.map +1 -0
- package/dist/webauthn/multikey.d.ts +26 -0
- package/dist/webauthn/multikey.d.ts.map +1 -0
- package/dist/webauthn/multikey.js +91 -0
- package/dist/webauthn/multikey.js.map +1 -0
- package/dist/webauthn/register.d.ts +36 -0
- package/dist/webauthn/register.d.ts.map +1 -0
- package/dist/webauthn/register.js +77 -0
- package/dist/webauthn/register.js.map +1 -0
- 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"}
|