@verana-labs/vs-agent-sdk 2.0.0-dev.6 → 2.0.0-dev.61

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 (148) hide show
  1. package/README.md +0 -2
  2. package/build/adminApi/AdminApiError.d.ts +25 -0
  3. package/build/adminApi/AdminApiError.js +57 -0
  4. package/build/adminApi/AdminApiError.js.map +1 -0
  5. package/build/adminApi/didcommModules.d.ts +2 -0
  6. package/build/adminApi/didcommModules.js +8 -0
  7. package/build/adminApi/didcommModules.js.map +1 -0
  8. package/build/adminApi/index.d.ts +3 -0
  9. package/build/adminApi/index.js +20 -0
  10. package/build/adminApi/index.js.map +1 -0
  11. package/build/adminApi/moduleEndpoint.d.ts +8 -0
  12. package/build/adminApi/moduleEndpoint.js +28 -0
  13. package/build/adminApi/moduleEndpoint.js.map +1 -0
  14. package/build/agent/VsAgent.d.ts +15 -33
  15. package/build/agent/VsAgent.js +75 -205
  16. package/build/agent/VsAgent.js.map +1 -1
  17. package/build/agent/createVsAgent.d.ts +5 -5
  18. package/build/agent/createVsAgent.js +3 -5
  19. package/build/agent/createVsAgent.js.map +1 -1
  20. package/build/blockchain/AnonCredsTrustService.d.ts +62 -0
  21. package/build/blockchain/AnonCredsTrustService.js +256 -0
  22. package/build/blockchain/AnonCredsTrustService.js.map +1 -0
  23. package/build/blockchain/AuthorizationService.d.ts +5 -3
  24. package/build/blockchain/AuthorizationService.js +17 -29
  25. package/build/blockchain/AuthorizationService.js.map +1 -1
  26. package/build/blockchain/IndexerWebSocketService.d.ts +7 -1
  27. package/build/blockchain/IndexerWebSocketService.js +68 -36
  28. package/build/blockchain/IndexerWebSocketService.js.map +1 -1
  29. package/build/blockchain/VeranaChainService.d.ts +2 -13
  30. package/build/blockchain/VeranaChainService.js +8 -113
  31. package/build/blockchain/VeranaChainService.js.map +1 -1
  32. package/build/blockchain/VeranaIndexerService.d.ts +14 -1
  33. package/build/blockchain/VeranaIndexerService.js +122 -8
  34. package/build/blockchain/VeranaIndexerService.js.map +1 -1
  35. package/build/blockchain/handlers/authorizationHandlers.js +2 -2
  36. package/build/blockchain/handlers/authorizationHandlers.js.map +1 -1
  37. package/build/blockchain/handlers/defaultHandlers.js +2 -0
  38. package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
  39. package/build/blockchain/handlers/index.d.ts +1 -0
  40. package/build/blockchain/handlers/index.js +1 -0
  41. package/build/blockchain/handlers/index.js.map +1 -1
  42. package/build/blockchain/handlers/selfIssuanceHandlers.d.ts +13 -0
  43. package/build/blockchain/handlers/selfIssuanceHandlers.js +71 -0
  44. package/build/blockchain/handlers/selfIssuanceHandlers.js.map +1 -0
  45. package/build/blockchain/handlers/stateMutations.d.ts +21 -2
  46. package/build/blockchain/handlers/stateMutations.js +280 -34
  47. package/build/blockchain/handlers/stateMutations.js.map +1 -1
  48. package/build/blockchain/index.d.ts +2 -0
  49. package/build/blockchain/index.js +2 -0
  50. package/build/blockchain/index.js.map +1 -1
  51. package/build/blockchain/indexerMappers.d.ts +3 -0
  52. package/build/blockchain/indexerMappers.js +53 -0
  53. package/build/blockchain/indexerMappers.js.map +1 -0
  54. package/build/blockchain/types.d.ts +5 -57
  55. package/build/blockchain/types.js.map +1 -1
  56. package/build/bootstrap/EcsBootstrapService.d.ts +14 -3
  57. package/build/bootstrap/EcsBootstrapService.js +155 -76
  58. package/build/bootstrap/EcsBootstrapService.js.map +1 -1
  59. package/build/credentials/FullTailsFileService.d.ts +0 -1
  60. package/build/credentials/FullTailsFileService.js +0 -49
  61. package/build/credentials/FullTailsFileService.js.map +1 -1
  62. package/build/did/CachedDocumentLoader.d.ts +3 -0
  63. package/build/did/CachedDocumentLoader.js +7 -1
  64. package/build/did/CachedDocumentLoader.js.map +1 -1
  65. package/build/did/CachedWebDidResolver.d.ts +0 -4
  66. package/build/did/CachedWebDidResolver.js +1 -5
  67. package/build/did/CachedWebDidResolver.js.map +1 -1
  68. package/build/did/artifactServices.d.ts +12 -0
  69. package/build/did/artifactServices.js +48 -0
  70. package/build/did/artifactServices.js.map +1 -0
  71. package/build/did/legacyDidWeb.d.ts +6 -4
  72. package/build/did/legacyDidWeb.js +17 -14
  73. package/build/did/legacyDidWeb.js.map +1 -1
  74. package/build/did/publicDid.d.ts +4 -0
  75. package/build/did/publicDid.js +19 -0
  76. package/build/did/publicDid.js.map +1 -0
  77. package/build/events/BaseMessageEvents.js +139 -5
  78. package/build/events/BaseMessageEvents.js.map +1 -1
  79. package/build/events/ConnectionEvents.js +110 -82
  80. package/build/events/ConnectionEvents.js.map +1 -1
  81. package/build/events/VsAgentEvents.d.ts +11 -9
  82. package/build/events/VsAgentEvents.js +8 -1
  83. package/build/events/VsAgentEvents.js.map +1 -1
  84. package/build/events/VtFlowEvents.d.ts +1 -1
  85. package/build/events/VtFlowEvents.js +2 -19
  86. package/build/events/VtFlowEvents.js.map +1 -1
  87. package/build/index.d.ts +6 -1
  88. package/build/index.js +10 -2
  89. package/build/index.js.map +1 -1
  90. package/build/plugins/setupBaseDidComm.js +6 -12
  91. package/build/plugins/setupBaseDidComm.js.map +1 -1
  92. package/build/transports/VsAgentWsInboundTransport.d.ts +1 -1
  93. package/build/transports/VsAgentWsInboundTransport.js +20 -14
  94. package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
  95. package/build/types.d.ts +5 -0
  96. package/build/types.js.map +1 -1
  97. package/build/utils/agent.d.ts +29 -4
  98. package/build/utils/agent.js +91 -22
  99. package/build/utils/agent.js.map +1 -1
  100. package/build/utils/didReadiness.d.ts +9 -0
  101. package/build/utils/didReadiness.js +42 -0
  102. package/build/utils/didReadiness.js.map +1 -0
  103. package/build/utils/ecsClaims.d.ts +47 -0
  104. package/build/utils/ecsClaims.js +120 -0
  105. package/build/utils/ecsClaims.js.map +1 -0
  106. package/build/utils/ecsService.d.ts +8 -0
  107. package/build/utils/ecsService.js +23 -0
  108. package/build/utils/ecsService.js.map +1 -0
  109. package/build/utils/index.d.ts +4 -0
  110. package/build/utils/index.js +4 -0
  111. package/build/utils/index.js.map +1 -1
  112. package/build/utils/selfIssuedEcsCredential.d.ts +8 -0
  113. package/build/utils/selfIssuedEcsCredential.js +151 -0
  114. package/build/utils/selfIssuedEcsCredential.js.map +1 -0
  115. package/build/utils/setupSelfTr.d.ts +29 -66
  116. package/build/utils/setupSelfTr.js +78 -282
  117. package/build/utils/setupSelfTr.js.map +1 -1
  118. package/build/utils/trustCredentialStore.d.ts +67 -9
  119. package/build/utils/trustCredentialStore.js +296 -109
  120. package/build/utils/trustCredentialStore.js.map +1 -1
  121. package/build/utils/util.d.ts +10 -0
  122. package/build/utils/util.js +16 -0
  123. package/build/utils/util.js.map +1 -1
  124. package/build/utils/vcdm2.d.ts +34 -0
  125. package/build/utils/vcdm2.js +62 -0
  126. package/build/utils/vcdm2.js.map +1 -0
  127. package/build/utils/vtjscResolver.d.ts +18 -0
  128. package/build/utils/vtjscResolver.js +54 -0
  129. package/build/utils/vtjscResolver.js.map +1 -0
  130. package/build/vtFlow/VtFlowOrchestrator.d.ts +59 -13
  131. package/build/vtFlow/VtFlowOrchestrator.js +140 -92
  132. package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
  133. package/build/vtFlow/assertVerifiableService.d.ts +1 -0
  134. package/build/vtFlow/assertVerifiableService.js +45 -5
  135. package/build/vtFlow/assertVerifiableService.js.map +1 -1
  136. package/build/vtFlow/ecsIssuanceExemption.d.ts +12 -0
  137. package/build/vtFlow/ecsIssuanceExemption.js +84 -0
  138. package/build/vtFlow/ecsIssuanceExemption.js.map +1 -0
  139. package/build/vtFlow/index.d.ts +1 -0
  140. package/build/vtFlow/index.js +1 -0
  141. package/build/vtFlow/index.js.map +1 -1
  142. package/package.json +12 -12
  143. package/build/did/migrateWebVhLog.d.ts +0 -34
  144. package/build/did/migrateWebVhLog.js +0 -230
  145. package/build/did/migrateWebVhLog.js.map +0 -1
  146. package/build/did/migrateWebVhVersionTime.d.ts +0 -9
  147. package/build/did/migrateWebVhVersionTime.js +0 -191
  148. package/build/did/migrateWebVhVersionTime.js.map +0 -1
