@verana-labs/vs-agent-sdk 2.0.0-dev.35 → 2.0.0-dev.37

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.
@@ -25,6 +25,4 @@ export declare class AuthorizationService {
25
25
  hasFeegrant(participantId: number): boolean;
26
26
  agentHoldsOperatorGrant(msgType: string): Promise<boolean>;
27
27
  callerHoldsOperatorGrant(account: string, msgType: string): Promise<boolean>;
28
- callerHoldsAnyVsOperatorGrant(account: string, msgType: string): Promise<boolean>;
29
- callerHoldsVsOperatorGrant(account: string, participantId: number, msgType: string): Promise<boolean>;
30
28
  }
@@ -77,24 +77,6 @@ class AuthorizationService {
77
77
  a.msgTypes.includes(msgType) &&
78
78
  isOperatorAuthorizationActive(a.expiration, a.period));
79
79
  }
80
- async callerHoldsAnyVsOperatorGrant(account, msgType) {
81
- if (!account.trim())
82
- return false;
83
- const vsoas = await this.chain.listVsOperatorAuthorizations(account);
84
- return vsoas.some(vsoa => this.inScope(vsoa.corporationId) &&
85
- vsoa.records.some(r => this.vsoaByParticipant.has(r.participantId) &&
86
- r.msgTypes.includes(msgType) &&
87
- isVsoaRecordActive(r.expiration, r.period)));
88
- }
89
- async callerHoldsVsOperatorGrant(account, participantId, msgType) {
90
- if (!account.trim())
91
- return false;
92
- const vsoas = await this.chain.listVsOperatorAuthorizations(account);
93
- return vsoas.some(vsoa => this.inScope(vsoa.corporationId) &&
94
- vsoa.records.some(r => r.participantId === participantId &&
95
- r.msgTypes.includes(msgType) &&
96
- isVsoaRecordActive(r.expiration, r.period)));
97
- }
98
80
  }
99
81
  exports.AuthorizationService = AuthorizationService;
100
82
  //# sourceMappingURL=AuthorizationService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorizationService.js","sourceRoot":"","sources":["../../src/blockchain/AuthorizationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthorizationService.js","sourceRoot":"","sources":["../../src/blockchain/AuthorizationService.ts"],"names":[],"mappings":"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"}
