@credo-ts/didcomm 0.6.0-pr-2195-20250322195244 → 0.6.0-pr-2324-20250625125237

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/build/DidCommModule.js +0 -1
  2. package/build/DidCommModule.js.map +1 -1
  3. package/build/DidCommModuleConfig.d.ts +8 -0
  4. package/build/DidCommModuleConfig.js +9 -0
  5. package/build/DidCommModuleConfig.js.map +1 -1
  6. package/build/EnvelopeService.d.ts +13 -8
  7. package/build/EnvelopeService.js +281 -21
  8. package/build/EnvelopeService.js.map +1 -1
  9. package/build/MessageSender.d.ts +4 -6
  10. package/build/MessageSender.js +60 -70
  11. package/build/MessageSender.js.map +1 -1
  12. package/build/decorators/service/ServiceDecorator.js +4 -4
  13. package/build/decorators/service/ServiceDecorator.js.map +1 -1
  14. package/build/decorators/signature/SignatureDecoratorUtils.d.ts +5 -4
  15. package/build/decorators/signature/SignatureDecoratorUtils.js +22 -12
  16. package/build/decorators/signature/SignatureDecoratorUtils.js.map +1 -1
  17. package/build/getOutboundMessageContext.js +30 -5
  18. package/build/getOutboundMessageContext.js.map +1 -1
  19. package/build/models/InboundMessageContext.d.ts +5 -5
  20. package/build/models/OutboundMessageContext.d.ts +2 -2
  21. package/build/models/Routing.d.ts +3 -3
  22. package/build/modules/connections/ConnectionsApi.js +6 -5
  23. package/build/modules/connections/ConnectionsApi.js.map +1 -1
  24. package/build/modules/connections/DidExchangeProtocol.d.ts +3 -1
  25. package/build/modules/connections/DidExchangeProtocol.js +95 -57
  26. package/build/modules/connections/DidExchangeProtocol.js.map +1 -1
  27. package/build/modules/connections/handlers/ConnectionRequestHandler.js +7 -0
  28. package/build/modules/connections/handlers/ConnectionRequestHandler.js.map +1 -1
  29. package/build/modules/connections/handlers/ConnectionResponseHandler.js +4 -0
  30. package/build/modules/connections/handlers/ConnectionResponseHandler.js.map +1 -1
  31. package/build/modules/connections/handlers/DidExchangeCompleteHandler.js +0 -4
  32. package/build/modules/connections/handlers/DidExchangeCompleteHandler.js.map +1 -1
  33. package/build/modules/connections/handlers/DidExchangeRequestHandler.js +3 -0
  34. package/build/modules/connections/handlers/DidExchangeRequestHandler.js.map +1 -1
  35. package/build/modules/connections/handlers/DidExchangeResponseHandler.js +3 -3
  36. package/build/modules/connections/handlers/DidExchangeResponseHandler.js.map +1 -1
  37. package/build/modules/connections/messages/ConnectionInvitationMessage.d.ts +2 -1
  38. package/build/modules/connections/messages/ConnectionInvitationMessage.js.map +1 -1
  39. package/build/modules/connections/models/did/DidDoc.js +2 -2
  40. package/build/modules/connections/models/did/DidDoc.js.map +1 -1
  41. package/build/modules/connections/repository/ConnectionRecord.d.ts +2 -0
  42. package/build/modules/connections/repository/ConnectionRecord.js +2 -0
  43. package/build/modules/connections/repository/ConnectionRecord.js.map +1 -1
  44. package/build/modules/connections/repository/ConnectionRepository.d.ts +1 -1
  45. package/build/modules/connections/repository/ConnectionRepository.js +2 -0
  46. package/build/modules/connections/repository/ConnectionRepository.js.map +1 -1
  47. package/build/modules/connections/services/ConnectionService.d.ts +4 -4
  48. package/build/modules/connections/services/ConnectionService.js +92 -41
  49. package/build/modules/connections/services/ConnectionService.js.map +1 -1
  50. package/build/modules/connections/services/DidRotateService.js +9 -10
  51. package/build/modules/connections/services/DidRotateService.js.map +1 -1
  52. package/build/modules/connections/services/helpers.d.ts +20 -6
  53. package/build/modules/connections/services/helpers.js +46 -29
  54. package/build/modules/connections/services/helpers.js.map +1 -1
  55. package/build/modules/credentials/models/RevocationNotification.js +14 -0
  56. package/build/modules/credentials/models/RevocationNotification.js.map +1 -1
  57. package/build/modules/credentials/protocol/index.js +17 -7
  58. package/build/modules/credentials/protocol/index.js.map +1 -1
  59. package/build/modules/credentials/repository/CredentialExchangeRecord.d.ts +1 -1
  60. package/build/modules/credentials/repository/CredentialExchangeRecord.js +5 -0
  61. package/build/modules/credentials/repository/CredentialExchangeRecord.js.map +1 -1
  62. package/build/modules/message-pickup/MessagePickupApi.js +7 -2
  63. package/build/modules/message-pickup/MessagePickupApi.js.map +1 -1
  64. package/build/modules/message-pickup/MessagePickupApiOptions.d.ts +1 -1
  65. package/build/modules/message-pickup/MessagePickupModule.d.ts +1 -0
  66. package/build/modules/message-pickup/MessagePickupModule.js +6 -11
  67. package/build/modules/message-pickup/MessagePickupModule.js.map +1 -1
  68. package/build/modules/message-pickup/MessagePickupModuleConfig.d.ts +0 -8
  69. package/build/modules/message-pickup/MessagePickupModuleConfig.js +0 -4
  70. package/build/modules/message-pickup/MessagePickupModuleConfig.js.map +1 -1
  71. package/build/modules/message-pickup/index.d.ts +0 -1
  72. package/build/modules/message-pickup/index.js +0 -1
  73. package/build/modules/message-pickup/index.js.map +1 -1
  74. package/build/modules/message-pickup/protocol/MessagePickupProtocolOptions.d.ts +1 -1
  75. package/build/modules/message-pickup/protocol/v1/V1MessagePickupProtocol.js +6 -5
  76. package/build/modules/message-pickup/protocol/v1/V1MessagePickupProtocol.js.map +1 -1
  77. package/build/modules/message-pickup/protocol/v2/V2MessagePickupProtocol.js +22 -13
  78. package/build/modules/message-pickup/protocol/v2/V2MessagePickupProtocol.js.map +1 -1
  79. package/build/modules/oob/OutOfBandApi.js +21 -8
  80. package/build/modules/oob/OutOfBandApi.js.map +1 -1
  81. package/build/modules/oob/OutOfBandService.d.ts +9 -5
  82. package/build/modules/oob/OutOfBandService.js +7 -2
  83. package/build/modules/oob/OutOfBandService.js.map +1 -1
  84. package/build/modules/oob/converters.js +2 -4
  85. package/build/modules/oob/converters.js.map +1 -1
  86. package/build/modules/oob/domain/OutOfBandDidCommService.js +14 -2
  87. package/build/modules/oob/domain/OutOfBandDidCommService.js.map +1 -1
  88. package/build/modules/oob/helpers.js +6 -6
  89. package/build/modules/oob/helpers.js.map +1 -1
  90. package/build/modules/oob/messages/OutOfBandInvitation.js.map +1 -1
  91. package/build/modules/oob/repository/OutOfBandRecord.d.ts +34 -0
  92. package/build/modules/oob/repository/OutOfBandRecord.js +1 -0
  93. package/build/modules/oob/repository/OutOfBandRecord.js.map +1 -1
  94. package/build/modules/oob/repository/outOfBandRecordMetadataTypes.d.ts +4 -0
  95. package/build/modules/proofs/formats/dif-presentation-exchange/DifPresentationExchangeProofFormatService.js +7 -4
  96. package/build/modules/proofs/formats/dif-presentation-exchange/DifPresentationExchangeProofFormatService.js.map +1 -1
  97. package/build/modules/proofs/formats/index.js +17 -7
  98. package/build/modules/proofs/formats/index.js.map +1 -1
  99. package/build/modules/proofs/protocol/index.js +17 -7
  100. package/build/modules/proofs/protocol/index.js.map +1 -1
  101. package/build/modules/routing/MediationRecipientApi.d.ts +0 -2
  102. package/build/modules/routing/MediationRecipientApi.js +1 -46
  103. package/build/modules/routing/MediationRecipientApi.js.map +1 -1
  104. package/build/modules/routing/MediationRecipientModule.d.ts +3 -0
  105. package/build/modules/routing/MediationRecipientModule.js +60 -0
  106. package/build/modules/routing/MediationRecipientModule.js.map +1 -1
  107. package/build/modules/routing/MediatorModule.d.ts +1 -0
  108. package/build/modules/routing/MediatorModule.js +5 -0
  109. package/build/modules/routing/MediatorModule.js.map +1 -1
  110. package/build/modules/routing/MediatorModuleConfig.d.ts +2 -2
  111. package/build/modules/routing/MessageForwardingStrategy.js +2 -2
  112. package/build/modules/routing/MessageForwardingStrategy.js.map +1 -1
  113. package/build/modules/routing/repository/MediationRecord.d.ts +8 -0
  114. package/build/modules/routing/repository/MediationRecord.js +2 -0
  115. package/build/modules/routing/repository/MediationRecord.js.map +1 -1
  116. package/build/modules/routing/repository/MediatorRoutingRecord.d.ts +23 -5
  117. package/build/modules/routing/repository/MediatorRoutingRecord.js +33 -1
  118. package/build/modules/routing/repository/MediatorRoutingRecord.js.map +1 -1
  119. package/build/modules/routing/services/MediationRecipientService.d.ts +3 -3
  120. package/build/modules/routing/services/MediationRecipientService.js +15 -12
  121. package/build/modules/routing/services/MediationRecipientService.js.map +1 -1
  122. package/build/modules/routing/services/MediatorService.js +17 -9
  123. package/build/modules/routing/services/MediatorService.js.map +1 -1
  124. package/build/modules/routing/services/RoutingService.d.ts +3 -3
  125. package/build/modules/routing/services/RoutingService.js +4 -3
  126. package/build/modules/routing/services/RoutingService.js.map +1 -1
  127. package/build/modules/routing/services/helpers.d.ts +1 -1
  128. package/build/modules/routing/services/helpers.js +3 -4
  129. package/build/modules/routing/services/helpers.js.map +1 -1
  130. package/build/services/DidCommDocumentService.d.ts +8 -3
  131. package/build/services/DidCommDocumentService.js +46 -15
  132. package/build/services/DidCommDocumentService.js.map +1 -1
  133. package/build/transport/HttpOutboundTransport.js +2 -4
  134. package/build/transport/HttpOutboundTransport.js.map +1 -1
  135. package/build/transport/index.d.ts +1 -0
  136. package/build/transport/index.js +1 -0
  137. package/build/transport/index.js.map +1 -1
  138. package/build/transport/queue/InMemoryQueueTransportRepository.d.ts +12 -0
  139. package/build/{modules/message-pickup/storage/InMemoryMessagePickupRepository.js → transport/queue/InMemoryQueueTransportRepository.js} +15 -19
  140. package/build/transport/queue/InMemoryQueueTransportRepository.js.map +1 -0
  141. package/build/transport/queue/QueueTransportRepository.d.ts +9 -0
  142. package/build/{modules/message-pickup/storage/MessagePickupRepository.js → transport/queue/QueueTransportRepository.js} +1 -1
  143. package/build/transport/queue/QueueTransportRepository.js.map +1 -0
  144. package/build/{modules/message-pickup/storage/MessagePickupRepositoryOptions.d.ts → transport/queue/QueueTransportRepositoryOptions.d.ts} +2 -1
  145. package/build/{modules/message-pickup/storage/MessagePickupRepositoryOptions.js → transport/queue/QueueTransportRepositoryOptions.js} +1 -1
  146. package/build/transport/queue/QueueTransportRepositoryOptions.js.map +1 -0
  147. package/build/{modules/message-pickup/storage → transport/queue}/QueuedMessage.d.ts +2 -2
  148. package/build/transport/queue/QueuedMessage.js.map +1 -0
  149. package/build/transport/queue/index.d.ts +4 -0
  150. package/build/{modules/message-pickup/storage → transport/queue}/index.js +3 -3
  151. package/build/transport/queue/index.js.map +1 -0
  152. package/build/updates/0.1-0.2/connection.js +3 -3
  153. package/build/updates/0.1-0.2/connection.js.map +1 -1
  154. package/build/util/modules.d.ts +1 -1
  155. package/build/util/modules.js +3 -1
  156. package/build/util/modules.js.map +1 -1
  157. package/build/util/parseInvitation.js +0 -2
  158. package/build/util/parseInvitation.js.map +1 -1
  159. package/package.json +7 -7
  160. package/build/modules/message-pickup/storage/InMemoryMessagePickupRepository.d.ts +0 -13
  161. package/build/modules/message-pickup/storage/InMemoryMessagePickupRepository.js.map +0 -1
  162. package/build/modules/message-pickup/storage/MessagePickupRepository.d.ts +0 -8
  163. package/build/modules/message-pickup/storage/MessagePickupRepository.js.map +0 -1
  164. package/build/modules/message-pickup/storage/MessagePickupRepositoryOptions.js.map +0 -1
  165. package/build/modules/message-pickup/storage/QueuedMessage.js.map +0 -1
  166. package/build/modules/message-pickup/storage/index.d.ts +0 -4
  167. package/build/modules/message-pickup/storage/index.js.map +0 -1
  168. package/build/util/matchingEd25519Key.d.ts +0 -9
  169. package/build/util/matchingEd25519Key.js +0 -30
  170. package/build/util/matchingEd25519Key.js.map +0 -1
  171. /package/build/{modules/message-pickup/storage → transport/queue}/QueuedMessage.js +0 -0
