@verana-labs/vs-agent-sdk 2.0.0-dev.9 → 2.0.0-pr.767.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/README.md +0 -2
  2. package/build/adminApi/AdminApiError.d.ts +28 -0
  3. package/build/adminApi/AdminApiError.js +60 -0
  4. package/build/adminApi/AdminApiError.js.map +1 -0
  5. package/build/adminApi/didcommModules.d.ts +2 -0
  6. package/build/adminApi/didcommModules.js +8 -0
  7. package/build/adminApi/didcommModules.js.map +1 -0
  8. package/build/adminApi/index.d.ts +4 -0
  9. package/build/adminApi/index.js +21 -0
  10. package/build/adminApi/index.js.map +1 -0
  11. package/build/adminApi/moduleEndpoint.d.ts +8 -0
  12. package/build/adminApi/moduleEndpoint.js +28 -0
  13. package/build/adminApi/moduleEndpoint.js.map +1 -0
  14. package/build/adminApi/pagination/PageDto.d.ts +7 -0
  15. package/build/adminApi/pagination/PageDto.js +50 -0
  16. package/build/adminApi/pagination/PageDto.js.map +1 -0
  17. package/build/adminApi/pagination/PaginationQueryDto.d.ts +11 -0
  18. package/build/adminApi/pagination/PaginationQueryDto.js +46 -0
  19. package/build/adminApi/pagination/PaginationQueryDto.js.map +1 -0
  20. package/build/adminApi/pagination/cursor.d.ts +28 -0
  21. package/build/adminApi/pagination/cursor.js +64 -0
  22. package/build/adminApi/pagination/cursor.js.map +1 -0
  23. package/build/adminApi/pagination/index.d.ts +4 -0
  24. package/build/adminApi/pagination/index.js +21 -0
  25. package/build/adminApi/pagination/index.js.map +1 -0
  26. package/build/adminApi/pagination/paginate.d.ts +27 -0
  27. package/build/adminApi/pagination/paginate.js +77 -0
  28. package/build/adminApi/pagination/paginate.js.map +1 -0
  29. package/build/agent/VsAgent.d.ts +17 -34
  30. package/build/agent/VsAgent.js +75 -205
  31. package/build/agent/VsAgent.js.map +1 -1
  32. package/build/agent/createVsAgent.d.ts +5 -6
  33. package/build/agent/createVsAgent.js +3 -5
  34. package/build/agent/createVsAgent.js.map +1 -1
  35. package/build/blockchain/AnonCredsTrustService.d.ts +62 -0
  36. package/build/blockchain/AnonCredsTrustService.js +256 -0
  37. package/build/blockchain/AnonCredsTrustService.js.map +1 -0
  38. package/build/blockchain/AuthorizationService.d.ts +5 -3
  39. package/build/blockchain/AuthorizationService.js +17 -29
  40. package/build/blockchain/AuthorizationService.js.map +1 -1
  41. package/build/blockchain/IndexerWebSocketService.d.ts +7 -1
  42. package/build/blockchain/IndexerWebSocketService.js +68 -36
  43. package/build/blockchain/IndexerWebSocketService.js.map +1 -1
  44. package/build/blockchain/VeranaChainService.d.ts +26 -19
  45. package/build/blockchain/VeranaChainService.js +136 -152
  46. package/build/blockchain/VeranaChainService.js.map +1 -1
  47. package/build/blockchain/VeranaIndexerService.d.ts +14 -1
  48. package/build/blockchain/VeranaIndexerService.js +122 -8
  49. package/build/blockchain/VeranaIndexerService.js.map +1 -1
  50. package/build/blockchain/handlers/authorizationHandlers.js +2 -2
  51. package/build/blockchain/handlers/authorizationHandlers.js.map +1 -1
  52. package/build/blockchain/handlers/defaultHandlers.js +6 -1
  53. package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
  54. package/build/blockchain/handlers/index.d.ts +1 -0
  55. package/build/blockchain/handlers/index.js +1 -0
  56. package/build/blockchain/handlers/index.js.map +1 -1
  57. package/build/blockchain/handlers/selfIssuanceHandlers.d.ts +13 -0
  58. package/build/blockchain/handlers/selfIssuanceHandlers.js +76 -0
  59. package/build/blockchain/handlers/selfIssuanceHandlers.js.map +1 -0
  60. package/build/blockchain/handlers/stateMutations.d.ts +26 -3
  61. package/build/blockchain/handlers/stateMutations.js +315 -41
  62. package/build/blockchain/handlers/stateMutations.js.map +1 -1
  63. package/build/blockchain/index.d.ts +2 -0
  64. package/build/blockchain/index.js +2 -0
  65. package/build/blockchain/index.js.map +1 -1
  66. package/build/blockchain/indexerMappers.d.ts +3 -0
  67. package/build/blockchain/indexerMappers.js +53 -0
  68. package/build/blockchain/indexerMappers.js.map +1 -0
  69. package/build/blockchain/types.d.ts +13 -69
  70. package/build/blockchain/types.js.map +1 -1
  71. package/build/bootstrap/EcsBootstrapService.d.ts +13 -4
  72. package/build/bootstrap/EcsBootstrapService.js +166 -109
  73. package/build/bootstrap/EcsBootstrapService.js.map +1 -1
  74. package/build/connections/ParentConnectionModule.d.ts +20 -0
  75. package/build/connections/ParentConnectionModule.js +56 -0
  76. package/build/connections/ParentConnectionModule.js.map +1 -0
  77. package/build/credentials/FullTailsFileService.d.ts +0 -1
  78. package/build/credentials/FullTailsFileService.js +0 -49
  79. package/build/credentials/FullTailsFileService.js.map +1 -1
  80. package/build/did/CachedDocumentLoader.d.ts +3 -0
  81. package/build/did/CachedDocumentLoader.js +7 -1
  82. package/build/did/CachedDocumentLoader.js.map +1 -1
  83. package/build/did/CachedWebDidResolver.d.ts +0 -4
  84. package/build/did/CachedWebDidResolver.js +1 -5
  85. package/build/did/CachedWebDidResolver.js.map +1 -1
  86. package/build/did/artifactServices.d.ts +12 -0
  87. package/build/did/artifactServices.js +48 -0
  88. package/build/did/artifactServices.js.map +1 -0
  89. package/build/did/legacyDidWeb.d.ts +6 -4
  90. package/build/did/legacyDidWeb.js +17 -14
  91. package/build/did/legacyDidWeb.js.map +1 -1
  92. package/build/did/publicDid.d.ts +4 -0
  93. package/build/did/publicDid.js +19 -0
  94. package/build/did/publicDid.js.map +1 -0
  95. package/build/events/BaseMessageEvents.js +139 -5
  96. package/build/events/BaseMessageEvents.js.map +1 -1
  97. package/build/events/ConnectionEvents.js +154 -86
  98. package/build/events/ConnectionEvents.js.map +1 -1
  99. package/build/events/VsAgentEvents.d.ts +11 -9
  100. package/build/events/VsAgentEvents.js +8 -1
  101. package/build/events/VsAgentEvents.js.map +1 -1
  102. package/build/events/VtFlowEvents.d.ts +1 -1
  103. package/build/events/VtFlowEvents.js +29 -17
  104. package/build/events/VtFlowEvents.js.map +1 -1
  105. package/build/index.d.ts +7 -1
  106. package/build/index.js +15 -2
  107. package/build/index.js.map +1 -1
  108. package/build/plugins/setupBaseDidComm.js +9 -12
  109. package/build/plugins/setupBaseDidComm.js.map +1 -1
  110. package/build/transports/VsAgentWsInboundTransport.d.ts +1 -1
  111. package/build/transports/VsAgentWsInboundTransport.js +20 -14
  112. package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
  113. package/build/types.d.ts +14 -13
  114. package/build/types.js +1 -2
  115. package/build/types.js.map +1 -1
  116. package/build/utils/agent.d.ts +29 -4
  117. package/build/utils/agent.js +91 -22
  118. package/build/utils/agent.js.map +1 -1
  119. package/build/utils/boundedFetch.d.ts +13 -0
  120. package/build/utils/boundedFetch.js +47 -0
  121. package/build/utils/boundedFetch.js.map +1 -0
  122. package/build/utils/didReadiness.js +5 -2
  123. package/build/utils/didReadiness.js.map +1 -1
  124. package/build/utils/ecsClaims.d.ts +46 -0
  125. package/build/utils/ecsClaims.js +115 -0
  126. package/build/utils/ecsClaims.js.map +1 -0
  127. package/build/utils/ecsService.d.ts +8 -0
  128. package/build/utils/ecsService.js +23 -0
  129. package/build/utils/ecsService.js.map +1 -0
  130. package/build/utils/index.d.ts +6 -0
  131. package/build/utils/index.js +6 -0
  132. package/build/utils/index.js.map +1 -1
  133. package/build/utils/selfIssuedEcsCredential.d.ts +8 -0
  134. package/build/utils/selfIssuedEcsCredential.js +158 -0
  135. package/build/utils/selfIssuedEcsCredential.js.map +1 -0
  136. package/build/utils/setupSelfTr.d.ts +35 -74
  137. package/build/utils/setupSelfTr.js +93 -312
  138. package/build/utils/setupSelfTr.js.map +1 -1
  139. package/build/utils/trustCredentialStore.d.ts +78 -9
  140. package/build/utils/trustCredentialStore.js +319 -126
  141. package/build/utils/trustCredentialStore.js.map +1 -1
  142. package/build/utils/typeMetadata.d.ts +43 -0
  143. package/build/utils/typeMetadata.js +77 -0
  144. package/build/utils/typeMetadata.js.map +1 -0
  145. package/build/utils/util.d.ts +19 -0
  146. package/build/utils/util.js +24 -0
  147. package/build/utils/util.js.map +1 -1
  148. package/build/utils/vcdm2.d.ts +34 -0
  149. package/build/utils/vcdm2.js +60 -0
  150. package/build/utils/vcdm2.js.map +1 -0
  151. package/build/utils/vtjscResolver.d.ts +23 -0
  152. package/build/utils/vtjscResolver.js +54 -0
  153. package/build/utils/vtjscResolver.js.map +1 -0
  154. package/build/vtFlow/VtFlowOrchestrator.d.ts +107 -14
  155. package/build/vtFlow/VtFlowOrchestrator.js +734 -109
  156. package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
  157. package/build/vtFlow/assertVerifiableService.d.ts +1 -0
  158. package/build/vtFlow/assertVerifiableService.js +45 -5
  159. package/build/vtFlow/assertVerifiableService.js.map +1 -1
  160. package/build/vtFlow/ecsIssuanceExemption.d.ts +12 -0
  161. package/build/vtFlow/ecsIssuanceExemption.js +84 -0
  162. package/build/vtFlow/ecsIssuanceExemption.js.map +1 -0
  163. package/build/vtFlow/index.d.ts +1 -0
  164. package/build/vtFlow/index.js +1 -0
  165. package/build/vtFlow/index.js.map +1 -1
  166. package/package.json +18 -12
  167. package/build/did/migrateWebVhLog.d.ts +0 -34
  168. package/build/did/migrateWebVhLog.js +0 -230
  169. package/build/did/migrateWebVhLog.js.map +0 -1
  170. package/build/did/migrateWebVhVersionTime.d.ts +0 -9
  171. package/build/did/migrateWebVhVersionTime.js +0 -191
  172. package/build/did/migrateWebVhVersionTime.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"legacyDidWeb.js","sourceRoot":"","sources":["../../src/did/legacyDidWeb.ts"],"names":[],"mappings":";;AAUA,oDAiCC;AA3CD,yCAA2F;AAE3F;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAC,WAAwB,EAAE,gBAAwB;;IACrF,MAAM,SAAS,GAAG,IAAA,eAAQ,EAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAE1C,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,WAAW,CAAA;IAElD,kFAAkF;IAClF,8EAA8E;IAC9E,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvC,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,IAAI,kBAAW,CAAC,WAAW,CAAC,CAAA;QAEtD,2GAA2G;QAC3G,iBAAiB,CAAC,OAAO,GAAG;YAC1B,GAAG,CAAC,MAAA,iBAAiB,CAAC,OAAO,mCAAI,EAAE,CAAC;YACpC,IAAI,yBAAkB,CAAC;gBACrB,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,YAAY;gBACjC,eAAe,EAAE,GAAG,gBAAgB,eAAe;gBACnD,IAAI,EAAE,mBAAmB;aAC1B,CAAC;SACH,CAAA;QAED,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;QAErF,OAAO,IAAI,kBAAW,iCACjB,sBAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,kBAAW,CAAC;YAC9D,qBAAqB;YACrB,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAC5B,CAAA;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"legacyDidWeb.js","sourceRoot":"","sources":["../../src/did/legacyDidWeb.ts"],"names":[],"mappings":";;AAQA,0CAOC;AAOD,oDA0BC;AAhDD,yCAAuE;AAEvE,yDAA2D;AAE3D;;;GAGG;AACH,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,SAAS,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,CAAA;IAE/B,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,GAAG,CAAA;IAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,WAAW,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAChE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,WAAwB;IAC3D,MAAM,SAAS,GAAG,IAAA,eAAQ,EAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAE1C,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,WAAW,CAAA;IAElD,kFAAkF;IAClF,8EAA8E;IAC9E,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvC,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,IAAI,kBAAW,CAAC,WAAW,CAAC,CAAA;QAEtD,+EAA+E;QAC/E,IAAA,yCAAsB,EAAC,iBAAiB,CAAC,CAAA;QAEzC,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;QAErF,OAAO,IAAI,kBAAW,iCACjB,sBAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,kBAAW,CAAC;YAC9D,qBAAqB;YACrB,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAC5B,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const SUPPORTED_PUBLIC_DID_METHODS: readonly ["web", "webvh"];
