@sphereon/ssi-sdk.presentation-exchange 0.28.1-next.39 → 0.28.1-next.6
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.map +1 -1
- package/dist/agent/PresentationExchange.js +9 -16
- package/dist/agent/PresentationExchange.js.map +1 -1
- package/dist/types/IPresentationExchange.d.ts +4 -7
- package/dist/types/IPresentationExchange.d.ts.map +1 -1
- package/package.json +6 -7
- package/src/agent/PresentationExchange.ts +9 -21
- package/src/types/IPresentationExchange.ts +3 -8
|
@@ -1 +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,
|
|
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,EAAuB,YAAY,EAA6D,MAAM,cAAc,CAAA;AAE3H,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAW,uBAAuB,EAAO,MAAM,eAAe,CAAA;AAKrE,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;YAmCnC,oBAAoB;CAcnC"}
|
|
@@ -14,7 +14,6 @@ const index_1 = require("../index");
|
|
|
14
14
|
const pex_1 = require("@sphereon/pex");
|
|
15
15
|
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
16
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
17
|
class PresentationExchange {
|
|
19
18
|
constructor(opts) {
|
|
20
19
|
this.schema = index_1.schema.IDidAuthSiopOpAuthenticator;
|
|
@@ -59,14 +58,14 @@ class PresentationExchange {
|
|
|
59
58
|
}
|
|
60
59
|
pexDefinitionFilterCredentials(args, context) {
|
|
61
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
var _a, _b, _c;
|
|
63
|
-
const credentials = yield this.pexFilterCredentials(args.credentialFilterOpts, context);
|
|
61
|
+
var _a, _b, _c, _d;
|
|
62
|
+
const credentials = yield this.pexFilterCredentials((_a = args.credentialFilterOpts) !== null && _a !== void 0 ? _a : {}, context);
|
|
64
63
|
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: (
|
|
64
|
+
const selectResults = this.pex.selectFrom(args.presentationDefinition, credentials !== null && credentials !== void 0 ? credentials : [], Object.assign(Object.assign({}, args), { holderDIDs, limitDisclosureSignatureSuites: (_b = args.limitDisclosureSignatureSuites) !== null && _b !== void 0 ? _b : ['BbsBlsSignature2020'] }));
|
|
66
65
|
return {
|
|
67
66
|
id: args.presentationDefinition.id,
|
|
68
67
|
selectResults,
|
|
69
|
-
filteredCredentials: (
|
|
68
|
+
filteredCredentials: (_d = (_c = selectResults.verifiableCredential) === null || _c === void 0 ? void 0 : _c.map((vc) => ssi_types_1.CredentialMapper.storedCredentialToOriginalFormat(vc))) !== null && _d !== void 0 ? _d : [],
|
|
70
69
|
};
|
|
71
70
|
});
|
|
72
71
|
}
|
|
@@ -83,9 +82,8 @@ class PresentationExchange {
|
|
|
83
82
|
id: inputDescriptor.id,
|
|
84
83
|
input_descriptors: [inputDescriptor],
|
|
85
84
|
};
|
|
86
|
-
const credentialRole = args.credentialFilterOpts.credentialRole;
|
|
87
85
|
promises.set(inputDescriptor, this.pexDefinitionFilterCredentials({
|
|
88
|
-
credentialFilterOpts: {
|
|
86
|
+
credentialFilterOpts: { verifiableCredentials: credentials },
|
|
89
87
|
// @ts-ignore
|
|
90
88
|
presentationDefinition,
|
|
91
89
|
holderDIDs,
|
|
@@ -102,17 +100,12 @@ class PresentationExchange {
|
|
|
102
100
|
}
|
|
103
101
|
pexFilterCredentials(filterOpts, context) {
|
|
104
102
|
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
-
if (filterOpts.verifiableCredentials && filterOpts.verifiableCredentials.length > 0) {
|
|
103
|
+
if ((filterOpts === null || filterOpts === void 0 ? void 0 : filterOpts.verifiableCredentials) && filterOpts.verifiableCredentials.length > 0) {
|
|
106
104
|
return filterOpts.verifiableCredentials;
|
|
107
105
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
});
|
|
106
|
+
return (yield context.agent.dataStoreORMGetVerifiableCredentials(filterOpts === null || filterOpts === void 0 ? void 0 : filterOpts.filter))
|
|
107
|
+
.map((uniqueVC) => uniqueVC.verifiableCredential)
|
|
108
|
+
.map((vc) => (vc.proof && vc.proof.type === ssi_types_1.JWT_PROOF_TYPE_2020 ? vc.proof.jwt : vc));
|
|
116
109
|
});
|
|
117
110
|
}
|
|
118
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationExchange.js","sourceRoot":"","sources":["../../src/agent/PresentationExchange.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCASiB;AAIjB,uCAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"PresentationExchange.js","sourceRoot":"","sources":["../../src/agent/PresentationExchange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { IAgentContext, ICredentialPlugin, IDataStoreORM, IDIDManager, IIdentifier, IPluginMethodMap, IResolver, PresentationPayload } from '@veramo/core';
|
|
1
|
+
import { FindCredentialsArgs, IAgentContext, ICredentialPlugin, IDataStoreORM, IDIDManager, IIdentifier, IPluginMethodMap, IResolver, PresentationPayload } from '@veramo/core';
|
|
2
2
|
import { IPresentation, Optional, W3CVerifiableCredential, W3CVerifiablePresentation } from '@sphereon/ssi-types';
|
|
3
3
|
import { IPresentationDefinition, PEVersion, SelectResults } from '@sphereon/pex';
|
|
4
4
|
import { Format, InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models';
|
|
5
|
-
import { ICredentialStore } from '@sphereon/ssi-sdk.credential-store';
|
|
6
|
-
import { CredentialRole, FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store';
|
|
7
5
|
export interface IPresentationExchange extends IPluginMethodMap {
|
|
8
6
|
pexValidateDefinition(args: IDefinitionValidateArgs): Promise<boolean>;
|
|
9
7
|
pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>;
|
|
@@ -15,10 +13,9 @@ export interface IDefinitionValidateArgs {
|
|
|
15
13
|
}
|
|
16
14
|
export interface IDefinitionCredentialFilterArgs {
|
|
17
15
|
presentationDefinition: IPresentationDefinition;
|
|
18
|
-
credentialFilterOpts
|
|
19
|
-
credentialRole: CredentialRole;
|
|
16
|
+
credentialFilterOpts?: {
|
|
20
17
|
verifiableCredentials?: W3CVerifiableCredential[];
|
|
21
|
-
filter?:
|
|
18
|
+
filter?: FindCredentialsArgs;
|
|
22
19
|
};
|
|
23
20
|
holderDIDs?: (string | IIdentifier)[];
|
|
24
21
|
limitDisclosureSignatureSuites?: string[];
|
|
@@ -50,5 +47,5 @@ export interface IPEXPresentationSignCallBackParams {
|
|
|
50
47
|
presentation: IPresentation | Optional<PresentationPayload, 'holder'>;
|
|
51
48
|
presentationDefinition: IPresentationDefinition;
|
|
52
49
|
}
|
|
53
|
-
export type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & ICredentialPlugin
|
|
50
|
+
export type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & ICredentialPlugin>;
|
|
54
51
|
//# sourceMappingURL=IPresentationExchange.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IPresentationExchange.d.ts","sourceRoot":"","sources":["../../src/types/IPresentationExchange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACjH,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"IPresentationExchange.d.ts","sourceRoot":"","sources":["../../src/types/IPresentationExchange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACjH,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEnF,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtE,oBAAoB,CAAC,sBAAsB,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAEtG,8BAA8B,CAAC,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE3H,gDAAgD,CAC9C,IAAI,EAAE,+BAA+B,EACrC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mCAAmC,EAAE,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,uBAAuB,CAAA;CACpC;AAED,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB,EAAE,uBAAuB,CAAA;IAC/C,oBAAoB,CAAC,EAAE;QAAE,qBAAqB,CAAC,EAAE,uBAAuB,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAA;IAC1G,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IACrC,8BAA8B,CAAC,EAAE,MAAM,EAAE,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAE1B,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mCAAoC,SAAQ,gBAAgB;IAC3E,eAAe,EAAE,iBAAiB,GAAG,iBAAiB,CAAA;CACvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,aAAa,CAAA;IAC5B,mBAAmB,EAAE,uBAAuB,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,4BAA4B,GAAG,CAAC,IAAI,EAAE,kCAAkC,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAA;AAE3H,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,aAAa,GAAG,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAA;IACrE,sBAAsB,EAAE,uBAAuB,CAAA;CAChD;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,iBAAiB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.presentation-exchange",
|
|
3
|
-
"version": "0.28.1-next.
|
|
3
|
+
"version": "0.28.1-next.6+e969b97b",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,15 +16,14 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@sphereon/pex": "^4.0.1",
|
|
18
18
|
"@sphereon/pex-models": "^2.2.4",
|
|
19
|
-
"@sphereon/ssi-sdk-ext.did-utils": "0.23.1-next.
|
|
20
|
-
"@sphereon/ssi-sdk.
|
|
21
|
-
"@sphereon/ssi-
|
|
22
|
-
"@sphereon/ssi-types": "0.28.1-next.39+150eb383",
|
|
19
|
+
"@sphereon/ssi-sdk-ext.did-utils": "0.23.1-next.3",
|
|
20
|
+
"@sphereon/ssi-sdk.data-store": "0.28.1-next.6+e969b97b",
|
|
21
|
+
"@sphereon/ssi-types": "0.28.1-next.6+e969b97b",
|
|
23
22
|
"@veramo/core": "4.2.0"
|
|
24
23
|
},
|
|
25
24
|
"devDependencies": {
|
|
26
25
|
"@sphereon/did-uni-client": "^0.6.3",
|
|
27
|
-
"@sphereon/ssi-sdk.agent-config": "0.28.1-next.
|
|
26
|
+
"@sphereon/ssi-sdk.agent-config": "0.28.1-next.6+e969b97b",
|
|
28
27
|
"@types/json-buffer": "^3.0.2",
|
|
29
28
|
"@veramo/did-provider-key": "4.2.0",
|
|
30
29
|
"@veramo/did-resolver": "4.2.0",
|
|
@@ -61,5 +60,5 @@
|
|
|
61
60
|
"OpenID Connect",
|
|
62
61
|
"Authenticator"
|
|
63
62
|
],
|
|
64
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "e969b97b387e62e2def5a0bac655f1fe5c7100a7"
|
|
65
64
|
}
|
|
@@ -8,15 +8,13 @@ import {
|
|
|
8
8
|
schema,
|
|
9
9
|
VersionDiscoveryResult,
|
|
10
10
|
} from '../index'
|
|
11
|
-
import { IAgentPlugin } from '@veramo/core'
|
|
11
|
+
import { FindCredentialsArgs, IAgentPlugin, ProofType, UniqueVerifiableCredential, UnsignedCredential } from '@veramo/core'
|
|
12
12
|
|
|
13
13
|
import { IPresentationExchange } from '../types/IPresentationExchange'
|
|
14
14
|
import { Checked, IPresentationDefinition, PEX } from '@sphereon/pex'
|
|
15
|
-
import {
|
|
15
|
+
import { CredentialMapper, JWT_PROOF_TYPE_2020, W3CVerifiableCredential } from '@sphereon/ssi-types'
|
|
16
16
|
import { InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models'
|
|
17
17
|
import { toDIDs } from '@sphereon/ssi-sdk-ext.did-utils'
|
|
18
|
-
import { CredentialRole, UniqueDigitalCredential, verifiableCredentialForRoleFilter } from '@sphereon/ssi-sdk.credential-store'
|
|
19
|
-
import { FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store'
|
|
20
18
|
|
|
21
19
|
export class PresentationExchange implements IAgentPlugin {
|
|
22
20
|
readonly schema = schema.IDidAuthSiopOpAuthenticator
|
|
@@ -63,7 +61,7 @@ export class PresentationExchange implements IAgentPlugin {
|
|
|
63
61
|
}
|
|
64
62
|
|
|
65
63
|
async pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult> {
|
|
66
|
-
const credentials = await this.pexFilterCredentials(args.credentialFilterOpts, context)
|
|
64
|
+
const credentials = await this.pexFilterCredentials(args.credentialFilterOpts ?? {}, context)
|
|
67
65
|
const holderDIDs = args.holderDIDs ? toDIDs(args.holderDIDs) : toDIDs(await context.agent.dataStoreORMGetIdentifiers())
|
|
68
66
|
const selectResults = this.pex.selectFrom(args.presentationDefinition, credentials ?? [], {
|
|
69
67
|
...args,
|
|
@@ -93,13 +91,11 @@ export class PresentationExchange implements IAgentPlugin {
|
|
|
93
91
|
input_descriptors: [inputDescriptor],
|
|
94
92
|
}
|
|
95
93
|
|
|
96
|
-
const credentialRole = args.credentialFilterOpts.credentialRole
|
|
97
|
-
|
|
98
94
|
promises.set(
|
|
99
95
|
inputDescriptor,
|
|
100
96
|
this.pexDefinitionFilterCredentials(
|
|
101
97
|
{
|
|
102
|
-
credentialFilterOpts: {
|
|
98
|
+
credentialFilterOpts: { verifiableCredentials: credentials },
|
|
103
99
|
// @ts-ignore
|
|
104
100
|
presentationDefinition,
|
|
105
101
|
holderDIDs,
|
|
@@ -119,24 +115,16 @@ export class PresentationExchange implements IAgentPlugin {
|
|
|
119
115
|
|
|
120
116
|
private async pexFilterCredentials(
|
|
121
117
|
filterOpts: {
|
|
122
|
-
credentialRole: CredentialRole
|
|
123
118
|
verifiableCredentials?: W3CVerifiableCredential[]
|
|
124
|
-
filter?:
|
|
119
|
+
filter?: FindCredentialsArgs
|
|
125
120
|
},
|
|
126
121
|
context: IRequiredContext,
|
|
127
122
|
): Promise<W3CVerifiableCredential[]> {
|
|
128
|
-
if (filterOpts
|
|
123
|
+
if (filterOpts?.verifiableCredentials && filterOpts.verifiableCredentials.length > 0) {
|
|
129
124
|
return filterOpts.verifiableCredentials as W3CVerifiableCredential[]
|
|
130
125
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return uniqueCredentials.map((uniqueVC: UniqueDigitalCredential) => {
|
|
136
|
-
const vc = uniqueVC.uniformVerifiableCredential!
|
|
137
|
-
const proof = Array.isArray(vc.proof) ? vc.proof : [vc.proof]
|
|
138
|
-
const jwtProof = proof.find((p) => p?.type === JWT_PROOF_TYPE_2020)
|
|
139
|
-
return jwtProof ? (jwtProof.jwt as CompactJWT) : vc
|
|
140
|
-
})
|
|
126
|
+
return (await context.agent.dataStoreORMGetVerifiableCredentials(filterOpts?.filter))
|
|
127
|
+
.map((uniqueVC: UniqueVerifiableCredential) => uniqueVC.verifiableCredential)
|
|
128
|
+
.map((vc: UnsignedCredential & { proof: ProofType }) => (vc.proof && vc.proof.type === JWT_PROOF_TYPE_2020 ? vc.proof.jwt : vc))
|
|
141
129
|
}
|
|
142
130
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
FindCredentialsArgs,
|
|
2
3
|
IAgentContext,
|
|
3
4
|
ICredentialPlugin,
|
|
4
5
|
IDataStoreORM,
|
|
@@ -11,8 +12,6 @@ import {
|
|
|
11
12
|
import { IPresentation, Optional, W3CVerifiableCredential, W3CVerifiablePresentation } from '@sphereon/ssi-types'
|
|
12
13
|
import { IPresentationDefinition, PEVersion, SelectResults } from '@sphereon/pex'
|
|
13
14
|
import { Format, InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models'
|
|
14
|
-
import { ICredentialStore } from '@sphereon/ssi-sdk.credential-store'
|
|
15
|
-
import { CredentialRole, FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store'
|
|
16
15
|
|
|
17
16
|
export interface IPresentationExchange extends IPluginMethodMap {
|
|
18
17
|
pexValidateDefinition(args: IDefinitionValidateArgs): Promise<boolean>
|
|
@@ -33,11 +32,7 @@ export interface IDefinitionValidateArgs {
|
|
|
33
32
|
|
|
34
33
|
export interface IDefinitionCredentialFilterArgs {
|
|
35
34
|
presentationDefinition: IPresentationDefinition
|
|
36
|
-
credentialFilterOpts
|
|
37
|
-
credentialRole: CredentialRole
|
|
38
|
-
verifiableCredentials?: W3CVerifiableCredential[]
|
|
39
|
-
filter?: FindDigitalCredentialArgs
|
|
40
|
-
}
|
|
35
|
+
credentialFilterOpts?: { verifiableCredentials?: W3CVerifiableCredential[]; filter?: FindCredentialsArgs }
|
|
41
36
|
holderDIDs?: (string | IIdentifier)[]
|
|
42
37
|
limitDisclosureSignatureSuites?: string[]
|
|
43
38
|
restrictToFormats?: Format
|
|
@@ -77,4 +72,4 @@ export interface IPEXPresentationSignCallBackParams {
|
|
|
77
72
|
presentationDefinition: IPresentationDefinition
|
|
78
73
|
}
|
|
79
74
|
|
|
80
|
-
export type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & ICredentialPlugin
|
|
75
|
+
export type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & ICredentialPlugin>
|