@@ -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, messagePickupRepository, logger, didResolverService, didCommDocumentService, eventEmitter) {
25
+ constructor(envelopeService, transportService, didCommModuleConfig, didCommDocumentService, eventEmitter) {
28
26
  this._outboundTransports = [];
29
27
  this.envelopeService = envelopeService;
30
28
  this.transportService = transportService;
31
- this.messagePickupRepository = messagePickupRepository;
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
- this.logger.debug(`Packing message and sending it via existing session ${session.type}...`);
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
- this.logger.debug('Sending message');
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
- this.logger.debug(`Sending packed message via session failed with error: ${error.message}.`, error);
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
- this.logger.debug('Sending outbound message to service:', { service });
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
- this.logger.debug(`Sending outbound message to service with id ${service.id} failed with the following error:`, {
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
- this.logger.debug(`Queue packed message for connection ${connection.id} (${connection.theirLabel})`);
112
- await this.messagePickupRepository.addMessage({
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
- this.logger.error(`Message is undeliverable to connection ${connection.id} (${connection.theirLabel})`, {
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
- this.logger.error('Outbound message has no associated connection');
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
- this.logger.debug('Send outbound message', {
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
- this.logger.debug(`Found session with return routing for message '${message.id}' (connection '${connection.id}'`);
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
- this.logger.debug(`Sending an outbound message via session failed with error: ${error.message}.`, error);
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
- this.logger.error(`Unable to retrieve services for connection '${connection.id}. ${error.message}`);
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
- this.logger.error(`Unable to send message using connection '${connection.id}' that doesn't have a did`);
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
- let ourDidDocument;
178
- try {
179
- ourDidDocument = await this.didResolverService.resolveDidDocument(agentContext, connection.did);
180
- }
181
- catch (error) {
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 resolve DID Document for '${connection.did}`, {
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(ourDidDocument);
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: firstOurAuthenticationKey,
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
- this.logger.debug(`Sending outbound message to service with id ${service.id} failed with the following error:`, {
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
- this.logger.debug(`Queue message for connection ${connection.id} (${connection.theirLabel})`);
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: firstOurAuthenticationKey,
231
+ senderKey: senderVerificationMethod.publicJwk,
234
232
  };
235
233
  const encryptedMessage = await this.envelopeService.packMessage(agentContext, message, keys);
236
- await this.messagePickupRepository.addMessage({
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
- this.logger.error(`Message is undeliverable to connection ${connection.id} (${connection.theirLabel})`, {
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
- this.logger.debug(`Found session with return routing for message '${outboundMessageContext.message.id}'`);
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
- this.logger.debug(`Sending an outbound message via session failed with error: ${error.message}.`, error);
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
- this.logger.error(`Message is undeliverable to service with id ${outboundMessageContext.serviceParams?.service.id}: ${error.message}`, {
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
- this.logger.debug('Sending outbound message to service:', {
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
- this.logger.error(`Aborting sending outbound message ${message.type} to ${service.serviceEndpoint}. Message validation failed`, {
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
- this.logger.warn('Service does not have a protocol scheme.');
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
- this.logger.debug(`Retrieving services for connection '${connection.id}' (${connection.theirLabel})`, {
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
- this.logger.debug(`Resolving services for connection theirDid ${connection.theirDid}.`);
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
- this.logger.debug(`Resolving services from out-of-band record ${outOfBand.id}.`);
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
- this.logger.debug(`Resolving services for did ${service}.`);
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.didKeyToInstanceOfKey),
367
- routingKeys: service.routingKeys?.map(core_1.didKeyToInstanceOfKey) || [],
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
- this.logger.debug(`Retrieved ${services.length} services for message to connection '${connection.id}'(${connection.theirLabel})'`, { hasQueueService: queueService !== undefined });
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, Object, Object, core_1.DidResolverService,
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":"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"}
@@ -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.verkeyToInstanceOfKey),
33
- routingKeys: this.routingKeys?.map(core_1.verkeyToInstanceOfKey) ?? [],
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.publicKeyBase58),
40
- routingKeys: service.routingKeys.map((k) => k.publicKeyBase58),
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,yCAA6D;AAC7D,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,4BAAqB,CAAC;YAC5D,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,4BAAqB,CAAC,IAAI,EAAE;YAC/D,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,CAAC,CAAC,eAAe,CAAC;YAClE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9D,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
+ {"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 { Wallet } from '@credo-ts/core';
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(decorator: SignatureDecorator, wallet: Wallet): Promise<Record<string, unknown>>;
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 signers verkey
18
+ * @param signerKey signer key
18
19
  *
19
20
  * @returns Resulting signature decorator.
20
21
  */
21
- export declare function signData(data: unknown, wallet: Wallet, signerKey: string): Promise<SignatureDecorator>;
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(decorator, wallet) {
15
+ async function unpackAndVerifySignatureDecorator(agentContext, decorator) {
16
16
  const signerVerkey = decorator.signer;
17
- const key = core_1.Key.fromPublicKeyBase58(signerVerkey, core_1.KeyType.Ed25519);
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
- // const isValid = await wallet.verify(signerVerkey, signedData, signature)
22
- const isValid = await wallet.verify({ signature, data: signedData, key });
23
- if (!isValid) {
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 signers verkey
44
+ * @param signerKey signer key
35
45
  *
36
46
  * @returns Resulting signature decorator.
37
47
  */
38
- async function signData(data, wallet, signerKey) {
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 key = core_1.Key.fromPublicKeyBase58(signerKey, core_1.KeyType.Ed25519);
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(signatureBuffer),
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,8EAoBC;AAWD,4BAcC;AAzDD,yCAAwG;AAExG,6DAAyD;AAEzD;;;;;;;GAOG;AACI,KAAK,UAAU,iCAAiC,CACrD,SAA6B,EAC7B,MAAc;IAEd,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAA;IACrC,MAAM,GAAG,GAAG,UAAG,CAAC,mBAAmB,CAAC,YAAY,EAAE,cAAO,CAAC,OAAO,CAAC,CAAA;IAElE,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,2EAA2E;IAC3E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;IAEzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iBAAU,CAAC,wBAAwB,CAAC,CAAA;IAChD,CAAC;IAED,uDAAuD;IACvD,OAAO,kBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAa,EAAE,MAAc,EAAE,SAAiB;IAC7E,MAAM,UAAU,GAAG,aAAM,CAAC,MAAM,CAAC,CAAC,YAAK,CAAC,SAAS,EAAE,EAAE,kBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjF,MAAM,GAAG,GAAG,UAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAO,CAAC,OAAO,CAAC,CAAA;IAE/D,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;IAEpE,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,CAAC;QAChD,aAAa,EAAE,wDAAwD;QACvE,SAAS,EAAE,wBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC;QACzD,aAAa,EAAE,wBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC;QACxD,MAAM,EAAE,SAAS;KAClB,CAAC,CAAA;IAEF,OAAO,kBAAkB,CAAA;AAC3B,CAAC"}
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"}