@verana-labs/vs-agent-sdk 2.0.0-dev.5 → 2.0.0-dev.50

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 (118) hide show
  1. package/build/agent/VsAgent.d.ts +11 -16
  2. package/build/agent/VsAgent.js +82 -172
  3. package/build/agent/VsAgent.js.map +1 -1
  4. package/build/agent/createVsAgent.d.ts +5 -0
  5. package/build/agent/createVsAgent.js +3 -0
  6. package/build/agent/createVsAgent.js.map +1 -1
  7. package/build/blockchain/AnonCredsTrustService.d.ts +53 -0
  8. package/build/blockchain/AnonCredsTrustService.js +238 -0
  9. package/build/blockchain/AnonCredsTrustService.js.map +1 -0
  10. package/build/blockchain/AuthorizationService.d.ts +0 -2
  11. package/build/blockchain/AuthorizationService.js +0 -18
  12. package/build/blockchain/AuthorizationService.js.map +1 -1
  13. package/build/blockchain/IndexerWebSocketService.d.ts +7 -1
  14. package/build/blockchain/IndexerWebSocketService.js +68 -36
  15. package/build/blockchain/IndexerWebSocketService.js.map +1 -1
  16. package/build/blockchain/VeranaChainService.d.ts +4 -1
  17. package/build/blockchain/VeranaChainService.js +44 -7
  18. package/build/blockchain/VeranaChainService.js.map +1 -1
  19. package/build/blockchain/VeranaIndexerService.d.ts +6 -0
  20. package/build/blockchain/VeranaIndexerService.js +20 -8
  21. package/build/blockchain/VeranaIndexerService.js.map +1 -1
  22. package/build/blockchain/handlers/defaultHandlers.js +2 -0
  23. package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
  24. package/build/blockchain/handlers/index.d.ts +1 -0
  25. package/build/blockchain/handlers/index.js +1 -0
  26. package/build/blockchain/handlers/index.js.map +1 -1
  27. package/build/blockchain/handlers/selfIssuanceHandlers.d.ts +13 -0
  28. package/build/blockchain/handlers/selfIssuanceHandlers.js +71 -0
  29. package/build/blockchain/handlers/selfIssuanceHandlers.js.map +1 -0
  30. package/build/blockchain/handlers/stateMutations.d.ts +21 -2
  31. package/build/blockchain/handlers/stateMutations.js +271 -29
  32. package/build/blockchain/handlers/stateMutations.js.map +1 -1
  33. package/build/blockchain/index.d.ts +1 -0
  34. package/build/blockchain/index.js +1 -0
  35. package/build/blockchain/index.js.map +1 -1
  36. package/build/blockchain/types.d.ts +19 -1
  37. package/build/blockchain/types.js.map +1 -1
  38. package/build/bootstrap/EcsBootstrapService.d.ts +16 -3
  39. package/build/bootstrap/EcsBootstrapService.js +195 -74
  40. package/build/bootstrap/EcsBootstrapService.js.map +1 -1
  41. package/build/did/CachedWebDidResolver.d.ts +0 -4
  42. package/build/did/CachedWebDidResolver.js +1 -5
  43. package/build/did/CachedWebDidResolver.js.map +1 -1
  44. package/build/did/artifactServices.d.ts +11 -0
  45. package/build/did/artifactServices.js +48 -0
  46. package/build/did/artifactServices.js.map +1 -0
  47. package/build/did/legacyDidWeb.d.ts +6 -4
  48. package/build/did/legacyDidWeb.js +17 -14
  49. package/build/did/legacyDidWeb.js.map +1 -1
  50. package/build/did/migrations/index.d.ts +22 -0
  51. package/build/did/migrations/index.js +103 -0
  52. package/build/did/migrations/index.js.map +1 -0
  53. package/build/did/migrations/migrateWebVhLog.js.map +1 -0
  54. package/build/did/migrations/migrateWebVhVersionTime.js.map +1 -0
  55. package/build/events/BaseMessageEvents.js +109 -0
  56. package/build/events/BaseMessageEvents.js.map +1 -1
  57. package/build/events/ConnectionEvents.js +110 -82
  58. package/build/events/ConnectionEvents.js.map +1 -1
  59. package/build/events/VsAgentEvents.d.ts +1 -8
  60. package/build/events/VsAgentEvents.js +0 -1
  61. package/build/events/VsAgentEvents.js.map +1 -1
  62. package/build/events/VtFlowEvents.d.ts +1 -1
  63. package/build/events/VtFlowEvents.js +2 -19
  64. package/build/events/VtFlowEvents.js.map +1 -1
  65. package/build/index.d.ts +2 -0
  66. package/build/index.js +5 -1
  67. package/build/index.js.map +1 -1
  68. package/build/plugins/setupBaseDidComm.js +4 -6
  69. package/build/plugins/setupBaseDidComm.js.map +1 -1
  70. package/build/transports/VsAgentWsInboundTransport.d.ts +1 -1
  71. package/build/transports/VsAgentWsInboundTransport.js +20 -14
  72. package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
  73. package/build/utils/agent.d.ts +27 -3
  74. package/build/utils/agent.js +78 -19
  75. package/build/utils/agent.js.map +1 -1
  76. package/build/utils/didReadiness.d.ts +9 -0
  77. package/build/utils/didReadiness.js +42 -0
  78. package/build/utils/didReadiness.js.map +1 -0
  79. package/build/utils/ecsClaims.d.ts +47 -0
  80. package/build/utils/ecsClaims.js +120 -0
  81. package/build/utils/ecsClaims.js.map +1 -0
  82. package/build/utils/index.d.ts +2 -0
  83. package/build/utils/index.js +2 -0
  84. package/build/utils/index.js.map +1 -1
  85. package/build/utils/selfIssuedEcsCredential.d.ts +4 -0
  86. package/build/utils/selfIssuedEcsCredential.js +140 -0
  87. package/build/utils/selfIssuedEcsCredential.js.map +1 -0
  88. package/build/utils/setupSelfTr.d.ts +3 -56
  89. package/build/utils/setupSelfTr.js +41 -249
  90. package/build/utils/setupSelfTr.js.map +1 -1
  91. package/build/utils/trustCredentialStore.d.ts +32 -6
  92. package/build/utils/trustCredentialStore.js +182 -82
  93. package/build/utils/trustCredentialStore.js.map +1 -1
  94. package/build/utils/util.d.ts +10 -0
  95. package/build/utils/util.js +16 -0
  96. package/build/utils/util.js.map +1 -1
  97. package/build/utils/vtjscResolver.d.ts +18 -0
  98. package/build/utils/vtjscResolver.js +54 -0
  99. package/build/utils/vtjscResolver.js.map +1 -0
  100. package/build/vtFlow/VtFlowOrchestrator.d.ts +47 -9
  101. package/build/vtFlow/VtFlowOrchestrator.js +96 -55
  102. package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
  103. package/build/vtFlow/assertVerifiableService.d.ts +1 -0
  104. package/build/vtFlow/assertVerifiableService.js +45 -5
  105. package/build/vtFlow/assertVerifiableService.js.map +1 -1
  106. package/build/vtFlow/ecsIssuanceExemption.d.ts +12 -0
  107. package/build/vtFlow/ecsIssuanceExemption.js +84 -0
  108. package/build/vtFlow/ecsIssuanceExemption.js.map +1 -0
  109. package/build/vtFlow/index.d.ts +1 -0
  110. package/build/vtFlow/index.js +1 -0
  111. package/build/vtFlow/index.js.map +1 -1
  112. package/package.json +11 -11
  113. package/build/did/migrateWebVhLog.js.map +0 -1
  114. package/build/did/migrateWebVhVersionTime.js.map +0 -1
  115. /package/build/did/{migrateWebVhLog.d.ts → migrations/migrateWebVhLog.d.ts} +0 -0
  116. /package/build/did/{migrateWebVhLog.js → migrations/migrateWebVhLog.js} +0 -0
  117. /package/build/did/{migrateWebVhVersionTime.d.ts → migrations/migrateWebVhVersionTime.d.ts} +0 -0
  118. /package/build/did/{migrateWebVhVersionTime.js → migrations/migrateWebVhVersionTime.js} +0 -0