@@ -10,101 +10,129 @@ const connectionEvents = async (agent, config) => {
10
10
  const alternativeDids = agentPublicDidRecord === null || agentPublicDidRecord === void 0 ? void 0 : agentPublicDidRecord.getTag('alternativeDids');
11
11
  const agentPublicDids = [agent.did, ...(Array.isArray(alternativeDids) ? alternativeDids : [])];
12
12
  agent.events.on(didcomm_1.DidCommConnectionEventTypes.DidCommConnectionStateChanged, async ({ payload }) => {
13
- const record = payload.connectionRecord;
14
- if (record.outOfBandId && !record.getTag('parentConnectionId')) {
15
- const outOfBandRecord = await agent.didcomm.oob.findById(record.outOfBandId);
16
- const parentConnectionId = outOfBandRecord === null || outOfBandRecord === void 0 ? void 0 : outOfBandRecord.getTag('parentConnectionId');
17
- // Tag connection with its parent
18
- if (parentConnectionId) {
19
- record.setTag('parentConnectionId', parentConnectionId);
20
- await agent.context.dependencyManager
21
- .resolve(didcomm_1.DidCommConnectionRepository)
22
- .update(agent.context, record);
13
+ // an event listener is never awaited, so a rejection here would surface as an
14
+ // unhandled rejection and take the process down
15
+ try {
16
+ const record = payload.connectionRecord;
17
+ if (record.outOfBandId && !record.getTag('parentConnectionId')) {
18
+ const outOfBandRecord = await agent.didcomm.oob.findById(record.outOfBandId);
19
+ const parentConnectionId = outOfBandRecord === null || outOfBandRecord === void 0 ? void 0 : outOfBandRecord.getTag('parentConnectionId');
20
+ // Tag connection with its parent
21
+ if (parentConnectionId) {
22
+ record.setTag('parentConnectionId', parentConnectionId);
23
+ await agent.context.dependencyManager
24
+ .resolve(didcomm_1.DidCommConnectionRepository)
25
+ .update(agent.context, record);
26
+ }
23
27
  }
24
- }
25
- if (record.state === didcomm_1.DidCommDidExchangeState.Completed) {
26
- if (config.discoveryOptions)
27
- await agent.didcomm.discovery.queryFeatures({
28
- connectionId: record.id,
29
- protocolVersion: 'v2',
30
- queries: config.discoveryOptions,
28
+ if (record.state === didcomm_1.DidCommDidExchangeState.Completed) {
29
+ if (config.discoveryOptions)
30
+ await agent.didcomm.discovery.queryFeatures({
31
+ connectionId: record.id,
32
+ protocolVersion: 'v2',
33
+ queries: config.discoveryOptions,
34
+ });
35
+ }
36
+ // If an out-of-band ID exists, use the invitation to find the thread IDs
37
+ // and identify the invitation that created the connection to update its state.
38
+ if (record.outOfBandId) {
39
+ const invitationRecord = await agent.didcomm.oob.findById(record.outOfBandId);
40
+ const threadIds = invitationRecord === null || invitationRecord === void 0 ? void 0 : invitationRecord.getTag('invitationRequestsThreadIds');
41
+ threadIds === null || threadIds === void 0 ? void 0 : threadIds.map(async (threadId) => {
42
+ const [proofRecord] = await agent.didcomm.proofs.findAllByQuery({ threadId });
43
+ if (!proofRecord)
44
+ return;
45
+ const callbackParameters = proofRecord.metadata.get('_2060/callbackParameters');
46
+ if (callbackParameters &&
47
+ callbackParameters.callbackUrl &&
48
+ record.state === didcomm_1.DidCommDidExchangeState.RequestReceived) {
49
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.PresentationStateUpdated, new vs_agent_model_1.PresentationStateUpdated({
50
+ proofExchangeId: proofRecord.id,
51
+ callbackUrl: callbackParameters.callbackUrl,
52
+ state: vs_agent_model_1.PresentationState.CONNECTED,
53
+ ref: callbackParameters.ref,
54
+ }));
55
+ }
31
56
  });
32
- }
33
- // If an out-of-band ID exists, use the invitation to find the thread IDs
34
- // and identify the invitation that created the connection to update its state.
35
- if (record.outOfBandId) {
36
- const invitationRecord = await agent.didcomm.oob.findById(record.outOfBandId);
37
- const threadIds = invitationRecord === null || invitationRecord === void 0 ? void 0 : invitationRecord.getTag('invitationRequestsThreadIds');
38
- threadIds === null || threadIds === void 0 ? void 0 : threadIds.map(async (threadId) => {
39
- const [proofRecord] = await agent.didcomm.proofs.findAllByQuery({ threadId });
40
- if (!proofRecord)
41
- return;
42
- const callbackParameters = proofRecord.metadata.get('_2060/callbackParameters');
43
- if (callbackParameters &&
44
- callbackParameters.callbackUrl &&
45
- record.state === didcomm_1.DidCommDidExchangeState.RequestReceived) {
46
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.PresentationStateUpdated, new vs_agent_model_1.PresentationStateUpdated({
47
- proofExchangeId: proofRecord.id,
48
- callbackUrl: callbackParameters.callbackUrl,
49
- state: vs_agent_model_1.PresentationState.CONNECTED,
50
- ref: callbackParameters.ref,
51
- }));
52
- }
57
+ }
58
+ // If discovery is enabled, send an empty 'completed' state so that the recipient knows to expect async features.
59
+ const body = new vs_agent_model_1.ConnectionStateUpdated({
60
+ connectionId: record.id,
61
+ invitationId: record.outOfBandId,
62
+ state: record.state,
63
+ metadata: config.discoveryOptions ? {} : undefined,
53
64
  });
65
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
66
+ }
67
+ catch (error) {
68
+ config.logger.error(`[connection-events] state change handler failed: ${error.message}`);
54
69
  }
55
- // If discovery is enabled, send an empty 'completed' state so that the recipient knows to expect async features.
56
- const body = new vs_agent_model_1.ConnectionStateUpdated({
57
- connectionId: record.id,
58
- invitationId: record.outOfBandId,
59
- state: record.state,
60
- metadata: config.discoveryOptions ? {} : undefined,
61
- });
62
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
63
70
  });
64
71
  agent.events.on(didcomm_1.DidCommConnectionEventTypes.DidCommConnectionDidRotated, async ({ payload }) => {
65
72
  var _a, _b;
66
- const record = payload.connectionRecord;
67
- const isTerminationByPeer = record.theirDid === undefined && ((_b = (_a = record.previousTheirDids) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0;
68
- if (!isTerminationByPeer)
69
- return;
70
- const body = new vs_agent_model_1.ConnectionStateUpdated({
71
- connectionId: record.id,
72
- invitationId: record.outOfBandId,
73
- state: 'terminated',
74
- });
75
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
73
+ // an event listener is never awaited, so a rejection here would surface as an
74
+ // unhandled rejection and take the process down
75
+ try {
76
+ const record = payload.connectionRecord;
77
+ const isTerminationByPeer = record.theirDid === undefined && ((_b = (_a = record.previousTheirDids) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0;
78
+ if (!isTerminationByPeer)
79
+ return;
80
+ const body = new vs_agent_model_1.ConnectionStateUpdated({
81
+ connectionId: record.id,
82
+ invitationId: record.outOfBandId,
83
+ state: 'terminated',
84
+ });
85
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
86
+ }
87
+ catch (error) {
88
+ config.logger.error(`[connection-events] did rotated handler failed: ${error.message}`);
89
+ }
76
90
  });
77
91
  agent.events.on(didcomm_1.DidCommDiscoverFeaturesEventTypes.DisclosureReceived, async ({ payload }) => {
78
92
  var _a;
79
- const record = payload.connection;
80
- payload.disclosures.forEach(item => record.metadata.add(`features-${item.type}`, { [item.id]: item.toJSON() }));
81
- await agent.context.dependencyManager
82
- .resolve(didcomm_1.DidCommConnectionRepository)
83
- .update(agent.context, payload.connection);
84
- const metadata = (_a = payload.disclosures) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => {
85
- acc[item.id] = JSON.stringify(item.toJSON());
86
- return acc;
87
- }, {});
88
- const body = new vs_agent_model_1.ConnectionStateUpdated({
89
- connectionId: record.id,
90
- invitationId: record.outOfBandId,
91
- state: vs_agent_model_1.ExtendedDidExchangeState.Updated,
92
- metadata,
93
- });
94
- (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
93
+ // an event listener is never awaited, so a rejection here would surface as an
94
+ // unhandled rejection and take the process down
95
+ try {
96
+ const record = payload.connection;
97
+ payload.disclosures.forEach(item => record.metadata.add(`features-${item.type}`, { [item.id]: item.toJSON() }));
98
+ await agent.context.dependencyManager
99
+ .resolve(didcomm_1.DidCommConnectionRepository)
100
+ .update(agent.context, payload.connection);
101
+ const metadata = (_a = payload.disclosures) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => {
102
+ acc[item.id] = JSON.stringify(item.toJSON());
103
+ return acc;
104
+ }, {});
105
+ const body = new vs_agent_model_1.ConnectionStateUpdated({
106
+ connectionId: record.id,
107
+ invitationId: record.outOfBandId,
108
+ state: vs_agent_model_1.ExtendedDidExchangeState.Updated,
109
+ metadata,
110
+ });
111
+ (0, VsAgentEvents_1.emitVsAgentEvent)(agent, VsAgentEvents_1.VsAgentEventTypes.ConnectionStateUpdated, body);
112
+ }
113
+ catch (error) {
114
+ config.logger.error(`[connection-events] disclosure handler failed: ${error.message}`);
115
+ }
95
116
  });
96
117
  // Auto-accept connections that go to the public did
97
118
  agent.events.on(didcomm_1.DidCommConnectionEventTypes.DidCommConnectionStateChanged, async (data) => {
98
- config.logger.debug(`Incoming connection event: ${data.payload.connectionRecord.state}`);
99
- const outOfBandId = data.payload.connectionRecord.outOfBandId;
100
- if (!outOfBandId)
101
- return;
102
- const oob = await agent.didcomm.oob.findById(outOfBandId);
103
- if (agentPublicDids.includes(oob === null || oob === void 0 ? void 0 : oob.outOfBandInvitation.id) &&
104
- data.payload.connectionRecord.state === didcomm_1.DidCommDidExchangeState.RequestReceived) {
105
- config.logger.debug(`Incoming connection request for ${agent.did}`);
106
- await agent.didcomm.connections.acceptRequest(data.payload.connectionRecord.id);
107
- config.logger.debug(`Accepted request for ${agent.did}`);
119
+ // an event listener is never awaited, so a rejection here would surface as an
120
+ // unhandled rejection and take the process down
121
+ try {
122
+ config.logger.debug(`Incoming connection event: ${data.payload.connectionRecord.state}`);
123
+ const outOfBandId = data.payload.connectionRecord.outOfBandId;
124
+ if (!outOfBandId)
125
+ return;
126
+ const oob = await agent.didcomm.oob.findById(outOfBandId);
127
+ if (agentPublicDids.includes(oob === null || oob === void 0 ? void 0 : oob.outOfBandInvitation.id) &&
128
+ data.payload.connectionRecord.state === didcomm_1.DidCommDidExchangeState.RequestReceived) {
129
+ config.logger.debug(`Incoming connection request for ${agent.did}`);
130
+ await agent.didcomm.connections.acceptRequest(data.payload.connectionRecord.id);
131
+ config.logger.debug(`Accepted request for ${agent.did}`);
132
+ }
133
+ }
134
+ catch (error) {
135
+ config.logger.error(`[connection-events] incoming connection handler failed: ${error.message}`);
108
136
  }
109
137
  });
110
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionEvents.js","sourceRoot":"","sources":["../../src/events/ConnectionEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionEvents.js","sourceRoot":"","sources":["../../src/events/ConnectionEvents.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ import type { ResolverConfig } from '@verana-labs/verre';
4
4
  export interface AssertVerifiableServiceOptions {
5
5
  verifiablePublicRegistries: NonNullable<ResolverConfig['verifiablePublicRegistries']>;
6
6
  logger?: BaseLogger;
7
+ positiveTtlMs?: number;
7
8
  }
8
9
  export declare function assertVerifiableService(options: AssertVerifiableServiceOptions): VtFlowAssertVerifiableServiceHook;
@@ -2,21 +2,60 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertVerifiableService = assertVerifiableService;
4
4
  const verre_1 = require("@verana-labs/verre");
5
+ class VerdictCache {
6
+ constructor(positiveTtlMs = 5 * 60000) {
7
+ this.positiveTtlMs = positiveTtlMs;
8
+ this.map = new Map();
9
+ }
10
+ get(key) {
11
+ const entry = this.map.get(key);
12
+ if (!entry)
13
+ return undefined;
14
+ if (Date.now() > entry.expiresAt) {
15
+ this.map.delete(key);
16
+ return undefined;
17
+ }
18
+ return entry.value;
19
+ }
20
+ set(key, value) {
21
+ const entry = { value, expiresAt: Date.now() + this.positiveTtlMs };
22
+ this.map.set(key, entry);
23
+ void value.then(resolution => {
24
+ if (this.map.get(key) !== entry)
25
+ return;
26
+ if (resolution.verified && resolution.outcome === verre_1.TrustResolutionOutcome.VERIFIED)
27
+ return;
28
+ this.map.delete(key);
29
+ }, () => {
30
+ if (this.map.get(key) === entry)
31
+ this.map.delete(key);
32
+ });
33
+ }
34
+ delete(key) {
35
+ this.map.delete(key);
36
+ }
37
+ clear() {
38
+ this.map.clear();
39
+ }
40
+ }
5
41
  // VS-CONN-VS gate: delegates trust resolution to `@verana-labs/verre` (`resolveDID`)
6
42
  function assertVerifiableService(options) {
7
- let cache;
43
+ const cache = new VerdictCache(options.positiveTtlMs);
8
44
  return async ({ agentContext, peerDid }) => {
9
45
  var _a, _b;
10
46
  const logger = (_a = options.logger) !== null && _a !== void 0 ? _a : agentContext.config.logger;
11
47
  try {
12
- cache !== null && cache !== void 0 ? cache : (cache = new verre_1.InMemoryCache());
48
+ const source = cache.get(peerDid) ? 'cache' : 'fresh';
13
49
  const { verified, outcome, metadata } = await (0, verre_1.resolveDID)(peerDid, {
14
50
  verifiablePublicRegistries: options.verifiablePublicRegistries,
15
51
  cache,
16
52
  });
17
53
  const trusted = verified && outcome === verre_1.TrustResolutionOutcome.VERIFIED;
18
54
  if (!trusted) {
19
- logger.warn(`[vt-flow] VS-CONN-VS rejected '${peerDid}': verified=${verified} outcome=${outcome} ${(_b = metadata === null || metadata === void 0 ? void 0 : metadata.errorMessage) !== null && _b !== void 0 ? _b : ''}`);
55
+ logger.warn(`[vt-flow] VS-CONN-VS rejected '${peerDid}': verified=${verified} outcome=${outcome} source=${source} ${(_b = metadata === null || metadata === void 0 ? void 0 : metadata.errorMessage) !== null && _b !== void 0 ? _b : ''}`);
56
+ }
57
+ else {
58
+ logger.debug(`[vt-flow] VS-CONN-VS accepted '${peerDid}' source=${source}`);
20
59
  }
21
60
  return trusted;
22
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assertVerifiableService.js","sourceRoot":"","sources":["../../src/vtFlow/assertVerifiableService.ts"],"names":[],"mappings":";;AAYA,0DAwBC;AAhCD,8CAAsF;AAOtF,qFAAqF;AACrF,SAAgB,uBAAuB,CACrC,OAAuC;IAEvC,IAAI,KAA8B,CAAA;IAClC,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;;QACzC,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAA;QAC3D,IAAI,CAAC;YACH,KAAK,aAAL,KAAK,cAAL,KAAK,IAAL,KAAK,GAAK,IAAI,qBAAa,EAAE,EAAA;YAC7B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,kBAAU,EAAC,OAAO,EAAE;gBAChE,0BAA0B,EAAE,OAAO,CAAC,0BAA0B;gBAC9D,KAAK;aACN,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,QAAQ,IAAI,OAAO,KAAK,8BAAsB,CAAC,QAAQ,CAAA;YACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CACT,kCAAkC,OAAO,eAAe,QAAQ,YAAY,OAAO,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,mCAAI,EAAE,EAAE,CACtH,CAAA;YACH,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,MAAO,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;YACnG,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"assertVerifiableService.js","sourceRoot":"","sources":["../../src/vtFlow/assertVerifiableService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "default": "./build/index.js"
10
10
  }
11
11
  },
12
- "version": "2.0.0-dev.35",
12
+ "version": "2.0.0-dev.37",
13
13
  "repository": {
14
14
  "type": "git",
15
15
  "url": "https://github.com/verana-labs/vs-agent"
@@ -29,11 +29,11 @@
29
29
  "@cosmjs/proto-signing": "^0.32.3",
30
30
  "@cosmjs/stargate": "^0.32.3",
31
31
  "@cosmjs/tendermint-rpc": "^0.32.4",
32
- "@credo-ts/anoncreds": "0.7.1-pr-2704-20260630143332",
33
- "@credo-ts/askar": "0.7.1-pr-2704-20260630143332",
34
- "@credo-ts/core": "0.7.1-pr-2704-20260630143332",
35
- "@credo-ts/didcomm": "0.7.1-pr-2704-20260630143332",
36
- "@credo-ts/webvh": "0.7.1-pr-2704-20260630143332",
32
+ "@credo-ts/anoncreds": "0.7.1-pr-2704-20260901064803",
33
+ "@credo-ts/askar": "0.7.1-pr-2704-20260901064803",
34
+ "@credo-ts/core": "0.7.1-pr-2704-20260901064803",
35
+ "@credo-ts/didcomm": "0.7.1-pr-2704-20260901064803",
36
+ "@credo-ts/webvh": "0.7.1-pr-2704-20260901064803",
37
37
  "@hyperledger/anoncreds-nodejs": "^0.4.0",
38
38
  "@openwallet-foundation/askar-nodejs": "^0.6.0",
39
39
  "@verana-labs/verana-types": "0.10.2",
@@ -45,12 +45,12 @@
45
45
  "didwebvh-ts": "^2.8.0",
46
46
  "express": "^4.18.1",
47
47
  "tsyringe": "4.8.0",
48
- "@verana-labs/vs-agent-model": "2.0.0-dev.35",
49
- "@verana-labs/credo-ts-didcomm-vt-flow": "2.0.0-dev.35"
48
+ "@verana-labs/credo-ts-didcomm-vt-flow": "2.0.0-dev.37",
49
+ "@verana-labs/vs-agent-model": "2.0.0-dev.37"
50
50
  },
51
51
  "peerDependencies": {
52
- "@credo-ts/core": "0.7.1-pr-2704-20260630143332",
53
- "@credo-ts/node": "0.7.1-pr-2704-20260630143332"
52
+ "@credo-ts/core": "0.7.1-pr-2704-20260901064803",
53
+ "@credo-ts/node": "0.7.1-pr-2704-20260901064803"
54
54
  },
55
55
  "devDependencies": {
56
56
  "testcontainers": "^12.0.3",