@verana-labs/vs-agent-sdk 2.0.0-dev.8 → 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.
- package/README.md +0 -2
- package/build/adminApi/AdminApiError.d.ts +28 -0
- package/build/adminApi/AdminApiError.js +60 -0
- package/build/adminApi/AdminApiError.js.map +1 -0
- package/build/adminApi/didcommModules.d.ts +2 -0
- package/build/adminApi/didcommModules.js +8 -0
- package/build/adminApi/didcommModules.js.map +1 -0
- package/build/adminApi/index.d.ts +4 -0
- package/build/adminApi/index.js +21 -0
- package/build/adminApi/index.js.map +1 -0
- package/build/adminApi/moduleEndpoint.d.ts +8 -0
- package/build/adminApi/moduleEndpoint.js +28 -0
- package/build/adminApi/moduleEndpoint.js.map +1 -0
- package/build/adminApi/pagination/PageDto.d.ts +7 -0
- package/build/adminApi/pagination/PageDto.js +50 -0
- package/build/adminApi/pagination/PageDto.js.map +1 -0
- package/build/adminApi/pagination/PaginationQueryDto.d.ts +11 -0
- package/build/adminApi/pagination/PaginationQueryDto.js +46 -0
- package/build/adminApi/pagination/PaginationQueryDto.js.map +1 -0
- package/build/adminApi/pagination/cursor.d.ts +28 -0
- package/build/adminApi/pagination/cursor.js +64 -0
- package/build/adminApi/pagination/cursor.js.map +1 -0
- package/build/adminApi/pagination/index.d.ts +4 -0
- package/build/adminApi/pagination/index.js +21 -0
- package/build/adminApi/pagination/index.js.map +1 -0
- package/build/adminApi/pagination/paginate.d.ts +27 -0
- package/build/adminApi/pagination/paginate.js +77 -0
- package/build/adminApi/pagination/paginate.js.map +1 -0
- package/build/agent/VsAgent.d.ts +17 -34
- package/build/agent/VsAgent.js +75 -205
- package/build/agent/VsAgent.js.map +1 -1
- package/build/agent/createVsAgent.d.ts +5 -6
- package/build/agent/createVsAgent.js +3 -5
- package/build/agent/createVsAgent.js.map +1 -1
- package/build/blockchain/AnonCredsTrustService.d.ts +62 -0
- package/build/blockchain/AnonCredsTrustService.js +256 -0
- package/build/blockchain/AnonCredsTrustService.js.map +1 -0
- package/build/blockchain/AuthorizationService.d.ts +5 -3
- package/build/blockchain/AuthorizationService.js +17 -29
- package/build/blockchain/AuthorizationService.js.map +1 -1
- package/build/blockchain/IndexerWebSocketService.d.ts +7 -1
- package/build/blockchain/IndexerWebSocketService.js +68 -36
- package/build/blockchain/IndexerWebSocketService.js.map +1 -1
- package/build/blockchain/VeranaChainService.d.ts +26 -19
- package/build/blockchain/VeranaChainService.js +136 -152
- package/build/blockchain/VeranaChainService.js.map +1 -1
- package/build/blockchain/VeranaIndexerService.d.ts +14 -1
- package/build/blockchain/VeranaIndexerService.js +122 -8
- package/build/blockchain/VeranaIndexerService.js.map +1 -1
- package/build/blockchain/handlers/authorizationHandlers.js +2 -2
- package/build/blockchain/handlers/authorizationHandlers.js.map +1 -1
- package/build/blockchain/handlers/defaultHandlers.js +6 -1
- package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
- package/build/blockchain/handlers/index.d.ts +1 -0
- package/build/blockchain/handlers/index.js +1 -0
- package/build/blockchain/handlers/index.js.map +1 -1
- package/build/blockchain/handlers/selfIssuanceHandlers.d.ts +13 -0
- package/build/blockchain/handlers/selfIssuanceHandlers.js +76 -0
- package/build/blockchain/handlers/selfIssuanceHandlers.js.map +1 -0
- package/build/blockchain/handlers/stateMutations.d.ts +26 -3
- package/build/blockchain/handlers/stateMutations.js +317 -41
- package/build/blockchain/handlers/stateMutations.js.map +1 -1
- package/build/blockchain/index.d.ts +2 -0
- package/build/blockchain/index.js +2 -0
- package/build/blockchain/index.js.map +1 -1
- package/build/blockchain/indexerMappers.d.ts +3 -0
- package/build/blockchain/indexerMappers.js +53 -0
- package/build/blockchain/indexerMappers.js.map +1 -0
- package/build/blockchain/types.d.ts +13 -69
- package/build/blockchain/types.js.map +1 -1
- package/build/bootstrap/EcsBootstrapService.d.ts +13 -3
- package/build/bootstrap/EcsBootstrapService.js +168 -79
- package/build/bootstrap/EcsBootstrapService.js.map +1 -1
- package/build/connections/ParentConnectionModule.d.ts +20 -0
- package/build/connections/ParentConnectionModule.js +56 -0
- package/build/connections/ParentConnectionModule.js.map +1 -0
- package/build/credentials/FullTailsFileService.d.ts +0 -1
- package/build/credentials/FullTailsFileService.js +0 -49
- package/build/credentials/FullTailsFileService.js.map +1 -1
- package/build/did/CachedDocumentLoader.d.ts +3 -0
- package/build/did/CachedDocumentLoader.js +7 -1
- package/build/did/CachedDocumentLoader.js.map +1 -1
- package/build/did/CachedWebDidResolver.d.ts +0 -4
- package/build/did/CachedWebDidResolver.js +1 -5
- package/build/did/CachedWebDidResolver.js.map +1 -1
- package/build/did/artifactServices.d.ts +12 -0
- package/build/did/artifactServices.js +48 -0
- package/build/did/artifactServices.js.map +1 -0
- package/build/did/legacyDidWeb.d.ts +6 -4
- package/build/did/legacyDidWeb.js +17 -14
- package/build/did/legacyDidWeb.js.map +1 -1
- package/build/did/publicDid.d.ts +4 -0
- package/build/did/publicDid.js +19 -0
- package/build/did/publicDid.js.map +1 -0
- package/build/events/BaseMessageEvents.js +139 -5
- package/build/events/BaseMessageEvents.js.map +1 -1
- package/build/events/ConnectionEvents.js +154 -86
- package/build/events/ConnectionEvents.js.map +1 -1
- package/build/events/VsAgentEvents.d.ts +11 -9
- package/build/events/VsAgentEvents.js +8 -1
- package/build/events/VsAgentEvents.js.map +1 -1
- package/build/events/VtFlowEvents.d.ts +1 -1
- package/build/events/VtFlowEvents.js +29 -17
- package/build/events/VtFlowEvents.js.map +1 -1
- package/build/index.d.ts +7 -1
- package/build/index.js +15 -2
- package/build/index.js.map +1 -1
- package/build/plugins/setupBaseDidComm.js +9 -12
- package/build/plugins/setupBaseDidComm.js.map +1 -1
- package/build/transports/VsAgentWsInboundTransport.d.ts +1 -1
- package/build/transports/VsAgentWsInboundTransport.js +20 -14
- package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
- package/build/types.d.ts +14 -13
- package/build/types.js +1 -2
- package/build/types.js.map +1 -1
- package/build/utils/agent.d.ts +29 -4
- package/build/utils/agent.js +91 -22
- package/build/utils/agent.js.map +1 -1
- package/build/utils/boundedFetch.d.ts +13 -0
- package/build/utils/boundedFetch.js +47 -0
- package/build/utils/boundedFetch.js.map +1 -0
- package/build/utils/didReadiness.d.ts +9 -0
- package/build/utils/didReadiness.js +42 -0
- package/build/utils/didReadiness.js.map +1 -0
- package/build/utils/ecsClaims.d.ts +46 -0
- package/build/utils/ecsClaims.js +115 -0
- package/build/utils/ecsClaims.js.map +1 -0
- package/build/utils/ecsService.d.ts +8 -0
- package/build/utils/ecsService.js +23 -0
- package/build/utils/ecsService.js.map +1 -0
- package/build/utils/index.d.ts +6 -0
- package/build/utils/index.js +6 -0
- package/build/utils/index.js.map +1 -1
- package/build/utils/selfIssuedEcsCredential.d.ts +8 -0
- package/build/utils/selfIssuedEcsCredential.js +158 -0
- package/build/utils/selfIssuedEcsCredential.js.map +1 -0
- package/build/utils/setupSelfTr.d.ts +35 -74
- package/build/utils/setupSelfTr.js +93 -312
- package/build/utils/setupSelfTr.js.map +1 -1
- package/build/utils/trustCredentialStore.d.ts +78 -9
- package/build/utils/trustCredentialStore.js +319 -126
- package/build/utils/trustCredentialStore.js.map +1 -1
- package/build/utils/typeMetadata.d.ts +43 -0
- package/build/utils/typeMetadata.js +77 -0
- package/build/utils/typeMetadata.js.map +1 -0
- package/build/utils/util.d.ts +19 -0
- package/build/utils/util.js +24 -0
- package/build/utils/util.js.map +1 -1
- package/build/utils/vcdm2.d.ts +34 -0
- package/build/utils/vcdm2.js +60 -0
- package/build/utils/vcdm2.js.map +1 -0
- package/build/utils/vtjscResolver.d.ts +23 -0
- package/build/utils/vtjscResolver.js +54 -0
- package/build/utils/vtjscResolver.js.map +1 -0
- package/build/vtFlow/VtFlowOrchestrator.d.ts +107 -14
- package/build/vtFlow/VtFlowOrchestrator.js +734 -109
- package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
- package/build/vtFlow/assertVerifiableService.d.ts +1 -0
- package/build/vtFlow/assertVerifiableService.js +45 -5
- package/build/vtFlow/assertVerifiableService.js.map +1 -1
- package/build/vtFlow/ecsIssuanceExemption.d.ts +12 -0
- package/build/vtFlow/ecsIssuanceExemption.js +84 -0
- package/build/vtFlow/ecsIssuanceExemption.js.map +1 -0
- package/build/vtFlow/index.d.ts +1 -0
- package/build/vtFlow/index.js +1 -0
- package/build/vtFlow/index.js.map +1 -1
- package/package.json +18 -12
- package/build/did/migrateWebVhLog.d.ts +0 -34
- package/build/did/migrateWebVhLog.js +0 -230
- package/build/did/migrateWebVhLog.js.map +0 -1
- package/build/did/migrateWebVhVersionTime.d.ts +0 -9
- package/build/did/migrateWebVhVersionTime.js +0 -191
- package/build/did/migrateWebVhVersionTime.js.map +0 -1
|
@@ -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
|
|
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 = (
|
|
65
|
-
const revealedAttributeGroups = (
|
|
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: (
|
|
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: (
|
|
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":";;;AAEA,mDAA6G;AAE7G,+CAQ0B;AAC1B,gEAQoC;AAEpC,0CAA4C;AAE5C,mDAAiF;AAE1E,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAgC,EAAE,MAAkB,EAAE,EAAE;IAC9F,oEAAoE;IACpE,KAAK,CAAC,MAAM,CAAC,EAAE,CACb,2BAAiB,CAAC,uBAAuB,EACzC,KAAK,EAAE,EAAE,OAAO,EAAgC,EAAE,EAAE;;QAClD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAEvC,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,IACE;YACE,mDAAyC,CAAC,IAAI,CAAC,cAAc;YAC7D,qDAAyC,CAAC,IAAI,CAAC,cAAc;SAC9D,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EACxB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;YACnD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAClE,OAAO,CAAC,QAAQ,EAChB,UAAU,CAAC,EAAE,CACd,CAAA;gBACD,MAAM,SAAS,GACb,MAAC,OAAqD,CAAC,WAAW,CAAC,EAAE,mCACpE,OAAqD,CAAC,WAAW,CAAC,IAAI,CAAA;gBAEzE,MAAM,GAAG,GAAG,IAAI,2CAA0B,CAAC;oBACzC,mBAAmB,EAAE;wBACnB,IAAI,uDAAsC,CAAC;4BACzC,SAAS;4BACT,EAAE,EAAE,MAAM,CAAC,QAAQ;4BACnB,eAAe,EAAE,MAAM,CAAC,EAAE;yBAC3B,CAAC;qBACH;oBACD,YAAY,EAAE,MAAM,CAAC,YAAa;oBAClC,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,QAAQ,EAAE,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACnD,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAA;gBAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAE5D,CAAA;gBAEb,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;oBACzD,MAAM,QAAQ,GAAsC;wBAClD,kBAAkB,EAAE,kCAAiB,CAAC,OAAO;wBAC7C,iCAAiC,EAAE,kCAAiB,CAAC,yBAAyB;qBAC/E,CAAA;oBACD,IAAA,gCAAgB,EACd,KAAK,EACL,iCAAiB,CAAC,wBAAwB,EAC1C,IAAI,yCAAwB,CAAC;wBAC3B,eAAe,EAAE,MAAM,CAAC,EAAE;wBAC1B,WAAW,EAAE,kBAAkB,CAAC,WAAW;wBAC3C,KAAK,EAAE,MAAA,QAAQ,CAAC,SAAS,CAAC,mCAAI,kCAAiB,CAAC,iBAAiB;wBACjE,GAAG,EAAE,kBAAkB,CAAC,GAAG;qBAC5B,CAAC,CACH,CAAA;gBACH,CAAC;gBAED,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,GAAG,CAAC,CAAC,CAAA;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,iDAAiD,KAAK,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;QAED,IACE;YACE,wCAA4B,CAAC,IAAI,CAAC,cAAc;YAChD,sCAA4B,CAAC,IAAI,CAAC,cAAc;SACjD,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EACxB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;YAEpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAClE,OAAO,CAAC,QAAQ,EAChB,UAAU,CAAC,EAAE,CACd,CAAA;gBACD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAEtE,MAAM,kBAAkB,GACtB,MAAA,MAAA,MAAA,UAAU,CAAC,YAAY,0CAAE,SAAS,0CAAE,eAAe,CAAC,cAAc,mCAClE,MAAA,MAAA,UAAU,CAAC,YAAY,0CAAE,IAAI,0CAAE,eAAe,CAAC,cAAc,CAAA;gBAE/D,MAAM,uBAAuB,GAC3B,MAAA,MAAA,MAAA,MAAA,UAAU,CAAC,YAAY,0CAAE,SAAS,0CAAE,eAAe,0CAAE,oBAAoB,mCACzE,MAAA,MAAA,UAAU,CAAC,YAAY,0CAAE,IAAI,0CAAE,eAAe,CAAC,oBAAoB,CAAA;gBAErE,MAAM,MAAM,GAAY,EAAE,CAAA;gBAC1B,IAAI,kBAAkB,EAAE,CAAC;oBACvB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBACpD,CAAC;gBACH,CAAC;gBAED,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,KAAK,MAAM,CAAC,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC1E,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;4BAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;wBACzF,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAE5D,CAAA;gBAEb,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;oBACzD,IAAA,gCAAgB,EACd,KAAK,EACL,iCAAiB,CAAC,wBAAwB,EAC1C,IAAI,yCAAwB,CAAC;wBAC3B,eAAe,EAAE,MAAM,CAAC,EAAE;wBAC1B,WAAW,EAAE,kBAAkB,CAAC,WAAW;wBAC3C,MAAM;wBACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,kCAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAiB,CAAC,kBAAkB;wBACtF,QAAQ,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,KAAK;wBACpC,GAAG,EAAE,kBAAkB,CAAC,GAAG;qBAC5B,CAAC,CACH,CAAA;gBACH,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,2CAA0B,CAAC;oBACzC,mBAAmB,EAAE;wBACnB,IAAI,uDAAsC,CAAC;4BACzC,EAAE,EAAE,MAAM,CAAC,QAAQ;4BACnB,eAAe,EAAE,MAAM,CAAC,EAAE;4BAC1B,MAAM;4BACN,QAAQ,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,KAAK;yBACrC,CAAC;qBACH;oBACD,YAAY,EAAE,MAAM,CAAC,YAAa;oBAClC,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,QAAQ,EAAE,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACnD,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAA;gBAEF,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,GAAG,CAAC,CAAC,CAAA;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC,CACF,CAAA;IAED,oBAAoB;IACpB,KAAK,CAAC,MAAM,CAAC,EAAE,CACb,qCAA2B,CAAC,6BAA6B,EACzD,KAAK,EAAE,EAAE,OAAO,EAAsC,EAAE,EAAE;;QACxD,MAAM,CAAC,KAAK,CACV,2DAA2D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CACnL,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAA;QAE/C,IAAI,MAAM,CAAC,KAAK,KAAK,gCAAsB,CAAC,gBAAgB,EAAE,CAAC;YAC7D,MAAM,yBAAyB,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChG,MAAM,OAAO,GAAG,IAAI,yCAAwB,CAAC;gBAC3C,YAAY,EAAE,MAAM,CAAC,YAAa;gBAClC,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,QAAQ;gBAC7C,MAAM,EACJ,MAAA,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,iBAAiB,0CAAE,UAAU,CAAC,GAAG,CAC1D,CAAC,CAAC,EAAE,CAAC,IAAI,sBAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CACvE,mCAAI,EAAE;gBACT,sBAAsB,EAAE,MAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,iDAAiD,CAAC,0CAC1F,sBAAsB;gBAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAA;YAEF,IAAI,OAAO,CAAC,QAAQ;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnF,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,OAAO,CAAC,CAAC,CAAA;QACjF,CAAC;aAAM,IACL;YACE,gCAAsB,CAAC,QAAQ;YAC/B,gCAAsB,CAAC,IAAI;YAC3B,gCAAsB,CAAC,SAAS;SACjC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACxB,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,2CAA0B,CAAC;gBAC7C,YAAY,EAAE,MAAM,CAAC,YAAa;gBAClC,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;gBACnD,KAAK,EACH,MAAM,CAAC,YAAY,KAAK,mCAAmC;oBACzD,CAAC,CAAC,gCAAsB,CAAC,QAAQ;oBACjC,CAAC,CAAC,MAAM,CAAC,KAAK;aACnB,CAAC,CAAA;YACF,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,OAAO,CAAC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC,CAAA;AAhMY,QAAA,iBAAiB,qBAgM7B"}
|
|
1
|
+
{"version":3,"file":"BaseMessageEvents.js","sourceRoot":"","sources":["../../src/events/BaseMessageEvents.ts"],"names":[],"mappings":";;;AAIA,mDAA6G;AAC7G,yCAAuD;AACvD,+CAa0B;AAC1B,gEAQoC;AAEpC,+EAO4C;AAC5C,+CAAqD;AACrD,0CAA4C;AAE5C,mDAAiF;AAE1E,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAgC,EAAE,MAAkB,EAAE,EAAE;IAC9F,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAE7C,oEAAoE;IACpE,KAAK,CAAC,MAAM,CAAC,EAAE,CACb,2BAAiB,CAAC,uBAAuB,EACzC,KAAK,EAAE,EAAE,OAAO,EAAgC,EAAE,EAAE;;QAClD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAEvC,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,IACE;YACE,mDAAyC,CAAC,IAAI,CAAC,cAAc;YAC7D,qDAAyC,CAAC,IAAI,CAAC,cAAc;SAC9D,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EACxB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;YACnD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAClE,OAAO,CAAC,QAAQ,EAChB,UAAU,CAAC,EAAE,CACd,CAAA;gBACD,MAAM,SAAS,GACb,MAAC,OAAqD,CAAC,WAAW,CAAC,EAAE,mCACpE,OAAqD,CAAC,WAAW,CAAC,IAAI,CAAA;gBAEzE,MAAM,GAAG,GAAG,IAAI,2CAA0B,CAAC;oBACzC,mBAAmB,EAAE;wBACnB,IAAI,uDAAsC,CAAC;4BACzC,SAAS;4BACT,EAAE,EAAE,MAAM,CAAC,QAAQ;4BACnB,eAAe,EAAE,MAAM,CAAC,EAAE;yBAC3B,CAAC;qBACH;oBACD,YAAY,EAAE,MAAM,CAAC,YAAa;oBAClC,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,QAAQ,EAAE,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACnD,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAA;gBAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAE5D,CAAA;gBAEb,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;oBACzD,MAAM,QAAQ,GAAsC;wBAClD,kBAAkB,EAAE,kCAAiB,CAAC,OAAO;wBAC7C,iCAAiC,EAAE,kCAAiB,CAAC,yBAAyB;qBAC/E,CAAA;oBACD,IAAA,gCAAgB,EACd,KAAK,EACL,iCAAiB,CAAC,wBAAwB,EAC1C,IAAI,yCAAwB,CAAC;wBAC3B,eAAe,EAAE,MAAM,CAAC,EAAE;wBAC1B,WAAW,EAAE,kBAAkB,CAAC,WAAW;wBAC3C,KAAK,EAAE,MAAA,QAAQ,CAAC,SAAS,CAAC,mCAAI,kCAAiB,CAAC,iBAAiB;wBACjE,GAAG,EAAE,kBAAkB,CAAC,GAAG;qBAC5B,CAAC,CACH,CAAA;gBACH,CAAC;gBAED,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,GAAG,CAAC,CAAC,CAAA;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,iDAAiD,KAAK,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;QAED,IACE;YACE,wCAA4B,CAAC,IAAI,CAAC,cAAc;YAChD,sCAA4B,CAAC,IAAI,CAAC,cAAc;SACjD,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EACxB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;YAEpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAClE,OAAO,CAAC,QAAQ,EAChB,UAAU,CAAC,EAAE,CACd,CAAA;gBACD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAEtE,MAAM,kBAAkB,GAAG,MAAA,MAAA,UAAU,CAAC,YAAY,0CAAE,SAAS,0CAAE,eAAe,CAAC,cAAc,CAAA;gBAE7F,MAAM,uBAAuB,GAC3B,MAAA,MAAA,UAAU,CAAC,YAAY,0CAAE,SAAS,0CAAE,eAAe,CAAC,oBAAoB,CAAA;gBAE1E,MAAM,MAAM,GAAY,EAAE,CAAA;gBAC1B,IAAI,kBAAkB,EAAE,CAAC;oBACvB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBACpD,CAAC;gBACH,CAAC;gBAED,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,KAAK,MAAM,CAAC,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC1E,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;4BAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;wBACzF,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAE5D,CAAA;gBAEb,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;oBACzD,IAAA,gCAAgB,EACd,KAAK,EACL,iCAAiB,CAAC,wBAAwB,EAC1C,IAAI,yCAAwB,CAAC;wBAC3B,eAAe,EAAE,MAAM,CAAC,EAAE;wBAC1B,WAAW,EAAE,kBAAkB,CAAC,WAAW;wBAC3C,MAAM;wBACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,kCAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAiB,CAAC,kBAAkB;wBACtF,QAAQ,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,KAAK;wBACpC,GAAG,EAAE,kBAAkB,CAAC,GAAG;qBAC5B,CAAC,CACH,CAAA;gBACH,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,2CAA0B,CAAC;oBACzC,mBAAmB,EAAE;wBACnB,IAAI,uDAAsC,CAAC;4BACzC,EAAE,EAAE,MAAM,CAAC,QAAQ;4BACnB,eAAe,EAAE,MAAM,CAAC,EAAE;4BAC1B,MAAM;4BACN,QAAQ,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,KAAK;yBACrC,CAAC;qBACH;oBACD,YAAY,EAAE,MAAM,CAAC,YAAa;oBAClC,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,QAAQ,EAAE,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACnD,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAA;gBAEF,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,GAAG,CAAC,CAAC,CAAA;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC,CACF,CAAA;IAED,oBAAoB;IACpB,KAAK,CAAC,MAAM,CAAC,EAAE,CACb,qCAA2B,CAAC,6BAA6B,EACzD,KAAK,EAAE,EAAE,OAAO,EAAsC,EAAE,EAAE;;QACxD,MAAM,CAAC,KAAK,CACV,2DAA2D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CACnL,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAA;QAE/C,IAAI,MAAM,CAAC,KAAK,KAAK,gCAAsB,CAAC,gBAAgB,EAAE,CAAC;YAC7D,MAAM,yBAAyB,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChG,MAAM,OAAO,GAAG,IAAI,yCAAwB,CAAC;gBAC3C,YAAY,EAAE,MAAM,CAAC,YAAa;gBAClC,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,QAAQ;gBAC7C,MAAM,EACJ,MAAA,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,iBAAiB,0CAAE,UAAU,CAAC,GAAG,CAC1D,CAAC,CAAC,EAAE,CAAC,IAAI,sBAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CACvE,mCAAI,EAAE;gBACT,sBAAsB,EAAE,MAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,iDAAiD,CAAC,0CAC1F,sBAAsB;gBAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAA;YAEF,IAAI,OAAO,CAAC,QAAQ;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnF,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,OAAO,CAAC,CAAC,CAAA;QACjF,CAAC;aAAM,IACL;YACE,gCAAsB,CAAC,QAAQ;YAC/B,gCAAsB,CAAC,IAAI;YAC3B,gCAAsB,CAAC,SAAS;SACjC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACxB,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,2CAA0B,CAAC;gBAC7C,YAAY,EAAE,MAAM,CAAC,YAAa;gBAClC,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;gBACnD,KAAK,EACH,MAAM,CAAC,YAAY,KAAK,mCAAmC;oBACzD,CAAC,CAAC,gCAAsB,CAAC,QAAQ;oBACjC,CAAC,CAAC,MAAM,CAAC,KAAK;aACnB,CAAC,CAAA;YACF,IAAA,gCAAgB,EAAC,KAAK,EAAE,iCAAiB,CAAC,eAAe,EAAE,IAAA,0BAAU,EAAC,OAAO,CAAC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC,CAAA;AA/LY,QAAA,iBAAiB,qBA+L7B;AAED,SAAS,8BAA8B,CAAC,KAAgC,EAAE,MAAkB;IAC1F,KAAK,CAAC,OAAO,CAAC,gCAAgC,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE;;QAC5E,MAAM,IAAI,EAAE,CAAA;QAEZ,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,CAAA;QAC9C,MAAM,cAAc,GAAG;YACrB,wCAA4B,CAAC,IAAI,CAAC,cAAc;YAChD,sCAA4B,CAAC,IAAI,CAAC,cAAc;SACjD,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAExB,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU;YAAE,OAAM;QAE1C,IAAI,MAA8C,CAAA;QAClD,IAAI,YAAwC,CAAA;QAC5C,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,CAAA;YAC/F,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACtE,YAAY,GAAG,MAAA,UAAU,CAAC,YAAY,0CAAE,SAAS,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6CAA6C,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAA;YACvF,cAAc,CAAC,eAAe,GAAG,SAAS,CAAA;YAE1C,mFAAmF;YACnF,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,0BAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC/C,MAAM,mBAAmB,CACvB,KAAK,EACL,MAAM,EACN,UAAU,EACV,iDAAyB,CAAC,0BAA0B,EACpD,2CAA2C,KAAK,EAAE,EAClD,MAAM,CACP,CAAA;YACH,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,MAAM,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;YACvF,cAAc,CAAC,eAAe,GAAG,SAAS,CAAA;YAC1C,OAAM;QACR,CAAC;QAED,+FAA+F;QAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAA0B,yDAAiC,CAAC,CAAA;QAC9F,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAA,IAAI,MAAM,CAAC,KAAK,KAAK,2BAAiB,CAAC,oBAAoB;YAAE,OAAM;QAE1F,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iDAAiD,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC,CAAA;QACtF,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,KAAgC,EAChC,MAAkC,EAClC,UAAmC,EACnC,YAAwC,EACxC,MAAkB;;IAElB,IAAI,MAAM,CAAC,IAAI,KAAK,0BAAgB,CAAC,QAAQ,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAA;IAE5E,MAAM,WAAW,GAAG,MAAA,YAAY,CAAC,WAAW,mCAAI,EAAE,CAAA;IAElD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,6DAAqC,CAGhE,CAAA;IACR,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,CAAA;IAE9F,+FAA+F;IAC/F,wDAAwD;IACxD,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,mBAAmB,CACvB,KAAK,EACL,MAAM,EACN,UAAU,EACV,iDAAyB,CAAC,0BAA0B,EACpD,uEAAuE,EACvE,MAAM,CACP,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,+DACT,MAAA,YAAY,CAAC,eAAe,0CAAE,cAAc,GAC5C,MAAA,YAAY,CAAC,eAAe,0CAAE,oBAAoB,GAClD,MAAA,YAAY,CAAC,eAAe,0CAAE,gBAAgB,GAC9C,MAAA,YAAY,CAAC,eAAe,0CAAE,UAAU,CAC5C,CAAA;IAED,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC7D,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,MAAM,SAAS,GAAa,EAAE,CAAA;IAE9B,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,0BAA0B,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC,0CAAE,eAAe,CAAA;QACtD,MAAM,sBAAsB,GAC1B,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAA,WAAW,CAAC,aAAa,CAAC,0CAAE,WAAW,CAAA;QAEnF,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,6CAA6C,KAAK,GAAG,CAAC,CAAA;YACxE,SAAQ;QACV,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAA;YAE7F,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,kBAAkB,EAAE,CAAC;gBAChE,YAAY,CAAC,IAAI,CACf,GAAG,sBAAsB,kCAAkC,OAAO,CAAC,kBAAkB,mBAAmB,KAAK,0CAA0C,SAAS,CAAC,kBAAkB,EAAE,CACtL,CAAA;gBACD,SAAQ;YACV,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC,GAAG,sBAAsB,kBAAkB,CAAC,CAAA;gBAC9D,SAAQ;YACV,CAAC;YAED,MAAM,OAAO,GAAG,MAAA,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,mCAAI,EAAE,CAAA;YAC/E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAC9B,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GACf,CAAC,CAAC,KAAK,YAAY,2CAAmB,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,iDAAyB,CAAC,WAAW,CAAA;YACnG,IAAI,WAAW;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;;gBACtC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,yBAAyB,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAC5D,OAAO,EACP,uBAAe,CAAC,MAAM,EACtB,kBAAkB,CACnB,CAAA;QACD,YAAY,CAAC,IAAI,CACf,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CACxB,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,gEAAgE,kBAAkB,EAAE,CAClG,CACF,CAAA;QACD,SAAS,CAAC,IAAI,CACZ,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CACrB,GAAG,CAAC,EAAE,CACJ,oDAAoD,GAAG,6BAA6B,kBAAkB,EAAE,CAC3G,CACF,CAAA;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAErE,MAAM,IAAI,GACR,YAAY,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,iDAAyB,CAAC,mBAAmB;QAC/C,CAAC,CAAC,iDAAyB,CAAC,0BAA0B,CAAA;IAE1D,MAAM,mBAAmB,CACvB,KAAK,EACL,MAAM,EACN,UAAU,EACV,IAAI,EACJ,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1C,MAAM,CACP,CAAA;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,KAAgC,EAChC,MAAkC,EAClC,UAAmC,EACnC,IAA+B,EAC/B,WAAmB,EACnB,MAAkB;IAElB,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,EAAE,wCAAwC,IAAI,MAAM,WAAW,EAAE,CAAC,CAAA;IAEzG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;IACzB,MAAM,CAAC,YAAY,GAAG,GAAG,IAAI,KAAK,WAAW,EAAE,CAAA;IAE/C,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB;SACrC,OAAO,CAAC,mCAAyB,CAAC;SAClC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,eAAe,CAAC,CAAA;IAEjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,iBAAU,CAClB,qDAAqD,MAAM,CAAC,eAAe,yBAAyB,MAAM,CAAC,EAAE,0BAA0B,CACxI,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GACjB,MAAM,CAAC,eAAe,KAAK,IAAI;QAC7B,CAAC,CAAC,IAAI,qDAAyC,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;QAC3F,CAAC,CAAC,IAAI,mDAAyC,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;IAC/F,aAAa,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IAE7F,IAAI,CAAC;QACH,MAAM,sBAAsB,GAAG,MAAM,IAAA,0CAAgC,EAAC,KAAK,CAAC,OAAO,EAAE;YACnF,OAAO,EAAE,aAAa;YACtB,gBAAgB,EAAE,MAAM;YACxB,gBAAgB,EAAE,UAAU;SAC7B,CAAC,CAAA;QACF,MAAM,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,8BAAoB,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAA;IACjG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,4DAA4D,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC,CAAA;IACjG,CAAC;IAED,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,2BAAiB,CAAC,SAAS,CAAC,CAAA;AAChF,CAAC"}
|
|
@@ -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
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
.
|
|
22
|
-
|
|
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
|
-
|
|
26
|
-
if (
|
|
27
|
-
await agent.didcomm.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
.
|
|
83
|
-
.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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":";;;AAIA,+CAQ0B;AAC1B,gEAKoC;AAEpC,mDAAqE;
|
|
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,
|
|
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;
|