@verana-labs/vs-agent-sdk 2.0.0-dev.7 → 2.0.0-dev.72
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.
- package/README.md +0 -2
- package/build/adminApi/AdminApiError.d.ts +28 -0
- package/build/adminApi/AdminApiError.js +60 -0
- package/build/adminApi/AdminApiError.js.map +1 -0
- package/build/adminApi/didcommModules.d.ts +2 -0
- package/build/adminApi/didcommModules.js +8 -0
- package/build/adminApi/didcommModules.js.map +1 -0
- package/build/adminApi/index.d.ts +4 -0
- package/build/adminApi/index.js +21 -0
- package/build/adminApi/index.js.map +1 -0
- package/build/adminApi/moduleEndpoint.d.ts +8 -0
- package/build/adminApi/moduleEndpoint.js +28 -0
- package/build/adminApi/moduleEndpoint.js.map +1 -0
- package/build/adminApi/pagination/PageDto.d.ts +7 -0
- package/build/adminApi/pagination/PageDto.js +50 -0
- package/build/adminApi/pagination/PageDto.js.map +1 -0
- package/build/adminApi/pagination/PaginationQueryDto.d.ts +11 -0
- package/build/adminApi/pagination/PaginationQueryDto.js +46 -0
- package/build/adminApi/pagination/PaginationQueryDto.js.map +1 -0
- package/build/adminApi/pagination/cursor.d.ts +28 -0
- package/build/adminApi/pagination/cursor.js +64 -0
- package/build/adminApi/pagination/cursor.js.map +1 -0
- package/build/adminApi/pagination/index.d.ts +4 -0
- package/build/adminApi/pagination/index.js +21 -0
- package/build/adminApi/pagination/index.js.map +1 -0
- package/build/adminApi/pagination/paginate.d.ts +27 -0
- package/build/adminApi/pagination/paginate.js +77 -0
- package/build/adminApi/pagination/paginate.js.map +1 -0
- package/build/agent/VsAgent.d.ts +17 -34
- package/build/agent/VsAgent.js +75 -205
- package/build/agent/VsAgent.js.map +1 -1
- package/build/agent/createVsAgent.d.ts +5 -6
- package/build/agent/createVsAgent.js +3 -5
- package/build/agent/createVsAgent.js.map +1 -1
- package/build/blockchain/AnonCredsTrustService.d.ts +62 -0
- package/build/blockchain/AnonCredsTrustService.js +256 -0
- package/build/blockchain/AnonCredsTrustService.js.map +1 -0
- package/build/blockchain/AuthorizationService.d.ts +5 -3
- package/build/blockchain/AuthorizationService.js +17 -29
- package/build/blockchain/AuthorizationService.js.map +1 -1
- package/build/blockchain/IndexerWebSocketService.d.ts +7 -1
- package/build/blockchain/IndexerWebSocketService.js +68 -36
- package/build/blockchain/IndexerWebSocketService.js.map +1 -1
- package/build/blockchain/VeranaChainService.d.ts +26 -14
- package/build/blockchain/VeranaChainService.js +139 -127
- package/build/blockchain/VeranaChainService.js.map +1 -1
- package/build/blockchain/VeranaIndexerService.d.ts +14 -1
- package/build/blockchain/VeranaIndexerService.js +122 -8
- package/build/blockchain/VeranaIndexerService.js.map +1 -1
- package/build/blockchain/handlers/authorizationHandlers.js +2 -2
- package/build/blockchain/handlers/authorizationHandlers.js.map +1 -1
- package/build/blockchain/handlers/defaultHandlers.js +6 -1
- package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
- package/build/blockchain/handlers/index.d.ts +1 -0
- package/build/blockchain/handlers/index.js +1 -0
- package/build/blockchain/handlers/index.js.map +1 -1
- package/build/blockchain/handlers/selfIssuanceHandlers.d.ts +13 -0
- package/build/blockchain/handlers/selfIssuanceHandlers.js +76 -0
- package/build/blockchain/handlers/selfIssuanceHandlers.js.map +1 -0
- package/build/blockchain/handlers/stateMutations.d.ts +20 -3
- package/build/blockchain/handlers/stateMutations.js +286 -41
- package/build/blockchain/handlers/stateMutations.js.map +1 -1
- package/build/blockchain/index.d.ts +2 -0
- package/build/blockchain/index.js +2 -0
- package/build/blockchain/index.js.map +1 -1
- package/build/blockchain/indexerMappers.d.ts +3 -0
- package/build/blockchain/indexerMappers.js +53 -0
- package/build/blockchain/indexerMappers.js.map +1 -0
- package/build/blockchain/types.d.ts +13 -58
- package/build/blockchain/types.js.map +1 -1
- package/build/bootstrap/EcsBootstrapService.d.ts +14 -3
- package/build/bootstrap/EcsBootstrapService.js +178 -79
- package/build/bootstrap/EcsBootstrapService.js.map +1 -1
- package/build/connections/ParentConnectionModule.d.ts +20 -0
- package/build/connections/ParentConnectionModule.js +56 -0
- package/build/connections/ParentConnectionModule.js.map +1 -0
- package/build/credentials/FullTailsFileService.d.ts +0 -1
- package/build/credentials/FullTailsFileService.js +0 -49
- package/build/credentials/FullTailsFileService.js.map +1 -1
- package/build/did/CachedDocumentLoader.d.ts +3 -0
- package/build/did/CachedDocumentLoader.js +7 -1
- package/build/did/CachedDocumentLoader.js.map +1 -1
- package/build/did/CachedWebDidResolver.d.ts +0 -4
- package/build/did/CachedWebDidResolver.js +1 -5
- package/build/did/CachedWebDidResolver.js.map +1 -1
- package/build/did/artifactServices.d.ts +12 -0
- package/build/did/artifactServices.js +48 -0
- package/build/did/artifactServices.js.map +1 -0
- package/build/did/legacyDidWeb.d.ts +6 -4
- package/build/did/legacyDidWeb.js +17 -14
- package/build/did/legacyDidWeb.js.map +1 -1
- package/build/did/publicDid.d.ts +4 -0
- package/build/did/publicDid.js +19 -0
- package/build/did/publicDid.js.map +1 -0
- package/build/events/BaseMessageEvents.js +139 -5
- package/build/events/BaseMessageEvents.js.map +1 -1
- package/build/events/ConnectionEvents.js +129 -82
- package/build/events/ConnectionEvents.js.map +1 -1
- package/build/events/VsAgentEvents.d.ts +11 -9
- package/build/events/VsAgentEvents.js +8 -1
- package/build/events/VsAgentEvents.js.map +1 -1
- package/build/events/VtFlowEvents.d.ts +1 -1
- package/build/events/VtFlowEvents.js +29 -17
- package/build/events/VtFlowEvents.js.map +1 -1
- package/build/index.d.ts +7 -1
- package/build/index.js +15 -2
- package/build/index.js.map +1 -1
- package/build/plugins/setupBaseDidComm.js +9 -12
- package/build/plugins/setupBaseDidComm.js.map +1 -1
- package/build/transports/VsAgentWsInboundTransport.d.ts +1 -1
- package/build/transports/VsAgentWsInboundTransport.js +20 -14
- package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
- package/build/types.d.ts +7 -13
- package/build/types.js +1 -2
- package/build/types.js.map +1 -1
- package/build/utils/agent.d.ts +29 -4
- package/build/utils/agent.js +91 -22
- package/build/utils/agent.js.map +1 -1
- package/build/utils/didReadiness.d.ts +9 -0
- package/build/utils/didReadiness.js +42 -0
- package/build/utils/didReadiness.js.map +1 -0
- package/build/utils/ecsClaims.d.ts +47 -0
- package/build/utils/ecsClaims.js +120 -0
- package/build/utils/ecsClaims.js.map +1 -0
- package/build/utils/ecsService.d.ts +8 -0
- package/build/utils/ecsService.js +23 -0
- package/build/utils/ecsService.js.map +1 -0
- package/build/utils/index.d.ts +4 -0
- package/build/utils/index.js +4 -0
- package/build/utils/index.js.map +1 -1
- package/build/utils/selfIssuedEcsCredential.d.ts +8 -0
- package/build/utils/selfIssuedEcsCredential.js +158 -0
- package/build/utils/selfIssuedEcsCredential.js.map +1 -0
- package/build/utils/setupSelfTr.d.ts +34 -66
- package/build/utils/setupSelfTr.js +90 -294
- package/build/utils/setupSelfTr.js.map +1 -1
- package/build/utils/trustCredentialStore.d.ts +67 -9
- package/build/utils/trustCredentialStore.js +296 -111
- package/build/utils/trustCredentialStore.js.map +1 -1
- package/build/utils/util.d.ts +10 -0
- package/build/utils/util.js +16 -0
- package/build/utils/util.js.map +1 -1
- package/build/utils/vcdm2.d.ts +34 -0
- package/build/utils/vcdm2.js +60 -0
- package/build/utils/vcdm2.js.map +1 -0
- package/build/utils/vtjscResolver.d.ts +18 -0
- package/build/utils/vtjscResolver.js +54 -0
- package/build/utils/vtjscResolver.js.map +1 -0
- package/build/vtFlow/VtFlowOrchestrator.d.ts +107 -14
- package/build/vtFlow/VtFlowOrchestrator.js +734 -109
- package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
- package/build/vtFlow/assertVerifiableService.d.ts +1 -0
- package/build/vtFlow/assertVerifiableService.js +45 -5
- package/build/vtFlow/assertVerifiableService.js.map +1 -1
- package/build/vtFlow/ecsIssuanceExemption.d.ts +12 -0
- package/build/vtFlow/ecsIssuanceExemption.js +84 -0
- package/build/vtFlow/ecsIssuanceExemption.js.map +1 -0
- package/build/vtFlow/index.d.ts +1 -0
- package/build/vtFlow/index.js +1 -0
- package/build/vtFlow/index.js.map +1 -1
- package/package.json +17 -12
- package/build/did/migrateWebVhLog.d.ts +0 -34
- package/build/did/migrateWebVhLog.js +0 -230
- package/build/did/migrateWebVhLog.js.map +0 -1
- package/build/did/migrateWebVhVersionTime.d.ts +0 -9
- package/build/did/migrateWebVhVersionTime.js +0 -191
- package/build/did/migrateWebVhVersionTime.js.map +0 -1
|
@@ -3,55 +3,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.sortKeysDeep = exports.linkedVpFragment = exports.linkedVpSchemaId = exports.createJsonSubjectRef = exports.createJsonSchema = void 0;
|
|
7
7
|
exports.createCredential = createCredential;
|
|
8
|
+
exports.getDataIntegrityCryptosuite = getDataIntegrityCryptosuite;
|
|
8
9
|
exports.signerW3c = signerW3c;
|
|
9
|
-
exports.generateVerifiablePresentation = generateVerifiablePresentation;
|
|
10
10
|
exports.createPresentation = createPresentation;
|
|
11
11
|
exports.getClaims = getClaims;
|
|
12
|
+
exports.schemaViolations = schemaViolations;
|
|
12
13
|
exports.validateSchema = validateSchema;
|
|
13
14
|
exports.addDigestSRI = addDigestSRI;
|
|
14
15
|
exports.generateDigestSRI = generateDigestSRI;
|
|
15
|
-
exports.urlDigestSri = urlDigestSri;
|
|
16
16
|
exports.getVerificationMethodId = getVerificationMethodId;
|
|
17
17
|
const core_1 = require("@credo-ts/core");
|
|
18
|
-
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
20
|
-
//@ts-expect-error
|
|
21
|
-
const jsonld_signatures_1 = require("@digitalcredentials/jsonld-signatures");
|
|
18
|
+
const credo_ts_didcomm_vt_flow_1 = require("@verana-labs/credo-ts-didcomm-vt-flow");
|
|
22
19
|
const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
|
|
23
20
|
const _2020_1 = __importDefault(require("ajv/dist/2020"));
|
|
24
21
|
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
25
|
-
const axios_1 = __importDefault(require("axios"));
|
|
26
22
|
const crypto_1 = require("crypto");
|
|
27
|
-
const
|
|
28
|
-
const
|
|
23
|
+
const ecsClaims_1 = require("./ecsClaims");
|
|
24
|
+
const vcdm2_1 = require("./vcdm2");
|
|
25
|
+
const TEN_YEARS_MS = 10 * 365 * 24 * 60 * 60 * 1000;
|
|
26
|
+
const ajv = new _2020_1.default({ strict: false, allErrors: true });
|
|
29
27
|
(0, ajv_formats_1.default)(ajv);
|
|
30
|
-
const DIGEST_FETCH_TIMEOUT_MS = 5000;
|
|
31
|
-
// Helpers
|
|
32
|
-
exports.presentations = [
|
|
33
|
-
{
|
|
34
|
-
name: 'ecs-service',
|
|
35
|
-
schemaUrl: `ecosystem/schemas-example-service-jsc.json`,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
name: 'ecs-org',
|
|
39
|
-
schemaUrl: `ecosystem/schemas-example-org-jsc.json`,
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
exports.credentials = [
|
|
43
|
-
{
|
|
44
|
-
name: 'example-service',
|
|
45
|
-
credUrl: `ecosystem/cs/v1/js/ecs-service`,
|
|
46
|
-
schemaUrl: `ecosystem/schemas-example-service-jsc.json`,
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: 'example-org',
|
|
50
|
-
credUrl: `ecosystem/cs/v1/js/ecs-org`,
|
|
51
|
-
schemaUrl: `ecosystem/schemas-example-org-jsc.json`,
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
// Default JSON Schema objects
|
|
55
28
|
exports.createJsonSchema = {
|
|
56
29
|
id: 'https://www.w3.org/ns/credentials/json-schema/v2.json',
|
|
57
30
|
type: 'JsonSchema',
|
|
@@ -67,225 +40,72 @@ const createJsonSubjectRef = (id) => ({
|
|
|
67
40
|
});
|
|
68
41
|
exports.createJsonSubjectRef = createJsonSubjectRef;
|
|
69
42
|
// fragment format per [VT-CRED-W3C-LINKED-VP]
|
|
70
|
-
const
|
|
43
|
+
const linkedVpSchemaId = (schemaKey) => schemaKey.replace(/^ecs-/, '');
|
|
44
|
+
exports.linkedVpSchemaId = linkedVpSchemaId;
|
|
45
|
+
const linkedVpFragment = (schemaKey) => `vpr-schemas-${(0, exports.linkedVpSchemaId)(schemaKey)}-vtc-vp`;
|
|
71
46
|
exports.linkedVpFragment = linkedVpFragment;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
47
|
+
// A plain array replacer only allowlists property names, applied at every
|
|
48
|
+
// nesting level — nested objects like `claims` and `credentialSchema` would
|
|
49
|
+
// serialize to `{}` since none of their own keys appear in a top-level
|
|
50
|
+
// key list. Sort keys recursively instead, so the hash actually reflects
|
|
51
|
+
// nested content and changes to claims invalidate the cache correctly.
|
|
52
|
+
const sortKeysDeep = (value) => {
|
|
53
|
+
if (Array.isArray(value))
|
|
54
|
+
return value.map(exports.sortKeysDeep);
|
|
55
|
+
if (value !== null && typeof value === 'object') {
|
|
56
|
+
return Object.keys(value)
|
|
57
|
+
.sort()
|
|
58
|
+
.reduce((acc, key) => {
|
|
59
|
+
acc[key] = (0, exports.sortKeysDeep)(value[key]);
|
|
60
|
+
return acc;
|
|
61
|
+
}, {});
|
|
62
|
+
}
|
|
63
|
+
return value;
|
|
76
64
|
};
|
|
77
|
-
|
|
78
|
-
const ecsSchemas = (0, data_1.getEcsSchemas)(publicApiBaseUrl);
|
|
79
|
-
const logger = agent.config.logger;
|
|
80
|
-
for (const { name, schemaUrl } of exports.presentations) {
|
|
81
|
-
try {
|
|
82
|
-
await generateVerifiablePresentation(agent, `${publicApiBaseUrl}/vt/${name}-vtc-vp.json`, ecsSchemas, name, ['VerifiableCredential', 'VerifiableTrustCredential'], {
|
|
83
|
-
id: (0, exports.mapToSelfTr)(schemaUrl, publicApiBaseUrl),
|
|
84
|
-
type: 'JsonSchemaCredential',
|
|
85
|
-
}, defaults);
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
logger.warn(`Skipping self-issued ${name}: ${error instanceof Error ? error.message : error}`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
for (const { name, credUrl, schemaUrl } of exports.credentials) {
|
|
92
|
-
const id = (0, exports.mapToSelfTr)(schemaUrl, publicApiBaseUrl);
|
|
93
|
-
const ref = (0, exports.mapToSelfTr)(credUrl, publicApiBaseUrl);
|
|
94
|
-
try {
|
|
95
|
-
await generateVerifiableCredential(agent, id, ecsSchemas, name, ['VerifiableCredential', 'JsonSchemaCredential'], (0, exports.createJsonSubjectRef)(ref), exports.createJsonSchema, defaults);
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
logger.warn(`Skipping self-issued ${name}: ${error instanceof Error ? error.message : error}`);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
exports.setupSelfTr = setupSelfTr;
|
|
65
|
+
exports.sortKeysDeep = sortKeysDeep;
|
|
103
66
|
/**
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* - If the claims for the subject are not provided, they are retrieved (default claims) and validated against the schema.
|
|
108
|
-
* - The integrity of the claims is tracked using a Subresource Integrity (SRI) digest.
|
|
109
|
-
* - If a credential with the same integrity already exists in the DID metadata, it is returned directly.
|
|
110
|
-
* - Otherwise, a new credential is created, signed, and stored in the DID metadata.
|
|
111
|
-
* - If a presentation is provided, the signed credential is embedded and a signed presentation is returned.
|
|
112
|
-
*
|
|
113
|
-
* @param agent - The VsAgent instance used for signing and DID management.
|
|
114
|
-
* @param logger - Logger instance for logging operations.
|
|
115
|
-
* @param ecsSchemas - Map of ECS schemas for validation.
|
|
116
|
-
* @param schemaKey - Unique identifier for the credential type and metadata key.
|
|
117
|
-
* @param type - Array of credential types (e.g., ['VerifiableCredential']).
|
|
118
|
-
* @param subject - Subject information, including ID and optional claims.
|
|
119
|
-
* @param credentialSchema - Schema definition for the credential.
|
|
120
|
-
* @param presentation - Optional presentation to include the credential.
|
|
121
|
-
* @returns The signed verifiable credential or presentation, with integrity metadata.
|
|
67
|
+
* Builds an unsigned credential: a VC Data Model 2.0 credential, as
|
|
68
|
+
* [VT-CRED-W3C] and [VT-JSON-SCHEMA-CRED-W3C] require the `https://www.w3.org/ns/credentials/v2`
|
|
69
|
+
* context, valid from now for ten years unless told otherwise.
|
|
122
70
|
*/
|
|
123
|
-
|
|
71
|
+
function createCredential(options) {
|
|
124
72
|
var _a;
|
|
125
|
-
|
|
126
|
-
const [didRecord] = await agent.dids.getCreatedDids({ did: agent.did });
|
|
127
|
-
const { id: subjectId } = subject;
|
|
128
|
-
let claims = subject.claims;
|
|
129
|
-
if (!claims) {
|
|
130
|
-
claims = await getClaims(logger, ecsSchemas, { id: subjectId }, schemaKey, defaults);
|
|
131
|
-
}
|
|
132
|
-
const integrityData = buildIntegrityData({ id, type, credentialSchema, claims });
|
|
133
|
-
const record = (_a = didRecord.metadata.get('_vt/jsc')) !== null && _a !== void 0 ? _a : {};
|
|
134
|
-
const metadata = record[subjectId];
|
|
135
|
-
if ((metadata === null || metadata === void 0 ? void 0 : metadata.integrityData) === integrityData)
|
|
136
|
-
return metadata.credential;
|
|
137
|
-
const unsignedCredential = createCredential({
|
|
138
|
-
id,
|
|
139
|
-
type,
|
|
140
|
-
issuer: agent.did,
|
|
141
|
-
credentialSubject: {
|
|
142
|
-
id: subjectId,
|
|
143
|
-
claims: presentation ? claims : await addDigestSRI(subjectId, claims, ecsSchemas),
|
|
144
|
-
},
|
|
145
|
-
});
|
|
146
|
-
unsignedCredential.credentialSchema = presentation
|
|
147
|
-
? credentialSchema
|
|
148
|
-
: await addDigestSRI(credentialSchema.id, credentialSchema, ecsSchemas);
|
|
149
|
-
// Note: this is dependant on DIDComm invitation keys. Not sure if it is fine or we should use a dedicated
|
|
150
|
-
// key for this feature
|
|
151
|
-
const verificationMethodId = getVerificationMethodId(logger, didRecord);
|
|
152
|
-
const signedCredential = await signerW3c(agent, unsignedCredential, verificationMethodId);
|
|
153
|
-
if (presentation) {
|
|
154
|
-
presentation.verifiableCredential = [signedCredential];
|
|
155
|
-
return await signerW3c(agent, presentation, verificationMethodId);
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
record[subjectId] = {
|
|
159
|
-
credential: signedCredential.jsonCredential,
|
|
160
|
-
verifiablePresentation: {},
|
|
161
|
-
didDocumentServiceId: '',
|
|
162
|
-
integrityData,
|
|
163
|
-
};
|
|
164
|
-
didRecord.metadata.set('_vt/jsc', record);
|
|
165
|
-
await agent.context.dependencyManager.resolve(core_1.DidRepository).update(agent.context, didRecord);
|
|
166
|
-
return signedCredential.jsonCredential;
|
|
167
|
-
}
|
|
73
|
+
return (0, vcdm2_1.createW3cV2Credential)(Object.assign(Object.assign({}, options), { validUntil: (_a = options.validUntil) !== null && _a !== void 0 ? _a : new Date(Date.now() + TEN_YEARS_MS).toISOString() }));
|
|
168
74
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
return
|
|
75
|
+
/**
|
|
76
|
+
* The Data Integrity cryptosuite this agent is configured with, read from the registered
|
|
77
|
+
* `VtFlowModuleConfig` so the self issued credentials are secured and linked VPs with the
|
|
78
|
+
* same suite `VtFlowApi.issueCredentialForSession` applies to the credentials it issues. Falls back
|
|
79
|
+
* to the module default when the vt-flow module is not registered on the agent.
|
|
80
|
+
*/
|
|
81
|
+
function getDataIntegrityCryptosuite(agent) {
|
|
82
|
+
const { dependencyManager } = agent.context;
|
|
83
|
+
return dependencyManager.isRegistered(credo_ts_didcomm_vt_flow_1.VtFlowModuleConfig)
|
|
84
|
+
? dependencyManager.resolve(credo_ts_didcomm_vt_flow_1.VtFlowModuleConfig).dataIntegrityCryptosuite
|
|
85
|
+
: credo_ts_didcomm_vt_flow_1.DEFAULT_DATA_INTEGRITY_CRYPTOSUITE;
|
|
178
86
|
}
|
|
179
87
|
async function signerW3c(agent, obj, verificationMethod) {
|
|
180
|
-
const
|
|
181
|
-
if (obj instanceof core_1.
|
|
182
|
-
return await agent.
|
|
183
|
-
format: core_1.ClaimFormat.
|
|
88
|
+
const cryptosuite = getDataIntegrityCryptosuite(agent);
|
|
89
|
+
if (obj instanceof core_1.W3cV2Credential) {
|
|
90
|
+
return await agent.w3cV2Credentials.signCredential({
|
|
91
|
+
format: core_1.ClaimFormat.DiVc,
|
|
184
92
|
credential: obj,
|
|
185
|
-
|
|
186
|
-
verificationMethod,
|
|
187
|
-
proofPurpose,
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
if (obj instanceof core_1.W3cPresentation) {
|
|
191
|
-
return await agent.w3cCredentials.signPresentation({
|
|
192
|
-
format: core_1.ClaimFormat.LdpVp,
|
|
193
|
-
presentation: obj,
|
|
194
|
-
proofType: 'Ed25519Signature2020',
|
|
93
|
+
cryptosuite,
|
|
195
94
|
verificationMethod,
|
|
196
|
-
proofPurpose,
|
|
197
95
|
});
|
|
198
96
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
* - If a presentation with the same integrity already exists in the DID metadata, it is returned.
|
|
207
|
-
* - Otherwise, a new presentation is created, signed, and stored in the DID metadata.
|
|
208
|
-
*
|
|
209
|
-
* @param agent - The VsAgent instance used for signing and DID management.
|
|
210
|
-
* @param logger - Logger instance for logging operations.
|
|
211
|
-
* @param ecsSchemas - Map of ECS schemas for validation.
|
|
212
|
-
* @param schemaKey - Unique identifier for the presentation type and metadata key.
|
|
213
|
-
* @param type - Array of credential types to include.
|
|
214
|
-
* @param credentialSchema - Schema definition for the credential.
|
|
215
|
-
* @returns The signed verifiable presentation, with integrity metadata.
|
|
216
|
-
*/
|
|
217
|
-
async function generateVerifiablePresentation(agent, id, ecsSchemas, schemaKey, type, credentialSchema, defaults) {
|
|
218
|
-
var _a, _b, _c, _d, _e;
|
|
219
|
-
if (!agent.did)
|
|
220
|
-
throw Error('The DID must be set up');
|
|
221
|
-
const [didRecord] = await agent.dids.getCreatedDids({ did: agent.did });
|
|
222
|
-
const didDocument = didRecord.didDocument;
|
|
223
|
-
if (!didDocument)
|
|
224
|
-
throw Error('The DID Document be set up');
|
|
225
|
-
const claims = await getClaims(agent.config.logger, ecsSchemas, { id: agent.did }, schemaKey, defaults);
|
|
226
|
-
// Use full input for integrityData to ensure update detection
|
|
227
|
-
const didDocumentServiceId = `${agent.did}#${(0, exports.linkedVpFragment)(schemaKey)}`;
|
|
228
|
-
const integrityData = buildIntegrityData({ id, type, credentialSchema, claims });
|
|
229
|
-
const record = (_a = didRecord.metadata.get('_vt/vtc')) !== null && _a !== void 0 ? _a : {};
|
|
230
|
-
const metadata = record[credentialSchema.id];
|
|
231
|
-
const attached = (_b = metadata === null || metadata === void 0 ? void 0 : metadata.attached) !== null && _b !== void 0 ? _b : true;
|
|
232
|
-
if ((metadata === null || metadata === void 0 ? void 0 : metadata.integrityData) === integrityData)
|
|
233
|
-
return metadata.verifiablePresentation;
|
|
234
|
-
const presentation = createPresentation({
|
|
235
|
-
id,
|
|
236
|
-
holder: agent.did,
|
|
237
|
-
verifiableCredential: [],
|
|
97
|
+
// The options type requires a challenge for every presentation format, while a Data Integrity
|
|
98
|
+
// proof only carries one when it is given
|
|
99
|
+
return await agent.w3cV2Credentials.signPresentation({
|
|
100
|
+
format: core_1.ClaimFormat.DiVp,
|
|
101
|
+
presentation: obj,
|
|
102
|
+
cryptosuite,
|
|
103
|
+
verificationMethod,
|
|
238
104
|
});
|
|
239
|
-
const verifiablePresentation = await generateVerifiableCredential(agent, agent.did, ecsSchemas, schemaKey, type, { id: agent.did }, credentialSchema, defaults, presentation);
|
|
240
|
-
// Update linked VP when the presentation has changed
|
|
241
|
-
if (attached)
|
|
242
|
-
didDocument.service = (_c = didDocument.service) === null || _c === void 0 ? void 0 : _c.map(s => {
|
|
243
|
-
if (typeof s.serviceEndpoint !== 'string')
|
|
244
|
-
return s;
|
|
245
|
-
if (s.serviceEndpoint.includes(schemaKey) && s.id !== `${agent.did}#whois`) {
|
|
246
|
-
s.id = didDocumentServiceId;
|
|
247
|
-
s.serviceEndpoint = id;
|
|
248
|
-
}
|
|
249
|
-
return s;
|
|
250
|
-
});
|
|
251
|
-
// Resolvers only discover the credential through the [VT-CRED-W3C-LINKED-VP] fragment, and
|
|
252
|
-
// #whois does not match it. The rename above only covers documents that already carry the
|
|
253
|
-
// service, so publish it here when nothing declared it yet.
|
|
254
|
-
let didDocumentChanged = false;
|
|
255
|
-
if (attached && !((_d = didDocument.service) === null || _d === void 0 ? void 0 : _d.some(s => s.id === didDocumentServiceId))) {
|
|
256
|
-
didDocument.service = [
|
|
257
|
-
...((_e = didDocument.service) !== null && _e !== void 0 ? _e : []),
|
|
258
|
-
new core_1.DidDocumentService({
|
|
259
|
-
id: didDocumentServiceId,
|
|
260
|
-
serviceEndpoint: id,
|
|
261
|
-
type: 'LinkedVerifiablePresentation',
|
|
262
|
-
}),
|
|
263
|
-
];
|
|
264
|
-
didDocumentChanged = true;
|
|
265
|
-
}
|
|
266
|
-
const credential = verifiablePresentation.verifiableCredential[0];
|
|
267
|
-
record[credentialSchema.id] = {
|
|
268
|
-
credential,
|
|
269
|
-
verifiablePresentation,
|
|
270
|
-
didDocumentServiceId,
|
|
271
|
-
integrityData,
|
|
272
|
-
attached,
|
|
273
|
-
};
|
|
274
|
-
didRecord.metadata.set('_vt/vtc', record);
|
|
275
|
-
await agent.context.dependencyManager.resolve(core_1.DidRepository).update(agent.context, didRecord);
|
|
276
|
-
if (didDocumentChanged) {
|
|
277
|
-
await agent.dids.update({ did: didRecord.did, didDocument });
|
|
278
|
-
}
|
|
279
|
-
return verifiablePresentation;
|
|
280
105
|
}
|
|
106
|
+
/** Builds an unsigned VC Data Model 2.0 presentation; the class supplies the v2 context. */
|
|
281
107
|
function createPresentation(options) {
|
|
282
|
-
|
|
283
|
-
(_a = options.context) !== null && _a !== void 0 ? _a : (options.context = [
|
|
284
|
-
'https://www.w3.org/2018/credentials/v1',
|
|
285
|
-
'https://www.w3.org/ns/credentials/examples/v2',
|
|
286
|
-
]);
|
|
287
|
-
(_b = options.type) !== null && _b !== void 0 ? _b : (options.type = ['VerifiablePresentation']);
|
|
288
|
-
return new core_1.W3cPresentation(options);
|
|
108
|
+
return new core_1.W3cV2Presentation(Object.assign({ type: ['VerifiablePresentation'] }, options));
|
|
289
109
|
}
|
|
290
110
|
/**
|
|
291
111
|
* Retrieves and validates claims for a credential subject.
|
|
@@ -298,60 +118,43 @@ function createPresentation(options) {
|
|
|
298
118
|
* @returns The validated claims object.
|
|
299
119
|
* @throws If claims are invalid or schema is missing.
|
|
300
120
|
*/
|
|
301
|
-
async function getClaims(logger, ecsSchemas, { id
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
const termsAndConditionsUri = (_b = claims === null || claims === void 0 ? void 0 : claims.termsAndConditionsUri) !== null && _b !== void 0 ? _b : defaults.serviceTermsAndConditions;
|
|
306
|
-
const privacyPolicyUri = (_c = claims === null || claims === void 0 ? void 0 : claims.privacyPolicyUri) !== null && _c !== void 0 ? _c : defaults.servicePrivacyPolicy;
|
|
307
|
-
claims =
|
|
308
|
-
schemaKey === 'ecs-service'
|
|
309
|
-
? {
|
|
310
|
-
name: (_d = claims === null || claims === void 0 ? void 0 : claims.name) !== null && _d !== void 0 ? _d : defaults.agentLabel,
|
|
311
|
-
type: (_e = claims === null || claims === void 0 ? void 0 : claims.type) !== null && _e !== void 0 ? _e : defaults.serviceType,
|
|
312
|
-
description: (_f = claims === null || claims === void 0 ? void 0 : claims.description) !== null && _f !== void 0 ? _f : defaults.serviceDescription,
|
|
313
|
-
logoUri,
|
|
314
|
-
logoDigestSri: (_h = (_g = claims === null || claims === void 0 ? void 0 : claims.logoDigestSri) !== null && _g !== void 0 ? _g : defaults.serviceLogoDigestSri) !== null && _h !== void 0 ? _h : (await urlDigestSri(logoUri)),
|
|
315
|
-
minimumAgeRequired: (_j = claims === null || claims === void 0 ? void 0 : claims.minimumAgeRequired) !== null && _j !== void 0 ? _j : defaults.serviceMinimumAgeRequired,
|
|
316
|
-
termsAndConditionsUri,
|
|
317
|
-
termsAndConditionsDigestSri: (_l = (_k = claims === null || claims === void 0 ? void 0 : claims.termsAndConditionsDigestSri) !== null && _k !== void 0 ? _k : defaults.serviceTermsAndConditionsDigestSri) !== null && _l !== void 0 ? _l : (await urlDigestSri(termsAndConditionsUri)),
|
|
318
|
-
privacyPolicyUri,
|
|
319
|
-
privacyPolicyDigestSri: (_o = (_m = claims === null || claims === void 0 ? void 0 : claims.privacyPolicyDigestSri) !== null && _m !== void 0 ? _m : defaults.servicePrivacyPolicyDigestSri) !== null && _o !== void 0 ? _o : (await urlDigestSri(privacyPolicyUri)),
|
|
320
|
-
}
|
|
321
|
-
: {
|
|
322
|
-
name: (_p = claims === null || claims === void 0 ? void 0 : claims.name) !== null && _p !== void 0 ? _p : defaults.agentLabel,
|
|
323
|
-
logoUri,
|
|
324
|
-
logoDigestSri: (_r = (_q = claims === null || claims === void 0 ? void 0 : claims.logoDigestSri) !== null && _q !== void 0 ? _q : defaults.serviceLogoDigestSri) !== null && _r !== void 0 ? _r : (await urlDigestSri(logoUri)),
|
|
325
|
-
registryId: (_s = claims === null || claims === void 0 ? void 0 : claims.registryId) !== null && _s !== void 0 ? _s : defaults.orgRegistryId,
|
|
326
|
-
registryUri: (_t = claims === null || claims === void 0 ? void 0 : claims.registryUri) !== null && _t !== void 0 ? _t : defaults.orgRegistryUri,
|
|
327
|
-
address: (_u = claims === null || claims === void 0 ? void 0 : claims.address) !== null && _u !== void 0 ? _u : defaults.orgAddress,
|
|
328
|
-
organizationKind: (_v = claims === null || claims === void 0 ? void 0 : claims.organizationKind) !== null && _v !== void 0 ? _v : defaults.orgOrganizationKind,
|
|
329
|
-
countryCode: (_w = claims === null || claims === void 0 ? void 0 : claims.countryCode) !== null && _w !== void 0 ? _w : defaults.orgCountryCode,
|
|
330
|
-
};
|
|
121
|
+
async function getClaims(logger, ecsSchemas, { id }, schemaKey, ecsClaims) {
|
|
122
|
+
const claims = await (0, ecsClaims_1.composeEcsClaims)(ecsClaims, schemaKey, logger);
|
|
123
|
+
if (!claims)
|
|
124
|
+
throw new Error(`No ECS_CLAIMS_* variable is set for ${schemaKey}`);
|
|
331
125
|
const ecsSchema = ecsSchemas[schemaKey];
|
|
332
126
|
if (!ecsSchema) {
|
|
333
127
|
throw new Error(`Schema not defined in data schemas for schemaKey: ${schemaKey}`);
|
|
334
128
|
}
|
|
335
|
-
|
|
336
|
-
validateSchema(JSON.parse(ecsSchema), credentialSubject);
|
|
129
|
+
validateSchema(JSON.parse(ecsSchema), Object.assign({ id }, claims));
|
|
337
130
|
return claims;
|
|
338
131
|
}
|
|
132
|
+
function schemaViolations(ecsSchema, credentialSubject) {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
const validate = ajv.compile((_a = ecsSchema.properties) === null || _a === void 0 ? void 0 : _a.credentialSubject);
|
|
135
|
+
if (validate(credentialSubject))
|
|
136
|
+
return [];
|
|
137
|
+
return ((_b = validate.errors) !== null && _b !== void 0 ? _b : []).map(e => { var _a; return ({ path: e.instancePath, message: (_a = e.message) !== null && _a !== void 0 ? _a : e.keyword }); });
|
|
138
|
+
}
|
|
339
139
|
/**
|
|
340
140
|
* Validate a validateSchema object against the corresponding AJV schema.
|
|
341
141
|
* Throws an Error if the schema is missing or validation fails.
|
|
342
142
|
*/
|
|
343
143
|
function validateSchema(ecsSchema, credentialSubject) {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
144
|
+
const violations = schemaViolations(ecsSchema, credentialSubject);
|
|
145
|
+
if (violations.length > 0) {
|
|
146
|
+
throw new Error(`Invalid claims for ${ecsSchema.$id}: ${JSON.stringify(violations, null, 2)}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async function fetchSchemaContent(id) {
|
|
150
|
+
try {
|
|
151
|
+
const response = await fetch((0, vs_agent_model_1.mapToEcosystem)(id));
|
|
152
|
+
if (!response.ok)
|
|
153
|
+
return { error: `${response.status} ${response.statusText}` };
|
|
154
|
+
return { content: await response.text() };
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
return { error: error instanceof Error ? error.message : String(error) };
|
|
355
158
|
}
|
|
356
159
|
}
|
|
357
160
|
/**
|
|
@@ -366,15 +169,16 @@ function validateSchema(ecsSchema, credentialSubject) {
|
|
|
366
169
|
* @throws Error if both the fetch and local fallback fail.
|
|
367
170
|
*/
|
|
368
171
|
async function addDigestSRI(id, data, ecsSchemas) {
|
|
172
|
+
var _a;
|
|
369
173
|
if (!id || !data) {
|
|
370
174
|
throw new Error(`id and data has requiered`);
|
|
371
175
|
}
|
|
372
|
-
const
|
|
176
|
+
const fetched = await fetchSchemaContent(id);
|
|
373
177
|
const key = id.split('/').pop();
|
|
374
178
|
const fallbackSchema = key && (ecsSchemas === null || ecsSchemas === void 0 ? void 0 : ecsSchemas[key]);
|
|
375
|
-
const schemaContent =
|
|
179
|
+
const schemaContent = (_a = fetched.content) !== null && _a !== void 0 ? _a : fallbackSchema;
|
|
376
180
|
if (!schemaContent) {
|
|
377
|
-
throw new Error(`Failed to fetch schema from ${id}: ${
|
|
181
|
+
throw new Error(`Failed to fetch schema from ${id}: ${fetched.error}, and no local fallback found.`);
|
|
378
182
|
}
|
|
379
183
|
assertValidSchema(schemaContent, id);
|
|
380
184
|
return Object.assign(Object.assign({}, data), { digestSRI: generateDigestSRI(schemaContent) });
|
|
@@ -406,14 +210,6 @@ function generateDigestSRI(content, algorithm = 'sha384') {
|
|
|
406
210
|
const hash = (0, crypto_1.createHash)(algorithm).update(content).digest('base64');
|
|
407
211
|
return `${algorithm}-${hash}`;
|
|
408
212
|
}
|
|
409
|
-
/**
|
|
410
|
-
* Digest of the resource a credential references. Throws rather than attest content it could
|
|
411
|
-
* not read: a wrong digestSRI is a false integrity claim in a signed credential.
|
|
412
|
-
*/
|
|
413
|
-
async function urlDigestSri(url) {
|
|
414
|
-
const response = await axios_1.default.get(url, { responseType: 'arraybuffer', timeout: DIGEST_FETCH_TIMEOUT_MS });
|
|
415
|
-
return `sha384-${(0, crypto_1.createHash)('sha384').update(Buffer.from(response.data)).digest('base64')}`;
|
|
416
|
-
}
|
|
417
213
|
function getVerificationMethodId(logger, didRecord) {
|
|
418
214
|
var _a, _b;
|
|
419
215
|
try {
|
|
@@ -423,7 +219,7 @@ function getVerificationMethodId(logger, didRecord) {
|
|
|
423
219
|
method.id === ((_b = (_a = didRecord.didDocument) === null || _a === void 0 ? void 0 : _a.assertionMethod) === null || _b === void 0 ? void 0 : _b[0]);
|
|
424
220
|
});
|
|
425
221
|
if (!verificationMethod) {
|
|
426
|
-
throw new Error('Cannot find a suitable
|
|
222
|
+
throw new Error('Cannot find a suitable Ed25519 verification method in DID Document');
|
|
427
223
|
}
|
|
428
224
|
return verificationMethod.id;
|
|
429
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupSelfTr.js","sourceRoot":"","sources":["../../src/utils/setupSelfTr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setupSelfTr.js","sourceRoot":"","sources":["../../src/utils/setupSelfTr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,80 @@
|
|
|
1
|
-
import { DidRecord, W3cJsonLdVerifiableCredential, W3cJsonLdVerifiablePresentation } from '@credo-ts/core';
|
|
1
|
+
import { DidRecord, W3cJsonLdVerifiableCredential, W3cJsonLdVerifiablePresentation, type W3cV2DataIntegritySecuredCredential, W3cV2DataIntegrityVerifiableCredential, W3cV2DataIntegrityVerifiablePresentation } from '@credo-ts/core';
|
|
2
2
|
import { VsAgent } from '../agent/VsAgent';
|
|
3
|
-
import {
|
|
3
|
+
import { EcsClaims } from './ecsClaims';
|
|
4
|
+
/**
|
|
5
|
+
* A trust credential the agent publishes from its DID Document: a VC Data Model 2.0 credential
|
|
6
|
+
* secured with a DataIntegrityProof, which is what the agent issues itself and receives over the
|
|
7
|
+
* RFC 0809 credential format, or a data model 1.1 credential carrying a linked data proof that an
|
|
8
|
+
* older issuer handed over.
|
|
9
|
+
*/
|
|
10
|
+
export type TrustCredential = W3cJsonLdVerifiableCredential | W3cV2DataIntegrityVerifiableCredential;
|
|
11
|
+
export type TrustPresentation = W3cJsonLdVerifiablePresentation | W3cV2DataIntegrityVerifiablePresentation;
|
|
12
|
+
/**
|
|
13
|
+
* Wraps a VC Data Model 2.0 credential in a data model 2.0 presentation secured with a
|
|
14
|
+
* DataIntegrityProof under the cryptosuite the agent is configured with, the counterpart of the
|
|
15
|
+
* linked data proof a data model 1.1 linked VP carries. The presentation is published from the DID
|
|
16
|
+
* Document rather than presented to a verifier, so there is no challenge to bind; its proof purpose
|
|
17
|
+
* is `authentication`, as Data Integrity defines for presentations.
|
|
18
|
+
*/
|
|
19
|
+
export declare function signLinkedDataIntegrityPresentation(agent: Pick<VsAgent, 'w3cV2Credentials' | 'context'>, options: {
|
|
20
|
+
id: string;
|
|
21
|
+
holder: string;
|
|
22
|
+
credential: W3cV2DataIntegrityVerifiableCredential;
|
|
23
|
+
verificationMethodId: string;
|
|
24
|
+
}): Promise<W3cV2DataIntegrityVerifiablePresentation>;
|
|
4
25
|
export declare function findMetadataEntry(didRecord: DidRecord, key: '_vt/vtc' | '_vt/jsc', id?: string, jsonSchemaRef?: string): any;
|
|
5
|
-
export declare function saveMetadataEntry(agent: VsAgent, didRecord: DidRecord, credential:
|
|
6
|
-
export declare function deleteMetadataEntry(agent: VsAgent, id: string, didRecord: DidRecord, key: '_vt/vtc' | '_vt/jsc'
|
|
26
|
+
export declare function saveMetadataEntry(agent: VsAgent, didRecord: DidRecord, credential: TrustCredential, verifiablePresentation: TrustPresentation, didDocumentServiceId: string, key: '_vt/vtc' | '_vt/jsc'): Promise<void>;
|
|
27
|
+
export declare function deleteMetadataEntry(agent: VsAgent, id: string, didRecord: DidRecord, key: '_vt/vtc' | '_vt/jsc'): Promise<{
|
|
7
28
|
schemaId: any;
|
|
8
29
|
} | null>;
|
|
9
|
-
export declare function createVtc(agent: VsAgent, publicApiBaseUrl: string, id: string, credential:
|
|
30
|
+
export declare function createVtc(agent: VsAgent, publicApiBaseUrl: string, id: string, credential: TrustCredential): Promise<TrustPresentation>;
|
|
10
31
|
export interface CreateJscOptions {
|
|
11
32
|
schemaBaseId: string;
|
|
12
33
|
jsonSchemaRef: string;
|
|
13
34
|
precomputedDigestSRI?: string;
|
|
14
35
|
}
|
|
15
|
-
export declare function createJsc(agent: VsAgent, publicApiBaseUrl: string, ecsSchemas: Record<string, string>, options: CreateJscOptions): Promise<
|
|
16
|
-
|
|
36
|
+
export declare function createJsc(agent: VsAgent, publicApiBaseUrl: string, ecsSchemas: Record<string, string>, options: CreateJscOptions): Promise<W3cV2DataIntegritySecuredCredential & {
|
|
37
|
+
id: string;
|
|
38
|
+
}>;
|
|
39
|
+
export declare function removeTrustCredential(agent: VsAgent, schemaId: string, key: '_vt/jsc' | '_vt/vtc'): Promise<{
|
|
17
40
|
schemaId: any;
|
|
18
41
|
} | null>;
|
|
19
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Removes the linked VP and the stored credential an exchange delivered, as
|
|
44
|
+
* [VSA-VTI-FLOW-OP-REVOKE] requires of the applicant. The credential is read from the RFC 0809
|
|
45
|
+
* format data of the exchange; exchanges earlier versions completed over other formats are not
|
|
46
|
+
* migrated. Returns the credential id, or `undefined` when none is found, in which case nothing is
|
|
47
|
+
* removed.
|
|
48
|
+
*/
|
|
49
|
+
export declare function removeStoredTrustCredential(agent: VsAgent, credentialExchangeRecordId: string): Promise<string | undefined>;
|
|
20
50
|
export declare function migrateVtjscServiceIds(agent: VsAgent): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Takes the linked VPs of the given `_vt/jsc` entries out of the DID Document, publishing it once.
|
|
53
|
+
*
|
|
54
|
+
* The entries stay: `SelfTrController` serves them, and issued credentials name that URL in
|
|
55
|
+
* `credentialSchema.id`. Dropping one would 404 it and leave those credentials unverifiable.
|
|
56
|
+
*/
|
|
57
|
+
export declare function detachVtjscPublications(agent: VsAgent, schemaRefs: readonly string[]): Promise<string[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Puts a detached `_vt/jsc` entry back in the DID Document.
|
|
60
|
+
*
|
|
61
|
+
* The publication pass skips an entry whose digest still matches, so without this the agent would
|
|
62
|
+
* keep serving a VTJSC it never announces again.
|
|
63
|
+
*/
|
|
64
|
+
export declare function reattachVtjscPublication(agent: VsAgent, schemaRef: string): Promise<boolean>;
|
|
21
65
|
export declare function getTrustMetadata(didRecord: DidRecord, key: '_vt/vtc' | '_vt/jsc', schemaId?: string): any;
|
|
22
|
-
|
|
66
|
+
/**
|
|
67
|
+
* @param jsonSchemaCredentialId the VTJSC the Ecosystem published for this schema. Only the
|
|
68
|
+
* Ecosystem publishes it, so an agent that issues against another Corporation's Ecosystem must
|
|
69
|
+
* resolve it there — see resolveJsonSchemaCredentialId.
|
|
70
|
+
* @param issuerParticipantId this agent's ISSUER participant for the schema, which anchors the
|
|
71
|
+
* credential digest.
|
|
72
|
+
* @param schemaKey the ECS schema this agent issues against. Every ECS key is accepted; the caller
|
|
73
|
+
* reaches this function only for a schema the agent holds an active ISSUER entry on.
|
|
74
|
+
*/
|
|
75
|
+
export declare function rebindEcsCredentialSchema(agent: VsAgent, publicApiBaseUrl: string, schemaId: string, schemaKey: string, ecsClaims: EcsClaims, jsonSchemaCredentialId: string, issuerParticipantId: number, onChainJsonSchema?: string, effectiveUntil?: string): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Withdraws the ECS credentials anchored against `issuerParticipantId`, and the #whois entry
|
|
78
|
+
* when the Service credential is among them.
|
|
79
|
+
*/
|
|
80
|
+
export declare function withdrawSelfIssuedEcsCredentials(agent: VsAgent, issuerParticipantId: number): Promise<string[]>;
|