@@ -4,6 +4,8 @@ exports.VtFlowOrchestrator = void 0;
4
4
  const core_1 = require("@credo-ts/core");
5
5
  const credo_ts_didcomm_vt_flow_1 = require("@verana-labs/credo-ts-didcomm-vt-flow");
6
6
  const verre_1 = require("@verana-labs/verre");
7
+ const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
8
+ const ecsIssuanceExemption_1 = require("./ecsIssuanceExemption");
7
9
  const types_1 = require("../blockchain/types");
8
10
  const types_2 = require("../types");
9
11
  const utils_1 = require("../utils");
@@ -14,10 +16,10 @@ class VtFlowOrchestrator {
14
16
  }
15
17
  async startOnboardingProcess(input) {
16
18
  var _a, _b, _c, _d;
17
- const chain = this.requireChain();
19
+ this.requireChain();
18
20
  if (!this.agent.did)
19
21
  throw new Error('Agent has no public DID');
20
- const holderParticipant = await chain.getParticipant(input.applicantParticipantId);
22
+ const holderParticipant = await this.agent.indexer.findParticipant(input.applicantParticipantId);
21
23
  if (!holderParticipant) {
22
24
  throw new Error(`Applicant participant ${input.applicantParticipantId} not found on chain`);
23
25
  }
@@ -37,7 +39,7 @@ class VtFlowOrchestrator {
37
39
  if (!holderParticipant.validatorParticipantId) {
38
40
  throw new Error(`Applicant participant ${input.applicantParticipantId} has no validator_participant_id`);
39
41
  }
40
- const validatorParticipant = await chain.getParticipant(Number(holderParticipant.validatorParticipantId));
42
+ const validatorParticipant = await this.agent.indexer.findParticipant(Number(holderParticipant.validatorParticipantId));
41
43
  if (!(validatorParticipant === null || validatorParticipant === void 0 ? void 0 : validatorParticipant.did)) {
42
44
  throw new Error(`Validator participant ${holderParticipant.validatorParticipantId} not resolvable`);
43
45
  }
@@ -61,20 +63,11 @@ class VtFlowOrchestrator {
61
63
  let connectionId;
62
64
  if (existing) {
63
65
  const connection = await this.agent.didcomm.connections.findById(existing.connectionId);
64
- if (connection === null || connection === void 0 ? void 0 : connection.isReady)
66
+ if (connection && (0, utils_1.isUsableConnectionTo)(connection, validatorParticipant.did))
65
67
  connectionId = connection.id;
66
68
  }
67
69
  if (!connectionId) {
68
- const { connectionRecord } = await this.agent.didcomm.oob.receiveImplicitInvitation({
69
- did: validatorParticipant.did,
70
- ourDid: this.agent.did,
71
- label: this.agent.label,
72
- didCommVersion: 'v2',
73
- });
74
- if (!connectionRecord)
75
- throw new Error('Failed to establish DIDComm connection to validator');
76
- const ready = await this.agent.didcomm.connections.returnWhenIsConnected(connectionRecord.id);
77
- connectionId = ready.id;
70
+ connectionId = await (0, utils_1.connectToPublicDid)(this.agent, validatorParticipant.did);
78
71
  }
79
72
  return vtFlowApi.sendOnboardingRequest({
80
73
  connectionId,
@@ -85,8 +78,21 @@ class VtFlowOrchestrator {
85
78
  claims: input.claims,
86
79
  });
87
80
  }
88
- async validateAndOfferCredential(input) {
89
- var _a;
81
+ /**
82
+ * Validate an onboarding process: record the outcome on-chain, accept the onboarding request and
83
+ * move the record to VALIDATED. It sends no credential. Only a HOLDER takes part in a credential
84
+ * exchange; an ISSUER, a VERIFIER or a grantor joins the Ecosystem, and SetParticipantOPToValidated
85
+ * is the whole of it. The caller decides what follows, from the role of the returned participant.
86
+ *
87
+ * For a HOLDER it builds the credential before the chain write, and returns it for
88
+ * offerOnboardingCredential. Claims that do not satisfy the schema, or a schema fetch that fails,
89
+ * must stop the process while the chain holds no outcome yet and the caller can repeat the call.
90
+ *
91
+ * A record that is already VALIDATED and has no credential exchange keeps the chain outcome and
92
+ * only builds the credential again. A repeat call thus re-drives an offer that did not complete.
93
+ */
94
+ async validateOnboardingProcess(input) {
95
+ var _a, _b;
90
96
  const chain = this.requireChain();
91
97
  if (!this.agent.did)
92
98
  throw new Error('Agent has no public DID');
@@ -99,43 +105,79 @@ class VtFlowOrchestrator {
99
105
  if (record.variant !== credo_ts_didcomm_vt_flow_1.VtFlowVariant.OnboardingProcess) {
100
106
  throw new Error(`Record variant is '${record.variant}', expected OnboardingProcess`);
101
107
  }
102
- if (record.state !== credo_ts_didcomm_vt_flow_1.VtFlowState.AwaitingOr) {
103
- throw new Error(`Record state is '${record.state}', expected '${credo_ts_didcomm_vt_flow_1.VtFlowState.AwaitingOr}'`);
108
+ const resumeOffer = record.state === credo_ts_didcomm_vt_flow_1.VtFlowState.Validated && !record.credentialExchangeRecordId;
109
+ if (record.state !== credo_ts_didcomm_vt_flow_1.VtFlowState.AwaitingOr && !resumeOffer) {
110
+ throw new Error(`Record state is '${record.state}', expected '${credo_ts_didcomm_vt_flow_1.VtFlowState.AwaitingOr}', or ` +
111
+ `'${credo_ts_didcomm_vt_flow_1.VtFlowState.Validated}' with no credential exchange`);
104
112
  }
105
113
  if (!record.participantId)
106
114
  throw new Error('Record has no participantId');
107
- const holderParticipantId = Number(record.participantId);
108
- const holderParticipant = await chain.getParticipant(holderParticipantId);
109
- if (!holderParticipant)
110
- throw new Error(`Holder participant ${holderParticipantId} not found on chain`);
111
- if (!holderParticipant.did)
112
- throw new Error('Holder participant has no DID');
113
- const unsignedCredentialJson = await this.buildCredential({
114
- credentialSchemaId: input.credentialSchemaId,
115
- subjectDid: holderParticipant.did,
116
- claims: ((_a = record.claims) !== null && _a !== void 0 ? _a : {}),
117
- credentialType: input.credentialType,
118
- credentialContext: input.credentialContext,
119
- });
115
+ const participantId = Number(record.participantId);
116
+ const participant = await this.agent.indexer.findParticipant(participantId);
117
+ if (!participant)
118
+ throw new Error(`Applicant participant ${participantId} not found on chain`);
119
+ if (!participant.did)
120
+ throw new Error('Applicant participant has no DID');
121
+ const credential = Number(participant.role) === types_2.HOLDER_PARTICIPANT_TYPE
122
+ ? await this.buildCredential({
123
+ credentialSchemaId: (_a = input.credentialSchemaId) !== null && _a !== void 0 ? _a : String(participant.schemaId),
124
+ subjectDid: participant.did,
125
+ claims: ((_b = record.claims) !== null && _b !== void 0 ? _b : {}),
126
+ credentialType: input.credentialType,
127
+ credentialContext: input.credentialContext,
128
+ })
129
+ : undefined;
130
+ if (resumeOffer)
131
+ return { record, participant, credential };
120
132
  // op_summary_digest (MOD-PP-MSG-3) digests the applicant's submission, not the credential
121
- await chain.setParticipantOPToValidated({
122
- id: holderParticipantId,
123
- corporation: holderParticipant.corporation,
124
- });
133
+ await chain.setParticipantOPToValidated({ id: participantId, corporation: participant.corporation });
125
134
  await vtFlowApi.acceptOnboardingRequest(record.id);
126
- await vtFlowApi.markValidated(record.id);
135
+ const validated = await vtFlowApi.markValidated(record.id);
136
+ return { record: validated, participant, credential };
137
+ }
138
+ /**
139
+ * Offer the credential of an onboarding process to its applicant. Call it only for a HOLDER, and
140
+ * only after validateOnboardingProcess has moved the record to VALIDATED. Give it the credential
141
+ * that validateOnboardingProcess built, so that the process does not build the credential twice.
142
+ */
143
+ async offerOnboardingCredential(input) {
144
+ var _a, _b, _c, _d;
145
+ this.requireChain();
146
+ const vtFlowApi = this.resolveVtFlowApi();
147
+ const record = await vtFlowApi.findById(input.vtFlowRecordId);
148
+ if (!record)
149
+ throw new Error(`vt-flow record ${input.vtFlowRecordId} not found`);
150
+ if (!record.participantId)
151
+ throw new Error('Record has no participantId');
152
+ const participant = (_a = input.participant) !== null && _a !== void 0 ? _a : (await this.agent.indexer.findParticipant(Number(record.participantId)));
153
+ if (!(participant === null || participant === void 0 ? void 0 : participant.did))
154
+ throw new Error('Applicant participant has no DID');
155
+ const unsignedCredentialJson = (_b = input.credential) !== null && _b !== void 0 ? _b : (await this.buildCredential({
156
+ credentialSchemaId: (_c = input.credentialSchemaId) !== null && _c !== void 0 ? _c : String(participant.schemaId),
157
+ subjectDid: participant.did,
158
+ claims: ((_d = record.claims) !== null && _d !== void 0 ? _d : {}),
159
+ credentialType: input.credentialType,
160
+ credentialContext: input.credentialContext,
161
+ }));
162
+ // W3C Data Integrity attachment format (RFC 0809). The applicant DID is the credential subject
163
+ // and the exchange runs over its authenticated connection, so no extra binding is required. The
164
+ // cryptosuite is the issuer's choice and is applied when the credential is issued.
127
165
  const { record: offered } = await vtFlowApi.offerCredentialForSession({
128
166
  vtFlowRecordId: record.id,
129
- issuerParticipantId: Number(holderParticipant.validatorParticipantId),
167
+ issuerParticipantId: Number(participant.validatorParticipantId),
130
168
  credentialFormats: {
131
- jsonld: {
132
- credential: unsignedCredentialJson,
133
- options: { proofType: 'Ed25519Signature2020', proofPurpose: 'assertionMethod' },
134
- },
169
+ dataIntegrity: { credential: unsignedCredentialJson, bindingRequired: false },
135
170
  },
136
171
  });
137
172
  return offered;
138
173
  }
174
+ /**
175
+ * Close an onboarding process that carries no credential exchange, on the validator side. The
176
+ * applicant reaches the same state from the SetParticipantOPToValidated chain event.
177
+ */
178
+ async completeOnboardingProcess(vtFlowRecordId) {
179
+ return this.resolveVtFlowApi().markCompleted(vtFlowRecordId);
180
+ }
139
181
  async acceptCredential(input) {
140
182
  const vtFlowApi = this.resolveVtFlowApi();
141
183
  const record = await vtFlowApi.findById(input.vtFlowRecordId);
@@ -154,7 +196,7 @@ class VtFlowOrchestrator {
154
196
  const chain = this.requireChain();
155
197
  if (!this.agent.did)
156
198
  throw new Error('Agent has no public DID');
157
- const indexer = this.requireIndexer();
199
+ const indexer = this.agent.indexer;
158
200
  const vtFlowApi = this.resolveVtFlowApi();
159
201
  const record = await vtFlowApi.findById(vtFlowRecordId);
160
202
  if (!record)
@@ -185,47 +227,48 @@ class VtFlowOrchestrator {
185
227
  });
186
228
  return {
187
229
  credentialFormats: {
188
- jsonld: {
189
- credential: unsignedCredentialJson,
190
- options: { proofType: 'Ed25519Signature2020', proofPurpose: 'assertionMethod' },
191
- },
230
+ dataIntegrity: { credential: unsignedCredentialJson, bindingRequired: false },
192
231
  },
193
232
  issuerParticipantId: issuer.id,
194
233
  };
195
234
  }
235
+ /**
236
+ * Builds the unsigned VC Data Model 2.0 credential that goes into the offer. RFC 0809 derives the
237
+ * advertised data model version from its context, and the issuer secures it with a
238
+ * DataIntegrityProof once the applicant requests it.
239
+ */
196
240
  async buildCredential(input) {
197
- var _a, _b, _c;
198
- const chain = this.requireChain();
199
- const didRecords = await this.agent.dids.getCreatedDids({ did: this.agent.did });
200
- const didRecord = didRecords[0];
201
- if (!didRecord)
202
- throw new Error('Agent DID record not found');
203
- const schemaRef = `vpr:verana:${chain.getChainId}:cs:${input.credentialSchemaId}`;
204
- const entry = await (0, utils_1.findMetadataEntry)(didRecord, '_vt/jsc', '', schemaRef);
205
- if (!entry)
206
- throw new Error(`No stored VTJSC found for ${schemaRef}`);
207
- const { data } = entry;
208
- const unsignedCredential = (0, utils_1.createCredential)({
241
+ var _a;
242
+ const jsonSchemaCredentialId = await this.resolveJsonSchemaCredentialId(input.credentialSchemaId);
243
+ // A credential whose claims don't satisfy the schema's required fields is not a valid
244
+ // instance of that credential type — reject it here rather than issue an empty shell.
245
+ const schema = await this.agent.indexer.getCredentialSchema(input.credentialSchemaId);
246
+ (0, utils_1.validateSchema)(JSON.parse(schema.json_schema), Object.assign({ id: input.subjectDid }, input.claims));
247
+ // Data model 2.0 holds the claims on the credential subject itself; the applicant DID wins over
248
+ // any `id` claim so the credential can never name a different subject
249
+ const unsignedCredential = (0, utils_1.createW3cV2Credential)({
209
250
  id: `${this.agent.did}#${core_1.utils.uuid()}`,
210
251
  type: (_a = input.credentialType) !== null && _a !== void 0 ? _a : ['VerifiableCredential', 'VerifiableTrustCredential'],
211
252
  issuer: this.agent.did,
212
- credentialSubject: { id: input.subjectDid, claims: input.claims },
253
+ context: input.credentialContext,
254
+ credentialSubject: Object.assign(Object.assign({}, input.claims), { id: input.subjectDid }),
255
+ credentialSchema: { id: jsonSchemaCredentialId, type: 'JsonSchemaCredential' },
213
256
  });
214
- if (input.credentialContext)
215
- unsignedCredential.context = input.credentialContext;
216
- unsignedCredential.credentialSchema = {
217
- id: (_c = (_b = data.verifiableCredential) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.id,
218
- type: 'JsonSchemaCredential',
219
- };
220
- return core_1.JsonTransformer.toJSON(unsignedCredential);
257
+ return (0, utils_1.toOfferedCredentialJson)(unsignedCredential);
258
+ }
259
+ async resolveJsonSchemaCredentialId(credentialSchemaId) {
260
+ return (0, utils_1.resolveJsonSchemaCredentialId)(this.agent, this.agent.indexer, credentialSchemaId, this.requireChain().getChainId);
221
261
  }
222
262
  /** Per the spec the algorithm comes from the schema, never from the digest value. */
223
263
  async digestAlgorithmForSchema(schemaId) {
224
- const schema = await this.requireIndexer().getCredentialSchema(schemaId);
264
+ return (await this.credentialSchema(schemaId)).digestAlgorithm;
265
+ }
266
+ async credentialSchema(schemaId) {
267
+ const schema = await this.agent.indexer.getCredentialSchema(schemaId);
225
268
  if (!schema.digest_algorithm) {
226
269
  throw new Error(`Credential schema ${schemaId} has no digest_algorithm`);
227
270
  }
228
- return schema.digest_algorithm;
271
+ return { digestAlgorithm: schema.digest_algorithm, ecsKey: await (0, vs_agent_model_1.classifyEcsSchema)(schema.json_schema) };
229
272
  }
230
273
  /** Fired after signing and before delivery, so a failure here must abort the issuance. */
231
274
  async onCredentialIssued(vtFlowRecordId, signedCredential) {
@@ -238,7 +281,7 @@ class VtFlowOrchestrator {
238
281
  if (record.issuerParticipantId == null) {
239
282
  throw new Error(`vt-flow record ${vtFlowRecordId} has no issuerParticipantId to anchor against`);
240
283
  }
241
- const issuer = await this.requireIndexer().getParticipant(record.issuerParticipantId);
284
+ const issuer = await this.agent.indexer.getParticipant(record.issuerParticipantId);
242
285
  const algorithm = await this.digestAlgorithmForSchema(issuer.schema_id);
243
286
  const digest = (0, verre_1.computeCredentialDigestJCS)(signedCredential, algorithm);
244
287
  await chain.createOrUpdateParticipantSession({
@@ -261,7 +304,7 @@ class VtFlowOrchestrator {
261
304
  if (!record.credentialExchangeRecordId) {
262
305
  throw new Error('Record has no credentialExchangeRecordId; nothing to verify');
263
306
  }
264
- const indexer = this.requireIndexer();
307
+ const indexer = this.agent.indexer;
265
308
  const session = await indexer.getParticipantSession(record.participantSessionId);
266
309
  if (!session) {
267
310
  throw new Error(`ParticipantSession ${record.participantSessionId} not found on indexer`);
@@ -282,13 +325,15 @@ class VtFlowOrchestrator {
282
325
  if (record.schemaId != null && Number(issuer.schema_id) !== Number(record.schemaId)) {
283
326
  throw new Error(`Issuer participant schema ${issuer.schema_id} does not match credential schema ${record.schemaId}`);
284
327
  }
285
- const credentialJson = await this.getOfferedCredentialJson(record.credentialExchangeRecordId);
286
- const algorithm = await this.digestAlgorithmForSchema(issuer.schema_id);
287
- const digest = (0, verre_1.computeCredentialDigestJCS)(credentialJson, algorithm);
328
+ const credentialJson = await this.getReceivedCredentialJson(record.credentialExchangeRecordId);
329
+ const { digestAlgorithm, ecsKey } = await this.credentialSchema(issuer.schema_id);
330
+ const digest = (0, verre_1.computeCredentialDigestJCS)(credentialJson, digestAlgorithm);
288
331
  const anchored = await indexer.getDigest(digest);
289
332
  if (!anchored) {
290
333
  throw new Error(`Credential digest ${digest} is not anchored on-chain`);
291
334
  }
335
+ if (ecsKey)
336
+ await vtFlowApi.setEcsSchemaKey(record.id, ecsKey);
292
337
  }
293
338
  async onCredentialRevoked(vtFlowRecordId) {
294
339
  const vtFlowApi = this.resolveVtFlowApi();
@@ -297,7 +342,7 @@ class VtFlowOrchestrator {
297
342
  return;
298
343
  if (!this.options.publicApiBaseUrl || !record.credentialExchangeRecordId)
299
344
  return;
300
- const credentialId = await (0, utils_1.removeStoredTrustCredential)(this.agent, this.options.publicApiBaseUrl, record.credentialExchangeRecordId);
345
+ const credentialId = await (0, utils_1.removeStoredTrustCredential)(this.agent, record.credentialExchangeRecordId);
301
346
  if (credentialId) {
302
347
  this.agent.config.logger.info(`[vt-flow] removed revoked credential and its linked VP (${credentialId})`);
303
348
  }
@@ -322,22 +367,25 @@ class VtFlowOrchestrator {
322
367
  return;
323
368
  await chain.triggerResolver(Number(record.participantId));
324
369
  }
325
- async getOfferedCredentialJson(credentialExchangeRecordId) {
326
- var _a;
370
+ /** The signed credential as the issuer attached it, which is the exact JSON its digest covers. */
371
+ async getReceivedCredentialJson(credentialExchangeRecordId) {
372
+ var _a, _b;
327
373
  const formatData = await this.agent.didcomm.credentials.getFormatData(credentialExchangeRecordId);
328
- const credentialJson = (_a = formatData.credential) === null || _a === void 0 ? void 0 : _a.jsonld;
374
+ const credentialJson = (_b = (_a = formatData.credential) === null || _a === void 0 ? void 0 : _a.dataIntegrity) === null || _b === void 0 ? void 0 : _b.credential;
329
375
  if (!credentialJson)
330
- throw new Error('Offered credential has no JSON-LD body to verify');
376
+ throw new Error('Received credential has no data integrity credential body');
331
377
  return credentialJson;
332
378
  }
333
- requireIndexer() {
334
- if (!this.options.indexer) {
335
- throw new Error('Agent has no indexer configured (set VERANA_INDEXER_BASE_URL)');
336
- }
337
- return this.options.indexer;
379
+ // VS-CONN-VS gate: consulted only after trust resolution rejected the peer.
380
+ async checkEcsIssuanceExemption(context) {
381
+ return (0, ecsIssuanceExemption_1.isEcsIssuanceExempt)({
382
+ indexer: this.agent.indexer,
383
+ agent: this.agent,
384
+ trustedEcosystemDids: this.agent.trustedEcosystemDids,
385
+ }, context);
338
386
  }
339
387
  async publishCredentialAsLinkedVp(vtFlowRecordId) {
340
- var _a, _b;
388
+ var _a;
341
389
  if (!this.options.publicApiBaseUrl) {
342
390
  throw new Error('publicApiBaseUrl is required to publish a LinkedVerifiablePresentation');
343
391
  }
@@ -350,18 +398,18 @@ class VtFlowOrchestrator {
350
398
  if (!record.credentialExchangeRecordId) {
351
399
  throw new Error(`vt-flow record ${vtFlowRecordId} has no credentialExchangeRecordId`);
352
400
  }
353
- const formatData = await this.agent.didcomm.credentials.getFormatData(record.credentialExchangeRecordId);
354
- const jsonld = (_a = formatData.credential) === null || _a === void 0 ? void 0 : _a.jsonld;
355
- if (!jsonld) {
356
- throw new Error(`No jsonld credential in exchange ${record.credentialExchangeRecordId}`);
357
- }
358
- const schemaRef = (_b = jsonld.credentialSchema) === null || _b === void 0 ? void 0 : _b.id;
401
+ const credentialJson = await this.getReceivedCredentialJson(record.credentialExchangeRecordId);
402
+ const schemaRef = (_a = credentialJson.credentialSchema) === null || _a === void 0 ? void 0 : _a.id;
359
403
  const schemaBaseId = schemaRef ? this.extractSchemaBaseId(schemaRef) : undefined;
360
404
  if (!schemaBaseId) {
361
405
  throw new Error(`Cannot publish Linked VP: credential has no extractable schema base id (credentialSchema.id=${schemaRef !== null && schemaRef !== void 0 ? schemaRef : 'undefined'})`);
362
406
  }
363
- const w3cCredential = core_1.JsonTransformer.fromJSON(jsonld, core_1.W3cJsonLdVerifiableCredential);
364
- await (0, utils_1.createVtc)(this.agent, this.options.publicApiBaseUrl, schemaBaseId, w3cCredential);
407
+ // A data model 2.0 credential arrives secured with a DataIntegrityProof; a validator still on
408
+ // data model 1.1 sends a linked data proof, and both are published the same way
409
+ const credential = (0, utils_1.isVcdm2Credential)(credentialJson)
410
+ ? core_1.W3cV2DataIntegrityVerifiableCredential.fromObject(credentialJson)
411
+ : core_1.JsonTransformer.fromJSON(credentialJson, core_1.W3cJsonLdVerifiableCredential);
412
+ await (0, utils_1.createVtc)(this.agent, this.options.publicApiBaseUrl, record.ecsSchemaKey ? (0, utils_1.linkedVpSchemaId)(record.ecsSchemaKey) : schemaBaseId, credential);
365
413
  }
366
414
  extractSchemaBaseId(jscUrl) {
367
415
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"VtFlowOrchestrator.js","sourceRoot":"","sources":["../../src/vtFlow/VtFlowOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VtFlowOrchestrator.js","sourceRoot":"","sources":["../../src/vtFlow/VtFlowOrchestrator.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,22 +2,62 @@
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
- if (!verified) {
18
- logger.warn(`[vt-flow] VS-CONN-VS rejected '${peerDid}': ${outcome} ${(_b = metadata === null || metadata === void 0 ? void 0 : metadata.errorMessage) !== null && _b !== void 0 ? _b : ''}`);
53
+ const trusted = verified && outcome === verre_1.TrustResolutionOutcome.VERIFIED;
54
+ if (!trusted) {
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}`);
19
59
  }
20
- return verified;
60
+ return trusted;
21
61
  }
22
62
  catch (error) {
23
63
  logger.warn(`[vt-flow] VS-CONN-VS resolution failed for '${peerDid}': ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"assertVerifiableService.js","sourceRoot":"","sources":["../../src/vtFlow/assertVerifiableService.ts"],"names":[],"mappings":";;AAYA,0DAqBC;AA7BD,8CAA8D;AAO9D,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,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,MAAM,OAAO,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,mCAAI,EAAE,EAAE,CAAC,CAAA;YACvG,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,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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"}
@@ -0,0 +1,12 @@
1
+ import type { BaseLogger } from '@credo-ts/core';
2
+ import type { VtFlowEcsIssuanceExemptionContext } from '@verana-labs/credo-ts-didcomm-vt-flow';
3
+ import { VeranaIndexerService } from '../blockchain/VeranaIndexerService';
4
+ export interface EcsIssuanceExemptionOptions {
5
+ indexer: VeranaIndexerService;
6
+ agent: {
7
+ readonly did?: string;
8
+ };
9
+ trustedEcosystemDids?: string[];
10
+ logger?: BaseLogger;
11
+ }
12
+ export declare function isEcsIssuanceExempt(options: EcsIssuanceExemptionOptions, { agentContext, peerDid, purpose }: VtFlowEcsIssuanceExemptionContext): Promise<boolean>;