@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
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signLinkedDataIntegrityPresentation = signLinkedDataIntegrityPresentation;
3
4
  exports.findMetadataEntry = findMetadataEntry;
4
5
  exports.saveMetadataEntry = saveMetadataEntry;
5
6
  exports.deleteMetadataEntry = deleteMetadataEntry;
@@ -8,16 +9,90 @@ exports.createJsc = createJsc;
8
9
  exports.removeTrustCredential = removeTrustCredential;
9
10
  exports.removeStoredTrustCredential = removeStoredTrustCredential;
10
11
  exports.migrateVtjscServiceIds = migrateVtjscServiceIds;
12
+ exports.detachVtjscPublications = detachVtjscPublications;
13
+ exports.reattachVtjscPublication = reattachVtjscPublication;
11
14
  exports.getTrustMetadata = getTrustMetadata;
12
15
  exports.rebindEcsCredentialSchema = rebindEcsCredentialSchema;
16
+ exports.withdrawSelfIssuedEcsCredentials = withdrawSelfIssuedEcsCredentials;
13
17
  const core_1 = require("@credo-ts/core");
18
+ // No type definitions available for this library
19
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
20
+ //@ts-expect-error
21
+ const jsonld_signatures_1 = require("@digitalcredentials/jsonld-signatures");
22
+ const verre_1 = require("@verana-labs/verre");
14
23
  const adminApiService_1 = require("../did/adminApiService");
15
24
  const setupSelfTr_1 = require("./setupSelfTr");
25
+ const selfIssuedEcsCredential_1 = require("./selfIssuedEcsCredential");
16
26
  const data_1 = require("./data");
17
27
  async function getDidRecord(agent) {
18
28
  const [didRecord] = await agent.dids.getCreatedDids({ did: agent.did });
19
29
  return didRecord;
20
30
  }