2
+ export type SupportedPublicDidMethod = (typeof SUPPORTED_PUBLIC_DID_METHODS)[number];
3
+ export declare function isSupportedPublicDidMethod(method: string): method is SupportedPublicDidMethod;
4
+ export declare function isSupportedPublicDid(did: string): boolean;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPPORTED_PUBLIC_DID_METHODS = void 0;
4
+ exports.isSupportedPublicDidMethod = isSupportedPublicDidMethod;
5
+ exports.isSupportedPublicDid = isSupportedPublicDid;
6
+ const core_1 = require("@credo-ts/core");
7
+ exports.SUPPORTED_PUBLIC_DID_METHODS = ['web', 'webvh'];
8
+ function isSupportedPublicDidMethod(method) {
9
+ return exports.SUPPORTED_PUBLIC_DID_METHODS.includes(method);
10
+ }
11
+ function isSupportedPublicDid(did) {
12
+ try {
13
+ return isSupportedPublicDidMethod((0, core_1.parseDid)(did).method);
14
+ }
15
+ catch (_a) {
16
+ return false;
17
+ }
18
+ }
19
+ //# sourceMappingURL=publicDid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicDid.js","sourceRoot":"","sources":["../../src/did/publicDid.ts"],"names":[],"mappings":";;;AAKA,gEAEC;AAED,oDAMC;AAfD,yCAAyC;AAE5B,QAAA,4BAA4B,GAAG,CAAC,KAAK,EAAE,OAAO,CAAU,CAAA;AAGrE,SAAgB,0BAA0B,CAAC,MAAc;IACvD,OAAQ,oCAAkD,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC7E,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,IAAA,eAAQ,EAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -2,14 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.baseMessageEvents = void 0;
4
4
  const anoncreds_1 = require("@credo-ts/anoncreds");