@@ -1,10 +1,9 @@
1
1
  import type { VsAgent } from '../agent/VsAgent';
2
2
  import type { BaseEvent } from '@credo-ts/core';
3
- import { BaseMessage, ConnectionStateUpdated, Event, IndexerNotification, MessageReceived, MessageStateUpdated, PresentationStateUpdated, VtFlowStateUpdated } from '@verana-labs/vs-agent-model';
3
+ import { BaseMessage, ConnectionStateUpdated, Event, IndexerNotification, MessageReceived, PresentationStateUpdated, VtFlowStateUpdated } from '@verana-labs/vs-agent-model';
4
4
  export declare enum VsAgentEventTypes {
5
5
  ConnectionStateUpdated = "vs-agent-connection-state-updated",
6
6
  MessageReceived = "vs-agent-message-received",
7
- MessageStateUpdated = "vs-agent-message-state-updated",
8
7
  PresentationStateUpdated = "vs-agent-presentation-state-updated",
9
8
  VtFlowStateUpdated = "vs-agent-vt-flow-state-updated",
10
9
  IndexerNotification = "vs-agent-indexer-notification"
@@ -21,12 +20,6 @@ export interface VsAgentMessageReceivedEvent extends BaseEvent {
21
20
  event: MessageReceived;
22
21
  };
23
22
  }
