@verana-labs/vs-agent-sdk 1.11.0-dev.9 → 1.11.1-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +172 -0
  2. package/build/agent/VsAgent.d.ts +15 -3
  3. package/build/agent/VsAgent.js +168 -40
  4. package/build/agent/VsAgent.js.map +1 -1
  5. package/build/agent/createVsAgent.d.ts +1 -1
  6. package/build/blockchain/IndexerWebSocketService.d.ts +39 -0
  7. package/build/blockchain/IndexerWebSocketService.js +217 -0
  8. package/build/blockchain/IndexerWebSocketService.js.map +1 -0
  9. package/build/blockchain/VeranaChainService.d.ts +2 -0
  10. package/build/blockchain/VeranaChainService.js +7 -4
  11. package/build/blockchain/VeranaChainService.js.map +1 -1
  12. package/build/blockchain/VeranaHelpers.d.ts +4 -0
  13. package/build/blockchain/VeranaHelpers.js +29 -0
  14. package/build/blockchain/VeranaHelpers.js.map +1 -0
  15. package/build/blockchain/VeranaIndexerService.d.ts +11 -0
  16. package/build/blockchain/VeranaIndexerService.js +43 -0
  17. package/build/blockchain/VeranaIndexerService.js.map +1 -0
  18. package/build/blockchain/handlers/IndexerHandlerRegistry.d.ts +25 -0
  19. package/build/blockchain/handlers/IndexerHandlerRegistry.js +34 -0
  20. package/build/blockchain/handlers/IndexerHandlerRegistry.js.map +1 -0
  21. package/build/blockchain/handlers/defaultHandlers.d.ts +6 -0
  22. package/build/blockchain/handlers/defaultHandlers.js +126 -0
  23. package/build/blockchain/handlers/defaultHandlers.js.map +1 -0
  24. package/build/blockchain/handlers/index.d.ts +3 -0
  25. package/build/blockchain/handlers/index.js +20 -0
  26. package/build/blockchain/handlers/index.js.map +1 -0
  27. package/build/blockchain/handlers/stateMutations.d.ts +12 -0
  28. package/build/blockchain/handlers/stateMutations.js +113 -0
  29. package/build/blockchain/handlers/stateMutations.js.map +1 -0
  30. package/build/blockchain/index.d.ts +4 -0
  31. package/build/blockchain/index.js +4 -0
  32. package/build/blockchain/index.js.map +1 -1
  33. package/build/blockchain/types.d.ts +107 -0
  34. package/build/blockchain/types.js +2 -1
  35. package/build/blockchain/types.js.map +1 -1
  36. package/build/did/WebDidRegistrar.d.ts +3 -1
  37. package/build/did/WebDidRegistrar.js +10 -1
  38. package/build/did/WebDidRegistrar.js.map +1 -1
  39. package/build/did/migrateWebVhLog.d.ts +34 -0
  40. package/build/did/migrateWebVhLog.js +230 -0
  41. package/build/did/migrateWebVhLog.js.map +1 -0
  42. package/build/index.d.ts +2 -0
  43. package/build/index.js +2 -0
  44. package/build/index.js.map +1 -1
  45. package/build/plugins/setupBaseDidComm.d.ts +2 -0
  46. package/build/plugins/setupBaseDidComm.js +9 -1
  47. package/build/plugins/setupBaseDidComm.js.map +1 -1
  48. package/build/transports/VsAgentWsInboundTransport.js +1 -1
  49. package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
  50. package/build/utils/agent.d.ts +2 -1
  51. package/build/utils/agent.js +16 -10
  52. package/build/utils/agent.js.map +1 -1
  53. package/build/utils/setupSelfTr.d.ts +115 -0
  54. package/build/utils/setupSelfTr.js +452 -0
  55. package/build/utils/setupSelfTr.js.map +1 -0
  56. package/build/utils/trustCredentialStore.d.ts +18 -0
  57. package/build/utils/trustCredentialStore.js +196 -0
  58. package/build/utils/trustCredentialStore.js.map +1 -0
  59. package/package.json +13 -10