5
+ const core_1 = require("@credo-ts/core");
5
6
  const didcomm_1 = require("@credo-ts/didcomm");
6
7
  const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
8
+ const AnonCredsTrustService_1 = require("../blockchain/AnonCredsTrustService");
9
+ const types_1 = require("../blockchain/types");
7
10
  const agent_1 = require("../utils/agent");
8
11
  const VsAgentEvents_1 = require("./VsAgentEvents");
9
12
  const baseMessageEvents = async (agent, logger) => {
13
+ registerAnonCredsTrustDecision(agent, logger);
10
14
  // Proofs protocol messages (proof presentation and problem reports)
11
15
  agent.events.on(didcomm_1.DidCommEventTypes.DidCommMessageProcessed, async ({ payload }) => {
12
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
16
+ var _a, _b, _c, _d, _e, _f, _g, _h;
13
17
  const { message, connection } = payload;
14
18
  if (!connection)
15
19
  return;
@@ -61,8 +65,8 @@ const baseMessageEvents = async (agent, logger) => {
61
65
  try {
62
66
  const record = await agent.didcomm.proofs.getByThreadAndConnectionId(message.threadId, connection.id);
63
67
  const formatData = await agent.didcomm.proofs.getFormatData(record.id);
64
- const revealedAttributes = (_e = (_d = (_c = formatData.presentation) === null || _c === void 0 ? void 0 : _c.anoncreds) === null || _d === void 0 ? void 0 : _d.requested_proof.revealed_attrs) !== null && _e !== void 0 ? _e : (_g = (_f = formatData.presentation) === null || _f === void 0 ? void 0 : _f.indy) === null || _g === void 0 ? void 0 : _g.requested_proof.revealed_attrs;
65
- const revealedAttributeGroups = (_l = (_k = (_j = (_h = formatData.presentation) === null || _h === void 0 ? void 0 : _h.anoncreds) === null || _j === void 0 ? void 0 : _j.requested_proof) === null || _k === void 0 ? void 0 : _k.revealed_attr_groups) !== null && _l !== void 0 ? _l : (_o = (_m = formatData.presentation) === null || _m === void 0 ? void 0 : _m.indy) === null || _o === void 0 ? void 0 : _o.requested_proof.revealed_attr_groups;
68
+ const revealedAttributes = (_d = (_c = formatData.presentation) === null || _c === void 0 ? void 0 : _c.anoncreds) === null || _d === void 0 ? void 0 : _d.requested_proof.revealed_attrs;
69
+ const revealedAttributeGroups = (_f = (_e = formatData.presentation) === null || _e === void 0 ? void 0 : _e.anoncreds) === null || _f === void 0 ? void 0 : _f.requested_proof.revealed_attr_groups;
66
70
  const claims = [];
67
71
  if (revealedAttributes) {
68
72
  for (const [name, value] of Object.entries(revealedAttributes)) {
@@ -83,7 +87,7 @@ const baseMessageEvents = async (agent, logger) => {
83
87
  callbackUrl: callbackParameters.callbackUrl,
84
88
  claims,
85
89
  state: record.isVerified ? vs_agent_model_1.PresentationState.OK : vs_agent_model_1.PresentationState.VERIFICATION_ERROR,
86
- verified: (_p = record.isVerified) !== null && _p !== void 0 ? _p : false,
90
+ verified: (_g = record.isVerified) !== null && _g !== void 0 ? _g : false,
87
91
  ref: callbackParameters.ref,
88
92
  }));
89
93
  }
@@ -93,7 +97,7 @@ const baseMessageEvents = async (agent, logger) => {
93
97
  id: record.threadId,
94
98
  proofExchangeId: record.id,
95
99
  claims,
96
- verified: (_q = record.isVerified) !== null && _q !== void 0 ? _q : false,
100
+ verified: (_h = record.isVerified) !== null && _h !== void 0 ? _h : false,
97
101
  }),
98
102
  ],
99
103
  connectionId: record.connectionId,
@@ -145,4 +149,134 @@ const baseMessageEvents = async (agent, logger) => {
145
149
  });
146
150
  };