24
- export interface VsAgentMessageStateUpdatedEvent extends BaseEvent {
25
- type: typeof VsAgentEventTypes.MessageStateUpdated;
26
- payload: {
27
- event: MessageStateUpdated;
28
- };
29
- }
30
23
  export interface VsAgentPresentationStateUpdatedEvent extends BaseEvent {
31
24
  type: typeof VsAgentEventTypes.PresentationStateUpdated;
32
25
  payload: {
@@ -8,7 +8,6 @@ var VsAgentEventTypes;
8
8
  (function (VsAgentEventTypes) {
9
9
  VsAgentEventTypes["ConnectionStateUpdated"] = "vs-agent-connection-state-updated";
10
10
  VsAgentEventTypes["MessageReceived"] = "vs-agent-message-received";
11
- VsAgentEventTypes["MessageStateUpdated"] = "vs-agent-message-state-updated";
12
11
  VsAgentEventTypes["PresentationStateUpdated"] = "vs-agent-presentation-state-updated";
13
12
  VsAgentEventTypes["VtFlowStateUpdated"] = "vs-agent-vt-flow-state-updated";
14
13
  VsAgentEventTypes["IndexerNotification"] = "vs-agent-indexer-notification";
@@ -1 +1 @@
1
- {"version":3,"file":"VsAgentEvents.js","sourceRoot":"","sources":["../../src/events/VsAgentEvents.ts"],"names":[],"mappings":";;;AA4DA,gCAKC;AAED,4CAEC;AAlED,gEASoC;AAEpC,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,iFAA4D,CAAA;IAC5D,kEAA6C,CAAA;IAC7C,2EAAsD,CAAA;IACtD,qFAAgE,CAAA;IAChE,0EAAqD,CAAA;IACrD,0EAAqD,CAAA;AACvD,CAAC,EAPW,iBAAiB,iCAAjB,iBAAiB,QAO5B;AAuCD,SAAgB,UAAU,CAAC,OAAoB;IAC7C,OAAO,IAAI,gCAAe,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAc,EAAE,IAAuB,EAAE,KAAY;IACpF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"VsAgentEvents.js","sourceRoot":"","sources":["../../src/events/VsAgentEvents.ts"],"names":[],"mappings":";;;AAoDA,gCAKC;AAED,4CAEC;AA1DD,gEAQoC;AAEpC,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,iFAA4D,CAAA;IAC5D,kEAA6C,CAAA;IAC7C,qFAAgE,CAAA;IAChE,0EAAqD,CAAA;IACrD,0EAAqD,CAAA;AACvD,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B;AAiCD,SAAgB,UAAU,CAAC,OAAoB;IAC7C,OAAO,IAAI,gCAAe,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAc,EAAE,IAAuB,EAAE,KAAY;IACpF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;AAChE,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { VsAgent } from '../agent/VsAgent';
2
2
  import { BaseLogger } from '@credo-ts/core';
3
- export declare const vtFlowEvents: (agent: VsAgent, logger: BaseLogger) => Promise<void>;
3
+ export declare const vtFlowEvents: (agent: VsAgent, logger: BaseLogger) => void;
@@ -4,30 +4,13 @@ exports.vtFlowEvents = void 0;
4
4
  const credo_ts_didcomm_vt_flow_1 = require("@verana-labs/credo-ts-didcomm-vt-flow");
5
5
  const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
6
6
  const VsAgentEvents_1 = require("./VsAgentEvents");
7
- const vtFlowEvents = async (agent, logger) => {
8
- agent.events.on(credo_ts_didcomm_vt_flow_1.VtFlowEventTypes.VtFlowStateChanged, async ({ payload }) => {
7
+ const vtFlowEvents = (agent, logger) => {
8
+ agent.events.on(credo_ts_didcomm_vt_flow_1.VtFlowEventTypes.VtFlowStateChanged, ({ payload }) => {
9
9
  logger.debug(`Incoming vtFlow state change: ${payload.vtFlowRecordId}`);
10
- const record = await agent.modules.vtFlow.findById(payload.vtFlowRecordId);
11
- if (!record)
12
- return;
13
10
  (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.VtFlowStateUpdated, new vs_agent_model_1.VtFlowStateUpdated({
14
11
  vtFlowRecordId: payload.vtFlowRecordId,
15
- threadId: payload.threadId,
16
- participantSessionId: payload.participantSessionId,
17
- connectionId: record.connectionId,
18
- role: record.role,
19
- variant: record.variant,
20
12
  state: payload.state,
21
13
  previousState: payload.previousState,
22
- participantId: record.participantId,
23
- schemaId: record.schemaId,
24
- claims: record.claims,
25
- credentialExchangeRecordId: record.credentialExchangeRecordId,
26
- errorMessage: record.errorMessage,
27
- subprotocolThid: record.subprotocolThid,
28
- agentParticipantId: record.agentParticipantId,
29
- walletAgentParticipantId: record.walletAgentParticipantId,
30
- timestamp: record.updatedAt,
31
14
  }));
32
15
  });
33
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"VtFlowEvents.js","sourceRoot":"","sources":["../../src/events/VtFlowEvents.ts"],"names":[],"mappings":";;;AAGA,oFAAsG;AACtG,gEAAgE;AAEhE,mDAAqE;AAE9D,MAAM,YAAY,GAAG,KAAK,EAAE,KAAc,EAAE,MAAkB,EAAE,EAAE;IACvE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,2CAAgB,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,OAAO,EAA2B,EAAE,EAAE;QAClG,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;QACvE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC1E,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAA,gCAAgB,EACd,KAAK,EACL,iCAAiB,CAAC,kBAAkB,EACpC,IAAI,mCAAkB,CAAC;YACrB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;YAC7D,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;YACzD,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA7BY,QAAA,YAAY,gBA6BxB"}
1
+ {"version":3,"file":"VtFlowEvents.js","sourceRoot":"","sources":["../../src/events/VtFlowEvents.ts"],"names":[],"mappings":";;;AAGA,oFAAsG;AACtG,gEAAgE;AAEhE,mDAAqE;AAE9D,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,MAAkB,EAAE,EAAE;IACjE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,2CAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,EAA2B,EAAE,EAAE;QAC5F,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;QACvE,IAAA,gCAAgB,EACd,KAAK,EACL,iCAAiB,CAAC,kBAAkB,EACpC,IAAI,mCAAkB,CAAC;YACrB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,YAAY,gBAaxB"}
package/build/index.d.ts CHANGED
@@ -8,6 +8,8 @@ export type { BaseDidCommPlugin, BaseDidCommPluginOptions } from './plugins/setu
8
8
  export { CachedWebDidResolver } from './did/CachedWebDidResolver';
9
9
  export { WebDidRegistrar } from './did/WebDidRegistrar';
10
10
  export { getLegacyDidDocument } from './did/legacyDidWeb';
11
+ export { applyArtifactServices, artifactServicesMatch, removeArtifactServices, } from './did/artifactServices';
12
+ export type { ArtifactServiceMethod, ArtifactServiceOptions } from './did/artifactServices';
11
13
  export { applyAdminApiServiceEntry } from './did/adminApiService';
12
14
  export { HttpInboundTransport, HttpTransportSession } from './transports/HttpInboundTransport';
13
15
  export { VsAgentWsInboundTransport, WebSocketTransportSession } from './transports/VsAgentWsInboundTransport';
package/build/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.migrateLegacyTailsFiles = exports.isValidTailsFileName = exports.deleteTailsFile = exports.getTailsDirectoryPath = exports.FullTailsFileService = exports.VsAgentWsOutboundTransport = exports.WebSocketTransportSession = exports.VsAgentWsInboundTransport = exports.HttpTransportSession = exports.HttpInboundTransport = exports.applyAdminApiServiceEntry = exports.getLegacyDidDocument = exports.WebDidRegistrar = exports.CachedWebDidResolver = exports.setupBaseDidComm = void 0;
17
+ exports.migrateLegacyTailsFiles = exports.isValidTailsFileName = exports.deleteTailsFile = exports.getTailsDirectoryPath = exports.FullTailsFileService = exports.VsAgentWsOutboundTransport = exports.WebSocketTransportSession = exports.VsAgentWsInboundTransport = exports.HttpTransportSession = exports.HttpInboundTransport = exports.applyAdminApiServiceEntry = exports.removeArtifactServices = exports.artifactServicesMatch = exports.applyArtifactServices = exports.getLegacyDidDocument = exports.WebDidRegistrar = exports.CachedWebDidResolver = exports.setupBaseDidComm = void 0;
18
18
  // Agent
19
19
  __exportStar(require("./agent"), exports);
20
20
  __exportStar(require("./auth"), exports);
@@ -32,6 +32,10 @@ var WebDidRegistrar_1 = require("./did/WebDidRegistrar");
32
32
  Object.defineProperty(exports, "WebDidRegistrar", { enumerable: true, get: function () { return WebDidRegistrar_1.WebDidRegistrar; } });
33
33
  var legacyDidWeb_1 = require("./did/legacyDidWeb");
34
34
  Object.defineProperty(exports, "getLegacyDidDocument", { enumerable: true, get: function () { return legacyDidWeb_1.getLegacyDidDocument; } });
35
+ var artifactServices_1 = require("./did/artifactServices");
36
+ Object.defineProperty(exports, "applyArtifactServices", { enumerable: true, get: function () { return artifactServices_1.applyArtifactServices; } });
37
+ Object.defineProperty(exports, "artifactServicesMatch", { enumerable: true, get: function () { return artifactServices_1.artifactServicesMatch; } });
38
+ Object.defineProperty(exports, "removeArtifactServices", { enumerable: true, get: function () { return artifactServices_1.removeArtifactServices; } });
35
39
  var adminApiService_1 = require("./did/adminApiService");
36
40
  Object.defineProperty(exports, "applyAdminApiServiceEntry", { enumerable: true, get: function () { return adminApiService_1.applyAdminApiServiceEntry; } });
37
41
  // Transports
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,0CAAuB;AACvB,yCAAsB;AACtB,8CAA2B;AAC3B,0CAAuB;AAEvB,SAAS;AACT,2CAAwB;AAExB,UAAU;AACV,+DAA6D;AAApD,oHAAA,gBAAgB,OAAA;AAGzB,gBAAgB;AAChB,mEAAiE;AAAxD,4HAAA,oBAAoB,OAAA;AAC7B,yDAAuD;AAA9C,kHAAA,eAAe,OAAA;AACxB,mDAAyD;AAAhD,oHAAA,oBAAoB,OAAA;AAC7B,yDAAiE;AAAxD,4HAAA,yBAAyB,OAAA;AAElC,aAAa;AACb,0EAA8F;AAArF,4HAAA,oBAAoB,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AACnD,oFAA6G;AAApG,sIAAA,yBAAyB,OAAA;AAAE,sIAAA,yBAAyB,OAAA;AAC7D,sFAAoF;AAA3E,wIAAA,0BAA0B,OAAA;AAEnC,cAAc;AACd,2EAM2C;AALzC,4HAAA,oBAAoB,OAAA;AACpB,6HAAA,qBAAqB,OAAA;AACrB,uHAAA,eAAe,OAAA;AACf,4HAAA,oBAAoB,OAAA;AACpB,+HAAA,uBAAuB,OAAA;AAGzB,QAAQ;AACR,0CAAuB;AAEvB,+CAA4B;AAC5B,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,0CAAuB;AACvB,yCAAsB;AACtB,8CAA2B;AAC3B,0CAAuB;AAEvB,SAAS;AACT,2CAAwB;AAExB,UAAU;AACV,+DAA6D;AAApD,oHAAA,gBAAgB,OAAA;AAGzB,gBAAgB;AAChB,mEAAiE;AAAxD,4HAAA,oBAAoB,OAAA;AAC7B,yDAAuD;AAA9C,kHAAA,eAAe,OAAA;AACxB,mDAAyD;AAAhD,oHAAA,oBAAoB,OAAA;AAC7B,2DAI+B;AAH7B,yHAAA,qBAAqB,OAAA;AACrB,yHAAA,qBAAqB,OAAA;AACrB,0HAAA,sBAAsB,OAAA;AAGxB,yDAAiE;AAAxD,4HAAA,yBAAyB,OAAA;AAElC,aAAa;AACb,0EAA8F;AAArF,4HAAA,oBAAoB,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AACnD,oFAA6G;AAApG,sIAAA,yBAAyB,OAAA;AAAE,sIAAA,yBAAyB,OAAA;AAC7D,sFAAoF;AAA3E,wIAAA,0BAA0B,OAAA;AAEnC,cAAc;AACd,2EAM2C;AALzC,4HAAA,oBAAoB,OAAA;AACpB,6HAAA,qBAAqB,OAAA;AACrB,uHAAA,eAAe,OAAA;AACf,4HAAA,oBAAoB,OAAA;AACpB,+HAAA,uBAAuB,OAAA;AAGzB,QAAQ;AACR,0CAAuB;AAEvB,+CAA4B;AAC5B,2CAAwB"}
@@ -21,13 +21,14 @@ const VsAgentWsOutboundTransport_1 = require("../transports/VsAgentWsOutboundTra
21
21
  */
22
22
  function setupBaseDidComm(options) {
23
23
  var _a;
24
+ const didcommVersions = (_a = options.didcommVersions) !== null && _a !== void 0 ? _a : ['v1', 'v2'];
24
25
  return {
25
26
  modules: {
26
27
  didcomm: new didcomm_1.DidCommModule({
27
28
  endpoints: options.endpoints,
28
- didcommVersions: options.didcommVersions,
29
+ didcommVersions,
29
30
  // BasicMessage protocols must be set separately, otherwise Credo rejects basicmessage/2.0.
30
- basicMessages: { protocols: (_a = options.didcommVersions) !== null && _a !== void 0 ? _a : ['v1'] },
31
+ basicMessages: { protocols: didcommVersions },
31
32
  transports: {
32
33
  outbound: [new didcomm_1.DidCommHttpOutboundTransport(), new VsAgentWsOutboundTransport_1.VsAgentWsOutboundTransport()],
33
34
  },
@@ -76,10 +77,7 @@ function setupBaseDidComm(options) {
76
77
  ],
77
78
  }),
78
79
  dids: new core_1.DidsModule({
79
- resolvers: [
80
- new CachedWebDidResolver_1.CachedWebDidResolver({ publicApiBaseUrl: options.publicApiBaseUrl }),
81
- new webvh_1.WebVhDidResolver(),
82
- ],
80
+ resolvers: [new CachedWebDidResolver_1.CachedWebDidResolver(), new webvh_1.WebVhDidResolver()],
83
81
  registrars: [new WebDidRegistrar_1.WebDidRegistrar(), new webvh_1.WebVhDidRegistrar()],
84
82
  }),
85
83
  w3cCredentials: new core_1.W3cCredentialsModule({
@@ -1 +1 @@
1
- {"version":3,"file":"setupBaseDidComm.js","sourceRoot":"","sources":["../../src/plugins/setupBaseDidComm.ts"],"names":[],"mappings":";;AAiDA,4CAoEC;AAnHD,mDAM4B;AAC5B,2CAA4E;AAC5E,yCAAiE;AACjE,+CAQ0B;AAC1B,2CAA6F;AAC7F,oEAAyD;AACzD,sEAA2D;AAC3D,oFAAoG;AACpG,yEAAmE;AAGnE,8EAA0E;AAC1E,sEAAmE;AACnE,sEAAkE;AAClE,4DAAwD;AACxD,yFAAqF;AAcrF;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAAiC;;IAChE,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE,IAAI,uBAAa,CAAC;gBACzB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,2FAA2F;gBAC3F,aAAa,EAAE,EAAE,SAAS,EAAE,MAAA,OAAO,CAAC,eAAe,mCAAI,CAAC,IAAI,CAAC,EAAE;gBAC/D,UAAU,EAAE;oBACV,QAAQ,EAAE,CAAC,IAAI,sCAA4B,EAAE,EAAE,IAAI,uDAA0B,EAAE,CAAC;iBACjF;gBACD,WAAW,EAAE;oBACX,qBAAqB,EAAE,IAAI;oBAC3B,kCAAkC,EAAE,IAAI;iBACzC;gBACD,WAAW,EAAE;oBACX,qBAAqB,EAAE,qCAA2B,CAAC,eAAe;oBAClE,mBAAmB,EAAE;wBACnB,IAAI,qCAA2B,CAAC;4BAC9B,iBAAiB,EAAE;gCACjB,IAAI,oDAAwC,EAAE;gCAC9C,IAAI,mDAAuC,EAAE;gCAC7C,IAAI,8CAAoC,EAAE;6BAC3C;yBACF,CAAC;qBACH;iBACF;gBACD,MAAM,EAAE;oBACN,gBAAgB,EAAE,gCAAsB,CAAC,eAAe;oBACxD,cAAc,EAAE;wBACd,IAAI,gCAAsB,CAAC;4BACzB,YAAY,EAAE;gCACZ,IAAI,+CAAmC,EAAE;gCACzC,IAAI,8CAAkC,EAAE;6BACzC;yBACF,CAAC;qBACH;iBACF;aACF,CAAC;YACF,KAAK,EAAE,IAAI,mBAAW,CAAC;gBACrB,KAAK,EAAL,oBAAK;gBACL,KAAK,EAAE,OAAO,CAAC,YAAY;aAC5B,CAAC;YACF,SAAS,EAAE,IAAI,2BAAe,CAAC;gBAC7B,SAAS,EAAT,4BAAS;gBACT,gBAAgB,EAAE,IAAI,2CAAoB,CAAC;oBACzC,kBAAkB,EAAE,GAAG,OAAO,CAAC,gBAAgB,qBAAqB;iBACrE,CAAC;gBACF,UAAU,EAAE;oBACV,IAAI,mDAAuB,CAAC;wBAC1B,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;qBAC3E,CAAC;oBACF,IAAI,8BAAsB,EAAE;iBAC7B;aACF,CAAC;YACF,IAAI,EAAE,IAAI,iBAAU,CAAC;gBACnB,SAAS,EAAE;oBACT,IAAI,2CAAoB,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBACxE,IAAI,wBAAgB,EAAE;iBACvB;gBACD,UAAU,EAAE,CAAC,IAAI,iCAAe,EAAE,EAAE,IAAI,yBAAiB,EAAE,CAAC;aAC7D,CAAC;YACF,cAAc,EAAE,IAAI,2BAAoB,CAAC;gBACvC,cAAc,EAAE,4CAAqB;aACtC,CAAC;YACF,MAAM,EAAE,IAAI,uCAAY,mBAAM,OAAO,CAAC,MAAM,EAAG;SAChD;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"setupBaseDidComm.js","sourceRoot":"","sources":["../../src/plugins/setupBaseDidComm.ts"],"names":[],"mappings":";;AAiDA,4CAkEC;AAjHD,mDAM4B;AAC5B,2CAA4E;AAC5E,yCAAiE;AACjE,+CAQ0B;AAC1B,2CAA6F;AAC7F,oEAAyD;AACzD,sEAA2D;AAC3D,oFAAoG;AACpG,yEAAmE;AAGnE,8EAA0E;AAC1E,sEAAmE;AACnE,sEAAkE;AAClE,4DAAwD;AACxD,yFAAqF;AAcrF;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAAiC;;IAChE,MAAM,eAAe,GAAG,MAAA,OAAO,CAAC,eAAe,mCAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/D,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE,IAAI,uBAAa,CAAC;gBACzB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe;gBACf,2FAA2F;gBAC3F,aAAa,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;gBAC7C,UAAU,EAAE;oBACV,QAAQ,EAAE,CAAC,IAAI,sCAA4B,EAAE,EAAE,IAAI,uDAA0B,EAAE,CAAC;iBACjF;gBACD,WAAW,EAAE;oBACX,qBAAqB,EAAE,IAAI;oBAC3B,kCAAkC,EAAE,IAAI;iBACzC;gBACD,WAAW,EAAE;oBACX,qBAAqB,EAAE,qCAA2B,CAAC,eAAe;oBAClE,mBAAmB,EAAE;wBACnB,IAAI,qCAA2B,CAAC;4BAC9B,iBAAiB,EAAE;gCACjB,IAAI,oDAAwC,EAAE;gCAC9C,IAAI,mDAAuC,EAAE;gCAC7C,IAAI,8CAAoC,EAAE;6BAC3C;yBACF,CAAC;qBACH;iBACF;gBACD,MAAM,EAAE;oBACN,gBAAgB,EAAE,gCAAsB,CAAC,eAAe;oBACxD,cAAc,EAAE;wBACd,IAAI,gCAAsB,CAAC;4BACzB,YAAY,EAAE;gCACZ,IAAI,+CAAmC,EAAE;gCACzC,IAAI,8CAAkC,EAAE;6BACzC;yBACF,CAAC;qBACH;iBACF;aACF,CAAC;YACF,KAAK,EAAE,IAAI,mBAAW,CAAC;gBACrB,KAAK,EAAL,oBAAK;gBACL,KAAK,EAAE,OAAO,CAAC,YAAY;aAC5B,CAAC;YACF,SAAS,EAAE,IAAI,2BAAe,CAAC;gBAC7B,SAAS,EAAT,4BAAS;gBACT,gBAAgB,EAAE,IAAI,2CAAoB,CAAC;oBACzC,kBAAkB,EAAE,GAAG,OAAO,CAAC,gBAAgB,qBAAqB;iBACrE,CAAC;gBACF,UAAU,EAAE;oBACV,IAAI,mDAAuB,CAAC;wBAC1B,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;qBAC3E,CAAC;oBACF,IAAI,8BAAsB,EAAE;iBAC7B;aACF,CAAC;YACF,IAAI,EAAE,IAAI,iBAAU,CAAC;gBACnB,SAAS,EAAE,CAAC,IAAI,2CAAoB,EAAE,EAAE,IAAI,wBAAgB,EAAE,CAAC;gBAC/D,UAAU,EAAE,CAAC,IAAI,iCAAe,EAAE,EAAE,IAAI,yBAAiB,EAAE,CAAC;aAC7D,CAAC;YACF,cAAc,EAAE,IAAI,2BAAoB,CAAC;gBACvC,cAAc,EAAE,4CAAqB;aACtC,CAAC;YACF,MAAM,EAAE,IAAI,uCAAY,mBAAM,OAAO,CAAC,MAAM,EAAG;SAChD;KACF,CAAA;AACH,CAAC"}
@@ -3,7 +3,7 @@ import { DidCommConnectionRecord, DidCommEncryptedMessage, DidCommInboundTranspo
3
3
  import WebSocket, { Server } from 'ws';
4
4
  export declare class VsAgentWsInboundTransport implements DidCommInboundTransport {
5
5
  private socketServer;
6
- private logger;
6
+ private logger?;
7
7
  private socketIds;
8
8
  constructor({ server, port, }: {
9
9
  server: Server;
@@ -46,35 +46,37 @@ class VsAgentWsInboundTransport {
46
46
  async start(agentContext) {
47
47
  const transportService = agentContext.dependencyManager.resolve(didcomm_1.DidCommTransportService);
48
48
  const didcomm = agentContext.dependencyManager.resolve(didcomm_1.DidCommApi);
49
- this.logger = agentContext.config.logger;
50
- this.logger.debug('VS Agent Ws Inbound transport start');
49
+ const logger = agentContext.config.logger;
50
+ this.logger = logger;
51
+ logger.debug('VS Agent Ws Inbound transport start');
51
52
  const wsEndpoint = didcomm.config.endpoints.find(e => e.startsWith('ws'));
52
- this.logger.debug(`Starting WS inbound transport`, {
53
+ logger.debug(`Starting WS inbound transport`, {
53
54
  endpoint: wsEndpoint,
54
55
  });
55
56
  this.socketServer.on('connection', (socket) => {
56
57
  const socketId = core_1.utils.uuid();
57
- this.logger.debug('Socket connected.');
58
+ logger.debug('Socket connected.');
58
59
  socket.isAlive = true;
59
60
  socket.lastActivity = new Date();
60
61
  if (!this.socketIds[socketId]) {
61
- this.logger.debug(`Saving new socket with id ${socketId}.`);
62
+ logger.debug(`Saving new socket with id ${socketId}.`);
62
63
  this.socketIds[socketId] = socket;
63
- const session = new WebSocketTransportSession(socketId, socket, this.logger);
64
+ const session = new WebSocketTransportSession(socketId, socket, logger);
64
65
  this.listenOnWebSocketMessages(agentContext, socket, session);
65
66
  socket.on('close', () => {
66
- this.logger.debug('Socket closed.');
67
+ logger.debug('Socket closed.');
67
68
  transportService.removeSession(session);
68
69
  });
69
70
  }
70
71
  else {
71
- this.logger.debug(`Socket with id ${socketId} already exists.`);
72
+ logger.debug(`Socket with id ${socketId} already exists.`);
72
73
  }
73
74
  });
74
75
  this.startIdleSocketTimer(60000);
75
76
  }
76
77
  async stop() {
77
- this.logger.debug('Closing WebSocket Server');
78
+ var _a;
79
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug('Closing WebSocket Server');
78
80
  return new Promise((resolve, reject) => {
79
81
  this.socketServer.close(error => {
80
82
  if (error) {
@@ -85,15 +87,17 @@ class VsAgentWsInboundTransport {
85
87
  });
86
88
  }
87
89
  getServer() {
88
- this.logger.debug('Get WebSocket Server');
90
+ var _a;
91
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug('Get WebSocket Server');
89
92
  return this.socketServer;
90
93
  }
91
94
  startIdleSocketTimer(interval) {
92
95
  setInterval(() => {
93
96
  const currentDate = new Date();
94
97
  this.socketServer.clients.forEach(item => {
98
+ var _a;
95
99
  if (currentDate.valueOf() - item.lastActivity.valueOf() > interval) {
96
- this.logger.debug('Client session closed by inactivity');
100
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug('Client session closed by inactivity');
97
101
  item.close();
98
102
  }
99
103
  });
@@ -101,19 +105,21 @@ class VsAgentWsInboundTransport {
101
105
  }
102
106
  listenOnWebSocketMessages(agentContext, socket, session) {
103
107
  socket.on('pong', () => {
104
- this.logger.debug('Pong received');
108
+ var _a;
109
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug('Pong received');
105
110
  socket.isAlive = true;
106
111
  });
107
112
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
113
  socket.addEventListener('message', async (event) => {
109
- this.logger.debug('WebSocket message event received.', { url: event.target.url, data: event.data });
114
+ var _a, _b;
115
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug('WebSocket message event received.', { url: event.target.url, data: event.data });
110
116
  socket.lastActivity = new Date();
111
117
  try {
112
118
  const messageReceiver = agentContext.dependencyManager.resolve(didcomm_1.DidCommMessageReceiver);
113
119
  await messageReceiver.receiveMessage(JSON.parse(event.data), { session });
114
120
  }
115
121
  catch (error) {
116
- this.logger.error('Error processing message');
122
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Error processing inbound message: ${error instanceof Error ? error.message : String(error)}`, { error });
117
123
  }
118
124
  });
119
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VsAgentWsInboundTransport.js","sourceRoot":"","sources":["../../src/transports/VsAgentWsInboundTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VsAgentWsInboundTransport.js","sourceRoot":"","sources":["../../src/transports/VsAgentWsInboundTransport.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { VsAgent } from '../agent/VsAgent';
2
+ import { GenericRecord, TagsBase } from '@credo-ts/core';
2
3
  import { DidCommMessage, type DidCommVersion } from '@credo-ts/didcomm';
3
4
  /**
4
5
  * Creates an out of band invitation that will equal to the public DID in case the agent has one defined,
@@ -11,11 +12,34 @@ export declare function createInvitation(options: {
11
12
  agent: VsAgent;
12
13
  messages?: DidCommMessage[];
13
14
  useLegacyDid?: boolean;
14
- invitationBaseUrl: string;
15
15
  imageUrl?: string;
16
16
  didCommVersion?: DidCommVersion;
17
17
  }): Promise<{
18
- url: string;
18
+ invitation: import("@credo-ts/didcomm").DidCommPlaintextMessage;
19
+ outOfBandInvitation: import("@credo-ts/didcomm").DidCommOutOfBandInvitation;
19
20
  }>;
21
+ /**
22
+ * Connects to a peer that publishes a public DID, and reuses the connection that the
23
+ * agent already has to that peer.
24
+ *
25
+ * The agent must keep one connection record only for each peer. A second record for the
26
+ * same pair of DIDs makes the `findByDids` lookup of the message receiver throw
27
+ * `RecordDuplicateError`, and the agent then fails to process every inbound message from
28
+ * that peer. To find the existing record, the agent reads the `publicDid` tag that it
29
+ * sets on each connection to a peer that publishes a public DID.
30
+ *
31
+ * @param agent the local agent
32
+ * @param peerPublicDid the public DID of the peer
33
+ * @returns the id of a ready connection record
34
+ */
35
+ export declare function connectToPublicDid(agent: VsAgent, peerPublicDid: string): Promise<string>;
20
36
  export declare function getRecordId(agent: VsAgent, id: string): Promise<string>;
21
- export declare function getWebDid(agent: VsAgent): Promise<string | undefined>;
37
+ /** The record type of every attested resource of the AnonCreds registry, per [VSA-PUB-AC]. */
38
+ export declare const ATTESTED_RESOURCE_TYPE = "AttestedResource";
39
+ export type AttestedResourceTags = TagsBase & {
40
+ type?: never;
41
+ attestedResourceId?: never;
42
+ };
43
+ export declare function saveAttestedResource(agent: VsAgent, resource: Record<string, unknown>, tags?: AttestedResourceTags): Promise<GenericRecord | undefined>;
44
+ export declare function findAttestedResources(agent: VsAgent, query: TagsBase): Promise<GenericRecord[]>;
45
+ export declare function findAttestedResource(agent: VsAgent, query: TagsBase): Promise<GenericRecord | undefined>;
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ATTESTED_RESOURCE_TYPE = void 0;
3
4
  exports.createInvitation = createInvitation;
5
+ exports.connectToPublicDid = connectToPublicDid;
4
6
  exports.getRecordId = getRecordId;
5
- exports.getWebDid = getWebDid;
7
+ exports.saveAttestedResource = saveAttestedResource;
8
+ exports.findAttestedResources = findAttestedResources;
9
+ exports.findAttestedResource = findAttestedResource;
6
10
  const core_1 = require("@credo-ts/core");
7
11
  const didcomm_1 = require("@credo-ts/didcomm");
12
+ const legacyDidWeb_1 = require("../did/legacyDidWeb");
8
13
  /**
9
14
  * Creates an out of band invitation that will equal to the public DID in case the agent has one defined,
10
15
  * and a new one every time in case the agent does not have any public DID.
@@ -13,17 +18,15 @@ const didcomm_1 = require("@credo-ts/didcomm");
13
18
  * @returns
14
19
  */
15
20
  async function createInvitation(options) {
16
- const { agent, messages, useLegacyDid, invitationBaseUrl, imageUrl, didCommVersion } = options;
17
- // Use legacy did:web in case agent's did is webvh and using legacy did
18
- const ourDid = agent.did && (0, core_1.parseDid)(agent.did).method === 'webvh' && useLegacyDid
19
- ? `did:web:${(0, core_1.parseDid)(agent.did).id.split(':')[1]}`
20
- : agent.did;
21
- const effectiveVersion = didCommVersion !== null && didCommVersion !== void 0 ? didCommVersion : (agent.didcomm.config.sendsV2 ? 'v2' : 'v1');
21
+ var _a, _b, _c;
22
+ const { agent, messages, useLegacyDid, imageUrl, didCommVersion } = options;
23
+ const ourDid = (_a = (useLegacyDid && agent.did ? (0, legacyDidWeb_1.getLegacyDidWeb)(agent.did) : undefined)) !== null && _a !== void 0 ? _a : agent.did;
24
+ const effectiveVersion = didCommVersion !== null && didCommVersion !== void 0 ? didCommVersion : 'v2';
22
25
  const isV2 = effectiveVersion === 'v2';
23
26
  if (!agent.didcomm.config.didcommVersions.includes(effectiveVersion)) {
24
27
  throw new Error(`Cannot create ${effectiveVersion} invitation: agent is configured with ` +
25
28
  `didcommVersions: [${agent.didcomm.config.didcommVersions.join(', ')}]. ` +
26
- `Add "${effectiveVersion}" to AGENT_DIDCOMM_VERSIONS or omit didCommVersion from the request.`);
29
+ `Add "${effectiveVersion}" to the agent's didcommVersions configuration.`);
27
30
  }
28
31
  const outOfBandInvitation = (await agent.didcomm.oob.createInvitation(Object.assign({ label: agent.label, multiUseInvitation: !messages, imageUrl,
29
32
  messages, didCommVersion: effectiveVersion }, (isV2
@@ -33,23 +36,79 @@ async function createInvitation(options) {
33
36
  invitationDid: ourDid,
34
37
  })))).outOfBandInvitation;
35
38
  return {
36
- url: outOfBandInvitation.toUrl({
37
- domain: invitationBaseUrl,
38
- }),
39
+ invitation: (_c = (_b = outOfBandInvitation.v2Invitation) === null || _b === void 0 ? void 0 : _b.toJSON()) !== null && _c !== void 0 ? _c : outOfBandInvitation.toJSON(),
40
+ outOfBandInvitation,
39
41
  };
40
42
  }
43
+ /**
44
+ * Connects to a peer that publishes a public DID, and reuses the connection that the
45
+ * agent already has to that peer.
46
+ *
47
+ * The agent must keep one connection record only for each peer. A second record for the
48
+ * same pair of DIDs makes the `findByDids` lookup of the message receiver throw
49
+ * `RecordDuplicateError`, and the agent then fails to process every inbound message from
50
+ * that peer. To find the existing record, the agent reads the `publicDid` tag that it
51
+ * sets on each connection to a peer that publishes a public DID.
52
+ *
53
+ * @param agent the local agent
54
+ * @param peerPublicDid the public DID of the peer
55
+ * @returns the id of a ready connection record
56
+ */
57
+ async function connectToPublicDid(agent, peerPublicDid) {
58
+ if (!agent.did)
59
+ throw new Error('Agent has no public DID');
60
+ const [existing] = await agent.didcomm.connections.findAllByQuery({
61
+ publicDid: peerPublicDid,
62
+ });
63
+ if (existing)
64
+ return (await agent.didcomm.connections.returnWhenIsConnected(existing.id)).id;
65
+ const { connectionRecord } = await agent.didcomm.oob.receiveImplicitInvitation({
66
+ did: peerPublicDid,
67
+ ourDid: agent.did,
68
+ label: agent.label,
69
+ didCommVersion: 'v2',
70
+ });
71
+ if (!connectionRecord)
72
+ throw new Error(`Failed to establish a DIDComm connection to ${peerPublicDid}`);
73
+ try {
74
+ // Tag the record with the public DID of the peer, to find it on the next call.
75
+ connectionRecord.setTag('publicDid', peerPublicDid);
76
+ await agent.context.resolve(didcomm_1.DidCommConnectionRepository).update(agent.context, connectionRecord);
77
+ const ready = await agent.didcomm.connections.returnWhenIsConnected(connectionRecord.id);
78
+ return ready.id;
79
+ }
80
+ catch (error) {
81
+ // Delete the incomplete record. If it stays, the next call reuses a connection that
82
+ // the peer never completed, and a later retry adds a duplicate record for the pair.
83
+ await agent.didcomm.connections.deleteById(connectionRecord.id).catch(deleteError => {
84
+ agent.config.logger.warn(`Failed to delete the incomplete connection ${connectionRecord.id}`, {
85
+ error: deleteError,
86
+ });
87
+ });
88
+ throw error;
89
+ }
90
+ }
41
91
  async function getRecordId(agent, id) {
42
92
  var _a;
43
93
  const record = await agent.genericRecords.findById(id);
44
94
  return (_a = record === null || record === void 0 ? void 0 : record.getTag('messageId')) !== null && _a !== void 0 ? _a : id;
45
95
  }
46
- async function getWebDid(agent) {
47
- if (agent.did) {
48
- const parsedDid = (0, core_1.parseDid)(agent.did);
49
- if (parsedDid.method === 'web')
50
- return agent.did;
51
- if (parsedDid.method === 'webvh')
52
- return `did:web:${parsedDid.id.split(':')[1]}`;
53
- }
96
+ /** The record type of every attested resource of the AnonCreds registry, per [VSA-PUB-AC]. */
97
+ exports.ATTESTED_RESOURCE_TYPE = 'AttestedResource';
98
+ async function saveAttestedResource(agent, resource, tags) {
99
+ if (!resource)
100
+ return undefined;
101
+ return await agent.genericRecords.save({
102
+ id: core_1.utils.uuid(),
103
+ content: resource,
104
+ tags: Object.assign({ attestedResourceId: resource.id, type: exports.ATTESTED_RESOURCE_TYPE }, tags),
105
+ });
106
+ }
107
+ async function findAttestedResources(agent, query) {
108
+ return await agent.genericRecords.findAllByQuery(Object.assign(Object.assign({}, query), { type: exports.ATTESTED_RESOURCE_TYPE }));
109
+ }
110
+ async function findAttestedResource(agent, query) {
111
+ const [record] = await findAttestedResources(agent, query);
112
+ return record;
54
113
  }
55
114
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/utils/agent.ts"],"names":[],"mappings":";;AAYA,4CA+CC;AAED,kCAGC;AAED,8BAOC;AAvED,yCAAyC;AACzC,+CAAiG;AAEjG;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAOtC;IACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;IAE9F,uEAAuE;IACvE,MAAM,MAAM,GACV,KAAK,CAAC,GAAG,IAAI,IAAA,eAAQ,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,YAAY;QACjE,CAAC,CAAC,WAAW,IAAA,eAAQ,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACnD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAA;IAEf,MAAM,gBAAgB,GAAmB,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACvG,MAAM,IAAI,GAAG,gBAAgB,KAAK,IAAI,CAAA;IAEtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,iBAAiB,gBAAgB,wCAAwC;YACvE,qBAAqB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACzE,QAAQ,gBAAgB,sEAAsE,CACjG,CAAA;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,CAC1B,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,iBACtC,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,kBAAkB,EAAE,CAAC,QAAQ,EAC7B,QAAQ;QACR,QAAQ,EACR,cAAc,EAAE,gBAAgB,IAC7B,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,MAAM,EAAE;QACZ,CAAC,CAAC;YACE,kBAAkB,EAAE,CAAC,kCAAwB,CAAC,WAAW,EAAE,kCAAwB,CAAC,WAAW,CAAC;YAChG,aAAa,EAAE,MAAM;SACtB,CAAC,EACN,CACH,CAAC,mBAAmB,CAAA;IACrB,OAAO;QACL,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC;YAC7B,MAAM,EAAE,iBAAiB;SAC1B,CAAC;KACH,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,KAAc,EAAE,EAAU;;IAC1D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtD,OAAO,MAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,WAAW,CAAY,mCAAI,EAAE,CAAA;AACtD,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,KAAc;IAC5C,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,IAAA,eAAQ,EAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAErC,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC,GAAG,CAAA;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,WAAW,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/utils/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Logger } from '@credo-ts/core';
2
+ import { VsAgent } from '../agent/VsAgent';
3
+ /**
4
+ * Waits until this agent's own DID document is fetchable at its public endpoint, so a peer
5
+ * can resolve it as soon as we reach out. Checks the same file a peer's resolver would fetch:
6
+ * did.jsonl for did:webvh, did.json for did:web. Logs and returns if the deadline passes,
7
+ * rather than blocking the caller forever on a misconfigured deployment.
8
+ */
9
+ export declare function waitUntilOwnDidIsPubliclyResolvable(agent: VsAgent, logger: Logger): Promise<void>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitUntilOwnDidIsPubliclyResolvable = waitUntilOwnDidIsPubliclyResolvable;
4
+ // On a fresh deployment, the ingress route to this agent's own public endpoint
5
+ // can lag a few seconds behind the process becoming ready (e.g. a k8s Service
6
+ // has not finished propagating the new pod IP yet). A peer resolves our DID as
7
+ // part of processing any message we send it, so we wait for our own DID
8
+ // document to be publicly fetchable before reaching out to one.
9
+ const OWN_DID_READY_TIMEOUT_MS = 60000;
10
+ const OWN_DID_READY_POLL_INTERVAL_MS = 2000;
11
+ /**
12
+ * Waits until this agent's own DID document is fetchable at its public endpoint, so a peer
13
+ * can resolve it as soon as we reach out. Checks the same file a peer's resolver would fetch:
14
+ * did.jsonl for did:webvh, did.json for did:web. Logs and returns if the deadline passes,
15
+ * rather than blocking the caller forever on a misconfigured deployment.
16
+ */
17
+ async function waitUntilOwnDidIsPubliclyResolvable(agent, logger) {
18
+ const did = agent.did;
19
+ if (!did || !agent.publicApiBaseUrl)
20
+ return;
21
+ const documentFile = did.startsWith('did:web:') ? 'did.json' : 'did.jsonl';
22
+ const baseUrl = agent.publicApiBaseUrl.replace(/\/+$/, '');
23
+ // A path-based DID location serves its document at <base>/did.json(l), not under /.well-known
24
+ const hasPath = new URL(baseUrl).pathname !== '/';
25
+ const url = hasPath ? `${baseUrl}/${documentFile}` : `${baseUrl}/.well-known/${documentFile}`;
26
+ const deadline = Date.now() + OWN_DID_READY_TIMEOUT_MS;
27
+ let lastStatus = 'unreachable';
28
+ while (Date.now() < deadline) {
29
+ try {
30
+ const response = await fetch(url);
31
+ if (response.ok)
32
+ return;
33
+ lastStatus = response.status;
34
+ }
35
+ catch (error) {
36
+ lastStatus = error.message;
37
+ }
38
+ await new Promise(resolve => setTimeout(resolve, OWN_DID_READY_POLL_INTERVAL_MS));
39
+ }
40
+ logger.warn(`[DidReadiness] own DID document at ${url} was not publicly resolvable after ${OWN_DID_READY_TIMEOUT_MS}ms (last: ${lastStatus}); proceeding anyway`);
41
+ }
42
+ //# sourceMappingURL=didReadiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"didReadiness.js","sourceRoot":"","sources":["../../src/utils/didReadiness.ts"],"names":[],"mappings":";;AAkBA,kFAyBC;AAvCD,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,wEAAwE;AACxE,gEAAgE;AAChE,MAAM,wBAAwB,GAAG,KAAM,CAAA;AACvC,MAAM,8BAA8B,GAAG,IAAK,CAAA;AAE5C;;;;;GAKG;AACI,KAAK,UAAU,mCAAmC,CAAC,KAAc,EAAE,MAAc;IACtF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IACrB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB;QAAE,OAAM;IAE3C,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC1D,8FAA8F;IAC9F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAA;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,gBAAgB,YAAY,EAAE,CAAA;IAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB,CAAA;IACtD,IAAI,UAAU,GAAoB,aAAa,CAAA;IAC/C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAM;YACvB,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,GAAI,KAAe,CAAC,OAAO,CAAA;QACvC,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,CAAC,IAAI,CACT,sCAAsC,GAAG,sCAAsC,wBAAwB,aAAa,UAAU,sBAAsB,CACrJ,CAAA;AACH,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { Logger } from '@credo-ts/core';
2
+ export interface EcsClaims {
3
+ localResources?: Record<string, string>;
4
+ org?: Record<string, string | undefined>;
5
+ persona?: Record<string, string | undefined>;
6
+ service?: Record<string, string | undefined>;
7
+ }
8
+ export declare const ECS_CLAIMS_VARIABLES: {
9
+ readonly org: {
10
+ readonly name: "ECS_CLAIMS_ORG_NAME";
11
+ readonly logoUri: "ECS_CLAIMS_ORG_LOGO_URI";
12
+ readonly registryId: "ECS_CLAIMS_ORG_REGISTRY_ID";
13
+ readonly registryUri: "ECS_CLAIMS_ORG_REGISTRY_URI";
14
+ readonly address: "ECS_CLAIMS_ORG_ADDRESS";
15
+ readonly countryCode: "ECS_CLAIMS_ORG_COUNTRY_CODE";
16
+ readonly legalJurisdiction: "ECS_CLAIMS_ORG_LEGAL_JURISDICTION";
17
+ readonly organizationKind: "ECS_CLAIMS_ORG_ORGANIZATION_KIND";
18
+ readonly lei: "ECS_CLAIMS_ORG_LEI";
19
+ };
20
+ readonly persona: {
21
+ readonly name: "ECS_CLAIMS_PERSONA_NAME";
22
+ readonly description: "ECS_CLAIMS_PERSONA_DESCRIPTION";
23
+ readonly descriptionFormat: "ECS_CLAIMS_PERSONA_DESCRIPTION_FORMAT";
24
+ readonly avatarUri: "ECS_CLAIMS_PERSONA_AVATAR_URI";
25
+ readonly controllerCountryCode: "ECS_CLAIMS_PERSONA_CONTROLLER_COUNTRY_CODE";
26
+ readonly controllerJurisdiction: "ECS_CLAIMS_PERSONA_CONTROLLER_JURISDICTION";
27
+ };
28
+ readonly service: {
29
+ readonly name: "ECS_CLAIMS_SERVICE_NAME";
30
+ readonly type: "ECS_CLAIMS_SERVICE_TYPE";
31
+ readonly description: "ECS_CLAIMS_SERVICE_DESCRIPTION";
32
+ readonly descriptionFormat: "ECS_CLAIMS_SERVICE_DESCRIPTION_FORMAT";
33
+ readonly logoUri: "ECS_CLAIMS_SERVICE_LOGO_URI";
34
+ readonly minimumAgeRequired: "ECS_CLAIMS_SERVICE_MINIMUM_AGE_REQUIRED";
35
+ readonly termsAndConditionsUri: "ECS_CLAIMS_SERVICE_TERMS_AND_CONDITIONS_URI";
36
+ readonly privacyPolicyUri: "ECS_CLAIMS_SERVICE_PRIVACY_POLICY_URI";
37
+ };
38
+ };
39
+ export declare function readEcsClaimsFromEnv(): Required<Pick<EcsClaims, 'org' | 'persona' | 'service'>>;
40
+ export declare function digestOf(content: string): string;
41
+ export declare function digestOfUri(uri: string, variable: string, logger?: Logger): Promise<string>;
42
+ /**
43
+ * Compose the claims of one ECS credential from the configured variables, deriving `id` and
44
+ * every paired `*DigestSri`. Returns undefined when the operator configured no claim, so the
45
+ * caller can omit the `claims` field entirely.
46
+ */
47
+ export declare function composeEcsClaims(claims: EcsClaims, schemaKey: string, logger?: Logger): Promise<Record<string, unknown> | undefined>;