package/README.md ADDED
@@ -0,0 +1,172 @@
1
+ # @verana-labs/vs-agent-sdk
2
+
3
+ Framework-agnostic Verifiable Service Agent SDK with DIDComm, AnonCreds, and blockchain integration.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @verana-labs/vs-agent-sdk @credo-ts/core @credo-ts/node
9
+ ```
10
+
11
+ ## Basic Usage
12
+
13
+ ```typescript
14
+ import { createVsAgent, setupBaseDidComm } from '@verana-labs/vs-agent-sdk'
15
+ import { getNodeHttpServer } from '@credo-ts/node'
16
+
17
+ const agent = createVsAgent({
18
+ plugins: [
19
+ setupBaseDidComm({
20
+ walletConfig: { dbPath: './wallet' },
21
+ publicApiBaseUrl: 'https://api.example.com',
22
+ endpoints: ['https://agent.example.com/didcomm'],
23
+ }),
24
+ ],
25
+ label: 'My Agent',
26
+ publicApiBaseUrl: 'https://api.example.com',
27
+ dependencies: getNodeHttpServer(),
28
+ })
29
+
30
+ await agent.initialize()
31
+ ```
32
+
33
+ ## Indexer WebSocket
34
+
35
+ Stream blockchain events in real-time:
36
+
37
+ ```typescript
38
+ import { IndexerWebSocketService } from '@verana-labs/vs-agent-sdk'
39
+
40
+ const indexerWs = new IndexerWebSocketService({
41
+ indexerUrl: 'https://indexer.verana.io',
42
+ agent,
43
+ })
44
+
45
+ await indexerWs.start()
46
+ // Auto-reconnects with exponential backoff (max 5min)
47
+ // Persists last block height in agent storage
48
+ ```
49
+
50
+ ### Custom Handlers
51
+
52
+ Build default handlers or replace with your own:
53
+
54
+ ```typescript
55
+ import { buildDefaultIndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
56
+
57
+ const handlerRegistry = buildDefaultIndexerHandlerRegistry()
58
+
59
+ const indexerWs = new IndexerWebSocketService({
60
+ indexerUrl: 'https://indexer.example.com',
61
+ agent,
62
+ handlerRegistry,
63
+ })
64
+ ```
65
+
66
+ **Override a specific handler:**
67
+
68
+ ```typescript
69
+ import { buildDefaultIndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
70
+ import type { IndexerActivity, IndexerDispatchContext } from '@verana-labs/vs-agent-sdk'
71
+
72
+ const registry = buildDefaultIndexerHandlerRegistry()
73
+
74
+ // Replace credential schema handler with custom logic
75
+ registry.register('CredentialSchema', async (activity: IndexerActivity, context: IndexerDispatchContext) => {
76
+ const { id, jsonSchema } = activity.changes as any
77
+ console.log(`Schema ${id} updated at block ${context.blockHeight}`)
78
+
79
+ // Sync to your database
80
+ await db.schemas.update(id, { schema: jsonSchema })
81
+ })
82
+
83
+ const indexerWs = new IndexerWebSocketService({
84
+ indexerUrl: 'https://indexer.example.com',
85
+ agent,
86
+ handlerRegistry: registry,
87
+ })
88
+ ```
89
+
90
+ **Custom handlers from scratch:**
91
+
92
+ ```typescript
93
+ import { IndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
94
+ import type { IndexerActivity, IndexerDispatchContext } from '@verana-labs/vs-agent-sdk'
95
+
96
+ const registry = new IndexerHandlerRegistry()
97
+
98
+ // Handle trust registry changes
99
+ registry.register('TrustRegistry', async (activity, context) => {
100
+ const { id, did, archived } = activity.changes as any
101
+ await agent.config.logger.info(`[Block ${context.blockHeight}] TR ${id} ${archived ? 'archived' : 'activated'}`)
102
+ })
103
+
104
+ // Handle permission changes with custom messages
105
+ registry.register('Permission', async (activity, context) => {
106
+ const { id, did, revoked } = activity.changes as any
107
+ const status = revoked ? 'revoked' : 'granted'
108
+
109
+ await agent.config.logger.info(`[Block ${context.blockHeight}] Permission ${status}: ${id}`)
110
+
111
+ // Emit to your service
112
+ await sendWebhookEvent('https://your-service.com/perms', {
113
+ type: 'permission_status_changed',
114
+ permissionId: id,
115
+ did,
116
+ status,
117
+ blockHeight: context.blockHeight,
118
+ timestamp: new Date().toISOString(),
119
+ })
120
+ })
121
+
122
+ const indexerWs = new IndexerWebSocketService({
123
+ indexerUrl: 'https://indexer.example.com',
124
+ agent,
125
+ handlerRegistry: registry,
126
+ })
127
+ ```
128
+
129
+ ## Blockchain Integration
130
+
131
+ ```typescript
132
+ import { VeranaChainService } from '@verana-labs/vs-agent-sdk'
133
+
134
+ const chain = new VeranaChainService({
135
+ rpcUrl: 'https://rpc.verana.io',
136
+ chainId: 'verana-mainnet-1',
137
+ mnemonic: 'your wallet seed phrase...',
138
+ logger: agent.config.logger,
139
+ })
140
+
141
+ const agent = createVsAgent({
142
+ plugins: [...],
143
+ veranaChain: chain,
144
+ label: 'My Agent',
145
+ publicApiBaseUrl: 'https://api.example.com',
146
+ dependencies: getNodeHttpServer(),
147
+ })
148
+ ```
149
+
150
+ ## Utilities
151
+
152
+ ```typescript
153
+ // DIDs
154
+ import { createInvitation, getWebDid } from '@verana-labs/vs-agent-sdk'
155
+
156
+ const did = await getWebDid(agent)
157
+ const invitation = await createInvitation(agent)
158
+
159
+ // Webhooks
160
+ import { sendWebhookEvent } from '@verana-labs/vs-agent-sdk'
161
+
162
+ await sendWebhookEvent('https://example.com/webhook', {
163
+ type: 'event_type',
164
+ data: { /* ... */ },
165
+ })
166
+
167
+ // Transports
168
+ import {
169
+ HttpInboundTransport,
170
+ VsAgentWsInboundTransport,
171
+ } from '@verana-labs/vs-agent-sdk'
172
+ ```
@@ -1,13 +1,14 @@
1
1
  import { AnonCredsDidCommCredentialFormatService, AnonCredsModule, AnonCredsDidCommProofFormatService, LegacyIndyDidCommCredentialFormatService, LegacyIndyDidCommProofFormatService } from '@credo-ts/anoncreds';
2
2
  import { AskarModule, AskarModuleConfigStoreOptions } from '@credo-ts/askar';
3
3
  import { Agent, AgentDependencies, DidsModule, InitConfig, W3cCredentialsModule } from '@credo-ts/core';
4
- import { DidCommCredentialsModuleConfigOptions, DidCommCredentialV2Protocol, DidCommModule, DidCommModuleConfigOptions, DidCommProofsModuleConfigOptions, DidCommProofV2Protocol } from '@credo-ts/didcomm';
5
- import { VeranaChainService } from '../blockchain';
4
+ import { DidCommCredentialsModuleConfigOptions, DidCommCredentialV2Protocol, DidCommJsonLdCredentialFormatService, DidCommModule, DidCommModuleConfigOptions, DidCommProofsModuleConfigOptions, DidCommProofV2Protocol } from '@credo-ts/didcomm';
5
+ import { VeranaChainService } from '../blockchain/VeranaChainService';
6
6
  type VsAgentDidCommModule = DidCommModule<DidCommModuleConfigOptions & {
7
7
  credentials: DidCommCredentialsModuleConfigOptions<[
8
8
  DidCommCredentialV2Protocol<[
9
9
  LegacyIndyDidCommCredentialFormatService,
10
- AnonCredsDidCommCredentialFormatService
10
+ AnonCredsDidCommCredentialFormatService,
11
+ DidCommJsonLdCredentialFormatService
11
12
  ]>
12
13
  ]>;
13
14
  proofs: DidCommProofsModuleConfigOptions<[
@@ -44,7 +45,18 @@ export declare class VsAgent<TModules extends BaseAgentModules = BaseAgentModule
44
45
  private get hasUserProfile();
45
46
  initialize(): Promise<void>;
46
47
  private findCreatedDid;
48
+ private findEd25519VerificationMethodId;
47
49
  private getDidCommServices;
50
+ private persistDidDocumentKey;
51
+ /**
52
+ * Fix a webvh update-key mapping whose `didDocumentRelativeKeyId` was stored as the full multibase
53
+ * (e.g. `#z6Mk...`) while the DID document verification method uses a short fragment (e.g. `#BVhGnL79`).
54
+ * `getKmsKeyIdForVerifiacationMethod` matches by suffix (`vm.id.endsWith(relativeKeyId)`), so the
55
+ * mismatch leaves the update key unresolvable and every webvh update fails with
56
+ * "The key ID must be present before the log can be edited." The private key is present in the KMS;
57
+ * only the mapping label is wrong. Idempotent: a mapping that already correlates to a VM is left alone.
58
+ */
59
+ private repairWebvhUpdateKeyMapping;
48
60
  private createAndAddDidCommKeysAndServices;
49
61
  private createAndAddLinkedVpServices;
50
62
  /**
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VsAgent = void 0;
4
4
  const core_1 = require("@credo-ts/core");
5
5
  const didwebvh_ts_1 = require("didwebvh-ts");
6
+ const migrateWebVhLog_1 = require("../did/migrateWebVhLog");
7
+ const MANAGED_DIDCOMM_SERVICE_TYPES = [core_1.DidCommV1Service.type, core_1.NewDidCommV2Service.type];
6
8
  class VsAgent extends core_1.Agent {
7
9
  constructor(options) {
8
10
  super(options);
@@ -17,7 +19,7 @@ class VsAgent extends core_1.Agent {
17
19
  return 'userProfile' in this.modules;
18
20
  }
19
21
  async initialize() {
20
- var _a, _b, _c, _d, _e, _f;
22
+ var _a, _b, _c, _d, _e, _f, _g, _h;
21
23
  await super.initialize();
22
24
  if (this.hasUserProfile) {
23
25
  // Make sure default User Profile corresponds to settings in environment variables
@@ -40,7 +42,7 @@ class VsAgent extends core_1.Agent {
40
42
  if (!existingRecord) {
41
43
  if (parsedDid.method === 'web') {
42
44
  const didDocument = new core_1.DidDocument({ id: parsedDid.did });
43
- await this.createAndAddDidCommKeysAndServices(didDocument);
45
+ const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
44
46
  // Add Self TR
45
47
  await this.createAndAddLinkedVpServices(didDocument);
46
48
  // Add AnonCreds Services
@@ -49,6 +51,7 @@ class VsAgent extends core_1.Agent {
49
51
  method: 'web',
50
52
  domain,
51
53
  didDocument,
54
+ keys: [didCommKey],
52
55
  });
53
56
  this.did = parsedDid.did;
54
57
  }
@@ -69,12 +72,15 @@ class VsAgent extends core_1.Agent {
69
72
  process.exit(1);
70
73
  }
71
74
  // Add DIDComm services and keys
72
- await this.createAndAddDidCommKeysAndServices(didDocument);
75
+ const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
73
76
  // Add Linked VP services
74
77
  await this.createAndAddLinkedVpServices(didDocument);
75
78
  // Add implicit services
76
79
  await this.createAndAddWebVhImplicitServices(didDocument);
77
80
  didDocument.alsoKnownAs = [`did:web:${domain}`];
81
+ // The webvh registrar doesn't merge new keys into the DidRecord on update,
82
+ // so persist the DIDComm key mapping directly on the existing record.
83
+ await this.persistDidDocumentKey(publicDid, didCommKey);
78
84
  const result = await this.dids.update({ did: publicDid, didDocument });
79
85
  if (result.didState.state !== 'finished') {
80
86
  this.logger.error(`Cannot update DID ${publicDid}`);
@@ -88,6 +94,20 @@ class VsAgent extends core_1.Agent {
88
94
  }
89
95
  return;
90
96
  }
97
+ // If this is a did:webvh record, ensure the stored log is resolvable under the
98
+ // current didwebvh-ts version. Logs created with didwebvh-ts <2.7.4 used the
99
+ // SCID placeholder when computing the entry hash for entries beyond #1, which
100
+ // newer resolvers (correctly) reject as a broken hash chain. We rebuild the
101
+ // log in-place, preserving entry #1 (and therefore the SCID and the public DID).
102
+ if (parsedDid.method === 'webvh') {
103
+ try {
104
+ await (0, migrateWebVhLog_1.migrateWebVhLogIfBroken)(this.agentContext, existingRecord, this.logger);
105
+ }
106
+ catch (error) {
107
+ this.logger.error(`Failed to migrate webvh DID log for ${existingRecord.did}: ${error instanceof Error ? error.message : String(error)}`);
108
+ throw error;
109
+ }
110
+ }
91
111
  // Make sure did:webvh record has the did:web form as an alternative, in order to support
92
112
  // implicit invitations
93
113
  if (parsedDid.method === 'webvh' &&
@@ -97,28 +117,59 @@ class VsAgent extends core_1.Agent {
97
117
  const didRepository = this.dependencyManager.resolve(core_1.DidRepository);
98
118
  await didRepository.update(this.agentContext, existingRecord);
99
119
  }
120
+ // Fix a legacy webvh update-key mapping before the self-heal update below relies on it.
121
+ if (parsedDid.method === 'webvh')
122
+ await this.repairWebvhUpdateKeyMapping(existingRecord);
100
123
  // DID Already exists: update it in case that agent parameters have been changed. At the moment, we can only update
101
124
  // DIDComm endpoints, so we'll only replace the service (if different from previous)
102
125
  const didDocument = existingRecord.didDocument;
103
126
  const hasLegacyMethods = ((_d = didDocument.verificationMethod) !== null && _d !== void 0 ? _d : []).some(vm => ['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
104
- const servicesChanged = JSON.stringify(didDocument.didCommServices) !==
105
- JSON.stringify(this.getDidCommServices(didDocument.id));
106
- if (hasLegacyMethods || servicesChanged) {
107
- if (servicesChanged) {
127
+ const ed25519VerificationMethodId = this.findEd25519VerificationMethodId(didDocument);
128
+ const servicesChanged = !ed25519VerificationMethodId ||
129
+ JSON.stringify(didDocument.didCommServices) !==
130
+ JSON.stringify(this.getDidCommServices(didDocument.id, ed25519VerificationMethodId));
131
+ // One-shot migration for did:webvh records published before authentication-replace
132
+ // landed, which still carry the didwebvh-ts update key in authentication.
133
+ const authHasUpdateKey = parsedDid.method === 'webvh' &&
134
+ !!ed25519VerificationMethodId &&
135
+ ((_e = didDocument.authentication) !== null && _e !== void 0 ? _e : []).some(a => {
136
+ const id = typeof a === 'string' ? a : a.id;
137
+ return id !== ed25519VerificationMethodId;
138
+ });
139
+ if (hasLegacyMethods || servicesChanged || authHasUpdateKey) {
140
+ if (servicesChanged && ed25519VerificationMethodId) {
108
141
  didDocument.service = [
109
142
  ...(didDocument.service
110
- ? didDocument.service.filter(service => ![core_1.DidCommV1Service.type].includes(service.type))
143
+ ? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
111
144
  : []),
112
- ...this.getDidCommServices(didDocument.id),
145
+ ...this.getDidCommServices(didDocument.id, ed25519VerificationMethodId),
113
146
  ];
114
147
  }
115
- if (hasLegacyMethods)
116
- await this.createAndAddDidCommKeysAndServices(didDocument);
117
- await this.dids.update({ did: didDocument.id, didDocument });
118
- (_e = this.logger) === null || _e === void 0 ? void 0 : _e.debug('Public did record updated');
148
+ const newKeys = [];
149
+ if (hasLegacyMethods) {
150
+ newKeys.push(await this.createAndAddDidCommKeysAndServices(didDocument));
151
+ }
152
+ if (authHasUpdateKey)
153
+ didDocument.authentication = [ed25519VerificationMethodId];
154
+ if (newKeys.length && parsedDid.method === 'webvh') {
155
+ // webvh registrar doesn't accept keys in update options; persist directly
156
+ for (const key of newKeys)
157
+ await this.persistDidDocumentKey(didDocument.id, key);
158
+ }
159
+ const updateResult = await this.dids.update(Object.assign({ did: didDocument.id, didDocument }, (newKeys.length && parsedDid.method === 'web' ? { keys: newKeys } : {})));
160
+ if (updateResult.didState.state !== 'finished') {
161
+ (_f = this.logger) === null || _f === void 0 ? void 0 : _f.error('Public did record update failed to persist', {
162
+ did: didDocument.id,
163
+ state: updateResult.didState.state,
164
+ reason: updateResult.didState.reason,
165
+ });
166
+ }
167
+ else {
168
+ (_g = this.logger) === null || _g === void 0 ? void 0 : _g.debug('Public did record updated');
169
+ }
119
170
  }
120
171
  else {
121
- (_f = this.logger) === null || _f === void 0 ? void 0 : _f.debug('Existing DID record found. No updates');
172
+ (_h = this.logger) === null || _h === void 0 ? void 0 : _h.debug('Existing DID record found. No updates');
122
173
  }
123
174
  this.did = existingRecord.did;
124
175
  }
@@ -132,21 +183,98 @@ class VsAgent extends core_1.Agent {
132
183
  }
133
184
  return await didRepository.findCreatedDid(this.context, parsedDid.did);
134
185
  }
135
- getDidCommServices(publicDid) {
136
- const keyAgreementId = `${publicDid}#key-agreement-1`;
137
- return this.didcomm.config.endpoints.map((endpoint, index) => {
138
- return new core_1.DidCommV1Service({
139
- id: `${publicDid}#did-communication`,
140
- serviceEndpoint: endpoint,
141
- priority: index,
142
- routingKeys: [], // TODO: Support mediation
143
- recipientKeys: [keyAgreementId],
144
- accept: ['didcomm/aip2;env=rfc19'],
145
- });
186
+ // Prefer Ed25519VerificationKey2020 over Multikey: webvh's update Multikey is not ours to use.
187
+ findEd25519VerificationMethodId(didDocument) {
188
+ var _a;
189
+ const vms = (_a = didDocument.verificationMethod) !== null && _a !== void 0 ? _a : [];
190
+ const preferred = vms.find(vm => vm.type === 'Ed25519VerificationKey2020');
191
+ if (preferred)
192
+ return preferred.id;
193
+ const fallback = vms.find(vm => vm.type === 'Ed25519VerificationKey2018' ||
194
+ (vm.type === 'Multikey' &&
195
+ typeof vm.publicKeyMultibase === 'string' &&
196
+ vm.publicKeyMultibase.startsWith('z6Mk')));
197
+ return fallback === null || fallback === void 0 ? void 0 : fallback.id;
198
+ }
199
+ getDidCommServices(publicDid, ed25519VerificationMethodId) {
200
+ const didcommVersions = this.didcomm.config.didcommVersions;
201
+ const includeV1 = didcommVersions.includes('v1');
202
+ const includeV2 = didcommVersions.includes('v2');
203
+ const services = [];
204
+ this.didcomm.config.endpoints.forEach((endpoint, index) => {
205
+ if (includeV1) {
206
+ services.push(new core_1.DidCommV1Service({
207
+ id: `${publicDid}#did-communication`,
208
+ serviceEndpoint: endpoint,
209
+ priority: index,
210
+ routingKeys: [], // TODO: Support mediation
211
+ recipientKeys: [ed25519VerificationMethodId],
212
+ accept: ['didcomm/aip2;env=rfc19'],
213
+ }));
214
+ }
215
+ if (includeV2) {
216
+ services.push(new core_1.NewDidCommV2Service({
217
+ id: `${publicDid}#didcomm-messaging-${index}`,
218
+ serviceEndpoint: new core_1.NewDidCommV2ServiceEndpoint({
219
+ uri: endpoint,
220
+ accept: ['didcomm/v2'],
221
+ }),
222
+ }));
223
+ }
146
224
  });
225
+ return services;
226
+ }
227
+ async persistDidDocumentKey(did, key) {
228
+ var _a;
229
+ const didRepository = this.agentContext.resolve(core_1.DidRepository);
230
+ const [record] = await didRepository.findByQuery(this.agentContext, { did });
231
+ if (!record)
232
+ return;
233
+ const existing = (_a = record.keys) !== null && _a !== void 0 ? _a : [];
234
+ if (existing.some(k => k.didDocumentRelativeKeyId === key.didDocumentRelativeKeyId))
235
+ return;
236
+ record.keys = [...existing, key];
237
+ await didRepository.update(this.agentContext, record);
238
+ }
239
+ /**
240
+ * Fix a webvh update-key mapping whose `didDocumentRelativeKeyId` was stored as the full multibase
241
+ * (e.g. `#z6Mk...`) while the DID document verification method uses a short fragment (e.g. `#BVhGnL79`).
242
+ * `getKmsKeyIdForVerifiacationMethod` matches by suffix (`vm.id.endsWith(relativeKeyId)`), so the
243
+ * mismatch leaves the update key unresolvable and every webvh update fails with
244
+ * "The key ID must be present before the log can be edited." The private key is present in the KMS;
245
+ * only the mapping label is wrong. Idempotent: a mapping that already correlates to a VM is left alone.
246
+ */
247
+ async repairWebvhUpdateKeyMapping(record) {
248
+ var _a, _b, _c;
249
+ if (!record.didDocument || !((_a = record.keys) === null || _a === void 0 ? void 0 : _a.length))
250
+ return;
251
+ const vms = (_b = record.didDocument.verificationMethod) !== null && _b !== void 0 ? _b : [];
252
+ let repaired = false;
253
+ for (const key of record.keys) {
254
+ const rel = key.didDocumentRelativeKeyId;
255
+ if (vms.some(vm => vm.id.endsWith(rel)))
256
+ continue; // already correlates
257
+ const vm = vms.find(v => `#${v.publicKeyMultibase}` === rel); // was stored as #<multibase>
258
+ if (!vm)
259
+ continue;
260
+ const correct = `#${vm.id.split('#')[1]}`;
261
+ if (correct !== rel) {
262
+ (_c = this.logger) === null || _c === void 0 ? void 0 : _c.warn('Fixing webvh update-key mapping', {
263
+ from: rel,
264
+ to: correct,
265
+ kmsKeyId: key.kmsKeyId,
266
+ });
267
+ key.didDocumentRelativeKeyId = correct;
268
+ repaired = true;
269
+ }
270
+ }
271
+ if (repaired) {
272
+ const didRepository = this.dependencyManager.resolve(core_1.DidRepository);
273
+ await didRepository.update(this.agentContext, record);
274
+ }
147
275
  }
148
276
  async createAndAddDidCommKeysAndServices(didDocument) {
149
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
277
+ var _a, _b, _c, _d, _e;
150
278
  const publicDid = didDocument.id;
151
279
  const context = [
152
280
  'https://w3id.org/security/multikey/v1',
@@ -155,28 +283,25 @@ class VsAgent extends core_1.Agent {
155
283
  ];
156
284
  const keyAgreementId = `${publicDid}#key-agreement-1`;
157
285
  const kms = this.agentContext.resolve(core_1.Kms.KeyManagementApi);
158
- const didRepository = this.agentContext.resolve(core_1.DidRepository);
159
286
  // Create didcomm keys
160
287
  const key = await kms.createKey({ type: { kty: 'OKP', crv: 'Ed25519' } });
161
288
  const publicKeyBytes = core_1.Kms.PublicJwk.fromPublicJwk(key.publicJwk).publicKey.publicKey;
162
289
  const publicKeyMultibase = (0, didwebvh_ts_1.multibaseEncode)(new Uint8Array([0xed, 0x01, ...publicKeyBytes]), didwebvh_ts_1.MultibaseEncoding.BASE58_BTC);
163
- const [record] = await didRepository.findByQuery(this.agentContext, { did: publicDid });
164
- (_a = record.keys) === null || _a === void 0 ? void 0 : _a.push({
290
+ const didDocumentKey = {
165
291
  kmsKeyId: key.keyId,
166
292
  didDocumentRelativeKeyId: `#${publicKeyMultibase}`,
167
- });
168
- await didRepository.update(this.agentContext, record);
293
+ };
169
294
  const verificationMethodId = `${publicDid}#${publicKeyMultibase}`;
170
295
  const publicKeyX25519 = (0, core_1.convertPublicKeyToX25519)(publicKeyBytes);
171
296
  const x25519Key = core_1.Kms.PublicJwk.fromPublicKey({ kty: 'OKP', crv: 'X25519', publicKey: publicKeyX25519 });
172
297
  // Remove legacy if exist
173
298
  const legacyContexts = ['https://w3id.org/security/suites/ed25519-2018/v1'];
174
- const legacyAuthId = (_c = ((_b = didDocument.verificationMethod) !== null && _b !== void 0 ? _b : []).find(vm => ['Ed25519VerificationKey2018'].includes(vm.type))) === null || _c === void 0 ? void 0 : _c.id;
299
+ const legacyAuthId = (_b = ((_a = didDocument.verificationMethod) !== null && _a !== void 0 ? _a : []).find(vm => ['Ed25519VerificationKey2018'].includes(vm.type))) === null || _b === void 0 ? void 0 : _b.id;
175
300
  if (legacyAuthId) {
176
- didDocument.authentication = ((_d = didDocument.authentication) !== null && _d !== void 0 ? _d : []).filter(id => id !== legacyAuthId);
177
- didDocument.assertionMethod = ((_e = didDocument.assertionMethod) !== null && _e !== void 0 ? _e : []).filter(id => id !== legacyAuthId);
301
+ didDocument.authentication = ((_c = didDocument.authentication) !== null && _c !== void 0 ? _c : []).filter(id => id !== legacyAuthId);
302
+ didDocument.assertionMethod = ((_d = didDocument.assertionMethod) !== null && _d !== void 0 ? _d : []).filter(id => id !== legacyAuthId);
178
303
  }
179
- const filteredMethods = ((_f = didDocument.verificationMethod) !== null && _f !== void 0 ? _f : []).filter(vm => !['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
304
+ const filteredMethods = ((_e = didDocument.verificationMethod) !== null && _e !== void 0 ? _e : []).filter(vm => !['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
180
305
  const verificationMethods = [
181
306
  {
182
307
  controller: publicDid,
@@ -194,7 +319,7 @@ class VsAgent extends core_1.Agent {
194
319
  const authentication = verificationMethodId;
195
320
  const assertionMethod = verificationMethodId;
196
321
  const keyAgreement = keyAgreementId;
197
- const didcommServices = this.getDidCommServices(publicDid);
322
+ const didcommServices = this.getDidCommServices(publicDid, verificationMethodId);
198
323
  const currentContexts = Array.isArray(didDocument.context)
199
324
  ? didDocument.context
200
325
  : didDocument.context
@@ -204,15 +329,18 @@ class VsAgent extends core_1.Agent {
204
329
  ...new Set([...currentContexts.filter(ctx => !legacyContexts.includes(ctx)), ...context]),
205
330
  ];
206
331
  didDocument.verificationMethod = [...filteredMethods, ...verificationMethods];
207
- didDocument.authentication = [...new Set([...((_g = didDocument.authentication) !== null && _g !== void 0 ? _g : []), authentication])];
208
- didDocument.assertionMethod = [...new Set([...((_h = didDocument.assertionMethod) !== null && _h !== void 0 ? _h : []), assertionMethod])];
209
- didDocument.keyAgreement = [...new Set([...((_j = didDocument.keyAgreement) !== null && _j !== void 0 ? _j : []), keyAgreement])];
332
+ // Replace (not merge): keeps did:webvh's update key out of DIDComm relations.
333
+ // Same pattern as didcomm-mediator/src/agent/DidCommMediatorAgent.ts.
334
+ didDocument.authentication = [authentication];
335
+ didDocument.assertionMethod = [assertionMethod];
336
+ didDocument.keyAgreement = [keyAgreement];
210
337
  didDocument.service = [
211
338
  ...(didDocument.service
212
- ? didDocument.service.filter(service => ![core_1.DidCommV1Service.type].includes(service.type))
339
+ ? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
213
340
  : []),
214
341
  ...didcommServices,
215
342
  ];
343
+ return didDocumentKey;
216
344
  }
217
345
  async createAndAddLinkedVpServices(didDocument) {
218
346
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"VsAgent.js","sourceRoot":"","sources":["../../src/agent/VsAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VsAgent.js","sourceRoot":"","sources":["../../src/agent/VsAgent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { AskarModuleConfigStoreOptions } from '@credo-ts/askar';
2
2
  import { AgentDependencies, InitConfig, LogLevel } from '@credo-ts/core';
3
- import { VeranaChainService } from '../blockchain';
3
+ import { VeranaChainService } from '../blockchain/VeranaChainService';
4
4
  import { Plugin } from '../types';
5
5
  import { BaseAgentModules, VsAgent } from './VsAgent';
6
6
  type MergePluginModules<T extends Plugin[]> = T extends [infer First, ...infer Rest] ? First extends {
@@ -0,0 +1,39 @@
1
+ import { VsAgent } from '../agent/VsAgent';
2
+ import { IndexerHandlerRegistry } from './handlers/IndexerHandlerRegistry';
3
+ export interface IndexerWebSocketServiceOptions {
4
+ indexerUrl: string;
5
+ agent: VsAgent;
6
+ handlerRegistry?: IndexerHandlerRegistry;
7
+ }
8
+ export declare class IndexerWebSocketService {
9
+ private readonly options;
10
+ private ws;
11
+ private reconnectAttempt;
12
+ private stopped;
13
+ private syncing;
14
+ private IndexerEventRecords;
15
+ private readonly indexer;
16
+ private readonly handlerRegistry;
17
+ constructor(options: IndexerWebSocketServiceOptions);
18
+ start(): Promise<void>;
19
+ stop(): void;
20
+ private get logger();
21
+ /**
22
+ * Connects to the indexer WebSocket, performs an initial sync via REST (use /events endpoint because it returns historical events in a single request)
23
+ * Finally, processes pending events received during the initial sync.
24
+ */
25
+ private connect;
26
+ private openWebSocket;
27
+ private syncRest;
28
+ private drainIndexerEventRecords;
29
+ private processBlock;
30
+ /**
31
+ * TODO: Once the indexer emits consistent event_id for create events, we can remove this workaround
32
+ */
33
+ private resolveCreateActivity;
34
+ private fetchActivity;
35
+ private fetchEntity;
36
+ private applyChanges;
37
+ private scheduleReconnect;
38
+ private fetchInitialEvents;
39
+ }