@credo-ts/didcomm 0.6.0-pr-2195-20250322170721 → 0.6.0-pr-2324-20250625125220
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/build/DidCommModule.js +0 -1
- package/build/DidCommModule.js.map +1 -1
- package/build/DidCommModuleConfig.d.ts +8 -0
- package/build/DidCommModuleConfig.js +9 -0
- package/build/DidCommModuleConfig.js.map +1 -1
- package/build/EnvelopeService.d.ts +13 -8
- package/build/EnvelopeService.js +281 -21
- package/build/EnvelopeService.js.map +1 -1
- package/build/MessageSender.d.ts +4 -6
- package/build/MessageSender.js +60 -70
- package/build/MessageSender.js.map +1 -1
- package/build/decorators/service/ServiceDecorator.js +4 -4
- package/build/decorators/service/ServiceDecorator.js.map +1 -1
- package/build/decorators/signature/SignatureDecoratorUtils.d.ts +5 -4
- package/build/decorators/signature/SignatureDecoratorUtils.js +22 -12
- package/build/decorators/signature/SignatureDecoratorUtils.js.map +1 -1
- package/build/getOutboundMessageContext.js +30 -5
- package/build/getOutboundMessageContext.js.map +1 -1
- package/build/models/InboundMessageContext.d.ts +5 -5
- package/build/models/OutboundMessageContext.d.ts +2 -2
- package/build/models/Routing.d.ts +3 -3
- package/build/modules/connections/ConnectionsApi.js +6 -5
- package/build/modules/connections/ConnectionsApi.js.map +1 -1
- package/build/modules/connections/DidExchangeProtocol.d.ts +3 -1
- package/build/modules/connections/DidExchangeProtocol.js +95 -57
- package/build/modules/connections/DidExchangeProtocol.js.map +1 -1
- package/build/modules/connections/handlers/ConnectionRequestHandler.js +7 -0
- package/build/modules/connections/handlers/ConnectionRequestHandler.js.map +1 -1
- package/build/modules/connections/handlers/ConnectionResponseHandler.js +4 -0
- package/build/modules/connections/handlers/ConnectionResponseHandler.js.map +1 -1
- package/build/modules/connections/handlers/DidExchangeCompleteHandler.js +0 -4
- package/build/modules/connections/handlers/DidExchangeCompleteHandler.js.map +1 -1
- package/build/modules/connections/handlers/DidExchangeRequestHandler.js +3 -0
- package/build/modules/connections/handlers/DidExchangeRequestHandler.js.map +1 -1
- package/build/modules/connections/handlers/DidExchangeResponseHandler.js +3 -3
- package/build/modules/connections/handlers/DidExchangeResponseHandler.js.map +1 -1
- package/build/modules/connections/messages/ConnectionInvitationMessage.d.ts +2 -1
- package/build/modules/connections/messages/ConnectionInvitationMessage.js.map +1 -1
- package/build/modules/connections/models/did/DidDoc.js +2 -2
- package/build/modules/connections/models/did/DidDoc.js.map +1 -1
- package/build/modules/connections/repository/ConnectionRecord.d.ts +2 -0
- package/build/modules/connections/repository/ConnectionRecord.js +2 -0
- package/build/modules/connections/repository/ConnectionRecord.js.map +1 -1
- package/build/modules/connections/repository/ConnectionRepository.d.ts +1 -1
- package/build/modules/connections/repository/ConnectionRepository.js +2 -0
- package/build/modules/connections/repository/ConnectionRepository.js.map +1 -1
- package/build/modules/connections/services/ConnectionService.d.ts +4 -4
- package/build/modules/connections/services/ConnectionService.js +92 -41
- package/build/modules/connections/services/ConnectionService.js.map +1 -1
- package/build/modules/connections/services/DidRotateService.js +9 -10
- package/build/modules/connections/services/DidRotateService.js.map +1 -1
- package/build/modules/connections/services/helpers.d.ts +20 -6
- package/build/modules/connections/services/helpers.js +46 -29
- package/build/modules/connections/services/helpers.js.map +1 -1
- package/build/modules/credentials/models/RevocationNotification.js +14 -0
- package/build/modules/credentials/models/RevocationNotification.js.map +1 -1
- package/build/modules/credentials/protocol/index.js +17 -7
- package/build/modules/credentials/protocol/index.js.map +1 -1
- package/build/modules/credentials/repository/CredentialExchangeRecord.d.ts +1 -1
- package/build/modules/credentials/repository/CredentialExchangeRecord.js +5 -0
- package/build/modules/credentials/repository/CredentialExchangeRecord.js.map +1 -1
- package/build/modules/message-pickup/MessagePickupApi.js +7 -2
- package/build/modules/message-pickup/MessagePickupApi.js.map +1 -1
- package/build/modules/message-pickup/MessagePickupApiOptions.d.ts +1 -1
- package/build/modules/message-pickup/MessagePickupModule.d.ts +1 -0
- package/build/modules/message-pickup/MessagePickupModule.js +6 -11
- package/build/modules/message-pickup/MessagePickupModule.js.map +1 -1
- package/build/modules/message-pickup/MessagePickupModuleConfig.d.ts +0 -8
- package/build/modules/message-pickup/MessagePickupModuleConfig.js +0 -4
- package/build/modules/message-pickup/MessagePickupModuleConfig.js.map +1 -1
- package/build/modules/message-pickup/index.d.ts +0 -1
- package/build/modules/message-pickup/index.js +0 -1
- package/build/modules/message-pickup/index.js.map +1 -1
- package/build/modules/message-pickup/protocol/MessagePickupProtocolOptions.d.ts +1 -1
- package/build/modules/message-pickup/protocol/v1/V1MessagePickupProtocol.js +6 -5
- package/build/modules/message-pickup/protocol/v1/V1MessagePickupProtocol.js.map +1 -1
- package/build/modules/message-pickup/protocol/v2/V2MessagePickupProtocol.js +22 -13
- package/build/modules/message-pickup/protocol/v2/V2MessagePickupProtocol.js.map +1 -1
- package/build/modules/oob/OutOfBandApi.js +21 -8
- package/build/modules/oob/OutOfBandApi.js.map +1 -1
- package/build/modules/oob/OutOfBandService.d.ts +9 -5
- package/build/modules/oob/OutOfBandService.js +7 -2
- package/build/modules/oob/OutOfBandService.js.map +1 -1
- package/build/modules/oob/converters.js +2 -4
- package/build/modules/oob/converters.js.map +1 -1
- package/build/modules/oob/domain/OutOfBandDidCommService.js +14 -2
- package/build/modules/oob/domain/OutOfBandDidCommService.js.map +1 -1
- package/build/modules/oob/helpers.js +6 -6
- package/build/modules/oob/helpers.js.map +1 -1
- package/build/modules/oob/messages/OutOfBandInvitation.js.map +1 -1
- package/build/modules/oob/repository/OutOfBandRecord.d.ts +34 -0
- package/build/modules/oob/repository/OutOfBandRecord.js +1 -0
- package/build/modules/oob/repository/OutOfBandRecord.js.map +1 -1
- package/build/modules/oob/repository/outOfBandRecordMetadataTypes.d.ts +4 -0
- package/build/modules/proofs/formats/dif-presentation-exchange/DifPresentationExchangeProofFormatService.js +7 -4
- package/build/modules/proofs/formats/dif-presentation-exchange/DifPresentationExchangeProofFormatService.js.map +1 -1
- package/build/modules/proofs/formats/index.js +17 -7
- package/build/modules/proofs/formats/index.js.map +1 -1
- package/build/modules/proofs/protocol/index.js +17 -7
- package/build/modules/proofs/protocol/index.js.map +1 -1
- package/build/modules/routing/MediationRecipientApi.d.ts +0 -2
- package/build/modules/routing/MediationRecipientApi.js +1 -46
- package/build/modules/routing/MediationRecipientApi.js.map +1 -1
- package/build/modules/routing/MediationRecipientModule.d.ts +3 -0
- package/build/modules/routing/MediationRecipientModule.js +60 -0
- package/build/modules/routing/MediationRecipientModule.js.map +1 -1
- package/build/modules/routing/MediatorModule.d.ts +1 -0
- package/build/modules/routing/MediatorModule.js +5 -0
- package/build/modules/routing/MediatorModule.js.map +1 -1
- package/build/modules/routing/MediatorModuleConfig.d.ts +2 -2
- package/build/modules/routing/MessageForwardingStrategy.js +2 -2
- package/build/modules/routing/MessageForwardingStrategy.js.map +1 -1
- package/build/modules/routing/repository/MediationRecord.d.ts +8 -0
- package/build/modules/routing/repository/MediationRecord.js +2 -0
- package/build/modules/routing/repository/MediationRecord.js.map +1 -1
- package/build/modules/routing/repository/MediatorRoutingRecord.d.ts +23 -5
- package/build/modules/routing/repository/MediatorRoutingRecord.js +33 -1
- package/build/modules/routing/repository/MediatorRoutingRecord.js.map +1 -1
- package/build/modules/routing/services/MediationRecipientService.d.ts +3 -3
- package/build/modules/routing/services/MediationRecipientService.js +15 -12
- package/build/modules/routing/services/MediationRecipientService.js.map +1 -1
- package/build/modules/routing/services/MediatorService.js +17 -9
- package/build/modules/routing/services/MediatorService.js.map +1 -1
- package/build/modules/routing/services/RoutingService.d.ts +3 -3
- package/build/modules/routing/services/RoutingService.js +4 -3
- package/build/modules/routing/services/RoutingService.js.map +1 -1
- package/build/modules/routing/services/helpers.d.ts +1 -1
- package/build/modules/routing/services/helpers.js +3 -4
- package/build/modules/routing/services/helpers.js.map +1 -1
- package/build/services/DidCommDocumentService.d.ts +8 -3
- package/build/services/DidCommDocumentService.js +46 -15
- package/build/services/DidCommDocumentService.js.map +1 -1
- package/build/transport/HttpOutboundTransport.js +2 -4
- package/build/transport/HttpOutboundTransport.js.map +1 -1
- package/build/transport/index.d.ts +1 -0
- package/build/transport/index.js +1 -0
- package/build/transport/index.js.map +1 -1
- package/build/transport/queue/InMemoryQueueTransportRepository.d.ts +12 -0
- package/build/{modules/message-pickup/storage/InMemoryMessagePickupRepository.js → transport/queue/InMemoryQueueTransportRepository.js} +15 -19
- package/build/transport/queue/InMemoryQueueTransportRepository.js.map +1 -0
- package/build/transport/queue/QueueTransportRepository.d.ts +9 -0
- package/build/{modules/message-pickup/storage/MessagePickupRepository.js → transport/queue/QueueTransportRepository.js} +1 -1
- package/build/transport/queue/QueueTransportRepository.js.map +1 -0
- package/build/{modules/message-pickup/storage/MessagePickupRepositoryOptions.d.ts → transport/queue/QueueTransportRepositoryOptions.d.ts} +2 -1
- package/build/{modules/message-pickup/storage/MessagePickupRepositoryOptions.js → transport/queue/QueueTransportRepositoryOptions.js} +1 -1
- package/build/transport/queue/QueueTransportRepositoryOptions.js.map +1 -0
- package/build/{modules/message-pickup/storage → transport/queue}/QueuedMessage.d.ts +2 -2
- package/build/transport/queue/QueuedMessage.js.map +1 -0
- package/build/transport/queue/index.d.ts +4 -0
- package/build/{modules/message-pickup/storage → transport/queue}/index.js +3 -3
- package/build/transport/queue/index.js.map +1 -0
- package/build/updates/0.1-0.2/connection.js +3 -3
- package/build/updates/0.1-0.2/connection.js.map +1 -1
- package/build/util/modules.d.ts +1 -1
- package/build/util/modules.js +3 -1
- package/build/util/modules.js.map +1 -1
- package/build/util/parseInvitation.js +0 -2
- package/build/util/parseInvitation.js.map +1 -1
- package/package.json +7 -7
- package/build/modules/message-pickup/storage/InMemoryMessagePickupRepository.d.ts +0 -13
- package/build/modules/message-pickup/storage/InMemoryMessagePickupRepository.js.map +0 -1
- package/build/modules/message-pickup/storage/MessagePickupRepository.d.ts +0 -8
- package/build/modules/message-pickup/storage/MessagePickupRepository.js.map +0 -1
- package/build/modules/message-pickup/storage/MessagePickupRepositoryOptions.js.map +0 -1
- package/build/modules/message-pickup/storage/QueuedMessage.js.map +0 -1
- package/build/modules/message-pickup/storage/index.d.ts +0 -4
- package/build/modules/message-pickup/storage/index.js.map +0 -1
- package/build/util/matchingEd25519Key.d.ts +0 -9
- package/build/util/matchingEd25519Key.js +0 -30
- package/build/util/matchingEd25519Key.js.map +0 -1
- /package/build/{modules/message-pickup/storage → transport/queue}/QueuedMessage.js +0 -0
package/build/MessageSender.js
CHANGED
|
@@ -8,13 +8,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.MessageSender = void 0;
|
|
16
13
|
exports.isDidCommTransportQueue = isDidCommTransportQueue;
|
|
17
14
|
const core_1 = require("@credo-ts/core");
|
|
15
|
+
const DidCommModuleConfig_1 = require("./DidCommModuleConfig");
|
|
18
16
|
const EnvelopeService_1 = require("./EnvelopeService");
|
|
19
17
|
const Events_1 = require("./Events");
|
|
20
18
|
const TransportService_1 = require("./TransportService");
|
|
@@ -24,13 +22,11 @@ const errors_1 = require("./errors");
|
|
|
24
22
|
const models_1 = require("./models");
|
|
25
23
|
const DidCommDocumentService_1 = require("./services/DidCommDocumentService");
|
|
26
24
|
let MessageSender = class MessageSender {
|
|
27
|
-
constructor(envelopeService, transportService,
|
|
25
|
+
constructor(envelopeService, transportService, didCommModuleConfig, didCommDocumentService, eventEmitter) {
|
|
28
26
|
this._outboundTransports = [];
|
|
29
27
|
this.envelopeService = envelopeService;
|
|
30
28
|
this.transportService = transportService;
|
|
31
|
-
this.
|
|
32
|
-
this.logger = logger;
|
|
33
|
-
this.didResolverService = didResolverService;
|
|
29
|
+
this.queueTransportRepository = didCommModuleConfig.queueTransportRepository;
|
|
34
30
|
this.didCommDocumentService = didCommDocumentService;
|
|
35
31
|
this.eventEmitter = eventEmitter;
|
|
36
32
|
this._outboundTransports = [];
|
|
@@ -54,12 +50,12 @@ let MessageSender = class MessageSender {
|
|
|
54
50
|
};
|
|
55
51
|
}
|
|
56
52
|
async sendMessageToSession(agentContext, session, message) {
|
|
57
|
-
|
|
53
|
+
agentContext.config.logger.debug(`Packing message and sending it via existing session ${session.type}...`);
|
|
58
54
|
if (!session.keys) {
|
|
59
55
|
throw new core_1.CredoError(`There are no keys for the given ${session.type} transport session.`);
|
|
60
56
|
}
|
|
61
57
|
const encryptedMessage = await this.envelopeService.packMessage(agentContext, message, session.keys);
|
|
62
|
-
|
|
58
|
+
agentContext.config.logger.debug('Sending message');
|
|
63
59
|
await session.send(agentContext, encryptedMessage);
|
|
64
60
|
}
|
|
65
61
|
async sendPackage(agentContext, { connection, encryptedMessage, recipientKey, options, }) {
|
|
@@ -73,7 +69,7 @@ let MessageSender = class MessageSender {
|
|
|
73
69
|
}
|
|
74
70
|
catch (error) {
|
|
75
71
|
errors.push(error);
|
|
76
|
-
|
|
72
|
+
agentContext.config.logger.debug(`Sending packed message via session failed with error: ${error.message}.`, error);
|
|
77
73
|
}
|
|
78
74
|
}
|
|
79
75
|
// Retrieve DIDComm services
|
|
@@ -83,7 +79,7 @@ let MessageSender = class MessageSender {
|
|
|
83
79
|
}
|
|
84
80
|
// Loop trough all available services and try to send the message
|
|
85
81
|
for await (const service of services) {
|
|
86
|
-
|
|
82
|
+
agentContext.config.logger.debug('Sending outbound message to service:', { service });
|
|
87
83
|
try {
|
|
88
84
|
const protocolScheme = core_1.utils.getProtocolScheme(service.serviceEndpoint);
|
|
89
85
|
for (const transport of this.outboundTransports) {
|
|
@@ -99,7 +95,7 @@ let MessageSender = class MessageSender {
|
|
|
99
95
|
return;
|
|
100
96
|
}
|
|
101
97
|
catch (error) {
|
|
102
|
-
|
|
98
|
+
agentContext.config.logger.debug(`Sending outbound message to service with id ${service.id} failed with the following error:`, {
|
|
103
99
|
message: error.message,
|
|
104
100
|
error: error,
|
|
105
101
|
});
|
|
@@ -108,8 +104,8 @@ let MessageSender = class MessageSender {
|
|
|
108
104
|
// We didn't succeed to send the message over open session, or directly to serviceEndpoint
|
|
109
105
|
// If the other party shared a queue service endpoint in their did doc we queue the message
|
|
110
106
|
if (queueService) {
|
|
111
|
-
|
|
112
|
-
await this.
|
|
107
|
+
agentContext.config.logger.debug(`Queue packed message for connection ${connection.id} (${connection.theirLabel})`);
|
|
108
|
+
await this.queueTransportRepository.addMessage(agentContext, {
|
|
113
109
|
connectionId: connection.id,
|
|
114
110
|
recipientDids: [(0, core_1.verkeyToDidKey)(recipientKey)],
|
|
115
111
|
payload: encryptedMessage,
|
|
@@ -117,7 +113,7 @@ let MessageSender = class MessageSender {
|
|
|
117
113
|
return;
|
|
118
114
|
}
|
|
119
115
|
// Message is undeliverable
|
|
120
|
-
|
|
116
|
+
agentContext.config.logger.error(`Message is undeliverable to connection ${connection.id} (${connection.theirLabel})`, {
|
|
121
117
|
message: encryptedMessage,
|
|
122
118
|
errors,
|
|
123
119
|
connection,
|
|
@@ -131,19 +127,19 @@ let MessageSender = class MessageSender {
|
|
|
131
127
|
return this.sendMessageToService(outboundMessageContext);
|
|
132
128
|
}
|
|
133
129
|
if (!connection) {
|
|
134
|
-
|
|
130
|
+
agentContext.config.logger.error('Outbound message has no associated connection');
|
|
135
131
|
this.emitMessageSentEvent(outboundMessageContext, models_1.OutboundMessageSendStatus.Undeliverable);
|
|
136
132
|
throw new errors_1.MessageSendingError('Outbound message has no associated connection', {
|
|
137
133
|
outboundMessageContext,
|
|
138
134
|
});
|
|
139
135
|
}
|
|
140
|
-
|
|
136
|
+
agentContext.config.logger.debug('Send outbound message', {
|
|
141
137
|
message,
|
|
142
138
|
connectionId: connection.id,
|
|
143
139
|
});
|
|
144
140
|
const session = this.findSessionForOutboundContext(outboundMessageContext);
|
|
145
141
|
if (session) {
|
|
146
|
-
|
|
142
|
+
agentContext.config.logger.debug(`Found session with return routing for message '${message.id}' (connection '${connection.id}'`);
|
|
147
143
|
try {
|
|
148
144
|
await this.sendMessageToSession(agentContext, session, message);
|
|
149
145
|
this.emitMessageSentEvent(outboundMessageContext, models_1.OutboundMessageSendStatus.SentToSession);
|
|
@@ -151,7 +147,7 @@ let MessageSender = class MessageSender {
|
|
|
151
147
|
}
|
|
152
148
|
catch (error) {
|
|
153
149
|
errors.push(error);
|
|
154
|
-
|
|
150
|
+
agentContext.config.logger.debug(`Sending an outbound message via session failed with error: ${error.message}.`, error);
|
|
155
151
|
}
|
|
156
152
|
}
|
|
157
153
|
// Retrieve DIDComm services
|
|
@@ -162,7 +158,7 @@ let MessageSender = class MessageSender {
|
|
|
162
158
|
({ services, queueService } = await this.retrieveServicesByConnection(agentContext, connection, options?.transportPriority, outOfBand));
|
|
163
159
|
}
|
|
164
160
|
catch (error) {
|
|
165
|
-
|
|
161
|
+
agentContext.config.logger.error(`Unable to retrieve services for connection '${connection.id}. ${error.message}`);
|
|
166
162
|
this.emitMessageSentEvent(outboundMessageContext, models_1.OutboundMessageSendStatus.Undeliverable);
|
|
167
163
|
throw new errors_1.MessageSendingError(`Unable to retrieve services for connection '${connection.id}`, {
|
|
168
164
|
outboundMessageContext,
|
|
@@ -170,35 +166,37 @@ let MessageSender = class MessageSender {
|
|
|
170
166
|
});
|
|
171
167
|
}
|
|
172
168
|
if (!connection.did) {
|
|
173
|
-
|
|
169
|
+
agentContext.config.logger.error(`Unable to send message using connection '${connection.id}' that doesn't have a did`);
|
|
174
170
|
this.emitMessageSentEvent(outboundMessageContext, models_1.OutboundMessageSendStatus.Undeliverable);
|
|
175
171
|
throw new errors_1.MessageSendingError(`Unable to send message using connection '${connection.id}' that doesn't have a did`, { outboundMessageContext });
|
|
176
172
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
this.logger.error(`Unable to resolve DID Document for '${connection.did}`);
|
|
173
|
+
const dids = agentContext.resolve(core_1.DidsApi);
|
|
174
|
+
const { didDocument, keys } = await dids.resolveCreatedDidDocumentWithKeys(connection.did).catch((error) => {
|
|
175
|
+
agentContext.config.logger.error(`Unable to send message using connection '${connection.id}', unable to resolve did`, {
|
|
176
|
+
error,
|
|
177
|
+
});
|
|
183
178
|
this.emitMessageSentEvent(outboundMessageContext, models_1.OutboundMessageSendStatus.Undeliverable);
|
|
184
|
-
throw new errors_1.MessageSendingError(`Unable to
|
|
179
|
+
throw new errors_1.MessageSendingError(`Unable to send message using connection '${connection.id}'. Unble to resolve did`, { outboundMessageContext, cause: error });
|
|
180
|
+
});
|
|
181
|
+
const authentication = didDocument.authentication
|
|
182
|
+
?.map((a) => {
|
|
183
|
+
const verificationMethod = typeof a === 'string' ? didDocument.dereferenceVerificationMethod(a) : a;
|
|
184
|
+
const publicJwk = (0, core_1.getPublicJwkFromVerificationMethod)(verificationMethod);
|
|
185
|
+
const kmsKeyId = keys?.find((key) => verificationMethod.id.endsWith(key.didDocumentRelativeKeyId))?.kmsKeyId;
|
|
186
|
+
// Set stored key id, or fallback to legacy key id
|
|
187
|
+
publicJwk.keyId = kmsKeyId ?? publicJwk.legacyKeyId;
|
|
188
|
+
return { verificationMethod, publicJwk, kmsKeyId };
|
|
189
|
+
})
|
|
190
|
+
.filter((v) => v.publicJwk.is(core_1.Kms.Ed25519PublicJwk));
|
|
191
|
+
// We take the first one with a kms key id. Otherwise we pick the first
|
|
192
|
+
const senderVerificationMethod = authentication?.find((a) => a.kmsKeyId !== undefined) ?? authentication?.[0];
|
|
193
|
+
if (!senderVerificationMethod) {
|
|
194
|
+
throw new errors_1.MessageSendingError(`Unable to determine sender key for did ${connection.did}, no available Ed25519 keys`, {
|
|
185
195
|
outboundMessageContext,
|
|
186
|
-
cause: error,
|
|
187
196
|
});
|
|
188
197
|
}
|
|
189
|
-
const ourAuthenticationKeys = getAuthenticationKeys(ourDidDocument);
|
|
190
|
-
// TODO We're selecting just the first authentication key. Is it ok?
|
|
191
|
-
// We can probably learn something from the didcomm-rust implementation, which looks at crypto compatibility to make sure the
|
|
192
|
-
// other party can decrypt the message. https://github.com/sicpa-dlab/didcomm-rust/blob/9a24b3b60f07a11822666dda46e5616a138af056/src/message/pack_encrypted/mod.rs#L33-L44
|
|
193
|
-
// This will become more relevant when we support different encrypt envelopes. One thing to take into account though is that currently we only store the recipientKeys
|
|
194
|
-
// as defined in the didcomm services, while it could be for example that the first authentication key is not defined in the recipientKeys, in which case we wouldn't
|
|
195
|
-
// even be interoperable between two Credo agents. So we should either pick the first key that is defined in the recipientKeys, or we should make sure to store all
|
|
196
|
-
// keys defined in the did document as tags so we can retrieve it, even if it's not defined in the recipientKeys. This, again, will become simpler once we use didcomm v2
|
|
197
|
-
// as the `from` field in a received message will identity the did used so we don't have to store all keys in tags to be able to find the connections associated with
|
|
198
|
-
// an incoming message.
|
|
199
|
-
const [firstOurAuthenticationKey] = ourAuthenticationKeys;
|
|
200
198
|
// If the returnRoute is already set we won't override it. This allows to set the returnRoute manually if this is desired.
|
|
201
|
-
const shouldAddReturnRoute = message.transport?.returnRoute === undefined && !this.transportService.hasInboundEndpoint(
|
|
199
|
+
const shouldAddReturnRoute = message.transport?.returnRoute === undefined && !this.transportService.hasInboundEndpoint(didDocument);
|
|
202
200
|
// Loop trough all available services and try to send the message
|
|
203
201
|
for await (const service of services) {
|
|
204
202
|
try {
|
|
@@ -207,7 +205,7 @@ let MessageSender = class MessageSender {
|
|
|
207
205
|
agentContext,
|
|
208
206
|
serviceParams: {
|
|
209
207
|
service,
|
|
210
|
-
senderKey:
|
|
208
|
+
senderKey: senderVerificationMethod.publicJwk,
|
|
211
209
|
returnRoute: shouldAddReturnRoute,
|
|
212
210
|
},
|
|
213
211
|
connection,
|
|
@@ -217,7 +215,7 @@ let MessageSender = class MessageSender {
|
|
|
217
215
|
}
|
|
218
216
|
catch (error) {
|
|
219
217
|
errors.push(error);
|
|
220
|
-
|
|
218
|
+
agentContext.config.logger.debug(`Sending outbound message to service with id ${service.id} failed with the following error:`, {
|
|
221
219
|
message: error.message,
|
|
222
220
|
error: error,
|
|
223
221
|
});
|
|
@@ -226,14 +224,14 @@ let MessageSender = class MessageSender {
|
|
|
226
224
|
// We didn't succeed to send the message over open session, or directly to serviceEndpoint
|
|
227
225
|
// If the other party shared a queue service endpoint in their did doc we queue the message
|
|
228
226
|
if (queueService && message.allowQueueTransport) {
|
|
229
|
-
|
|
227
|
+
agentContext.config.logger.debug(`Queue message for connection ${connection.id} (${connection.theirLabel})`);
|
|
230
228
|
const keys = {
|
|
231
229
|
recipientKeys: queueService.recipientKeys,
|
|
232
230
|
routingKeys: queueService.routingKeys,
|
|
233
|
-
senderKey:
|
|
231
|
+
senderKey: senderVerificationMethod.publicJwk,
|
|
234
232
|
};
|
|
235
233
|
const encryptedMessage = await this.envelopeService.packMessage(agentContext, message, keys);
|
|
236
|
-
await this.
|
|
234
|
+
await this.queueTransportRepository.addMessage(agentContext, {
|
|
237
235
|
connectionId: connection.id,
|
|
238
236
|
recipientDids: keys.recipientKeys.map((item) => new core_1.DidKey(item).did),
|
|
239
237
|
payload: encryptedMessage,
|
|
@@ -242,7 +240,7 @@ let MessageSender = class MessageSender {
|
|
|
242
240
|
return;
|
|
243
241
|
}
|
|
244
242
|
// Message is undeliverable
|
|
245
|
-
|
|
243
|
+
agentContext.config.logger.error(`Message is undeliverable to connection ${connection.id} (${connection.theirLabel})`, {
|
|
246
244
|
message,
|
|
247
245
|
errors,
|
|
248
246
|
connection,
|
|
@@ -253,14 +251,14 @@ let MessageSender = class MessageSender {
|
|
|
253
251
|
async sendMessageToService(outboundMessageContext) {
|
|
254
252
|
const session = this.findSessionForOutboundContext(outboundMessageContext);
|
|
255
253
|
if (session) {
|
|
256
|
-
|
|
254
|
+
outboundMessageContext.agentContext.config.logger.debug(`Found session with return routing for message '${outboundMessageContext.message.id}'`);
|
|
257
255
|
try {
|
|
258
256
|
await this.sendMessageToSession(outboundMessageContext.agentContext, session, outboundMessageContext.message);
|
|
259
257
|
this.emitMessageSentEvent(outboundMessageContext, models_1.OutboundMessageSendStatus.SentToSession);
|
|
260
258
|
return;
|
|
261
259
|
}
|
|
262
260
|
catch (error) {
|
|
263
|
-
|
|
261
|
+
outboundMessageContext.agentContext.config.logger.debug(`Sending an outbound message via session failed with error: ${error.message}.`, error);
|
|
264
262
|
}
|
|
265
263
|
}
|
|
266
264
|
// If there is no session try sending to service instead
|
|
@@ -269,7 +267,7 @@ let MessageSender = class MessageSender {
|
|
|
269
267
|
this.emitMessageSentEvent(outboundMessageContext, models_1.OutboundMessageSendStatus.SentToTransport);
|
|
270
268
|
}
|
|
271
269
|
catch (error) {
|
|
272
|
-
|
|
270
|
+
outboundMessageContext.agentContext.config.logger.error(`Message is undeliverable to service with id ${outboundMessageContext.serviceParams?.service.id}: ${error.message}`, {
|
|
273
271
|
message: outboundMessageContext.message,
|
|
274
272
|
error,
|
|
275
273
|
});
|
|
@@ -286,7 +284,7 @@ let MessageSender = class MessageSender {
|
|
|
286
284
|
if (this.outboundTransports.length === 0) {
|
|
287
285
|
throw new core_1.CredoError('Agent has no outbound transport!');
|
|
288
286
|
}
|
|
289
|
-
|
|
287
|
+
agentContext.config.logger.debug('Sending outbound message to service:', {
|
|
290
288
|
messageId: message.id,
|
|
291
289
|
service: { ...service, recipientKeys: 'omitted...', routingKeys: 'omitted...' },
|
|
292
290
|
});
|
|
@@ -303,7 +301,7 @@ let MessageSender = class MessageSender {
|
|
|
303
301
|
core_1.MessageValidator.validateSync(message);
|
|
304
302
|
}
|
|
305
303
|
catch (error) {
|
|
306
|
-
|
|
304
|
+
agentContext.config.logger.error(`Aborting sending outbound message ${message.type} to ${service.serviceEndpoint}. Message validation failed`, {
|
|
307
305
|
errors: error,
|
|
308
306
|
message: message.toJSON(),
|
|
309
307
|
});
|
|
@@ -315,7 +313,7 @@ let MessageSender = class MessageSender {
|
|
|
315
313
|
for (const transport of this.outboundTransports) {
|
|
316
314
|
const protocolScheme = core_1.utils.getProtocolScheme(service.serviceEndpoint);
|
|
317
315
|
if (!protocolScheme) {
|
|
318
|
-
|
|
316
|
+
agentContext.config.logger.warn('Service does not have a protocol scheme.');
|
|
319
317
|
}
|
|
320
318
|
else if (transport.supportedSchemes.includes(protocolScheme)) {
|
|
321
319
|
await transport.sendMessage(outboundPackage);
|
|
@@ -341,30 +339,30 @@ let MessageSender = class MessageSender {
|
|
|
341
339
|
return session?.inboundMessage?.hasAnyReturnRoute() ? session : null;
|
|
342
340
|
}
|
|
343
341
|
async retrieveServicesByConnection(agentContext, connection, transportPriority, outOfBand) {
|
|
344
|
-
|
|
342
|
+
agentContext.config.logger.debug(`Retrieving services for connection '${connection.id}' (${connection.theirLabel})`, {
|
|
345
343
|
transportPriority,
|
|
346
344
|
connection,
|
|
347
345
|
});
|
|
348
346
|
let didCommServices = [];
|
|
349
347
|
if (connection.theirDid) {
|
|
350
|
-
|
|
348
|
+
agentContext.config.logger.debug(`Resolving services for connection theirDid ${connection.theirDid}.`);
|
|
351
349
|
didCommServices = await this.didCommDocumentService.resolveServicesFromDid(agentContext, connection.theirDid);
|
|
352
350
|
}
|
|
353
351
|
else if (outOfBand) {
|
|
354
|
-
|
|
352
|
+
agentContext.config.logger.debug(`Resolving services from out-of-band record ${outOfBand.id}.`);
|
|
355
353
|
if (connection.isRequester) {
|
|
356
354
|
for (const service of outOfBand.outOfBandInvitation.getServices()) {
|
|
357
355
|
// Resolve dids to DIDDocs to retrieve services
|
|
358
356
|
if (typeof service === 'string') {
|
|
359
|
-
|
|
357
|
+
agentContext.config.logger.debug(`Resolving services for did ${service}.`);
|
|
360
358
|
didCommServices.push(...(await this.didCommDocumentService.resolveServicesFromDid(agentContext, service)));
|
|
361
359
|
}
|
|
362
360
|
else {
|
|
363
361
|
// Out of band inline service contains keys encoded as did:key references
|
|
364
362
|
didCommServices.push({
|
|
365
363
|
id: service.id,
|
|
366
|
-
recipientKeys: service.recipientKeys.map(core_1.
|
|
367
|
-
routingKeys: service.routingKeys?.map(core_1.
|
|
364
|
+
recipientKeys: service.recipientKeys.map(core_1.didKeyToEd25519PublicJwk),
|
|
365
|
+
routingKeys: service.routingKeys?.map(core_1.didKeyToEd25519PublicJwk) || [],
|
|
368
366
|
serviceEndpoint: service.serviceEndpoint,
|
|
369
367
|
});
|
|
370
368
|
}
|
|
@@ -389,7 +387,7 @@ let MessageSender = class MessageSender {
|
|
|
389
387
|
return transportPriority?.schemes.indexOf(aScheme) - transportPriority?.schemes.indexOf(bScheme);
|
|
390
388
|
});
|
|
391
389
|
}
|
|
392
|
-
|
|
390
|
+
agentContext.config.logger.debug(`Retrieved ${services.length} services for message to connection '${connection.id}'(${connection.theirLabel})'`, { hasQueueService: queueService !== undefined });
|
|
393
391
|
return { services, queueService };
|
|
394
392
|
}
|
|
395
393
|
emitMessageSentEvent(outboundMessageContext, status) {
|
|
@@ -406,21 +404,13 @@ let MessageSender = class MessageSender {
|
|
|
406
404
|
exports.MessageSender = MessageSender;
|
|
407
405
|
exports.MessageSender = MessageSender = __decorate([
|
|
408
406
|
(0, core_1.injectable)(),
|
|
409
|
-
__param(2, (0, core_1.inject)(core_1.InjectionSymbols.MessagePickupRepository)),
|
|
410
|
-
__param(3, (0, core_1.inject)(core_1.InjectionSymbols.Logger)),
|
|
411
407
|
__metadata("design:paramtypes", [EnvelopeService_1.EnvelopeService,
|
|
412
|
-
TransportService_1.TransportService,
|
|
408
|
+
TransportService_1.TransportService,
|
|
409
|
+
DidCommModuleConfig_1.DidCommModuleConfig,
|
|
413
410
|
DidCommDocumentService_1.DidCommDocumentService,
|
|
414
411
|
core_1.EventEmitter])
|
|
415
412
|
], MessageSender);
|
|
416
413
|
function isDidCommTransportQueue(serviceEndpoint) {
|
|
417
414
|
return serviceEndpoint === constants_1.DID_COMM_TRANSPORT_QUEUE;
|
|
418
415
|
}
|
|
419
|
-
function getAuthenticationKeys(didDocument) {
|
|
420
|
-
return (didDocument.authentication?.map((authentication) => {
|
|
421
|
-
const verificationMethod = typeof authentication === 'string' ? didDocument.dereferenceVerificationMethod(authentication) : authentication;
|
|
422
|
-
const key = (0, core_1.getKeyFromVerificationMethod)(verificationMethod);
|
|
423
|
-
return key;
|
|
424
|
-
}) ?? []);
|
|
425
|
-
}
|
|
426
416
|
//# sourceMappingURL=MessageSender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSender.js","sourceRoot":"","sources":["../src/MessageSender.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageSender.js","sourceRoot":"","sources":["../src/MessageSender.ts"],"names":[],"mappings":";;;;;;;;;;;;AAilBA,0DAEC;AA1kBD,yCAcuB;AAEvB,+DAA2D;AAC3D,uDAAmD;AACnD,qCAA0C;AAC1C,yDAAqD;AACrD,2CAAsD;AACtD,kFAA4E;AAC5E,qCAA8C;AAC9C,qCAA4E;AAC5E,8EAA0E;AASnE,IAAM,aAAa,GAAnB,MAAM,aAAa;IAQxB,YACE,eAAgC,EAChC,gBAAkC,EAClC,mBAAwC,EACxC,sBAA8C,EAC9C,YAA0B;QAPpB,wBAAmB,GAAwB,EAAE,CAAA;QASnD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,wBAAwB,GAAG,mBAAmB,CAAC,wBAAwB,CAAA;QAC5E,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;IAC/B,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAEM,yBAAyB,CAAC,iBAAoC;QACnE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,iBAAoC;QAC3E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,iBAAiB,CAAC,CAAA;QACzG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,YAA0B,EAC1B,EACE,IAAI,EACJ,OAAO,EACP,QAAQ,GAKT;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAE5F,OAAO;YACL,OAAO,EAAE,gBAAgB;YACzB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE;YAC9C,QAAQ;SACT,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,YAA0B,EAAE,OAAyB,EAAE,OAAqB;QAC7G,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAA;QAC1G,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,iBAAU,CAAC,mCAAmC,OAAO,CAAC,IAAI,qBAAqB,CAAC,CAAA;QAC5F,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACpG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnD,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;IACpD,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,YAA0B,EAC1B,EACE,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,OAAO,GAMR;QAED,MAAM,MAAM,GAAY,EAAE,CAAA;QAE1B,sCAAsC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC9E,IAAI,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;gBAClD,OAAM;YACR,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAClB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,yDAAyD,KAAK,CAAC,OAAO,GAAG,EACzE,KAAK,CACN,CAAA;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,4BAA4B,CACxE,YAAY,EACZ,UAAU,EACV,OAAO,EAAE,iBAAiB,CAC3B,CAAA;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1D,MAAM,IAAI,iBAAU,CAAC,kCAAkC,CAAC,CAAA;QAC1D,CAAC;QAED,iEAAiE;QACjE,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YACrC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YACrF,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,YAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;gBACvE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAChD,IAAI,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;wBACxD,MAAM,SAAS,CAAC,WAAW,CAAC;4BAC1B,OAAO,EAAE,gBAAgB;4BACzB,QAAQ,EAAE,OAAO,CAAC,eAAe;4BACjC,YAAY,EAAE,UAAU,CAAC,EAAE;yBAC5B,CAAC,CAAA;wBACF,MAAK;oBACP,CAAC;gBACH,CAAC;gBACD,OAAM;YACR,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,+CAA+C,OAAO,CAAC,EAAE,mCAAmC,EAC5F;oBACE,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK;iBACb,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,0FAA0F;QAC1F,2FAA2F;QAC3F,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,uCAAuC,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,GAAG,CAClF,CAAA;YACD,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,YAAY,EAAE;gBAC3D,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,aAAa,EAAE,CAAC,IAAA,qBAAc,EAAC,YAAY,CAAC,CAAC;gBAC7C,OAAO,EAAE,gBAAgB;aAC1B,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,2BAA2B;QAC3B,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,0CAA0C,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,GAAG,EACpF;YACE,OAAO,EAAE,gBAAgB;YACzB,MAAM;YACN,UAAU;SACX,CACF,CAAA;QACD,MAAM,IAAI,iBAAU,CAAC,0CAA0C,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,GAAG,CAAC,CAAA;IAC5G,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,sBAA8C,EAC9C,OAEC;QAED,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAA;QAC/E,MAAM,MAAM,GAAY,EAAE,CAAA;QAE1B,IAAI,sBAAsB,CAAC,wBAAwB,EAAE,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;YACjF,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;YAC1F,MAAM,IAAI,4BAAmB,CAAC,+CAA+C,EAAE;gBAC7E,sBAAsB;aACvB,CAAC,CAAA;QACJ,CAAC;QAED,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;YACxD,OAAO;YACP,YAAY,EAAE,UAAU,CAAC,EAAE;SAC5B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAA;QAE1E,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,kDAAkD,OAAO,CAAC,EAAE,kBAAkB,UAAU,CAAC,EAAE,GAAG,CAC/F,CAAA;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC/D,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;gBAC1F,OAAM;YACR,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAClB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,8DAA8D,KAAK,CAAC,OAAO,GAAG,EAC9E,KAAK,CACN,CAAA;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,QAAQ,GAA6B,EAAE,CAAA;QAC3C,IAAI,YAAgD,CAAA;QAEpD,IAAI,CAAC;YACH,CAAC;YAAA,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,4BAA4B,CACpE,YAAY,EACZ,UAAU,EACV,OAAO,EAAE,iBAAiB,EAC1B,SAAS,CACV,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAClH,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;YAC1F,MAAM,IAAI,4BAAmB,CAAC,+CAA+C,UAAU,CAAC,EAAE,EAAE,EAAE;gBAC5F,sBAAsB;gBACtB,KAAK,EAAE,KAAK;aACb,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YACpB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,4CAA4C,UAAU,CAAC,EAAE,2BAA2B,CACrF,CAAA;YACD,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;YAC1F,MAAM,IAAI,4BAAmB,CAC3B,4CAA4C,UAAU,CAAC,EAAE,2BAA2B,EACpF,EAAE,sBAAsB,EAAE,CAC3B,CAAA;QACH,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,cAAO,CAAC,CAAA;QAC1C,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,iCAAiC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACzG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,4CAA4C,UAAU,CAAC,EAAE,0BAA0B,EACnF;gBACE,KAAK;aACN,CACF,CAAA;YACD,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;YAC1F,MAAM,IAAI,4BAAmB,CAC3B,4CAA4C,UAAU,CAAC,EAAE,yBAAyB,EAClF,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,EAAE,CACzC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc;YAC/C,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACnG,MAAM,SAAS,GAAG,IAAA,yCAAkC,EAAC,kBAAkB,CAAC,CAAA;YACxE,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,QAAQ,CAAA;YAE5G,kDAAkD;YAClD,SAAS,CAAC,KAAK,GAAG,QAAQ,IAAI,SAAS,CAAC,WAAW,CAAA;YAEnD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;QACpD,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAsE,EAAE,CAChF,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAG,CAAC,gBAAgB,CAAC,CACrC,CAAA;QAEH,uEAAuE;QACvE,MAAM,wBAAwB,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7G,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,MAAM,IAAI,4BAAmB,CAC3B,0CAA0C,UAAU,CAAC,GAAG,6BAA6B,EACrF;gBACE,sBAAsB;aACvB,CACF,CAAA;QACH,CAAC;QAED,0HAA0H;QAC1H,MAAM,oBAAoB,GACxB,OAAO,CAAC,SAAS,EAAE,WAAW,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;QAExG,iEAAiE;QACjE,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,wGAAwG;gBACxG,MAAM,IAAI,CAAC,aAAa,CACtB,IAAI,+BAAsB,CAAC,OAAO,EAAE;oBAClC,YAAY;oBACZ,aAAa,EAAE;wBACb,OAAO;wBACP,SAAS,EAAE,wBAAwB,CAAC,SAAS;wBAC7C,WAAW,EAAE,oBAAoB;qBAClC;oBACD,UAAU;iBACX,CAAC,CACH,CAAA;gBACD,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,eAAe,CAAC,CAAA;gBAC5F,OAAM;YACR,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAClB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,+CAA+C,OAAO,CAAC,EAAE,mCAAmC,EAC5F;oBACE,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK;iBACb,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,0FAA0F;QAC1F,2FAA2F;QAC3F,IAAI,YAAY,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAChD,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,GAAG,CAAC,CAAA;YAE5G,MAAM,IAAI,GAAG;gBACX,aAAa,EAAE,YAAY,CAAC,aAAa;gBACzC,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,SAAS,EAAE,wBAAwB,CAAC,SAAS;aAC9C,CAAA;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC5F,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,YAAY,EAAE;gBAC3D,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,aAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;gBACrE,OAAO,EAAE,gBAAgB;aAC1B,CAAC,CAAA;YAEF,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,eAAe,CAAC,CAAA;YAE5F,OAAM;QACR,CAAC;QAED,2BAA2B;QAC3B,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,0CAA0C,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,GAAG,EACpF;YACE,OAAO;YACP,MAAM;YACN,UAAU;SACX,CACF,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;QAE1F,MAAM,IAAI,4BAAmB,CAC3B,0CAA0C,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,GAAG,EACpF,EAAE,sBAAsB,EAAE,CAC3B,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,sBAA8C;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAA;QAE1E,IAAI,OAAO,EAAE,CAAC;YACZ,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CACrD,kDAAkD,sBAAsB,CAAC,OAAO,CAAC,EAAE,GAAG,CACvF,CAAA;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAA;gBAC7G,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;gBAC1F,OAAM;YACR,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CACrD,8DAA8D,KAAK,CAAC,OAAO,GAAG,EAC9E,KAAK,CACN,CAAA;YACH,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAA;YAChD,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,eAAe,CAAC,CAAA;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CACrD,+CAA+C,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EACnH;gBACE,OAAO,EAAE,sBAAsB,CAAC,OAAO;gBACvC,KAAK;aACN,CACF,CAAA;YACD,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,kCAAyB,CAAC,aAAa,CAAC,CAAA;YAE1F,MAAM,IAAI,4BAAmB,CAC3B,+CAA+C,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EACnH,EAAE,sBAAsB,EAAE,CAC3B,CAAA;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,sBAA8C;QACxE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,sBAAsB,CAAA;QAEnF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,iBAAU,CAAC,yDAAyD,CAAC,CAAA;QACjF,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa,CAAA;QAEzD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,iBAAU,CAAC,kCAAkC,CAAC,CAAA;QAC1D,CAAC;QAED,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;YACvE,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE;SAChF,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG;YACX,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS;SACV,CAAA;QAED,8CAA8C;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,gBAAgB,CAAC,qCAAgB,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC;YACH,uBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,qCAAqC,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,eAAe,6BAA6B,EAC5G;gBACE,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;aAC1B,CACF,CAAA;YAED,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;QAClH,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAA;QAClD,eAAe,CAAC,YAAY,GAAG,UAAU,EAAE,EAAE,CAAA;QAC7C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChD,MAAM,cAAc,GAAG,YAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YACvE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;YAC7E,CAAC;iBAAM,IAAI,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/D,MAAM,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;gBAC5C,OAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,IAAI,4BAAmB,CAAC,sCAAsC,OAAO,CAAC,eAAe,EAAE,EAAE;YAC7F,sBAAsB;SACvB,CAAC,CAAA;IACJ,CAAC;IAEO,6BAA6B,CAAC,eAAuC;QAC3E,IAAI,OAAO,GAAiC,SAAS,CAAA;QAErD,uGAAuG;QACvG,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC,qBAAqB,EAAE,SAAS,CAAA;QAE/F,4BAA4B;QAC5B,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5D,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;YAC/C,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC1F,CAAC;QAED,OAAO,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IACtE,CAAC;IAEO,KAAK,CAAC,4BAA4B,CACxC,YAA0B,EAC1B,UAA4B,EAC5B,iBAA4C,EAC5C,SAA2B;QAE3B,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,uCAAuC,UAAU,CAAC,EAAE,MAAM,UAAU,CAAC,UAAU,GAAG,EAClF;YACE,iBAAiB;YACjB,UAAU;SACX,CACF,CAAA;QAED,IAAI,eAAe,GAA6B,EAAE,CAAA;QAElD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAA;YACtG,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC/G,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;YAC/F,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC3B,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC;oBAClE,+CAA+C;oBAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAChC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAA;wBAC1E,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;oBAC5G,CAAC;yBAAM,CAAC;wBACN,yEAAyE;wBACzE,eAAe,CAAC,IAAI,CAAC;4BACnB,EAAE,EAAE,OAAO,CAAC,EAAE;4BACd,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,+BAAwB,CAAC;4BAClE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,+BAAwB,CAAC,IAAI,EAAE;4BACrE,eAAe,EAAE,OAAO,CAAC,eAAe;yBACzC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;QACzF,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;QAE5F,iEAAiE;QACjE,IAAI,iBAAiB,EAAE,WAAW,EAAE,CAAC;YACnC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,aAAa,GAAG,YAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;gBACtE,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;YAC1D,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,qEAAqE;QACrE,IAAI,iBAAiB,EAAE,OAAO,EAAE,CAAC;YAC/B,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,YAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;gBAC1D,MAAM,OAAO,GAAG,YAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;gBAC1D,OAAO,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAClG,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9B,aAAa,QAAQ,CAAC,MAAM,wCAAwC,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,IAAI,EAC/G,EAAE,eAAe,EAAE,YAAY,KAAK,SAAS,EAAE,CAChD,CAAA;QACD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;IACnC,CAAC;IAEO,oBAAoB,CAAC,sBAA8C,EAAE,MAAiC;QAC5G,MAAM,EAAE,YAAY,EAAE,GAAG,sBAAsB,CAAA;QAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAwB,YAAY,EAAE;YAC1D,IAAI,EAAE,wBAAe,CAAC,gBAAgB;YACtC,OAAO,EAAE;gBACP,OAAO,EAAE,sBAAsB;gBAC/B,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAriBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,iBAAU,GAAE;qCAUQ,iCAAe;QACd,mCAAgB;QACb,yCAAmB;QAChB,+CAAsB;QAChC,mBAAY;GAbjB,aAAa,CAqiBzB;AAED,SAAgB,uBAAuB,CAAC,eAAuB;IAC7D,OAAO,eAAe,KAAK,oCAAwB,CAAA;AACrD,CAAC"}
|
|
@@ -29,15 +29,15 @@ class ServiceDecorator {
|
|
|
29
29
|
get resolvedDidCommService() {
|
|
30
30
|
return {
|
|
31
31
|
id: core_1.utils.uuid(),
|
|
32
|
-
recipientKeys: this.recipientKeys.map(core_1.
|
|
33
|
-
routingKeys: this.routingKeys?.map(core_1.
|
|
32
|
+
recipientKeys: this.recipientKeys.map(core_1.verkeyToPublicJwk),
|
|
33
|
+
routingKeys: this.routingKeys?.map(core_1.verkeyToPublicJwk) ?? [],
|
|
34
34
|
serviceEndpoint: this.serviceEndpoint,
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
static fromResolvedDidCommService(service) {
|
|
38
38
|
return new ServiceDecorator({
|
|
39
|
-
recipientKeys: service.recipientKeys.map((k) => k.
|
|
40
|
-
routingKeys: service.routingKeys.map((k) => k.
|
|
39
|
+
recipientKeys: service.recipientKeys.map((k) => core_1.TypedArrayEncoder.toBase58(k.publicKey.publicKey)),
|
|
40
|
+
routingKeys: service.routingKeys.map((k) => core_1.TypedArrayEncoder.toBase58(k.publicKey.publicKey)),
|
|
41
41
|
serviceEndpoint: service.serviceEndpoint,
|
|
42
42
|
});
|
|
43
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceDecorator.js","sourceRoot":"","sources":["../../../src/decorators/service/ServiceDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"ServiceDecorator.js","sourceRoot":"","sources":["../../../src/decorators/service/ServiceDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yCAA4E;AAC5E,qDAA+D;AAQ/D;;;;;GAKG;AACH,MAAa,gBAAgB;IAC3B,YAAmB,OAAgC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;YAC1C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;YACtC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;QAChD,CAAC;IACH,CAAC;IAcD,IAAW,sBAAsB;QAC/B,OAAO;YACL,EAAE,EAAE,YAAK,CAAC,IAAI,EAAE;YAChB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,wBAAiB,CAAC;YACxD,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,wBAAiB,CAAC,IAAI,EAAE;YAC3D,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,0BAA0B,CAAC,OAA+B;QACtE,OAAO,IAAI,gBAAgB,CAAC;YAC1B,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAClG,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9F,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAA;IACJ,CAAC;CACF;AArCD,4CAqCC;AA1BQ;IAFN,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;uDACM;AAKxB;IAHN,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;;qDACgB;AAGtB;IADN,IAAA,0BAAQ,GAAE;;yDACoB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AgentContext } from '@credo-ts/core';
|
|
2
|
+
import { Kms } from '@credo-ts/core';
|
|
2
3
|
import { SignatureDecorator } from './SignatureDecorator';
|
|
3
4
|
/**
|
|
4
5
|
* Unpack and verify signed data before casting it to the supplied type.
|
|
@@ -8,14 +9,14 @@ import { SignatureDecorator } from './SignatureDecorator';
|
|
|
8
9
|
*
|
|
9
10
|
* @return Resulting data
|
|
10
11
|
*/
|
|
11
|
-
export declare function unpackAndVerifySignatureDecorator(
|
|
12
|
+
export declare function unpackAndVerifySignatureDecorator(agentContext: AgentContext, decorator: SignatureDecorator): Promise<Record<string, unknown>>;
|
|
12
13
|
/**
|
|
13
14
|
* Sign data supplied and return a signature decorator.
|
|
14
15
|
*
|
|
15
16
|
* @param data the data to sign
|
|
16
17
|
* @param wallet the wallet containing a key to use for signing
|
|
17
|
-
* @param signerKey
|
|
18
|
+
* @param signerKey signer key
|
|
18
19
|
*
|
|
19
20
|
* @returns Resulting signature decorator.
|
|
20
21
|
*/
|
|
21
|
-
export declare function signData(
|
|
22
|
+
export declare function signData(agentContext: AgentContext, data: unknown, signerKey: Kms.PublicJwk<Kms.Ed25519PublicJwk>): Promise<SignatureDecorator>;
|
|
@@ -12,18 +12,28 @@ const SignatureDecorator_1 = require("./SignatureDecorator");
|
|
|
12
12
|
*
|
|
13
13
|
* @return Resulting data
|
|
14
14
|
*/
|
|
15
|
-
async function unpackAndVerifySignatureDecorator(
|
|
15
|
+
async function unpackAndVerifySignatureDecorator(agentContext, decorator) {
|
|
16
16
|
const signerVerkey = decorator.signer;
|
|
17
|
-
const
|
|
17
|
+
const kms = agentContext.dependencyManager.resolve(core_1.Kms.KeyManagementApi);
|
|
18
|
+
const publicJwk = core_1.Kms.PublicJwk.fromPublicKey({
|
|
19
|
+
kty: 'OKP',
|
|
20
|
+
crv: 'Ed25519',
|
|
21
|
+
publicKey: core_1.TypedArrayEncoder.fromBase58(signerVerkey),
|
|
22
|
+
});
|
|
18
23
|
// first 8 bytes are for 64 bit integer from unix epoch
|
|
19
24
|
const signedData = core_1.TypedArrayEncoder.fromBase64(decorator.signatureData);
|
|
20
25
|
const signature = core_1.TypedArrayEncoder.fromBase64(decorator.signature);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
const result = await kms.verify({
|
|
27
|
+
algorithm: 'EdDSA',
|
|
28
|
+
data: signedData,
|
|
29
|
+
key: {
|
|
30
|
+
publicJwk: publicJwk.toJson(),
|
|
31
|
+
},
|
|
32
|
+
signature,
|
|
33
|
+
});
|
|
34
|
+
if (!result.verified) {
|
|
24
35
|
throw new core_1.CredoError('Signature is not valid');
|
|
25
36
|
}
|
|
26
|
-
// TODO: return Connection instance instead of raw json
|
|
27
37
|
return core_1.JsonEncoder.fromBuffer(signedData.slice(8));
|
|
28
38
|
}
|
|
29
39
|
/**
|
|
@@ -31,19 +41,19 @@ async function unpackAndVerifySignatureDecorator(decorator, wallet) {
|
|
|
31
41
|
*
|
|
32
42
|
* @param data the data to sign
|
|
33
43
|
* @param wallet the wallet containing a key to use for signing
|
|
34
|
-
* @param signerKey
|
|
44
|
+
* @param signerKey signer key
|
|
35
45
|
*
|
|
36
46
|
* @returns Resulting signature decorator.
|
|
37
47
|
*/
|
|
38
|
-
async function signData(
|
|
48
|
+
async function signData(agentContext, data, signerKey) {
|
|
49
|
+
const kms = agentContext.dependencyManager.resolve(core_1.Kms.KeyManagementApi);
|
|
39
50
|
const dataBuffer = core_1.Buffer.concat([core_1.utils.timestamp(), core_1.JsonEncoder.toBuffer(data)]);
|
|
40
|
-
const
|
|
41
|
-
const signatureBuffer = await wallet.sign({ key, data: dataBuffer });
|
|
51
|
+
const result = await kms.sign({ data: dataBuffer, algorithm: 'EdDSA', keyId: signerKey.keyId });
|
|
42
52
|
const signatureDecorator = new SignatureDecorator_1.SignatureDecorator({
|
|
43
53
|
signatureType: 'https://didcomm.org/signature/1.0/ed25519Sha512_single',
|
|
44
|
-
signature: core_1.TypedArrayEncoder.toBase64URL(
|
|
54
|
+
signature: core_1.TypedArrayEncoder.toBase64URL(result.signature),
|
|
45
55
|
signatureData: core_1.TypedArrayEncoder.toBase64URL(dataBuffer),
|
|
46
|
-
signer: signerKey,
|
|
56
|
+
signer: core_1.TypedArrayEncoder.toBase58(signerKey.publicKey.publicKey),
|
|
47
57
|
});
|
|
48
58
|
return signatureDecorator;
|
|
49
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureDecoratorUtils.js","sourceRoot":"","sources":["../../../src/decorators/signature/SignatureDecoratorUtils.ts"],"names":[],"mappings":";;AAcA,
|
|
1
|
+
{"version":3,"file":"SignatureDecoratorUtils.js","sourceRoot":"","sources":["../../../src/decorators/signature/SignatureDecoratorUtils.ts"],"names":[],"mappings":";;AAcA,8EA+BC;AAWD,4BAkBC;AAxED,yCAA+F;AAE/F,6DAAyD;AAEzD;;;;;;;GAOG;AACI,KAAK,UAAU,iCAAiC,CACrD,YAA0B,EAC1B,SAA6B;IAE7B,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAA;IACrC,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAG,CAAC,gBAAgB,CAAC,CAAA;IAExE,MAAM,SAAS,GAAG,UAAG,CAAC,SAAS,CAAC,aAAa,CAAC;QAC5C,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,wBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC;KACtD,CAAC,CAAA;IAEF,uDAAuD;IACvD,MAAM,UAAU,GAAG,wBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IACxE,MAAM,SAAS,GAAG,wBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAEnE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;QAC9B,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE;YACH,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE;SAC9B;QACD,SAAS;KACV,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,iBAAU,CAAC,wBAAwB,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,kBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,QAAQ,CAC5B,YAA0B,EAC1B,IAAa,EACb,SAA8C;IAE9C,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAG,CAAC,gBAAgB,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,aAAM,CAAC,MAAM,CAAC,CAAC,YAAK,CAAC,SAAS,EAAE,EAAE,kBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEjF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IAE/F,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,CAAC;QAChD,aAAa,EAAE,wDAAwD;QACvE,SAAS,EAAE,wBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1D,aAAa,EAAE,wBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC;QACxD,MAAM,EAAE,wBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;KAClE,CAAC,CAAA;IAEF,OAAO,kBAAkB,CAAA;AAC3B,CAAC"}
|