@sphereon/ssi-sdk.presentation-exchange 0.33.1-feature.vcdm2.tsup.32 → 0.33.1-next.2
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/dist/agent/PresentationExchange.d.ts +16 -0
- package/dist/agent/PresentationExchange.d.ts.map +1 -0
- package/dist/agent/PresentationExchange.js +120 -0
- package/dist/agent/PresentationExchange.js.map +1 -0
- package/dist/functions.d.ts +13 -0
- package/dist/functions.d.ts.map +1 -0
- package/dist/functions.js +148 -0
- package/dist/functions.js.map +1 -0
- package/dist/index.d.ts +5 -79
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -597
- package/dist/index.js.map +1 -1
- package/dist/types/IPresentationExchange.d.ts +55 -0
- package/dist/types/IPresentationExchange.d.ts.map +1 -0
- package/dist/types/IPresentationExchange.js +3 -0
- package/dist/types/IPresentationExchange.js.map +1 -0
- package/package.json +17 -27
- package/dist/index.cjs +0 -619
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -83
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IDefinitionCredentialFilterArgs, IPEXFilterResult, IPEXFilterResultWithInputDescriptor, IRequiredContext, PEXOpts, VersionDiscoveryResult } from '../index';
|
|
2
|
+
import { IAgentPlugin } from '@veramo/core';
|
|
3
|
+
import { IPresentationExchange } from '../types/IPresentationExchange';
|
|
4
|
+
import { IPresentationDefinition } from '@sphereon/pex';
|
|
5
|
+
export declare class PresentationExchange implements IAgentPlugin {
|
|
6
|
+
readonly schema: any;
|
|
7
|
+
private readonly pex;
|
|
8
|
+
readonly methods: IPresentationExchange;
|
|
9
|
+
constructor(opts?: PEXOpts);
|
|
10
|
+
private pexValidateDefinition;
|
|
11
|
+
pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>;
|
|
12
|
+
pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>;
|
|
13
|
+
pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>;
|
|
14
|
+
private pexFilterCredentials;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=PresentationExchange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresentationExchange.d.ts","sourceRoot":"","sources":["../../src/agent/PresentationExchange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAE/B,gBAAgB,EAChB,mCAAmC,EACnC,gBAAgB,EAChB,OAAO,EAEP,sBAAsB,EACvB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAW,uBAAuB,EAAO,MAAM,eAAe,CAAA;AAOrE,qBAAa,oBAAqB,YAAW,YAAY;IACvD,QAAQ,CAAC,MAAM,MAAqC;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAEhC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAKtC;gBAEW,IAAI,CAAC,EAAE,OAAO;YAEZ,qBAAqB;IA2B7B,oBAAoB,CAAC,sBAAsB,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAItG,8BAA8B,CAAC,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe3H,gDAAgD,CACpD,IAAI,EAAE,+BAA+B,EACrC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mCAAmC,EAAE,CAAC;YAqCnC,oBAAoB;CAsBnC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PresentationExchange = void 0;
|
|
13
|
+
const index_1 = require("../index");
|
|
14
|
+
const pex_1 = require("@sphereon/pex");
|
|
15
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
16
|
+
const ssi_sdk_ext_did_utils_1 = require("@sphereon/ssi-sdk-ext.did-utils");
|
|
17
|
+
const ssi_sdk_credential_store_1 = require("@sphereon/ssi-sdk.credential-store");
|
|
18
|
+
class PresentationExchange {
|
|
19
|
+
constructor(opts) {
|
|
20
|
+
this.schema = index_1.schema.IDidAuthSiopOpAuthenticator;
|
|
21
|
+
this.pex = new pex_1.PEX();
|
|
22
|
+
this.methods = {
|
|
23
|
+
pexValidateDefinition: this.pexValidateDefinition.bind(this),
|
|
24
|
+
pexDefinitionVersion: this.pexDefinitionVersion.bind(this),
|
|
25
|
+
pexDefinitionFilterCredentials: this.pexDefinitionFilterCredentials.bind(this),
|
|
26
|
+
pexDefinitionFilterCredentialsPerInputDescriptor: this.pexDefinitionFilterCredentialsPerInputDescriptor.bind(this),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
pexValidateDefinition(args) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const { definition } = args;
|
|
32
|
+
const invalids = [];
|
|
33
|
+
try {
|
|
34
|
+
const result = pex_1.PEX.validateDefinition(definition);
|
|
35
|
+
const validations = Array.isArray(result) ? result : [result];
|
|
36
|
+
invalids.push(...validations.filter((v) => v.status === 'error'));
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
invalids.push({
|
|
40
|
+
status: 'error',
|
|
41
|
+
message: typeof error === 'string'
|
|
42
|
+
? error
|
|
43
|
+
: typeof error === 'object' && 'message' in error
|
|
44
|
+
? error.message
|
|
45
|
+
: 'unknown error',
|
|
46
|
+
tag: 'validation',
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (invalids.length > 0) {
|
|
50
|
+
throw Error(`Invalid definition. ${invalids.map((v) => v.message).toString()}`);
|
|
51
|
+
}
|
|
52
|
+
return true; // Never returns false, but REST API does not allow Promise<void>
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
pexDefinitionVersion(presentationDefinition) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
return pex_1.PEX.definitionVersionDiscovery(presentationDefinition);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
pexDefinitionFilterCredentials(args, context) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
var _a, _b, _c;
|
|
63
|
+
const credentials = yield this.pexFilterCredentials(args.credentialFilterOpts, context);
|
|
64
|
+
const holderDIDs = args.holderDIDs ? (0, ssi_sdk_ext_did_utils_1.toDIDs)(args.holderDIDs) : (0, ssi_sdk_ext_did_utils_1.toDIDs)(yield context.agent.dataStoreORMGetIdentifiers());
|
|
65
|
+
const selectResults = this.pex.selectFrom(args.presentationDefinition, credentials !== null && credentials !== void 0 ? credentials : [], Object.assign(Object.assign({}, args), { holderDIDs, limitDisclosureSignatureSuites: (_a = args.limitDisclosureSignatureSuites) !== null && _a !== void 0 ? _a : ['BbsBlsSignature2020'] }));
|
|
66
|
+
return {
|
|
67
|
+
id: args.presentationDefinition.id,
|
|
68
|
+
selectResults,
|
|
69
|
+
filteredCredentials: (_c = (_b = selectResults.verifiableCredential) === null || _b === void 0 ? void 0 : _b.map((vc) => ssi_types_1.CredentialMapper.storedCredentialToOriginalFormat(vc))) !== null && _c !== void 0 ? _c : [],
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
pexDefinitionFilterCredentialsPerInputDescriptor(args, context) {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
var _a;
|
|
76
|
+
const origDefinition = args.presentationDefinition;
|
|
77
|
+
const credentials = yield this.pexFilterCredentials((_a = args.credentialFilterOpts) !== null && _a !== void 0 ? _a : {}, context);
|
|
78
|
+
const holderDIDs = args.holderDIDs ? (0, ssi_sdk_ext_did_utils_1.toDIDs)(args.holderDIDs) : (0, ssi_sdk_ext_did_utils_1.toDIDs)(yield context.agent.dataStoreORMGetIdentifiers());
|
|
79
|
+
const limitDisclosureSignatureSuites = args.limitDisclosureSignatureSuites;
|
|
80
|
+
const promises = new Map();
|
|
81
|
+
origDefinition.input_descriptors.forEach((inputDescriptor) => {
|
|
82
|
+
const presentationDefinition = {
|
|
83
|
+
id: inputDescriptor.id,
|
|
84
|
+
input_descriptors: [inputDescriptor],
|
|
85
|
+
};
|
|
86
|
+
const credentialRole = args.credentialFilterOpts.credentialRole;
|
|
87
|
+
promises.set(inputDescriptor, this.pexDefinitionFilterCredentials({
|
|
88
|
+
credentialFilterOpts: { credentialRole, verifiableCredentials: credentials },
|
|
89
|
+
// @ts-ignore
|
|
90
|
+
presentationDefinition,
|
|
91
|
+
holderDIDs,
|
|
92
|
+
limitDisclosureSignatureSuites,
|
|
93
|
+
}, context));
|
|
94
|
+
});
|
|
95
|
+
yield Promise.all(promises.values());
|
|
96
|
+
const result = [];
|
|
97
|
+
for (const entry of promises.entries()) {
|
|
98
|
+
result.push(Object.assign(Object.assign({}, (yield entry[1])), { inputDescriptor: entry[0] }));
|
|
99
|
+
}
|
|
100
|
+
return result;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
pexFilterCredentials(filterOpts, context) {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
if (filterOpts.verifiableCredentials && filterOpts.verifiableCredentials.length > 0) {
|
|
106
|
+
return filterOpts.verifiableCredentials;
|
|
107
|
+
}
|
|
108
|
+
const filter = (0, ssi_sdk_credential_store_1.verifiableCredentialForRoleFilter)(filterOpts.credentialRole, filterOpts.filter);
|
|
109
|
+
const uniqueCredentials = yield context.agent.crsGetUniqueCredentials({ filter });
|
|
110
|
+
return uniqueCredentials.map((uniqueVC) => {
|
|
111
|
+
const vc = uniqueVC.uniformVerifiableCredential;
|
|
112
|
+
const proof = Array.isArray(vc.proof) ? vc.proof : [vc.proof];
|
|
113
|
+
const jwtProof = proof.find((p) => (p === null || p === void 0 ? void 0 : p.type) === ssi_types_1.JWT_PROOF_TYPE_2020);
|
|
114
|
+
return jwtProof ? jwtProof.jwt : vc;
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.PresentationExchange = PresentationExchange;
|
|
120
|
+
//# sourceMappingURL=PresentationExchange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresentationExchange.js","sourceRoot":"","sources":["../../src/agent/PresentationExchange.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Format } from '@sphereon/pex-models';
|
|
2
|
+
import { ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution';
|
|
3
|
+
import { ProofFormat } from '@veramo/core';
|
|
4
|
+
import { IPEXPresentationSignCallback, IRequiredContext } from './types/IPresentationExchange';
|
|
5
|
+
export declare function createPEXPresentationSignCallback(args: {
|
|
6
|
+
idOpts: ManagedIdentifierOptsOrResult;
|
|
7
|
+
fetchRemoteContexts?: boolean;
|
|
8
|
+
skipDidResolution?: boolean;
|
|
9
|
+
format?: Format | ProofFormat;
|
|
10
|
+
domain?: string;
|
|
11
|
+
challenge?: string;
|
|
12
|
+
}, context: IRequiredContext): Promise<IPEXPresentationSignCallback>;
|
|
13
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAIL,6BAA6B,EAC9B,MAAM,6CAA6C,CAAA;AAQpD,OAAO,EAAuB,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAE9F,wBAAsB,iCAAiC,CACrD,IAAI,EAAE;IACJ,MAAM,EAAE,6BAA6B,CAAA;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,EACD,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAyKvC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.createPEXPresentationSignCallback = createPEXPresentationSignCallback;
|
|
13
|
+
const ssi_sdk_ext_identifier_resolution_1 = require("@sphereon/ssi-sdk-ext.identifier-resolution");
|
|
14
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
15
|
+
function createPEXPresentationSignCallback(args, context) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
function determineProofFormat(determineArgs) {
|
|
18
|
+
var _a;
|
|
19
|
+
const { format, presentationDefinition, presentation } = determineArgs;
|
|
20
|
+
var formatOptions = (_a = format !== null && format !== void 0 ? format : presentationDefinition.format) !== null && _a !== void 0 ? _a : args.format;
|
|
21
|
+
// TODO Refactor so it takes into account the Input Descriptors and we can lookup from there. Now we only do that if there is 1 descriptor
|
|
22
|
+
if (!formatOptions && presentationDefinition.input_descriptors.length == 1 && 'format' in presentationDefinition.input_descriptors[0]) {
|
|
23
|
+
formatOptions = presentationDefinition.input_descriptors[0].format;
|
|
24
|
+
}
|
|
25
|
+
// All format arguments are optional. So if no format has been given we go for the most supported 'jwt'
|
|
26
|
+
if (!formatOptions) {
|
|
27
|
+
if (ssi_types_1.CredentialMapper.isSdJwtDecodedCredentialPayload(presentation.decodedPayload)) {
|
|
28
|
+
return 'vc+sd-jwt';
|
|
29
|
+
}
|
|
30
|
+
else if (ssi_types_1.CredentialMapper.isMsoMdocDecodedPresentation(presentation.decodedPayload)) {
|
|
31
|
+
return 'mso_mdoc';
|
|
32
|
+
}
|
|
33
|
+
else if (ssi_types_1.CredentialMapper.isW3cPresentation(presentation.decodedPayload)) {
|
|
34
|
+
if (typeof presentation.signedPayload === 'string') {
|
|
35
|
+
return 'jwt';
|
|
36
|
+
}
|
|
37
|
+
return 'lds';
|
|
38
|
+
}
|
|
39
|
+
return 'jwt';
|
|
40
|
+
}
|
|
41
|
+
else if (typeof formatOptions === 'string') {
|
|
42
|
+
// if formatOptions is a singular string we can return that as the format
|
|
43
|
+
return formatOptions;
|
|
44
|
+
}
|
|
45
|
+
// here we transform all format options to either lds or jwt. but we also want to support sd-jwt, so we need to specifically check for this one. which is ['vc+sd-jwt']
|
|
46
|
+
const formats = new Set(Object.keys(formatOptions).map((form) => (form.includes('ldp') ? 'lds' : form.includes('vc+sd-jwt') ? 'vc+sd-jwt' : 'jwt')));
|
|
47
|
+
// if we only have 1 format type we can return that
|
|
48
|
+
if (formats.size === 1) {
|
|
49
|
+
return formats.values().next().value;
|
|
50
|
+
}
|
|
51
|
+
formats.keys().next();
|
|
52
|
+
// if we can go for sd-jwt, we go for sd-jwt
|
|
53
|
+
if (formats.has('vc+sd-jwt')) {
|
|
54
|
+
return 'vc+sd-jwt';
|
|
55
|
+
}
|
|
56
|
+
// if it is not sd-jwt we would like to go for jwt
|
|
57
|
+
else if (formats.has('jwt')) {
|
|
58
|
+
return 'jwt';
|
|
59
|
+
}
|
|
60
|
+
// else we go for lds
|
|
61
|
+
return 'lds';
|
|
62
|
+
}
|
|
63
|
+
return (_a) => __awaiter(this, [_a], void 0, function* ({ presentation, domain, presentationDefinition, format, challenge, }) {
|
|
64
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
65
|
+
const proofFormat = determineProofFormat({ format, presentationDefinition, presentation });
|
|
66
|
+
const { idOpts } = args;
|
|
67
|
+
const CLOCK_SKEW = 120;
|
|
68
|
+
if (args.skipDidResolution && (0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierDidOpts)(idOpts)) {
|
|
69
|
+
idOpts.offlineWhenNoDIDRegistered = true;
|
|
70
|
+
}
|
|
71
|
+
if ('compactSdJwtVc' in presentation) {
|
|
72
|
+
if (proofFormat !== 'vc+sd-jwt') {
|
|
73
|
+
return Promise.reject(Error(`presentation payload does not match proof format ${proofFormat}`));
|
|
74
|
+
}
|
|
75
|
+
const presentationResult = yield context.agent.createSdJwtPresentation(Object.assign(Object.assign({}, ((idOpts === null || idOpts === void 0 ? void 0 : idOpts.method) === 'oid4vci-issuer' && { holder: idOpts === null || idOpts === void 0 ? void 0 : idOpts.issuer })), { presentation: presentation.compactSdJwtVc, kb: {
|
|
76
|
+
payload: Object.assign(Object.assign({}, (_b = presentation.kbJwt) === null || _b === void 0 ? void 0 : _b.payload), { iat: (_e = (_d = (_c = presentation.kbJwt) === null || _c === void 0 ? void 0 : _c.payload) === null || _d === void 0 ? void 0 : _d.iat) !== null && _e !== void 0 ? _e : Math.floor(Date.now() / 1000 - CLOCK_SKEW), nonce: challenge !== null && challenge !== void 0 ? challenge : (_g = (_f = presentation.kbJwt) === null || _f === void 0 ? void 0 : _f.payload) === null || _g === void 0 ? void 0 : _g.nonce, aud: (_l = (_k = (_j = (_h = presentation.kbJwt) === null || _h === void 0 ? void 0 : _h.payload) === null || _j === void 0 ? void 0 : _j.aud) !== null && _k !== void 0 ? _k : domain) !== null && _l !== void 0 ? _l : args.domain }),
|
|
77
|
+
} }));
|
|
78
|
+
return ssi_types_1.CredentialMapper.storedPresentationToOriginalFormat(presentationResult.presentation);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const resolution = yield context.agent.identifierManagedGet(idOpts);
|
|
82
|
+
if (proofFormat === 'vc+sd-jwt') {
|
|
83
|
+
return Promise.reject(Error(`presentation payload does not match proof format ${proofFormat}`));
|
|
84
|
+
}
|
|
85
|
+
let header;
|
|
86
|
+
if (!presentation.holder) {
|
|
87
|
+
presentation.holder = resolution.issuer;
|
|
88
|
+
}
|
|
89
|
+
if (proofFormat === 'jwt') {
|
|
90
|
+
header = Object.assign(Object.assign({}, (((0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierDidResult)(resolution) || (0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierX5cResult)(resolution)) && resolution.kid && { kid: resolution.kid })), ((0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierX5cResult)(resolution) && { jwk: resolution.jwk }));
|
|
91
|
+
if (presentation.verifier || !presentation.aud) {
|
|
92
|
+
presentation.aud = Array.isArray(presentation.verifier) ? presentation.verifier : ((_o = (_m = presentation.verifier) !== null && _m !== void 0 ? _m : domain) !== null && _o !== void 0 ? _o : args.domain);
|
|
93
|
+
delete presentation.verifier;
|
|
94
|
+
}
|
|
95
|
+
if (!presentation.nbf) {
|
|
96
|
+
if (presentation.issuanceDate) {
|
|
97
|
+
const converted = Date.parse(presentation.issuanceDate);
|
|
98
|
+
if (!isNaN(converted)) {
|
|
99
|
+
presentation.nbf = Math.floor(converted / 1000); // no skew here, as an explicit value was given
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
presentation.nbf = Math.floor(Date.now() / 1000 - CLOCK_SKEW);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (!presentation.iat) {
|
|
107
|
+
presentation.iat = presentation.nbf;
|
|
108
|
+
}
|
|
109
|
+
if (!presentation.exp) {
|
|
110
|
+
if (presentation.expirationDate) {
|
|
111
|
+
const converted = Date.parse(presentation.expirationDate);
|
|
112
|
+
if (!isNaN(converted)) {
|
|
113
|
+
presentation.exp = Math.floor(converted / 1000); // no skew here as an explicit value w as given
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
presentation.exp = presentation.nbf + 600 + CLOCK_SKEW;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (!presentation.vp) {
|
|
121
|
+
presentation.vp = {};
|
|
122
|
+
}
|
|
123
|
+
/*if (!presentation.sub) {
|
|
124
|
+
presentation.sub = id.did
|
|
125
|
+
}*/
|
|
126
|
+
if (!presentation.vp.holder) {
|
|
127
|
+
presentation.vp.holder = presentation.holder;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// we ignore the alg / proof_format for now, as we already have the kid anyway at this point
|
|
131
|
+
// todo: look for jwt_vc_json and remove types and @context
|
|
132
|
+
const vp = yield context.agent.createVerifiablePresentation({
|
|
133
|
+
presentation: presentation,
|
|
134
|
+
removeOriginalFields: false,
|
|
135
|
+
keyRef: resolution.kmsKeyRef,
|
|
136
|
+
// domain: domain ?? args.domain, // handled above, and did-jwt-vc creates an array even for 1 entry
|
|
137
|
+
challenge: challenge !== null && challenge !== void 0 ? challenge : args.challenge,
|
|
138
|
+
fetchRemoteContexts: args.fetchRemoteContexts !== false,
|
|
139
|
+
proofFormat: proofFormat,
|
|
140
|
+
header,
|
|
141
|
+
});
|
|
142
|
+
// makes sure we extract an actual JWT from the internal representation in case it is a JWT
|
|
143
|
+
return ssi_types_1.CredentialMapper.storedPresentationToOriginalFormat(vp);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,83 +1,9 @@
|
|
|
1
|
-
import { IPluginMethodMap, IIdentifier, IAgentContext, IDataStoreORM, IResolver, IDIDManager, ICredentialPlugin, PresentationPayload, IAgentPlugin, ProofFormat } from '@veramo/core';
|
|
2
|
-
import { IIdentifierResolution, ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution';
|
|
3
|
-
import { W3CVerifiableCredential, IPresentation, Optional, SdJwtDecodedVerifiableCredential, W3CVerifiablePresentation } from '@sphereon/ssi-types';
|
|
4
|
-
import { IPresentationDefinition, PEVersion, SelectResults } from '@sphereon/pex';
|
|
5
|
-
import { Format, InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models';
|
|
6
|
-
import { CredentialRole, FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store';
|
|
7
|
-
import { ISDJwtPlugin } from '@sphereon/ssi-sdk.sd-jwt';
|
|
8
|
-
|
|
9
|
-
interface IPresentationExchange extends IPluginMethodMap {
|
|
10
|
-
pexValidateDefinition(args: IDefinitionValidateArgs): Promise<boolean>;
|
|
11
|
-
pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>;
|
|
12
|
-
pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>;
|
|
13
|
-
pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>;
|
|
14
|
-
}
|
|
15
|
-
interface IDefinitionValidateArgs {
|
|
16
|
-
definition: IPresentationDefinition;
|
|
17
|
-
}
|
|
18
|
-
interface IDefinitionCredentialFilterArgs {
|
|
19
|
-
presentationDefinition: IPresentationDefinition;
|
|
20
|
-
credentialFilterOpts: {
|
|
21
|
-
credentialRole: CredentialRole;
|
|
22
|
-
verifiableCredentials?: W3CVerifiableCredential[];
|
|
23
|
-
filter?: FindDigitalCredentialArgs;
|
|
24
|
-
};
|
|
25
|
-
holderDIDs?: (string | IIdentifier)[];
|
|
26
|
-
limitDisclosureSignatureSuites?: string[];
|
|
27
|
-
restrictToFormats?: Format;
|
|
28
|
-
restrictToDIDMethods?: string[];
|
|
29
|
-
}
|
|
30
|
-
interface PEXOpts {
|
|
31
|
-
defaultStore?: string;
|
|
32
|
-
defaultNamespace?: string;
|
|
33
|
-
}
|
|
34
|
-
interface IPEXOptions {
|
|
35
|
-
definition?: IPresentationDefinition;
|
|
36
|
-
definitionId: string;
|
|
37
|
-
}
|
|
38
|
-
interface IPEXFilterResultWithInputDescriptor extends IPEXFilterResult {
|
|
39
|
-
inputDescriptor: InputDescriptorV1 | InputDescriptorV2;
|
|
40
|
-
}
|
|
41
|
-
interface IPEXFilterResult {
|
|
42
|
-
id: string;
|
|
43
|
-
selectResults: SelectResults;
|
|
44
|
-
filteredCredentials: W3CVerifiableCredential[];
|
|
45
|
-
}
|
|
46
|
-
interface VersionDiscoveryResult {
|
|
47
|
-
version?: PEVersion;
|
|
48
|
-
error?: string;
|
|
49
|
-
}
|
|
50
|
-
type IPEXPresentationSignCallback = (args: IPEXPresentationSignCallBackParams) => Promise<W3CVerifiablePresentation>;
|
|
51
|
-
interface IPEXPresentationSignCallBackParams {
|
|
52
|
-
presentation: IPresentation | Optional<PresentationPayload, 'holder'> | SdJwtDecodedVerifiableCredential;
|
|
53
|
-
presentationDefinition: IPresentationDefinition;
|
|
54
|
-
}
|
|
55
|
-
type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & IIdentifierResolution & ICredentialPlugin & ISDJwtPlugin>;
|
|
56
|
-
|
|
57
|
-
declare class PresentationExchange implements IAgentPlugin {
|
|
58
|
-
readonly schema: any;
|
|
59
|
-
private readonly pex;
|
|
60
|
-
readonly methods: IPresentationExchange;
|
|
61
|
-
constructor(opts?: PEXOpts);
|
|
62
|
-
private pexValidateDefinition;
|
|
63
|
-
pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>;
|
|
64
|
-
pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>;
|
|
65
|
-
pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>;
|
|
66
|
-
private pexFilterCredentials;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
declare function createPEXPresentationSignCallback(args: {
|
|
70
|
-
idOpts: ManagedIdentifierOptsOrResult;
|
|
71
|
-
fetchRemoteContexts?: boolean;
|
|
72
|
-
skipDidResolution?: boolean;
|
|
73
|
-
format?: Format | ProofFormat;
|
|
74
|
-
domain?: string;
|
|
75
|
-
challenge?: string;
|
|
76
|
-
}, context: IRequiredContext): Promise<IPEXPresentationSignCallback>;
|
|
77
|
-
|
|
78
1
|
/**
|
|
79
2
|
* @public
|
|
80
3
|
*/
|
|
81
4
|
declare const schema: any;
|
|
82
|
-
|
|
83
|
-
export {
|
|
5
|
+
export { schema };
|
|
6
|
+
export { PresentationExchange } from './agent/PresentationExchange';
|
|
7
|
+
export * from './types/IPresentationExchange';
|
|
8
|
+
export * from './functions';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,cAAc,+BAA+B,CAAA;AAC7C,cAAc,aAAa,CAAA"}
|