147
151
  exports.baseMessageEvents = baseMessageEvents;
152
+ function registerAnonCredsTrustDecision(agent, logger) {
153
+ agent.didcomm.registerMessageHandlerMiddleware(async (messageContext, next) => {
154
+ var _a;
155
+ await next();
156
+ const { connection, message } = messageContext;
157
+ const isPresentation = [
158
+ anoncreds_1.DidCommPresentationV1Message.type.messageTypeUri,
159
+ didcomm_1.DidCommPresentationV2Message.type.messageTypeUri,
160
+ ].includes(message.type);
161
+ if (!isPresentation || !connection)
162
+ return;
163
+ let record;
164
+ let presentation;
165
+ try {
166
+ record = await agent.didcomm.proofs.getByThreadAndConnectionId(message.threadId, connection.id);
167
+ const formatData = await agent.didcomm.proofs.getFormatData(record.id);
168
+ presentation = (_a = formatData.presentation) === null || _a === void 0 ? void 0 : _a.anoncreds;
169
+ }
170
+ catch (error) {
171
+ logger.error(`The agent cannot read the presentation of ${message.threadId}: ${error}`);
172
+ messageContext.responseMessage = undefined;
173
+ // The check did not run, so the exchange ends here, per [VSA-VTI-FLOW-VERIFY-AC-8]
174
+ if ((record === null || record === void 0 ? void 0 : record.role) === didcomm_1.DidCommProofRole.Verifier) {
175
+ await abandonPresentation(agent, record, connection, AnonCredsTrustService_1.AnonCredsTrustProblemCode.TrustResolutionUnavailable, `the agent cannot read the presentation: ${error}`, logger);
176
+ }
177
+ return;
178
+ }
179
+ if (await applyAnonCredsTrustDecision(agent, record, connection, presentation, logger)) {
180
+ messageContext.responseMessage = undefined;
181
+ return;
182
+ }
183
+ // The proof and the trust decision both succeeded, so the agent acknowledges the presentation.
184
+ const policy = record.metadata.get(AnonCredsTrustService_1.AUTO_ACCEPT_PRESENTATION_METADATA);
185
+ if (!(policy === null || policy === void 0 ? void 0 : policy.autoAccept) || record.state !== didcomm_1.DidCommProofState.PresentationReceived)
186
+ return;
187
+ try {
188
+ await agent.didcomm.proofs.acceptPresentation({ proofExchangeRecordId: record.id });
189
+ }
190
+ catch (error) {
191
+ logger.error(`The agent cannot acknowledge the presentation ${record.id}: ${error}`);
192
+ }
193
+ });
194
+ }
195
+ async function applyAnonCredsTrustDecision(agent, record, connection, presentation, logger) {
196
+ var _a, _b, _c, _d, _e, _f, _g, _h;
197
+ if (record.role !== didcomm_1.DidCommProofRole.Verifier || !presentation)
198
+ return false;
199
+ const identifiers = (_a = presentation.identifiers) !== null && _a !== void 0 ? _a : [];
200
+ const stored = record.metadata.get(AnonCredsTrustService_1.REQUESTED_CREDENTIAL_SCHEMAS_METADATA);
201
+ const requestedCredentialSchemas = Object.entries(Array.isArray(stored) ? {} : (stored !== null && stored !== void 0 ? stored : {}));
202
+ // A request whose creator recorded no CredentialSchema cannot be checked against what it asked
203
+ // for, so it abandons rather than accepting any schema.
204
+ if (requestedCredentialSchemas.length === 0) {
205
+ await abandonPresentation(agent, record, connection, AnonCredsTrustService_1.AnonCredsTrustProblemCode.TrustResolutionUnavailable, 'the exchange records no CredentialSchema of its requested credentials', logger);
206
+ return true;
207
+ }
208
+ const answered = Object.assign(Object.assign(Object.assign(Object.assign({}, (_b = presentation.requested_proof) === null || _b === void 0 ? void 0 : _b.revealed_attrs), (_c = presentation.requested_proof) === null || _c === void 0 ? void 0 : _c.revealed_attr_groups), (_d = presentation.requested_proof) === null || _d === void 0 ? void 0 : _d.unrevealed_attrs), (_e = presentation.requested_proof) === null || _e === void 0 ? void 0 : _e.predicates);
209
+ const issuersByCredentialSchema = new Map();
210
+ const unaccredited = [];
211
+ const unchecked = [];
212
+ for (const [group, requested] of requestedCredentialSchemas) {
213
+ const subProofIndex = (_f = answered[group]) === null || _f === void 0 ? void 0 : _f.sub_proof_index;
214
+ const credentialDefinitionId = subProofIndex === undefined ? undefined : (_g = identifiers[subProofIndex]) === null || _g === void 0 ? void 0 : _g.cred_def_id;
215
+ if (!credentialDefinitionId) {
216
+ unaccredited.push(`no sub-proof answers the requested group "${group}"`);
217
+ continue;
218
+ }
219
+ try {
220
+ const derived = await agent.anonCredsTrust.deriveCredentialSchema({ credentialDefinitionId });
221
+ if (derived.credentialSchemaId !== requested.credentialSchemaId) {
222
+ unaccredited.push(`${credentialDefinitionId} presents the CredentialSchema ${derived.credentialSchemaId} for the group "${group}", which asks for the CredentialSchema ${requested.credentialSchemaId}`);
223
+ continue;
224
+ }
225
+ if (!derived.issuerId) {
226
+ unaccredited.push(`${credentialDefinitionId} names no issuer`);
227
+ continue;
228
+ }
229
+ const issuers = (_h = issuersByCredentialSchema.get(derived.credentialSchemaId)) !== null && _h !== void 0 ? _h : [];
230
+ issuers.push(derived.issuerId);
231
+ issuersByCredentialSchema.set(derived.credentialSchemaId, issuers);
232
+ }
233
+ catch (error) {
234
+ const cannotCheck = !(error instanceof AnonCredsTrustService_1.AnonCredsTrustError) || error.reason === AnonCredsTrustService_1.AnonCredsTrustErrorReason.Unavailable;
235
+ if (cannotCheck)
236
+ unchecked.push(`${error}`);
237
+ else
238
+ unaccredited.push(`${error}`);
239
+ }
240
+ }
241
+ for (const [credentialSchemaId, issuers] of issuersByCredentialSchema) {
242
+ const result = await agent.anonCredsTrust.findUnaccreditedDids(issuers, types_1.ParticipantRole.Issuer, credentialSchemaId);
243
+ unaccredited.push(...result.unaccredited.map(did => `${did} holds no active ISSUER Participant for the CredentialSchema ${credentialSchemaId}`));
244
+ unchecked.push(...result.unchecked.map(did => `the agent cannot check the ISSUER Participant of ${did} for the CredentialSchema ${credentialSchemaId}`));
245
+ }
246
+ if (unaccredited.length === 0 && unchecked.length === 0)
247
+ return false;
248
+ const code = unaccredited.length > 0
249
+ ? AnonCredsTrustService_1.AnonCredsTrustProblemCode.IssuerNotAuthorized
250
+ : AnonCredsTrustService_1.AnonCredsTrustProblemCode.TrustResolutionUnavailable;
251
+ await abandonPresentation(agent, record, connection, code, [...unaccredited, ...unchecked].join('; '), logger);
252
+ return true;
253
+ }
254
+ async function abandonPresentation(agent, record, connection, code, description, logger) {
255
+ logger.warn(`The presentation ${record.id} fails the AnonCreds trust decision (${code}): ${description}`);
256
+ record.isVerified = false;
257
+ record.errorMessage = `${code}: ${description}`;
258
+ // `updateState` emits the state change with `previousState`, per [VSA-VTI-FLOW-VERIFY-AC-7]
259
+ const protocol = agent.dependencyManager
260
+ .resolve(didcomm_1.DidCommProofsModuleConfig)
261
+ .proofProtocols.find(candidate => candidate.version === record.protocolVersion);
262
+ if (!protocol) {
263
+ throw new core_1.CredoError(`No proof protocol registered for protocol version ${record.protocolVersion}, so the presentation ${record.id} cannot end in abandoned`);
264
+ }
265
+ const problemReport = record.protocolVersion === 'v1'
266
+ ? new anoncreds_1.DidCommPresentationV1ProblemReportMessage({ description: { code, en: description } })
267
+ : new didcomm_1.DidCommPresentationV2ProblemReportMessage({ description: { code, en: description } });
268
+ problemReport.setThread({ threadId: record.threadId, parentThreadId: record.parentThreadId });
269
+ try {
270
+ const outboundMessageContext = await (0, didcomm_1.getOutboundDidCommMessageContext)(agent.context, {
271
+ message: problemReport,
272
+ associatedRecord: record,
273
+ connectionRecord: connection,
274
+ });
275
+ await agent.dependencyManager.resolve(didcomm_1.DidCommMessageSender).sendMessage(outboundMessageContext);
276
+ }
277
+ catch (error) {
278
+ logger.error(`The agent cannot send the problem report of presentation ${record.id}: ${error}`);
279
+ }
280
+ await protocol.updateState(agent.context, record, didcomm_1.DidCommProofState.Abandoned);
281
+ }
148
282
  //# sourceMappingURL=BaseMessageEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMessageEvents.js","sourceRoot":"","sources":["../../src/events/BaseMessageEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseMessageEvents.js","sourceRoot":"","sources":["../../src/events/BaseMessageEvents.ts"],"names":[],"mappings":"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"}