31
+ /** The credential fields shared by both data models: id, credentialSchema and credentialSubject */
32
+ function trustCredentialFields(credential) {
33
+ return credential instanceof core_1.W3cV2DataIntegrityVerifiableCredential
34
+ ? credential.resolvedCredential
35
+ : credential;
36
+ }
37
+ /**
38
+ * What the metadata entry stores and the DID Document service endpoint serves. A data model 1.1
39
+ * presentation is kept as its class instance, which serializes to JSON-LD when the DID record is
40
+ * saved; a Data Integrity one wraps the secured JSON, so that is what gets stored.
41
+ */
42
+ function trustCredentialEntry(credential) {
43
+ return credential instanceof core_1.W3cV2DataIntegrityVerifiableCredential
44
+ ? credential.securedCredential
45
+ : credential.jsonCredential;
46
+ }
47
+ function trustPresentationEntry(presentation) {
48
+ return presentation instanceof core_1.W3cV2DataIntegrityVerifiablePresentation
49
+ ? presentation.securedPresentation
50
+ : presentation;
51
+ }
52
+ function trustPresentationId(presentation) {
53
+ return presentation instanceof core_1.W3cV2DataIntegrityVerifiablePresentation
54
+ ? presentation.securedPresentation.id
55
+ : presentation.id;
56
+ }
57
+ /**
58
+ * Wraps a VC Data Model 2.0 credential in a data model 2.0 presentation secured with a
59
+ * DataIntegrityProof under the cryptosuite the agent is configured with, the counterpart of the
60
+ * linked data proof a data model 1.1 linked VP carries. The presentation is published from the DID
61
+ * Document rather than presented to a verifier, so there is no challenge to bind; its proof purpose
62
+ * is `authentication`, as Data Integrity defines for presentations.
63
+ */
64
+ async function signLinkedDataIntegrityPresentation(agent, options) {
65
+ const presentation = new core_1.W3cV2Presentation({
66
+ id: options.id,
67
+ holder: options.holder,
68
+ verifiableCredential: [options.credential],
69
+ });
70
+ // The options type requires a challenge for every presentation format, while a Data Integrity
71
+ // proof only carries one when it is given
72
+ return await agent.w3cV2Credentials.signPresentation({
73
+ format: core_1.ClaimFormat.DiVp,
74
+ presentation,
75
+ cryptosuite: (0, setupSelfTr_1.getDataIntegrityCryptosuite)(agent),
76
+ verificationMethod: options.verificationMethodId,
77
+ });
78
+ }
79
+ /**
80
+ * Wraps a VC Data Model 1.1 credential in a data model 1.1 presentation carrying an
81
+ * Ed25519Signature2020 linked data proof, for credentials received from issuers that still use it.
82
+ */
83
+ async function signLinkedDataProofPresentation(agent, options) {
84
+ return await agent.w3cCredentials.signPresentation({
85
+ format: core_1.ClaimFormat.LdpVp,
86
+ presentation: new core_1.W3cPresentation({
87
+ id: options.id,
88
+ holder: options.holder,
89
+ verifiableCredential: [options.credential],
90
+ }),
91
+ proofType: 'Ed25519Signature2020',
92
+ verificationMethod: options.verificationMethodId,
93
+ proofPurpose: new jsonld_signatures_1.purposes.AssertionProofPurpose(),
94
+ });
95
+ }
21
96
  async function updateDidRecord(agent, didRecord) {
22
97
  const repo = agent.context.dependencyManager.resolve(core_1.DidRepository);
23
98
  (0, adminApiService_1.applyAdminApiServiceEntry)(didRecord.didDocument, agent.adminApiServiceEndpoint);
@@ -31,31 +106,35 @@ function findMetadataEntry(didRecord, key, id, jsonSchemaRef) {
31
106
  return null;
32
107
  if (!id && !jsonSchemaRef)
33
108
  return { schemaId: '', data: metadata, didDocumentServiceId: '' };
34
- for (const [schemaId, entry] of Object.entries(metadata)) {
35
- if (schemaId === jsonSchemaRef) {
36
- return Object.assign(Object.assign({ schemaId }, entry), { data: entry.verifiablePresentation });
37
- }
38
- const credId = (_a = entry.credential) === null || _a === void 0 ? void 0 : _a.id;
39
- const presId = (_b = entry.verifiablePresentation) === null || _b === void 0 ? void 0 : _b.id;
40
- if (credId === id) {
109
+ const entries = Object.entries(metadata);
110
+ // the metadata key identifies one entry, so it answers before any preference between entries
111
+ const exact = jsonSchemaRef ? entries.find(([schemaId]) => schemaId === jsonSchemaRef) : undefined;
112
+ if (exact)
113
+ return Object.assign(Object.assign({ schemaId: exact[0] }, exact[1]), { data: exact[1].verifiablePresentation });
114
+ const match = ([schemaId, entry]) => {
115
+ var _a, _b;
116
+ if (((_a = entry.credential) === null || _a === void 0 ? void 0 : _a.id) === id)
41
117
  return Object.assign(Object.assign({ schemaId }, entry), { data: entry.credential });
42
- }
43
- if (presId === id) {
118
+ if (((_b = entry.verifiablePresentation) === null || _b === void 0 ? void 0 : _b.id) === id)
44
119
  return Object.assign(Object.assign({ schemaId }, entry), { data: entry.verifiablePresentation });
45
- }
46
- }
47
- return null;
120
+ return null;
121
+ };
122
+ // several entries can carry the same presentation URL while a binding is replaced, so the entry
123
+ // the DID Document announces wins over a detached leftover
124
+ const matched = entries.map(match).filter(entry => entry !== null);
125
+ return (_b = (_a = matched.find(entry => entry.attached !== false)) !== null && _a !== void 0 ? _a : matched[0]) !== null && _b !== void 0 ? _b : null;
48
126
  }
49
- async function saveMetadataEntry(agent, didRecord, credential, verifiablePresentation, didDocumentServiceId, key, publicApiBaseUrl) {
50
- var _a, _b, _c, _d, _e, _f, _g, _h;
51
- const schema = key === '_vt/vtc' ? credential.credentialSchema : credential.credentialSubject;
127
+ async function saveMetadataEntry(agent, didRecord, credential, verifiablePresentation, didDocumentServiceId, key) {
128
+ var _a, _b, _c, _d, _e;
129
+ const fields = trustCredentialFields(credential);
130
+ const schema = key === '_vt/vtc' ? fields.credentialSchema : fields.credentialSubject;
52
131
  const ref = Array.isArray(schema) ? (_a = schema[0]) === null || _a === void 0 ? void 0 : _a.id : schema === null || schema === void 0 ? void 0 : schema.id;
53
132
  if (!ref) {
54
133
  throw new Error('No ID was found in credentialSubject');
55
134
  }
56
135
  const record = (_b = didRecord.metadata.get(key)) !== null && _b !== void 0 ? _b : {};
57
136
  // Remove previous entry for this credential ID (if exists)
58
- const found = findMetadataEntry(didRecord, key, credential.id, ref);
137
+ const found = findMetadataEntry(didRecord, key, fields.id, ref);
59
138
  if (found) {
60
139
  if ((_c = didRecord.didDocument) === null || _c === void 0 ? void 0 : _c.service) {
61
140
  didRecord.didDocument.service = didRecord.didDocument.service.filter(s => s.id !== found.didDocumentServiceId);
@@ -63,25 +142,19 @@ async function saveMetadataEntry(agent, didRecord, credential, verifiablePresent
63
142
  delete record[found.schemaId];
64
143
  }
65
144
  record[ref] = {
66
- credential: credential.jsonCredential,
67
- verifiablePresentation,
145
+ credential: trustCredentialEntry(credential),
146
+ verifiablePresentation: trustPresentationEntry(verifiablePresentation),
68
147
  didDocumentServiceId,
69
148
  };
70
149
  (_e = (_d = didRecord.didDocument) === null || _d === void 0 ? void 0 : _d.service) === null || _e === void 0 ? void 0 : _e.push(new core_1.DidDocumentService({
71
150
  id: didDocumentServiceId,
72
- serviceEndpoint: verifiablePresentation.id,
151
+ serviceEndpoint: trustPresentationId(verifiablePresentation),
73
152
  type: 'LinkedVerifiablePresentation',
74
153
  }));
75
154
  didRecord.metadata.set(key, record);
76
- // Update #whois with new endpoint
77
- const service = (_g = (_f = didRecord.didDocument) === null || _f === void 0 ? void 0 : _f.service) === null || _g === void 0 ? void 0 : _g.find(s => s.id === `${agent.did}#whois`);
78
- if (service && ((_h = verifiablePresentation.id) === null || _h === void 0 ? void 0 : _h.includes('service')))
79
- service.serviceEndpoint = verifiablePresentation.id;
80
- // When a new VTC has been added, remove the self VTCs
81
- updateVtcEntries(didRecord, false, publicApiBaseUrl);
82
155
  await updateDidRecord(agent, didRecord);
83
156
  }
84
- async function deleteMetadataEntry(agent, id, didRecord, key, publicApiBaseUrl) {
157
+ async function deleteMetadataEntry(agent, id, didRecord, key) {
85
158
  const found = findMetadataEntry(didRecord, key, id, id);
86
159
  if (!found)
87
160
  return null;
@@ -90,66 +163,22 @@ async function deleteMetadataEntry(agent, id, didRecord, key, publicApiBaseUrl)
90
163
  return null;
91
164
  delete metadata[found.schemaId];
92
165
  didRecord.metadata.set(key, metadata);
93
- // If the last entry is removed, restore defaults
94
- restoreDefaultVtcEntries(didRecord, publicApiBaseUrl);
95
166
  await updateDidRecord(agent, didRecord);
96
167
  return { schemaId: found.schemaId };
97
168
  }
98
- function restoreDefaultVtcEntries(didRecord, publicApiBaseUrl) {
99
- var _a, _b;
100
- const vtc = (_a = didRecord.metadata.get('_vt/vtc')) !== null && _a !== void 0 ? _a : {};
101
- const jsc = (_b = didRecord.metadata.get('_vt/jsc')) !== null && _b !== void 0 ? _b : {};
102
- // By default we have 2 Self-trusted VTCs
103
- if (Object.keys(vtc).length < 3 && Object.keys(jsc).length < 3) {
104
- updateVtcEntries(didRecord, true, publicApiBaseUrl);
105
- }
106
- }
107
- function updateVtcEntries(didRecord, attach, publicApiBaseUrl) {
108
- var _a;
109
- const record = (_a = didRecord.metadata.get('_vt/vtc')) !== null && _a !== void 0 ? _a : {};
110
- setupSelfTr_1.presentations.forEach(p => {
111
- var _a, _b, _c, _d;
112
- const schemaId = (0, setupSelfTr_1.mapToSelfTr)(p.schemaUrl, publicApiBaseUrl);
113
- const current = record[schemaId];
114
- if ((current === null || current === void 0 ? void 0 : current.attached) === attach)
115
- return;
116
- record[schemaId] = Object.assign(Object.assign({}, current), { attached: attach });
117
- const serviceId = current === null || current === void 0 ? void 0 : current.didDocumentServiceId;
118
- const serviceEndpoint = (_a = current === null || current === void 0 ? void 0 : current.verifiablePresentation) === null || _a === void 0 ? void 0 : _a.id;
119
- if (!((_b = didRecord.didDocument) === null || _b === void 0 ? void 0 : _b.service))
120
- return;
121
- if (attach) {
122
- const alreadyExists = didRecord.didDocument.service.some(s => s.id === serviceId);
123
- if (!alreadyExists && serviceId && serviceEndpoint) {
124
- didRecord.didDocument.service.push(new core_1.DidDocumentService({
125
- id: serviceId,
126
- serviceEndpoint,
127
- type: 'LinkedVerifiablePresentation',
128
- }));
129
- }
130
- // Return to self-trusted VTC in #whois endpoint
131
- const service = (_d = (_c = didRecord.didDocument) === null || _c === void 0 ? void 0 : _c.service) === null || _d === void 0 ? void 0 : _d.find(s => s.id === `${didRecord.did}#whois`);
132
- if (service && (serviceEndpoint === null || serviceEndpoint === void 0 ? void 0 : serviceEndpoint.includes('service')))
133
- service.serviceEndpoint = serviceEndpoint;
134
- }
135
- else {
136
- didRecord.didDocument.service = didRecord.didDocument.service.filter(s => s.id !== serviceId);
137
- }
138
- });
139
- didRecord.metadata.set('_vt/vtc', record);
140
- }
141
169
  async function createVtc(agent, publicApiBaseUrl, id, credential) {
142
170
  const didRecord = await getDidRecord(agent);
143
171
  const schemaId = `schemas-${id}-vtc-vp.json`;
144
172
  const didDocumentServiceId = `${agent.did}#vpr-${schemaId.replace('.json', '')}`;
145
173
  const serviceEndpoint = `${publicApiBaseUrl}/vt/${schemaId}`;
146
- const unsignedPresentation = (0, setupSelfTr_1.createPresentation)({
147
- id: serviceEndpoint,
148
- holder: agent.did,
149
- verifiableCredential: [credential],
150
- });
151
- const verifiablePresentation = await (0, setupSelfTr_1.signerW3c)(agent, unsignedPresentation, (0, setupSelfTr_1.getVerificationMethodId)(agent.config.logger, didRecord));
152
- await saveMetadataEntry(agent, didRecord, credential, verifiablePresentation, didDocumentServiceId, '_vt/vtc', publicApiBaseUrl);
174
+ const verificationMethodId = (0, setupSelfTr_1.getVerificationMethodId)(agent.config.logger, didRecord);
175
+ // The linked VP takes the data model of the credential it carries: a Data Integrity credential
176
+ // cannot be embedded in a data model 1.1 presentation, nor the other way round
177
+ const linkedVp = { id: serviceEndpoint, holder: agent.did, verificationMethodId };
178
+ const verifiablePresentation = credential instanceof core_1.W3cV2DataIntegrityVerifiableCredential
179
+ ? await signLinkedDataIntegrityPresentation(agent, Object.assign(Object.assign({}, linkedVp), { credential }))
180
+ : await signLinkedDataProofPresentation(agent, Object.assign(Object.assign({}, linkedVp), { credential }));
181
+ await saveMetadataEntry(agent, didRecord, credential, verifiablePresentation, didDocumentServiceId, '_vt/vtc');
153
182
  return verifiablePresentation;
154
183
  }
155
184
  async function createJsc(agent, publicApiBaseUrl, ecsSchemas, options) {
@@ -158,53 +187,69 @@ async function createJsc(agent, publicApiBaseUrl, ecsSchemas, options) {
158
187
  const { id: subjectId, claims } = (0, setupSelfTr_1.createJsonSubjectRef)(jsonSchemaRef);
159
188
  const subjectClaims = precomputedDigestSRI
160
189
  ? Object.assign(Object.assign({}, claims), { digestSRI: precomputedDigestSRI }) : await (0, setupSelfTr_1.addDigestSRI)(subjectId, claims, ecsSchemas);
161
- const credentialSubject = {
162
- id: subjectId,
163
- claims: subjectClaims,
164
- };
190
+ const credentialSubject = Object.assign(Object.assign({}, subjectClaims), { id: subjectId });
165
191
  const schemaPresentation = `schemas-${schemaBaseId}-vtjsc-vp.json`;
166
192
  const schemaCredential = `schemas-${schemaBaseId}-jsc.json`;
167
193
  const serviceEndpoint = `${publicApiBaseUrl}/vt/${schemaPresentation}`;
168
194
  const didDocumentServiceId = `${agent.did}#vpr-schemas-${schemaBaseId}-vtjsc-vp`;
195
+ const credentialId = `${publicApiBaseUrl}/vt/${schemaCredential}`;
169
196
  const unsignedCredential = (0, setupSelfTr_1.createCredential)({
170
- id: `${publicApiBaseUrl}/vt/${schemaCredential}`,
197
+ id: credentialId,
171
198
  type: ['VerifiableCredential', 'JsonSchemaCredential'],
172
199
  issuer: agent.did,
173
200
  credentialSubject,
201
+ credentialSchema: await (0, setupSelfTr_1.addDigestSRI)(setupSelfTr_1.createJsonSchema.id, { id: setupSelfTr_1.createJsonSchema.id, type: setupSelfTr_1.createJsonSchema.type }, ecsSchemas),
174
202
  });
175
- unsignedCredential.credentialSchema = await (0, setupSelfTr_1.addDigestSRI)(setupSelfTr_1.createJsonSchema.id, setupSelfTr_1.createJsonSchema, ecsSchemas);
176
203
  const verificationMethodId = (0, setupSelfTr_1.getVerificationMethodId)(agent.config.logger, didRecord);
177
- const credential = await (0, setupSelfTr_1.signerW3c)(agent, core_1.JsonTransformer.fromJSON(unsignedCredential, core_1.W3cCredential), verificationMethodId);
178
- const unsignedPresentation = (0, setupSelfTr_1.createPresentation)({
204
+ const credential = await (0, setupSelfTr_1.signerW3c)(agent, unsignedCredential, verificationMethodId);
205
+ const verifiablePresentation = await signLinkedDataIntegrityPresentation(agent, {
179
206
  id: serviceEndpoint,
180
207
  holder: agent.did,
181
- verifiableCredential: [credential],
208
+ credential,
209
+ verificationMethodId,
182
210
  });
183
- const verifiablePresentation = await (0, setupSelfTr_1.signerW3c)(agent, unsignedPresentation, verificationMethodId);
184
- await saveMetadataEntry(agent, didRecord, credential, verifiablePresentation, didDocumentServiceId, '_vt/jsc', publicApiBaseUrl);
185
- return credential.jsonCredential;
211
+ await saveMetadataEntry(agent, didRecord, credential, verifiablePresentation, didDocumentServiceId, '_vt/jsc');
212
+ // the credential as published; its id is the one assigned above
213
+ return credential.securedCredential;
186
214
  }
187
- async function removeTrustCredential(agent, publicApiBaseUrl, schemaId, key) {
215
+ async function removeTrustCredential(agent, schemaId, key) {
188
216
  var _a;
189
217
  const didRecord = await getDidRecord(agent);
190
- const record = findMetadataEntry(didRecord, key, schemaId);
218
+ // same lookup deleteMetadataEntry performs: a self-issued entry carries the agent DID as
219
+ // credential id, so only its metadata key reaches it
220
+ const record = findMetadataEntry(didRecord, key, schemaId, schemaId);
191
221
  // Currently, we only use one serviceEndpoint per ID.
192
222
  // In the future, if multiple serviceEndpoints exist for the same ID,
193
223
  // we should review the serviceEndpoint content and remove only the specific one.
194
224
  if ((record === null || record === void 0 ? void 0 : record.didDocumentServiceId) && ((_a = didRecord.didDocument) === null || _a === void 0 ? void 0 : _a.service)) {
195
225
  didRecord.didDocument.service = didRecord.didDocument.service.filter(s => s.id !== record.didDocumentServiceId);
196
226
  }
197
- return await deleteMetadataEntry(agent, schemaId, didRecord, key, publicApiBaseUrl);
227
+ return await deleteMetadataEntry(agent, schemaId, didRecord, key);
198
228
  }
199
- async function removeStoredTrustCredential(agent, publicApiBaseUrl, credentialExchangeRecordId) {
200
- var _a, _b;
229
+ /**
230
+ * Removes the linked VP and the stored credential an exchange delivered, as
231
+ * [VSA-VTI-FLOW-OP-REVOKE] requires of the applicant. The credential is read from the RFC 0809
232
+ * format data of the exchange; exchanges earlier versions completed over other formats are not
233
+ * migrated. Returns the credential id, or `undefined` when none is found, in which case nothing is
234
+ * removed.
235
+ */
236
+ async function removeStoredTrustCredential(agent, credentialExchangeRecordId) {
237
+ var _a, _b, _c;
201
238
  const formatData = await agent.didcomm.credentials.getFormatData(credentialExchangeRecordId);
202
- const credentialId = (_b = (_a = formatData.credential) === null || _a === void 0 ? void 0 : _a.jsonld) === null || _b === void 0 ? void 0 : _b.id;
203
- if (!credentialId)
239
+ const credentialId = (_c = (_b = (_a = formatData.credential) === null || _a === void 0 ? void 0 : _a.dataIntegrity) === null || _b === void 0 ? void 0 : _b.credential) === null || _c === void 0 ? void 0 : _c.id;
240
+ if (typeof credentialId !== 'string') {
241
+ agent.config.logger.warn(`[trust-credential] Credential exchange ${credentialExchangeRecordId} carries no RFC 0809 credential id; its linked VP and stored credential are left in place`);
204
242
  return undefined;
205
- await removeTrustCredential(agent, publicApiBaseUrl, credentialId, '_vt/vtc');
206
- const stored = await agent.w3cCredentials.getAll();
207
- for (const storedRecord of stored) {
243
+ }
244
+ await removeTrustCredential(agent, credentialId, '_vt/vtc');
245
+ // The RFC 0809 format holds a data model 2.0 credential in a W3cV2CredentialRecord and a data
246
+ // model 1.1 one in a W3cCredentialRecord; the credential id is tagged on both
247
+ for (const storedRecord of await agent.w3cV2Credentials.getAll()) {
248
+ if (storedRecord.getTags().givenId === credentialId) {
249
+ await agent.w3cV2Credentials.deleteById(storedRecord.id);
250
+ }
251
+ }
252
+ for (const storedRecord of await agent.w3cCredentials.getAll()) {
208
253
  if (storedRecord.getTags().givenId === credentialId) {
209
254
  await agent.w3cCredentials.deleteById(storedRecord.id);
210
255
  }
@@ -239,23 +284,128 @@ async function migrateVtjscServiceIds(agent) {
239
284
  await updateDidRecord(agent, didRecord);
240
285
  agent.config.logger.info('[VTJSC] migrated stored service ids to the -vtjsc-vp naming');
241
286
  }
287
+ /**
288
+ * Takes the linked VPs of the given `_vt/jsc` entries out of the DID Document, publishing it once.
289
+ *
290
+ * The entries stay: `SelfTrController` serves them, and issued credentials name that URL in
291
+ * `credentialSchema.id`. Dropping one would 404 it and leave those credentials unverifiable.
292
+ */
293
+ async function detachVtjscPublications(agent, schemaRefs) {
294
+ var _a, _b;
295
+ if (schemaRefs.length === 0)
296
+ return [];
297
+ const didRecord = await getDidRecord(agent);
298
+ if (!((_a = didRecord === null || didRecord === void 0 ? void 0 : didRecord.didDocument) === null || _a === void 0 ? void 0 : _a.service))
299
+ return [];
300
+ const metadata = didRecord.metadata.get('_vt/jsc');
301
+ if (!metadata)
302
+ return [];
303
+ const detached = [];
304
+ for (const schemaRef of schemaRefs) {
305
+ const serviceId = (_b = metadata[schemaRef]) === null || _b === void 0 ? void 0 : _b.didDocumentServiceId;
306
+ if (!serviceId || !didRecord.didDocument.service.some(s => s.id === serviceId))
307
+ continue;
308
+ didRecord.didDocument.service = didRecord.didDocument.service.filter(s => s.id !== serviceId);
309
+ detached.push(schemaRef);
310
+ }
311
+ if (detached.length === 0)
312
+ return [];
313
+ await updateDidRecord(agent, didRecord);
314
+ return detached;
315
+ }
316
+ /**
317
+ * Puts a detached `_vt/jsc` entry back in the DID Document.
318
+ *
319
+ * The publication pass skips an entry whose digest still matches, so without this the agent would
320
+ * keep serving a VTJSC it never announces again.
321
+ */
322
+ async function reattachVtjscPublication(agent, schemaRef) {
323
+ var _a, _b, _c;
324
+ const didRecord = await getDidRecord(agent);
325
+ if (!(didRecord === null || didRecord === void 0 ? void 0 : didRecord.didDocument))
326
+ return false;
327
+ const entry = (_a = didRecord.metadata.get('_vt/jsc')) === null || _a === void 0 ? void 0 : _a[schemaRef];
328
+ const serviceId = entry === null || entry === void 0 ? void 0 : entry.didDocumentServiceId;
329
+ const serviceEndpoint = (_b = entry === null || entry === void 0 ? void 0 : entry.verifiablePresentation) === null || _b === void 0 ? void 0 : _b.id;
330
+ if (!serviceId || !serviceEndpoint)
331
+ return false;
332
+ const services = (_c = didRecord.didDocument.service) !== null && _c !== void 0 ? _c : [];
333
+ if (services.some(s => s.id === serviceId))
334
+ return false;
335
+ didRecord.didDocument.service = [
336
+ ...services,
337
+ new core_1.DidDocumentService({ id: serviceId, serviceEndpoint, type: 'LinkedVerifiablePresentation' }),
338
+ ];
339
+ await updateDidRecord(agent, didRecord);
340
+ return true;
341
+ }
242
342
  function getTrustMetadata(didRecord, key, schemaId) {
243
343
  return findMetadataEntry(didRecord, key, schemaId);
244
344
  }
345
+ /**
346
+ * Anchors a self-issued ECS credential, the same way as any other issuance: through
347
+ * CreateOrUpdateParticipantSession, which stores the digest in the `di` module keeper-to-keeper.
348
+ *
349
+ * `issuerParticipantId` must name an active ISSUER participant of this agent for the schema, whose
350
+ * vs_operator is this agent's account — the chain accepts the session from no other signer. The
351
+ * caller resolves it, because it already lists the agent's participants to decide what to rebind.
352
+ */
353
+ async function anchorCredentialDigest(agent, schemaId, credential, issuerParticipantId) {
354
+ const chain = agent.veranaChain;
355
+ if (!chain)
356
+ return;
357
+ if (!credential)
358
+ throw new Error(`[DigestAnchor] The presentation for schema ${schemaId} has no credential`);
359
+ if (!agent.did)
360
+ throw new Error('[DigestAnchor] The agent has no public DID');
361
+ const schema = await agent.indexer.getCredentialSchema(schemaId).catch(() => undefined);
362
+ if (!schema)
363
+ throw new Error(`[DigestAnchor] Credential schema ${schemaId} is not on chain`);
364
+ // the credential as published, which is what a verifier digests
365
+ const digest = (0, verre_1.computeCredentialDigestJCS)(credential, schema.digest_algorithm);
366
+ // the same credential gives the same digest on each run, so an anchored digest needs no second transaction
367
+ if (await agent.indexer.getDigest(digest))
368
+ return;
369
+ // A self-issued credential has no counterparty, so the session names only the issuer.
370
+ const { txHash } = await chain.createOrUpdateParticipantSession({
371
+ id: core_1.utils.uuid(),
372
+ issuerParticipantId,
373
+ agentParticipantId: 0,
374
+ walletAgentParticipantId: 0,
375
+ digest,
376
+ });
377
+ agent.config.logger.info(`[DigestAnchor] Anchored digest ${digest} for schema ${schemaId} against issuer participant ${issuerParticipantId} (tx ${txHash})`);
378
+ await agent.indexer.waitForDigest(digest);
379
+ }
245
380
  // replaces the self-TR example JSC binding with the on-chain VTJSC so resolvers can link the credential to the VPR
246
- async function rebindEcsCredentialSchema(agent, publicApiBaseUrl, schemaId, schemaKey, defaults) {
247
- var _a, _b, _c, _d;
248
- if (!['ecs-service', 'ecs-org'].includes(schemaKey) || !agent.did)
381
+ /**
382
+ * @param jsonSchemaCredentialId the VTJSC the Ecosystem published for this schema. Only the
383
+ * Ecosystem publishes it, so an agent that issues against another Corporation's Ecosystem must
384
+ * resolve it there — see resolveJsonSchemaCredentialId.
385
+ * @param issuerParticipantId this agent's ISSUER participant for the schema, which anchors the
386
+ * credential digest.
387
+ * @param schemaKey the ECS schema this agent issues against. Every ECS key is accepted; the caller
388
+ * reaches this function only for a schema the agent holds an active ISSUER entry on.
389
+ */
390
+ async function rebindEcsCredentialSchema(agent, publicApiBaseUrl, schemaId, schemaKey, ecsClaims, jsonSchemaCredentialId, issuerParticipantId, onChainJsonSchema) {
391
+ var _a, _b, _c, _d, _e, _f, _g, _h;
392
+ if (!agent.did)
249
393
  return;
250
394
  const vpUrl = `${publicApiBaseUrl}/vt/${schemaKey}-vtc-vp.json`;
251
- const jscUrl = `${publicApiBaseUrl}/vt/schemas-${schemaId}-jsc.json`;
395
+ const jscUrl = jsonSchemaCredentialId;
252
396
  const didRecord = await getDidRecord(agent);
253
397
  const record = (_a = didRecord.metadata.get('_vt/vtc')) !== null && _a !== void 0 ? _a : {};
398
+ const stored = record[jscUrl];
399
+ const storedIssuer = typeof ((_b = stored === null || stored === void 0 ? void 0 : stored.credential) === null || _b === void 0 ? void 0 : _b.issuer) === 'string' ? stored.credential.issuer : (_d = (_c = stored === null || stored === void 0 ? void 0 : stored.credential) === null || _c === void 0 ? void 0 : _c.issuer) === null || _d === void 0 ? void 0 : _d.id;
400
+ if ((stored === null || stored === void 0 ? void 0 : stored.credential) && !stored.integrityData && storedIssuer !== agent.did) {
401
+ agent.config.logger.debug(`[SelfTR] Keeping the ${schemaKey} credential issued by ${storedIssuer} instead of rebinding a self-issued one`);
402
+ return;
403
+ }
254
404
  let removedStale = false;
255
405
  for (const [key, entry] of Object.entries(record)) {
256
406
  // findMetadataEntry serves the first entry matching the VP url, so stale bindings must go
257
407
  if (key !== jscUrl &&
258
- ((_b = entry.verifiablePresentation) === null || _b === void 0 ? void 0 : _b.id) === vpUrl) {
408
+ ((_e = entry.verifiablePresentation) === null || _e === void 0 ? void 0 : _e.id) === vpUrl) {
259
409
  delete record[key];
260
410
  removedStale = true;
261
411
  }
@@ -264,23 +414,60 @@ async function rebindEcsCredentialSchema(agent, publicApiBaseUrl, schemaId, sche
264
414
  didRecord.metadata.set('_vt/vtc', record);
265
415
  await updateDidRecord(agent, didRecord);
266
416
  }
267
- await (0, setupSelfTr_1.generateVerifiablePresentation)(agent, vpUrl, (0, data_1.getEcsSchemas)(publicApiBaseUrl), schemaKey, ['VerifiableCredential', 'VerifiableTrustCredential'], { id: jscUrl, type: 'JsonSchemaCredential' }, defaults);
417
+ await (0, selfIssuedEcsCredential_1.publishSelfIssuedEcsPresentation)(agent, vpUrl, Object.assign(Object.assign({}, (0, data_1.getEcsSchemas)(publicApiBaseUrl)), (onChainJsonSchema ? { [schemaKey]: onChainJsonSchema } : {})), schemaKey, ['VerifiableCredential', 'VerifiableTrustCredential'], { id: jscUrl, type: 'JsonSchemaCredential' }, ecsClaims, async (verifiablePresentation) => await anchorCredentialDigest(agent, Number(schemaId), verifiablePresentation.verifiableCredential[0], issuerParticipantId));
268
418
  const freshRecord = await getDidRecord(agent);
419
+ let recordChanged = false;
420
+ const vtc = (_f = freshRecord.metadata.get('_vt/vtc')) !== null && _f !== void 0 ? _f : {};
421
+ const entry = vtc[jscUrl];
422
+ if (entry && (entry.issuerParticipantId !== issuerParticipantId || entry.schemaKey !== schemaKey)) {
423
+ vtc[jscUrl] = Object.assign(Object.assign({}, entry), { issuerParticipantId, schemaKey });
424
+ freshRecord.metadata.set('_vt/vtc', vtc);
425
+ recordChanged = true;
426
+ }
269
427
  const doc = freshRecord.didDocument;
270
428
  if (doc) {
271
429
  // resolvers match the [VT-CRED-W3C-LINKED-VP] fragment; #whois alone is not enough
272
430
  const expectedServiceId = `${agent.did}#${(0, setupSelfTr_1.linkedVpFragment)(schemaKey)}`;
273
- const linked = (_c = doc.service) === null || _c === void 0 ? void 0 : _c.some(s => s.id === expectedServiceId);
431
+ const linked = (_g = doc.service) === null || _g === void 0 ? void 0 : _g.some(s => s.id === expectedServiceId);
274
432
  if (!linked) {
275
- doc.service = (_d = doc.service) !== null && _d !== void 0 ? _d : [];
433
+ doc.service = (_h = doc.service) !== null && _h !== void 0 ? _h : [];
276
434
  doc.service.push(new core_1.DidDocumentService({
277
435
  id: expectedServiceId,
278
436
  serviceEndpoint: vpUrl,
279
437
  type: 'LinkedVerifiablePresentation',
280
438
  }));
281
- await updateDidRecord(agent, freshRecord);
439
+ recordChanged = true;
282
440
  }
441
+ if (recordChanged)
442
+ await updateDidRecord(agent, freshRecord);
283
443
  }
284
444
  agent.config.logger.info(`[SelfTR] Rebound ${schemaKey} credential to VTJSC ${jscUrl}`);
285
445
  }
446
+ /**
447
+ * Withdraws the ECS credentials anchored against `issuerParticipantId`, and the #whois entry
448
+ * when the Service credential is among them.
449
+ */
450
+ async function withdrawSelfIssuedEcsCredentials(agent, issuerParticipantId) {
451
+ var _a, _b;
452
+ const didRecord = await getDidRecord(agent);
453
+ const withdrawn = [];
454
+ let whoisWithdrawn = false;
455
+ for (const [jscUrl, value] of Object.entries((_a = didRecord.metadata.get('_vt/vtc')) !== null && _a !== void 0 ? _a : {})) {
456
+ const entry = value;
457
+ if (entry.issuerParticipantId !== issuerParticipantId)
458
+ continue;
459
+ await removeTrustCredential(agent, jscUrl, '_vt/vtc');
460
+ withdrawn.push(jscUrl);
461
+ if (entry.schemaKey === 'ecs-service')
462
+ whoisWithdrawn = true;
463
+ }
464
+ if (whoisWithdrawn) {
465
+ const record = await getDidRecord(agent);
466
+ if ((_b = record.didDocument) === null || _b === void 0 ? void 0 : _b.service) {
467
+ record.didDocument.service = record.didDocument.service.filter(s => s.id !== `${agent.did}#whois`);
468
+ await updateDidRecord(agent, record);
469
+ }
470
+ }
471
+ return withdrawn;
472
+ }
286
473
  //# sourceMappingURL=trustCredentialStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trustCredentialStore.js","sourceRoot":"","sources":["../../src/utils/trustCredentialStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trustCredentialStore.js","sourceRoot":"","sources":["../../src/utils/trustCredentialStore.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,13 @@ export declare function fetchJson<T>(url: string, opts: {
5
5
  timeoutMs?: number;
6
6
  allowNotFound: true;
7
7
  }): Promise<T | undefined>;
8
+ /** The AnonCreds schema that the JSON Schema of a `CredentialSchema` entry defines. */
9
+ export interface AnonCredsSchemaShape {
10
+ name: string;
11
+ attrNames: string[];
12
+ }
13
+ /**
14
+ * Maps `title` to the schema name and the `credentialSubject` properties to `attrNames`, per
15
+ * [VSA-PUB-AC-5]. The VTJSC issuer and every accredited issuer must derive the same values.
16
+ */
17
+ export declare function anonCredsSchemaFromJsonSchema(jsonSchema: string | object): AnonCredsSchemaShape;