@@ -4,107 +4,175 @@ exports.connectionEvents = void 0;
4
4
  const didcomm_1 = require("@credo-ts/didcomm");
5
5
  const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
6
6
  const VsAgentEvents_1 = require("./VsAgentEvents");
7
- const connectionEvents = async (agent, config) => {
8
- // Get the first record matching agent's DID and obtain all alternatives for it
7
+ // TODO: Fix single-use invitations for DIDComm v2 in Credo, then remove this function.
8
+ // In Credo, multiUseInvitation: false only sets reusable: false on the OOB record. It does not
9
+ // refuse a second connection from a v2 invitation, because v2 has no handshake.
10
+ async function discardExtraConnection(agent, record, logger) {
11
+ if (!record.outOfBandId || record.didcommVersion !== 'v2')
12
+ return false;
13
+ const outOfBandRecord = await agent.didcomm.oob.findById(record.outOfBandId);
14
+ if (!outOfBandRecord || outOfBandRecord.reusable)
15
+ return false;
16
+ const siblings = await agent.didcomm.connections.findAllByOutOfBandId(record.outOfBandId);
17
+ if (siblings.length < 2)
18
+ return false;
19
+ const accepted = siblings.reduce((oldest, candidate) => candidate.createdAt < oldest.createdAt ||
20
+ (candidate.createdAt.getTime() === oldest.createdAt.getTime() && candidate.id < oldest.id)
21
+ ? candidate
22
+ : oldest);
23
+ if (accepted.id === record.id)
24
+ return false;
25
+ logger.warn(`[connection-events] connection ${record.id} is a second use of the single-use invitation ${record.outOfBandId}; closing it`);
26
+ try {
27
+ await agent.didcomm.connections.hangup({ connectionId: record.id });
28
+ }
29
+ catch (error) {
30
+ logger.warn(`[connection-events] hangup of ${record.id} failed: ${error.message}`);
31
+ }
32
+ await agent.didcomm.connections.deleteById(record.id);
33
+ return true;
34
+ }
35
+ /**
36
+ * The DIDs under which a peer can address this agent: its public DID and the alternative DIDs
37
+ * of the DID record, such as the parallel did:web of a did:webvh.
38
+ *
39
+ * Resolved on each call, never at registration. VsAgent.initialize registers the listeners
40
+ * before it creates or loads the DID record, and a did:webvh agent holds only the SCID-less form
41
+ * of its DID until then. A list captured at that moment matches no request a wallet ever sends.
42
+ */
43
+ async function publicDidsOf(agent) {
44
+ if (!agent.did)
45
+ return [];
9
46
  const [agentPublicDidRecord] = await agent.dids.getCreatedDids({ did: agent.did });
10
47
  const alternativeDids = agentPublicDidRecord === null || agentPublicDidRecord === void 0 ? void 0 : agentPublicDidRecord.getTag('alternativeDids');
11
- const agentPublicDids = [agent.did, ...(Array.isArray(alternativeDids) ? alternativeDids : [])];
48
+ return [agent.did, ...(Array.isArray(alternativeDids) ? alternativeDids : [])];
49
+ }
50
+ const connectionEvents = async (agent, config) => {
12
51
  agent.events.on(didcomm_1.DidCommConnectionEventTypes.DidCommConnectionStateChanged, async ({ payload }) => {
13
- const record = payload.connectionRecord;
14
- if (record.outOfBandId && !record.getTag('parentConnectionId')) {
15
- const outOfBandRecord = await agent.didcomm.oob.findById(record.outOfBandId);
16
- const parentConnectionId = outOfBandRecord === null || outOfBandRecord === void 0 ? void 0 : outOfBandRecord.getTag('parentConnectionId');
17
- // Tag connection with its parent
18
- if (parentConnectionId) {
19
- record.setTag('parentConnectionId', parentConnectionId);
20
- await agent.context.dependencyManager
21
- .resolve(didcomm_1.DidCommConnectionRepository)
22
- .update(agent.context, record);
52
+ // an event listener is never awaited, so a rejection here would surface as an
53
+ // unhandled rejection and take the process down
54
+ try {
55
+ const record = payload.connectionRecord;
56
+ if (await discardExtraConnection(agent, record, config.logger))
57
+ return;
58
+ if (record.state === didcomm_1.DidCommDidExchangeState.Completed) {
59
+ if (config.discoveryOptions)
60
+ await agent.didcomm.discovery.queryFeatures({
61
+ connectionId: record.id,
62
+ protocolVersion: 'v2',
63
+ queries: config.discoveryOptions,
64
+ });
23
65
  }
24
- }
25
- if (record.state === didcomm_1.DidCommDidExchangeState.Completed) {
26
- if (config.discoveryOptions)
27
- await agent.didcomm.discovery.queryFeatures({
28
- connectionId: record.id,
29
- protocolVersion: 'v2',
30
- queries: config.discoveryOptions,
66
+ // If an out-of-band ID exists, use the invitation to find the thread IDs
67
+ // and identify the invitation that created the connection to update its state.
68
+ if (record.outOfBandId) {
69
+ const invitationRecord = await agent.didcomm.oob.findById(record.outOfBandId);
70
+ const threadIds = invitationRecord === null || invitationRecord === void 0 ? void 0 : invitationRecord.getTag('invitationRequestsThreadIds');
71
+ threadIds === null || threadIds === void 0 ? void 0 : threadIds.map(async (threadId) => {
72
+ const [proofRecord] = await agent.didcomm.proofs.findAllByQuery({ threadId });
73
+ if (!proofRecord)
74
+ return;
75
+ const callbackParameters = proofRecord.metadata.get('_2060/callbackParameters');
76
+ if (callbackParameters &&
77
+ callbackParameters.callbackUrl &&
78
+ record.state === didcomm_1.DidCommDidExchangeState.RequestReceived) {
79
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.PresentationStateUpdated, new vs_agent_model_1.PresentationStateUpdated({
80
+ proofExchangeId: proofRecord.id,
81
+ callbackUrl: callbackParameters.callbackUrl,
82
+ state: vs_agent_model_1.PresentationState.CONNECTED,
83
+ ref: callbackParameters.ref,
84
+ }));
85
+ }
31
86
  });
32
- }
33
- // If an out-of-band ID exists, use the invitation to find the thread IDs
34
- // and identify the invitation that created the connection to update its state.
35
- if (record.outOfBandId) {
36
- const invitationRecord = await agent.didcomm.oob.findById(record.outOfBandId);
37
- const threadIds = invitationRecord === null || invitationRecord === void 0 ? void 0 : invitationRecord.getTag('invitationRequestsThreadIds');
38
- threadIds === null || threadIds === void 0 ? void 0 : threadIds.map(async (threadId) => {
39
- const [proofRecord] = await agent.didcomm.proofs.findAllByQuery({ threadId });
40
- if (!proofRecord)
41
- return;
42
- const callbackParameters = proofRecord.metadata.get('_2060/callbackParameters');
43
- if (callbackParameters &&
44
- callbackParameters.callbackUrl &&
45
- record.state === didcomm_1.DidCommDidExchangeState.RequestReceived) {
46
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.PresentationStateUpdated, new vs_agent_model_1.PresentationStateUpdated({
47
- proofExchangeId: proofRecord.id,
48
- callbackUrl: callbackParameters.callbackUrl,
49
- state: vs_agent_model_1.PresentationState.CONNECTED,
50
- ref: callbackParameters.ref,
51
- }));
52
- }
87
+ }
88
+ // If discovery is enabled, send an empty 'completed' state so that the recipient knows to expect async features.
89
+ const body = new vs_agent_model_1.ConnectionStateUpdated({
90
+ connectionId: record.id,
91
+ invitationId: record.outOfBandId,
92
+ state: record.state,
93
+ metadata: config.discoveryOptions ? {} : undefined,
53
94
  });
95
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
96
+ }
97
+ catch (error) {
98
+ config.logger.error(`[connection-events] state change handler failed: ${error.message}`);
54
99
  }
55
- // If discovery is enabled, send an empty 'completed' state so that the recipient knows to expect async features.
56
- const body = new vs_agent_model_1.ConnectionStateUpdated({
57
- connectionId: record.id,
58
- invitationId: record.outOfBandId,
59
- state: record.state,
60
- metadata: config.discoveryOptions ? {} : undefined,
61
- });
62
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
63
100
  });
64
101
  agent.events.on(didcomm_1.DidCommConnectionEventTypes.DidCommConnectionDidRotated, async ({ payload }) => {
65
102
  var _a, _b;
66
- const record = payload.connectionRecord;
67
- const isTerminationByPeer = record.theirDid === undefined && ((_b = (_a = record.previousTheirDids) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0;
68
- if (!isTerminationByPeer)
69
- return;
70
- const body = new vs_agent_model_1.ConnectionStateUpdated({
71
- connectionId: record.id,
72
- invitationId: record.outOfBandId,
73
- state: 'terminated',
74
- });
75
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
103
+ // an event listener is never awaited, so a rejection here would surface as an
104
+ // unhandled rejection and take the process down
105
+ try {
106
+ const record = payload.connectionRecord;
107
+ const isTerminationByPeer = record.theirDid === undefined && ((_b = (_a = record.previousTheirDids) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0;
108
+ if (!isTerminationByPeer)
109
+ return;
110
+ const body = new vs_agent_model_1.ConnectionStateUpdated({
111
+ connectionId: record.id,
112
+ invitationId: record.outOfBandId,
113
+ state: 'terminated',
114
+ });
115
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
116
+ }
117
+ catch (error) {
118
+ config.logger.error(`[connection-events] did rotated handler failed: ${error.message}`);
119
+ }
76
120
  });
77
121
  agent.events.on(didcomm_1.DidCommDiscoverFeaturesEventTypes.DisclosureReceived, async ({ payload }) => {
78
122
  var _a;
79
- const record = payload.connection;
80
- payload.disclosures.forEach(item => record.metadata.add(`features-${item.type}`, { [item.id]: item.toJSON() }));
81
- await agent.context.dependencyManager
82
- .resolve(didcomm_1.DidCommConnectionRepository)
83
- .update(agent.context, payload.connection);
84
- const metadata = (_a = payload.disclosures) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => {
85
- acc[item.id] = JSON.stringify(item.toJSON());
86
- return acc;
87
- }, {});
88
- const body = new vs_agent_model_1.ConnectionStateUpdated({
89
- connectionId: record.id,
90
- invitationId: record.outOfBandId,
91
- state: vs_agent_model_1.ExtendedDidExchangeState.Updated,
92
- metadata,
93
- });
94
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
123
+ // an event listener is never awaited, so a rejection here would surface as an
124
+ // unhandled rejection and take the process down
125
+ try {
126
+ const record = payload.connection;
127
+ payload.disclosures.forEach(item => record.metadata.add(`features-${item.type}`, { [item.id]: item.toJSON() }));
128
+ await agent.context.dependencyManager
129
+ .resolve(didcomm_1.DidCommConnectionRepository)
130
+ .update(agent.context, payload.connection);
131
+ const metadata = (_a = payload.disclosures) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => {
132
+ acc[item.id] = JSON.stringify(item.toJSON());
133
+ return acc;
134
+ }, {});
135
+ const body = new vs_agent_model_1.ConnectionStateUpdated({
136
+ connectionId: record.id,
137
+ invitationId: record.outOfBandId,
138
+ state: vs_agent_model_1.ExtendedDidExchangeState.Updated,
139
+ metadata,
140
+ });
141
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
142
+ }
143
+ catch (error) {
144
+ config.logger.error(`[connection-events] disclosure handler failed: ${error.message}`);
145
+ }
95
146
  });
96
- // Auto-accept connections that go to the public did
147
+ // Auto-accept connections that go to the public did.
148
+ //
149
+ // This listener is the only path that answers a DID Exchange Request sent to the public DID.
150
+ // Credo creates the implicit invitation of such a request with autoAcceptConnection: false, the
151
+ // connection record inherits that value, and the request handler never falls back to the
152
+ // autoAcceptConnections setting of the connections module.
97
153
  agent.events.on(didcomm_1.DidCommConnectionEventTypes.DidCommConnectionStateChanged, async (data) => {
98
- config.logger.debug(`Incoming connection event: ${data.payload.connectionRecord.state}`);
99
- const outOfBandId = data.payload.connectionRecord.outOfBandId;
100
- if (!outOfBandId)
101
- return;
102
- const oob = await agent.didcomm.oob.findById(outOfBandId);
103
- if (agentPublicDids.includes(oob === null || oob === void 0 ? void 0 : oob.outOfBandInvitation.id) &&
104
- data.payload.connectionRecord.state === didcomm_1.DidCommDidExchangeState.RequestReceived) {
105
- config.logger.debug(`Incoming connection request for ${agent.did}`);
106
- await agent.didcomm.connections.acceptRequest(data.payload.connectionRecord.id);
107
- config.logger.debug(`Accepted request for ${agent.did}`);
154
+ // an event listener is never awaited, so a rejection here would surface as an
155
+ // unhandled rejection and take the process down
156
+ try {
157
+ const record = data.payload.connectionRecord;
158
+ config.logger.debug(`Incoming connection event: ${record.state}`);
159
+ if (record.state !== didcomm_1.DidCommDidExchangeState.RequestReceived || !record.outOfBandId)
160
+ return;
161
+ const oob = await agent.didcomm.oob.findById(record.outOfBandId);
162
+ const invitationId = oob === null || oob === void 0 ? void 0 : oob.outOfBandInvitation.id;
163
+ if (!invitationId || !invitationId.startsWith('did:'))
164
+ return;
165
+ const agentPublicDids = await publicDidsOf(agent);
166
+ if (!agentPublicDids.includes(invitationId)) {
167
+ config.logger.warn(`Connection request ${record.id} addresses ${invitationId}, which is none of the DIDs of this agent (${agentPublicDids.join(', ')}). The request stays unanswered.`);
168
+ return;
169
+ }
170
+ config.logger.debug(`Incoming connection request for ${invitationId}`);
171
+ await agent.didcomm.connections.acceptRequest(record.id);
172
+ config.logger.debug(`Accepted request ${record.id} for ${invitationId}`);
173
+ }
174
+ catch (error) {
175
+ config.logger.error(`[connection-events] incoming connection handler failed: ${error.message}`);
108
176
  }
109
177
  });
110
178
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionEvents.js","sourceRoot":"","sources":["../../src/events/ConnectionEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionEvents.js","sourceRoot":"","sources":["../../src/events/ConnectionEvents.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import type { VsAgent } from '../agent/VsAgent';
2
2
  import type { BaseEvent } from '@credo-ts/core';
3
- import { BaseMessage, ConnectionStateUpdated, Event, IndexerNotification, MessageReceived, MessageStateUpdated, PresentationStateUpdated, VtFlowStateUpdated } from '@verana-labs/vs-agent-model';
3
+ import { BaseMessage, ConnectionStateUpdated, Event, IndexerNotification, MessageReceived, PresentationStateUpdated, VtFlowStateUpdated } from '@verana-labs/vs-agent-model';
4
4
  export declare enum VsAgentEventTypes {
5
5
  ConnectionStateUpdated = "vs-agent-connection-state-updated",
6
6
  MessageReceived = "vs-agent-message-received",
7
- MessageStateUpdated = "vs-agent-message-state-updated",
8
7
  PresentationStateUpdated = "vs-agent-presentation-state-updated",
9
8
  VtFlowStateUpdated = "vs-agent-vt-flow-state-updated",
10
- IndexerNotification = "vs-agent-indexer-notification"
9
+ IndexerNotification = "vs-agent-indexer-notification",
10
+ ModuleMessageReceived = "vs-agent-module-message-received"
11
11
  }
12
12
  export interface VsAgentConnectionStateEvent extends BaseEvent {
13
13
  type: typeof VsAgentEventTypes.ConnectionStateUpdated;
@@ -21,12 +21,6 @@ export interface VsAgentMessageReceivedEvent extends BaseEvent {
21
21
  event: MessageReceived;
22
22
  };
23
23
  }
24
- export interface VsAgentMessageStateUpdatedEvent extends BaseEvent {
25
- type: typeof VsAgentEventTypes.MessageStateUpdated;
26
- payload: {
27
- event: MessageStateUpdated;
28
- };
29
- }
30
24
  export interface VsAgentPresentationStateUpdatedEvent extends BaseEvent {
31
25
  type: typeof VsAgentEventTypes.PresentationStateUpdated;
32
26
  payload: {
@@ -45,5 +39,13 @@ export interface VsAgentIndexerNotificationEvent extends BaseEvent {
45
39
  event: IndexerNotification;
46
40
  };
47
41
  }
42
+ export interface VsAgentModuleMessageReceivedEvent extends BaseEvent {
43
+ type: typeof VsAgentEventTypes.ModuleMessageReceived;
44
+ payload: {
45
+ type: string;
46
+ data: Record<string, unknown>;
47
+ };
48
+ }
48
49
  export declare function msgToEvent(message: BaseMessage): MessageReceived;
49
50
  export declare function emitVsAgentEvent(agent: VsAgent, type: VsAgentEventTypes, event: Event): void;
51
+ export declare function emitModuleMessageEvent(agent: VsAgent<any>, type: string, data: Record<string, unknown>): void;