@sphereon/ssi-types 0.8.1-unstable.264 → 0.8.1-unstable.267
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/mapper/credential-mapper.d.ts +10 -10
- package/dist/mapper/credential-mapper.d.ts.map +1 -1
- package/dist/mapper/credential-mapper.js +87 -33
- package/dist/mapper/credential-mapper.js.map +1 -1
- package/dist/types/did.d.ts +2 -1
- package/dist/types/did.d.ts.map +1 -1
- package/dist/types/did.js +1 -0
- package/dist/types/did.js.map +1 -1
- package/dist/types/vc.d.ts +7 -6
- package/dist/types/vc.d.ts.map +1 -1
- package/dist/types/vc.js.map +1 -1
- package/package.json +2 -2
- package/src/mapper/credential-mapper.ts +106 -58
- package/src/types/did.ts +1 -0
- package/src/types/vc.ts +7 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DocumentFormat,
|
|
1
|
+
import { DocumentFormat, IPresentation, IVerifiableCredential, IVerifiablePresentation, JwtDecodedVerifiableCredential, JwtDecodedVerifiablePresentation, OriginalVerifiableCredential, OriginalVerifiablePresentation, W3CVerifiableCredential, W3CVerifiablePresentation, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '../types';
|
|
2
2
|
export declare class CredentialMapper {
|
|
3
3
|
static decodeVerifiablePresentation(presentation: OriginalVerifiablePresentation): JwtDecodedVerifiablePresentation | IVerifiablePresentation;
|
|
4
4
|
static decodeVerifiableCredential(credential: OriginalVerifiableCredential): JwtDecodedVerifiableCredential | IVerifiableCredential;
|
|
5
|
-
static toWrappedVerifiablePresentation(
|
|
5
|
+
static toWrappedVerifiablePresentation(originalPresentation: OriginalVerifiablePresentation, opts?: {
|
|
6
6
|
maxTimeSkewInMS?: number;
|
|
7
7
|
}): WrappedVerifiablePresentation;
|
|
8
8
|
static toWrappedVerifiableCredentials(verifiableCredentials: OriginalVerifiableCredential[], opts?: {
|
|
@@ -12,7 +12,7 @@ export declare class CredentialMapper {
|
|
|
12
12
|
maxTimeSkewInMS?: number;
|
|
13
13
|
}): WrappedVerifiableCredential;
|
|
14
14
|
static isJwtEncoded(original: OriginalVerifiableCredential | OriginalVerifiablePresentation): boolean;
|
|
15
|
-
private static
|
|
15
|
+
private static isJsonLdAsString;
|
|
16
16
|
static isJwtDecodedCredential(original: OriginalVerifiableCredential): boolean;
|
|
17
17
|
static isJwtDecodedPresentation(original: OriginalVerifiablePresentation): boolean;
|
|
18
18
|
static jwtEncodedPresentationToUniformPresentation(jwt: string, makeCredentialsUniform?: boolean, opts?: {
|
|
@@ -20,23 +20,23 @@ export declare class CredentialMapper {
|
|
|
20
20
|
}): IPresentation;
|
|
21
21
|
static jwtDecodedPresentationToUniformPresentation(decoded: JwtDecodedVerifiablePresentation, makeCredentialsUniform?: boolean, opts?: {
|
|
22
22
|
maxTimeSkewInMS?: number;
|
|
23
|
-
}):
|
|
23
|
+
}): IVerifiablePresentation;
|
|
24
24
|
static toUniformCredential(verifiableCredential: OriginalVerifiableCredential, opts?: {
|
|
25
25
|
maxTimeSkewInMS?: number;
|
|
26
|
-
}):
|
|
26
|
+
}): IVerifiableCredential;
|
|
27
27
|
static toUniformPresentation(presentation: OriginalVerifiablePresentation, opts?: {
|
|
28
28
|
maxTimeSkewInMS?: number;
|
|
29
|
-
}):
|
|
29
|
+
}): IVerifiablePresentation;
|
|
30
30
|
static jwtEncodedCredentialToUniformCredential(jwt: string, opts?: {
|
|
31
31
|
maxTimeSkewInMS?: number;
|
|
32
|
-
}):
|
|
32
|
+
}): IVerifiableCredential;
|
|
33
33
|
static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential, opts?: {
|
|
34
34
|
maxTimeSkewInMS?: number;
|
|
35
|
-
}):
|
|
35
|
+
}): IVerifiableCredential;
|
|
36
36
|
static toExternalVerifiableCredential(verifiableCredential: any): IVerifiableCredential;
|
|
37
37
|
static storedCredentialToOriginalFormat(credential: W3CVerifiableCredential): W3CVerifiableCredential;
|
|
38
38
|
static storedPresentationToOriginalFormat(presentation: W3CVerifiablePresentation): W3CVerifiablePresentation;
|
|
39
|
-
static toCompactJWT(
|
|
40
|
-
static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation): DocumentFormat;
|
|
39
|
+
static toCompactJWT(jwtDocument: W3CVerifiableCredential | JwtDecodedVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiablePresentation): string;
|
|
40
|
+
static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiableCredential | JwtDecodedVerifiablePresentation): DocumentFormat;
|
|
41
41
|
}
|
|
42
42
|
//# sourceMappingURL=credential-mapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-mapper.d.ts","sourceRoot":"","sources":["../../src/mapper/credential-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"credential-mapper.d.ts","sourceRoot":"","sources":["../../src/mapper/credential-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,EAIb,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,gCAAgC,EAEhC,4BAA4B,EAC5B,8BAA8B,EAG9B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,UAAU,CAAA;AAIjB,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,4BAA4B,CAAC,YAAY,EAAE,8BAA8B,GAAG,gCAAgC,GAAG,uBAAuB;IAsB7I,MAAM,CAAC,0BAA0B,CAAC,UAAU,EAAE,4BAA4B,GAAG,8BAA8B,GAAG,qBAAqB;IAqBnI,MAAM,CAAC,+BAA+B,CACpC,oBAAoB,EAAE,8BAA8B,EACpD,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,6BAA6B;IAiChC,MAAM,CAAC,8BAA8B,CACnC,qBAAqB,EAAE,4BAA4B,EAAE,EACrD,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,2BAA2B,EAAE;IAIhC,MAAM,CAAC,6BAA6B,CAClC,oBAAoB,EAAE,4BAA4B,EAClD,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,2BAA2B;WA6BhB,YAAY,CAAC,QAAQ,EAAE,4BAA4B,GAAG,8BAA8B;IAIlG,OAAO,CAAC,MAAM,CAAC,gBAAgB;WAIjB,sBAAsB,CAAC,QAAQ,EAAE,4BAA4B,GAAG,OAAO;WAIvE,wBAAwB,CAAC,QAAQ,EAAE,8BAA8B,GAAG,OAAO;IAIzF,MAAM,CAAC,2CAA2C,CAChD,GAAG,EAAE,MAAM,EACX,sBAAsB,GAAE,OAAc,EACtC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,aAAa;IAIhB,MAAM,CAAC,2CAA2C,CAChD,OAAO,EAAE,gCAAgC,EACzC,sBAAsB,GAAE,OAAc,EACtC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,uBAAuB;IA+B1B,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,qBAAqB;IAc1I,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,uBAAuB;IAexI,MAAM,CAAC,uCAAuC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,qBAAqB;IAIvH,MAAM,CAAC,uCAAuC,CAAC,OAAO,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,qBAAqB;IA2EnJ,MAAM,CAAC,8BAA8B,CAAC,oBAAoB,EAAE,GAAG,GAAG,qBAAqB;IAsCvF,MAAM,CAAC,gCAAgC,CAAC,UAAU,EAAE,uBAAuB,GAAG,uBAAuB;IAYrG,MAAM,CAAC,kCAAkC,CAAC,YAAY,EAAE,yBAAyB,GAAG,yBAAyB;IAY7G,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,uBAAuB,GAAG,8BAA8B,GAAG,yBAAyB,GAAG,gCAAgC,GAAG,MAAM;IAqBjK,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,yBAAyB,GAAG,8BAA8B,GAAG,gCAAgC,GAAG,cAAc;CAc7K"}
|
|
@@ -9,13 +9,23 @@ const jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
|
9
9
|
const utils_1 = require("../utils");
|
|
10
10
|
class CredentialMapper {
|
|
11
11
|
static decodeVerifiablePresentation(presentation) {
|
|
12
|
+
var _a;
|
|
12
13
|
if (CredentialMapper.isJwtEncoded(presentation)) {
|
|
13
|
-
|
|
14
|
+
const payload = (0, jwt_decode_1.default)(presentation);
|
|
15
|
+
const header = (0, jwt_decode_1.default)(presentation, { header: true });
|
|
16
|
+
payload.vp.proof = {
|
|
17
|
+
type: types_1.IProofType.JwtProof2020,
|
|
18
|
+
created: payload.nbf,
|
|
19
|
+
proofPurpose: types_1.IProofPurpose.authentication,
|
|
20
|
+
verificationMethod: (_a = header['kid']) !== null && _a !== void 0 ? _a : payload.iss,
|
|
21
|
+
jwt: presentation,
|
|
22
|
+
};
|
|
23
|
+
return payload;
|
|
14
24
|
}
|
|
15
25
|
else if (CredentialMapper.isJwtDecodedPresentation(presentation)) {
|
|
16
26
|
return presentation;
|
|
17
27
|
}
|
|
18
|
-
else if (CredentialMapper.
|
|
28
|
+
else if (CredentialMapper.isJsonLdAsString(presentation)) {
|
|
19
29
|
return JSON.parse(presentation);
|
|
20
30
|
}
|
|
21
31
|
else {
|
|
@@ -23,37 +33,54 @@ class CredentialMapper {
|
|
|
23
33
|
}
|
|
24
34
|
}
|
|
25
35
|
static decodeVerifiableCredential(credential) {
|
|
36
|
+
var _a;
|
|
26
37
|
if (CredentialMapper.isJwtEncoded(credential)) {
|
|
27
|
-
|
|
38
|
+
const payload = (0, jwt_decode_1.default)(credential);
|
|
39
|
+
const header = (0, jwt_decode_1.default)(credential, { header: true });
|
|
40
|
+
payload.vc.proof = {
|
|
41
|
+
type: types_1.IProofType.JwtProof2020,
|
|
42
|
+
created: payload.nbf,
|
|
43
|
+
proofPurpose: types_1.IProofPurpose.authentication,
|
|
44
|
+
verificationMethod: (_a = header['kid']) !== null && _a !== void 0 ? _a : payload.iss,
|
|
45
|
+
jwt: credential,
|
|
46
|
+
};
|
|
47
|
+
return payload;
|
|
28
48
|
}
|
|
29
49
|
else if (CredentialMapper.isJwtDecodedCredential(credential)) {
|
|
30
50
|
return credential;
|
|
31
51
|
}
|
|
32
|
-
else if (CredentialMapper.
|
|
52
|
+
else if (CredentialMapper.isJsonLdAsString(credential)) {
|
|
33
53
|
return JSON.parse(credential);
|
|
34
54
|
}
|
|
35
55
|
else {
|
|
36
56
|
return credential;
|
|
37
57
|
}
|
|
38
58
|
}
|
|
39
|
-
static toWrappedVerifiablePresentation(
|
|
40
|
-
const original =
|
|
59
|
+
static toWrappedVerifiablePresentation(originalPresentation, opts) {
|
|
60
|
+
const original = originalPresentation;
|
|
41
61
|
const isJwtEncoded = CredentialMapper.isJwtEncoded(original);
|
|
42
62
|
const isJwtDecoded = CredentialMapper.isJwtDecodedPresentation(original);
|
|
43
63
|
const type = isJwtEncoded ? types_1.OriginalType.JWT_ENCODED : isJwtDecoded ? types_1.OriginalType.JWT_DECODED : types_1.OriginalType.JSONLD;
|
|
44
64
|
const format = isJwtDecoded || isJwtEncoded ? 'jwt_vp' : 'ldp_vp';
|
|
45
65
|
const decoded = CredentialMapper.decodeVerifiablePresentation(original);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
66
|
+
let vp;
|
|
67
|
+
if (isJwtEncoded || isJwtDecoded) {
|
|
68
|
+
vp = CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded, false, opts);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
vp = decoded;
|
|
72
|
+
}
|
|
73
|
+
if (!vp || !('verifiableCredential' in vp) || !vp.verifiableCredential || vp.verifiableCredential.length === 0) {
|
|
74
|
+
throw Error(`VP needs to have at least one verifiable credential at this point`);
|
|
75
|
+
}
|
|
76
|
+
const vcs = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential /*.map(value => value.original)*/, opts);
|
|
77
|
+
const presentation = Object.assign(Object.assign({}, vp), { verifiableCredential: vcs });
|
|
51
78
|
return {
|
|
52
79
|
type,
|
|
53
80
|
format,
|
|
54
81
|
original,
|
|
55
82
|
decoded,
|
|
56
|
-
presentation
|
|
83
|
+
presentation,
|
|
57
84
|
vcs,
|
|
58
85
|
};
|
|
59
86
|
}
|
|
@@ -69,8 +96,13 @@ class CredentialMapper {
|
|
|
69
96
|
const credential = isJwtDecoded || isJwtDecoded
|
|
70
97
|
? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded, opts)
|
|
71
98
|
: decoded;
|
|
99
|
+
if (typeof credential.type === 'string') {
|
|
100
|
+
credential.type = [credential.type];
|
|
101
|
+
}
|
|
102
|
+
if (typeof credential['@context'] === 'string') {
|
|
103
|
+
credential['@context'] = [credential['@context']];
|
|
104
|
+
}
|
|
72
105
|
const format = isJwtDecoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc';
|
|
73
|
-
//todo: We probably want to add proofs as well
|
|
74
106
|
return {
|
|
75
107
|
original,
|
|
76
108
|
decoded,
|
|
@@ -82,7 +114,7 @@ class CredentialMapper {
|
|
|
82
114
|
static isJwtEncoded(original) {
|
|
83
115
|
return utils_1.ObjectUtils.isString(original) && original.startsWith('ey');
|
|
84
116
|
}
|
|
85
|
-
static
|
|
117
|
+
static isJsonLdAsString(original) {
|
|
86
118
|
return utils_1.ObjectUtils.isString(original) && original.includes('@context');
|
|
87
119
|
}
|
|
88
120
|
static isJwtDecodedCredential(original) {
|
|
@@ -95,12 +127,13 @@ class CredentialMapper {
|
|
|
95
127
|
return CredentialMapper.jwtDecodedPresentationToUniformPresentation((0, jwt_decode_1.default)(jwt), makeCredentialsUniform, opts);
|
|
96
128
|
}
|
|
97
129
|
static jwtDecodedPresentationToUniformPresentation(decoded, makeCredentialsUniform = true, opts) {
|
|
98
|
-
const presentation = Object.assign({}, decoded.vp);
|
|
130
|
+
const presentation = Object.assign({}, (decoded.vp));
|
|
99
131
|
if (makeCredentialsUniform) {
|
|
100
|
-
|
|
132
|
+
if (!decoded.vp.verifiableCredential) {
|
|
133
|
+
throw Error('Verifiable Presentation should have a verifiable credential at this point');
|
|
134
|
+
}
|
|
135
|
+
presentation.verifiableCredential = decoded.vp.verifiableCredential.map((vc) => CredentialMapper.toUniformCredential(vc, opts));
|
|
101
136
|
}
|
|
102
|
-
// Since this is a presentation, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
|
|
103
|
-
delete presentation.proof;
|
|
104
137
|
if (decoded.iss) {
|
|
105
138
|
const holder = presentation.holder;
|
|
106
139
|
if (holder) {
|
|
@@ -147,14 +180,12 @@ class CredentialMapper {
|
|
|
147
180
|
return CredentialMapper.jwtDecodedCredentialToUniformCredential((0, jwt_decode_1.default)(jwt), opts);
|
|
148
181
|
}
|
|
149
182
|
static jwtDecodedCredentialToUniformCredential(decoded, opts) {
|
|
150
|
-
const credential = Object.assign({}, decoded.vc);
|
|
151
|
-
// Since this is a credential, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
|
|
152
|
-
delete credential.proof;
|
|
183
|
+
const credential = Object.assign({}, (decoded.vc));
|
|
153
184
|
const maxSkewInMS = (opts === null || opts === void 0 ? void 0 : opts.maxTimeSkewInMS) !== undefined ? opts.maxTimeSkewInMS : 999;
|
|
154
185
|
if (decoded.exp) {
|
|
155
186
|
const expDate = credential.expirationDate;
|
|
156
187
|
const jwtExp = parseInt(decoded.exp.toString());
|
|
157
|
-
// fix seconds to
|
|
188
|
+
// fix seconds to millisecond for the date
|
|
158
189
|
const expDateAsStr = jwtExp < 9999999999 ? new Date(jwtExp * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtExp).toISOString();
|
|
159
190
|
if (expDate && expDate !== expDateAsStr) {
|
|
160
191
|
const diff = Math.abs(new Date(expDateAsStr).getTime() - new Date(expDate).getTime());
|
|
@@ -241,32 +272,55 @@ class CredentialMapper {
|
|
|
241
272
|
}
|
|
242
273
|
static storedCredentialToOriginalFormat(credential) {
|
|
243
274
|
const type = CredentialMapper.detectDocumentType(credential);
|
|
244
|
-
if (
|
|
245
|
-
|
|
275
|
+
if (typeof credential === 'string') {
|
|
276
|
+
if (type === 0 /* DocumentFormat.JWT */) {
|
|
277
|
+
return CredentialMapper.toCompactJWT(credential);
|
|
278
|
+
}
|
|
279
|
+
else if (type === 1 /* DocumentFormat.JSONLD */) {
|
|
280
|
+
return JSON.parse(credential);
|
|
281
|
+
}
|
|
246
282
|
}
|
|
247
283
|
return credential;
|
|
248
284
|
}
|
|
249
285
|
static storedPresentationToOriginalFormat(presentation) {
|
|
250
286
|
const type = CredentialMapper.detectDocumentType(presentation);
|
|
251
|
-
if (
|
|
252
|
-
|
|
287
|
+
if (typeof presentation === 'string') {
|
|
288
|
+
if (type === 0 /* DocumentFormat.JWT */) {
|
|
289
|
+
return CredentialMapper.toCompactJWT(presentation);
|
|
290
|
+
}
|
|
291
|
+
else if (type === 1 /* DocumentFormat.JSONLD */) {
|
|
292
|
+
return JSON.parse(presentation);
|
|
293
|
+
}
|
|
253
294
|
}
|
|
254
295
|
return presentation;
|
|
255
296
|
}
|
|
256
|
-
static toCompactJWT(
|
|
257
|
-
if (CredentialMapper.detectDocumentType(
|
|
297
|
+
static toCompactJWT(jwtDocument) {
|
|
298
|
+
if (CredentialMapper.detectDocumentType(jwtDocument) !== 0 /* DocumentFormat.JWT */) {
|
|
258
299
|
throw Error('Cannot convert non JWT credential to JWT');
|
|
259
300
|
}
|
|
260
|
-
if (typeof
|
|
261
|
-
return
|
|
301
|
+
if (typeof jwtDocument === 'string') {
|
|
302
|
+
return jwtDocument;
|
|
303
|
+
}
|
|
304
|
+
let proof;
|
|
305
|
+
if ('vp' in jwtDocument) {
|
|
306
|
+
proof = jwtDocument.vp.proof;
|
|
262
307
|
}
|
|
263
|
-
|
|
308
|
+
else if ('vc' in jwtDocument) {
|
|
309
|
+
proof = jwtDocument.vc.proof;
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
proof = Array.isArray(jwtDocument.proof) ? jwtDocument.proof[0].jwt : jwtDocument.proof.jwt;
|
|
313
|
+
}
|
|
314
|
+
if (!proof) {
|
|
315
|
+
throw Error(`Could not get JWT from supplied document`);
|
|
316
|
+
}
|
|
317
|
+
return proof;
|
|
264
318
|
}
|
|
265
319
|
static detectDocumentType(document) {
|
|
266
320
|
if (typeof document === 'string') {
|
|
267
|
-
return 0 /* DocumentFormat.JWT */;
|
|
321
|
+
return this.isJsonLdAsString(document) ? 1 /* DocumentFormat.JSONLD */ : 0 /* DocumentFormat.JWT */;
|
|
268
322
|
}
|
|
269
|
-
const proofs = document.proof;
|
|
323
|
+
const proofs = 'vc' in document ? document.vc.proof : 'vp' in document ? document.vp.proof : document.proof;
|
|
270
324
|
const proof = Array.isArray(proofs) ? proofs[0] : proofs;
|
|
271
325
|
if (proof.jwt) {
|
|
272
326
|
return 0 /* DocumentFormat.JWT */;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-mapper.js","sourceRoot":"","sources":["../../src/mapper/credential-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"credential-mapper.js","sourceRoot":"","sources":["../../src/mapper/credential-mapper.ts"],"names":[],"mappings":"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"}
|
package/dist/types/did.d.ts
CHANGED
|
@@ -17,7 +17,8 @@ export declare enum IProofType {
|
|
|
17
17
|
GpgSignature2020 = "GpgSignature2020",
|
|
18
18
|
JcsEd25519Signature2020 = "JcsEd25519Signature2020",
|
|
19
19
|
BbsBlsSignatureProof2020 = "BbsBlsSignatureProof2020",
|
|
20
|
-
BbsBlsBoundSignatureProof2020 = "BbsBlsBoundSignatureProof2020"
|
|
20
|
+
BbsBlsBoundSignatureProof2020 = "BbsBlsBoundSignatureProof2020",
|
|
21
|
+
JwtProof2020 = "JwtProof2020"
|
|
21
22
|
}
|
|
22
23
|
export interface IParsedDID {
|
|
23
24
|
did: string;
|
package/dist/types/did.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../src/types/did.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,iBAAiB,qBAAqB;IACtC,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;CAC9C;AAED,oBAAY,UAAU;IACpB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,2BAA2B,gCAAgC;IAC3D,mCAAmC,wCAAwC;IAC3E,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,wBAAwB,6BAA6B;IACrD,6BAA6B,kCAAkC;
|
|
1
|
+
{"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../src/types/did.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,iBAAiB,qBAAqB;IACtC,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;CAC9C;AAED,oBAAY,UAAU;IACpB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,2BAA2B,gCAAgC;IAC3D,mCAAmC,wCAAwC;IAC3E,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,wBAAwB,6BAA6B;IACrD,6BAA6B,kCAAkC;IAC/D,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE;QACP,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KACxB,CAAA;CACF;AAED,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,UAOtC,CAAA"}
|
package/dist/types/did.js
CHANGED
|
@@ -23,6 +23,7 @@ var IProofType;
|
|
|
23
23
|
IProofType["JcsEd25519Signature2020"] = "JcsEd25519Signature2020";
|
|
24
24
|
IProofType["BbsBlsSignatureProof2020"] = "BbsBlsSignatureProof2020";
|
|
25
25
|
IProofType["BbsBlsBoundSignatureProof2020"] = "BbsBlsBoundSignatureProof2020";
|
|
26
|
+
IProofType["JwtProof2020"] = "JwtProof2020";
|
|
26
27
|
})(IProofType = exports.IProofType || (exports.IProofType = {}));
|
|
27
28
|
const parseDid = (did) => {
|
|
28
29
|
const parsedDid = parse(did);
|
package/dist/types/did.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/types/did.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,0DAAyC,CAAA;IACzC,oDAAmC,CAAA;IACnC,kDAAiC,CAAA;IACjC,8CAA6B,CAAA;IAC7B,uDAAsC,CAAA;IACtC,8DAA6C,CAAA;IAC7C,8DAA6C,CAAA;AAC/C,CAAC,EARW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAQxB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/types/did.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,0DAAyC,CAAA;IACzC,oDAAmC,CAAA;IACnC,kDAAiC,CAAA;IACjC,8CAA6B,CAAA;IAC7B,uDAAsC,CAAA;IACtC,8DAA6C,CAAA;IAC7C,8DAA6C,CAAA;AAC/C,CAAC,EARW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAQxB;AAED,IAAY,UAYX;AAZD,WAAY,UAAU;IACpB,2DAA6C,CAAA;IAC7C,2DAA6C,CAAA;IAC7C,yEAA2D,CAAA;IAC3D,yFAA2E,CAAA;IAC3E,2DAA6C,CAAA;IAC7C,mDAAqC,CAAA;IACrC,mDAAqC,CAAA;IACrC,iEAAmD,CAAA;IACnD,mEAAqD,CAAA;IACrD,6EAA+D,CAAA;IAC/D,2CAA6B,CAAA;AAC/B,CAAC,EAZW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAYrB;AAeM,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAc,EAAE;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;KAC/B;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAPY,QAAA,QAAQ,YAOpB;AAED,MAAM,KAAK,GAAG,CAAC,MAAc,EAAqB,EAAE;IAClD,MAAM,WAAW,GAAG,qBAAqB,CAAA;IACzC,MAAM,OAAO,GAAG,qBAAqB,WAAW,GAAG,CAAA;IACnD,MAAM,MAAM,GAAG,aAAa,CAAA;IAC5B,MAAM,SAAS,GAAG,OAAO,OAAO,QAAQ,OAAO,KAAK,CAAA;IACpD,MAAM,UAAU,GAAG,kBAAkB,CAAA;IACrC,MAAM,KAAK,GAAG,IAAI,UAAU,KAAK,UAAU,GAAG,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,CAAA;IAC9B,MAAM,IAAI,GAAG,YAAY,CAAA;IACzB,MAAM,KAAK,GAAG,aAAa,CAAA;IAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAA;IACzB,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,QAAQ,MAAM,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAA;IAEjG,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC1C,IAAI,QAAQ,EAAE;QACZ,MAAM,KAAK,GAAe;YACxB,GAAG,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YACxC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACnB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM;SACP,CAAA;QACD,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9C,KAAK,CAAC,MAAM,GAAG,EAAE,CAAA;YACjB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;gBACtB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACvB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;aAC5B;SACF;QACD,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzC,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACtD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
package/dist/types/vc.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export interface IProof {
|
|
|
38
38
|
domain?: string;
|
|
39
39
|
proofValue?: string;
|
|
40
40
|
jws?: string;
|
|
41
|
+
jwt?: string;
|
|
41
42
|
nonce?: string;
|
|
42
43
|
requiredRevealStatements?: string[];
|
|
43
44
|
[x: string]: any;
|
|
@@ -67,8 +68,8 @@ export type W3CVerifiableCredential = IVerifiableCredential | CompactJWT;
|
|
|
67
68
|
export interface IPresentation {
|
|
68
69
|
id?: string;
|
|
69
70
|
'@context': ICredentialContextType | ICredentialContextType[];
|
|
70
|
-
type
|
|
71
|
-
verifiableCredential
|
|
71
|
+
type?: string | string[];
|
|
72
|
+
verifiableCredential?: W3CVerifiableCredential[];
|
|
72
73
|
presentation_submission?: PresentationSubmission;
|
|
73
74
|
holder?: string;
|
|
74
75
|
[x: string]: any;
|
|
@@ -98,9 +99,9 @@ export interface WrappedVerifiableCredential {
|
|
|
98
99
|
*/
|
|
99
100
|
format: CredentialFormat;
|
|
100
101
|
/**
|
|
101
|
-
* Internal stable representation of a Credential
|
|
102
|
+
* Internal stable representation of a Credential
|
|
102
103
|
*/
|
|
103
|
-
credential:
|
|
104
|
+
credential: IVerifiableCredential;
|
|
104
105
|
}
|
|
105
106
|
export interface WrappedVerifiablePresentation {
|
|
106
107
|
/**
|
|
@@ -135,13 +136,13 @@ export declare enum OriginalType {
|
|
|
135
136
|
}
|
|
136
137
|
export interface UniformVerifiablePresentation {
|
|
137
138
|
'@context': ICredentialContextType | ICredentialContextType[];
|
|
138
|
-
type: string[];
|
|
139
|
+
type: string | string[];
|
|
139
140
|
verifiableCredential: WrappedVerifiableCredential[];
|
|
140
141
|
presentation_submission?: PresentationSubmission;
|
|
141
142
|
holder?: string;
|
|
142
143
|
}
|
|
143
144
|
export interface JwtDecodedVerifiableCredential {
|
|
144
|
-
vc:
|
|
145
|
+
vc: IVerifiableCredential;
|
|
145
146
|
exp: string;
|
|
146
147
|
iss: string;
|
|
147
148
|
nbf: string;
|
package/dist/types/vc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc.d.ts","sourceRoot":"","sources":["../../src/types/vc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEjD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAElD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,sBAAsB,GAAG,sBAAsB,EAAE,CAAA;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,gBAAgB,CAAC,EAAE,SAAS,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,CAAA;IAE9E,MAAM,EAAE,SAAS,GAAG,OAAO,CAAA;IAE3B,YAAY,EAAE,MAAM,CAAA;IAEpB,iBAAiB,EAAE,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,EAAE,CAAA;IAEtG,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,MAAM,CAAA;AAErF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,UAAU,GAAG,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,aAAa,GAAG,MAAM,CAAA;IACpC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnC,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IAEV,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,SAAS,CAAA;AAE3D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAE/B;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG,UAAU,CAAA;AAExE,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,sBAAsB,GAAG,sBAAsB,EAAE,CAAA;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"vc.d.ts","sourceRoot":"","sources":["../../src/types/vc.ts"],"names":[],"mappings":"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"}
|
package/dist/types/vc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc.js","sourceRoot":"","sources":["../../src/types/vc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"vc.js","sourceRoot":"","sources":["../../src/types/vc.ts"],"names":[],"mappings":";;;AAiKA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,kCAAkB,CAAA;IAClB,2CAA2B,CAAA;IAC3B,2CAA2B,CAAA;AAC7B,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAwCD,IAAkB,cAIjB;AAJD,WAAkB,cAAc;IAC9B,iDAAG,CAAA;IACH,uDAAM,CAAA;IACN,uDAAM,CAAA;AACR,CAAC,EAJiB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAI/B"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-types",
|
|
3
3
|
"description": "SSI Common Types",
|
|
4
|
-
"version": "0.8.1-unstable.
|
|
4
|
+
"version": "0.8.1-unstable.267+3c2b8ed",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"Verifiable Credentials",
|
|
39
39
|
"DIDs"
|
|
40
40
|
],
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "3c2b8ed171aa196473afedb007ba27e4c1c3e71f"
|
|
42
42
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DocumentFormat,
|
|
3
|
-
ICredential,
|
|
4
3
|
IPresentation,
|
|
5
4
|
IProof,
|
|
5
|
+
IProofPurpose,
|
|
6
|
+
IProofType,
|
|
6
7
|
IVerifiableCredential,
|
|
7
8
|
IVerifiablePresentation,
|
|
8
9
|
JwtDecodedVerifiableCredential,
|
|
@@ -11,6 +12,7 @@ import {
|
|
|
11
12
|
OriginalVerifiableCredential,
|
|
12
13
|
OriginalVerifiablePresentation,
|
|
13
14
|
PresentationFormat,
|
|
15
|
+
UniformVerifiablePresentation,
|
|
14
16
|
W3CVerifiableCredential,
|
|
15
17
|
W3CVerifiablePresentation,
|
|
16
18
|
WrappedVerifiableCredential,
|
|
@@ -22,10 +24,20 @@ import { ObjectUtils } from '../utils'
|
|
|
22
24
|
export class CredentialMapper {
|
|
23
25
|
static decodeVerifiablePresentation(presentation: OriginalVerifiablePresentation): JwtDecodedVerifiablePresentation | IVerifiablePresentation {
|
|
24
26
|
if (CredentialMapper.isJwtEncoded(presentation)) {
|
|
25
|
-
|
|
27
|
+
const payload = jwt_decode(presentation as string) as JwtDecodedVerifiablePresentation
|
|
28
|
+
const header = jwt_decode(presentation as string, { header: true }) as Record<string, any>
|
|
29
|
+
|
|
30
|
+
payload.vp.proof = {
|
|
31
|
+
type: IProofType.JwtProof2020,
|
|
32
|
+
created: payload.nbf,
|
|
33
|
+
proofPurpose: IProofPurpose.authentication,
|
|
34
|
+
verificationMethod: header['kid'] ?? payload.iss,
|
|
35
|
+
jwt: presentation as string,
|
|
36
|
+
}
|
|
37
|
+
return payload
|
|
26
38
|
} else if (CredentialMapper.isJwtDecodedPresentation(presentation)) {
|
|
27
39
|
return presentation as JwtDecodedVerifiablePresentation
|
|
28
|
-
} else if (CredentialMapper.
|
|
40
|
+
} else if (CredentialMapper.isJsonLdAsString(presentation)) {
|
|
29
41
|
return JSON.parse(presentation as string) as IVerifiablePresentation
|
|
30
42
|
} else {
|
|
31
43
|
return presentation as IVerifiablePresentation
|
|
@@ -34,10 +46,19 @@ export class CredentialMapper {
|
|
|
34
46
|
|
|
35
47
|
static decodeVerifiableCredential(credential: OriginalVerifiableCredential): JwtDecodedVerifiableCredential | IVerifiableCredential {
|
|
36
48
|
if (CredentialMapper.isJwtEncoded(credential)) {
|
|
37
|
-
|
|
49
|
+
const payload = jwt_decode(credential as string) as JwtDecodedVerifiableCredential
|
|
50
|
+
const header = jwt_decode(credential as string, { header: true }) as Record<string, any>
|
|
51
|
+
payload.vc.proof = {
|
|
52
|
+
type: IProofType.JwtProof2020,
|
|
53
|
+
created: payload.nbf,
|
|
54
|
+
proofPurpose: IProofPurpose.authentication,
|
|
55
|
+
verificationMethod: header['kid'] ?? payload.iss,
|
|
56
|
+
jwt: credential as string,
|
|
57
|
+
}
|
|
58
|
+
return payload
|
|
38
59
|
} else if (CredentialMapper.isJwtDecodedCredential(credential)) {
|
|
39
60
|
return credential as JwtDecodedVerifiableCredential
|
|
40
|
-
} else if (CredentialMapper.
|
|
61
|
+
} else if (CredentialMapper.isJsonLdAsString(credential)) {
|
|
41
62
|
return JSON.parse(credential as string) as IVerifiableCredential
|
|
42
63
|
} else {
|
|
43
64
|
return credential as IVerifiableCredential
|
|
@@ -45,49 +66,53 @@ export class CredentialMapper {
|
|
|
45
66
|
}
|
|
46
67
|
|
|
47
68
|
static toWrappedVerifiablePresentation(
|
|
48
|
-
|
|
49
|
-
opts?: { maxTimeSkewInMS?: number }
|
|
69
|
+
originalPresentation: OriginalVerifiablePresentation,
|
|
70
|
+
opts?: { maxTimeSkewInMS?: number },
|
|
50
71
|
): WrappedVerifiablePresentation {
|
|
51
|
-
const original =
|
|
72
|
+
const original = originalPresentation
|
|
52
73
|
const isJwtEncoded: boolean = CredentialMapper.isJwtEncoded(original)
|
|
53
74
|
const isJwtDecoded: boolean = CredentialMapper.isJwtDecodedPresentation(original)
|
|
54
75
|
|
|
55
76
|
const type = isJwtEncoded ? OriginalType.JWT_ENCODED : isJwtDecoded ? OriginalType.JWT_DECODED : OriginalType.JSONLD
|
|
56
77
|
const format: PresentationFormat = isJwtDecoded || isJwtEncoded ? 'jwt_vp' : 'ldp_vp'
|
|
57
78
|
const decoded = CredentialMapper.decodeVerifiablePresentation(original)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
79
|
+
let vp: OriginalVerifiablePresentation
|
|
80
|
+
if (isJwtEncoded || isJwtDecoded) {
|
|
81
|
+
vp = CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded as JwtDecodedVerifiablePresentation, false, opts)
|
|
82
|
+
} else {
|
|
83
|
+
vp = decoded as IVerifiablePresentation
|
|
84
|
+
}
|
|
85
|
+
if (!vp || !('verifiableCredential' in vp) || !vp.verifiableCredential || vp.verifiableCredential.length === 0) {
|
|
86
|
+
throw Error(`VP needs to have at least one verifiable credential at this point`)
|
|
87
|
+
}
|
|
88
|
+
const vcs: WrappedVerifiableCredential[] = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential/*.map(value => value.original)*/, opts)
|
|
63
89
|
|
|
64
|
-
|
|
90
|
+
const presentation = {
|
|
91
|
+
...vp,
|
|
92
|
+
verifiableCredential: vcs, // We overwrite the credentials with wrapped versions, making it an InternalVerifiablePresentation. Note: we keep the singular key name of the vc data model
|
|
93
|
+
} as UniformVerifiablePresentation
|
|
65
94
|
return {
|
|
66
95
|
type,
|
|
67
96
|
format,
|
|
68
97
|
original,
|
|
69
98
|
decoded,
|
|
70
|
-
presentation
|
|
71
|
-
...vp,
|
|
72
|
-
verifiableCredential: vcs, // We overwrite the credentials with wrapped versions, making it an InternalVerifiablePresentation. Note: we keep the singular key name of the vc data model
|
|
73
|
-
},
|
|
99
|
+
presentation,
|
|
74
100
|
vcs,
|
|
75
101
|
}
|
|
76
102
|
}
|
|
77
103
|
|
|
78
104
|
static toWrappedVerifiableCredentials(
|
|
79
105
|
verifiableCredentials: OriginalVerifiableCredential[],
|
|
80
|
-
opts?: { maxTimeSkewInMS?: number }
|
|
106
|
+
opts?: { maxTimeSkewInMS?: number },
|
|
81
107
|
): WrappedVerifiableCredential[] {
|
|
82
108
|
return verifiableCredentials.map((vc) => CredentialMapper.toWrappedVerifiableCredential(vc, opts))
|
|
83
109
|
}
|
|
84
110
|
|
|
85
111
|
static toWrappedVerifiableCredential(
|
|
86
112
|
verifiableCredential: OriginalVerifiableCredential,
|
|
87
|
-
opts?: { maxTimeSkewInMS?: number }
|
|
113
|
+
opts?: { maxTimeSkewInMS?: number },
|
|
88
114
|
): WrappedVerifiableCredential {
|
|
89
115
|
const original = verifiableCredential
|
|
90
|
-
|
|
91
116
|
const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential)
|
|
92
117
|
|
|
93
118
|
const isJwtEncoded = CredentialMapper.isJwtEncoded(original)
|
|
@@ -97,9 +122,15 @@ export class CredentialMapper {
|
|
|
97
122
|
const credential =
|
|
98
123
|
isJwtDecoded || isJwtDecoded
|
|
99
124
|
? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential, opts)
|
|
100
|
-
: (decoded as
|
|
125
|
+
: (decoded as IVerifiableCredential)
|
|
126
|
+
if (typeof credential.type === 'string') {
|
|
127
|
+
credential.type = [credential.type]
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (typeof credential['@context'] === 'string') {
|
|
131
|
+
credential['@context'] = [credential['@context']]
|
|
132
|
+
}
|
|
101
133
|
const format = isJwtDecoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc'
|
|
102
|
-
//todo: We probably want to add proofs as well
|
|
103
134
|
return {
|
|
104
135
|
original,
|
|
105
136
|
decoded,
|
|
@@ -113,7 +144,7 @@ export class CredentialMapper {
|
|
|
113
144
|
return ObjectUtils.isString(original) && (original as string).startsWith('ey')
|
|
114
145
|
}
|
|
115
146
|
|
|
116
|
-
private static
|
|
147
|
+
private static isJsonLdAsString(original: OriginalVerifiableCredential | OriginalVerifiablePresentation) {
|
|
117
148
|
return ObjectUtils.isString(original) && (original as string).includes('@context')
|
|
118
149
|
}
|
|
119
150
|
|
|
@@ -128,7 +159,7 @@ export class CredentialMapper {
|
|
|
128
159
|
static jwtEncodedPresentationToUniformPresentation(
|
|
129
160
|
jwt: string,
|
|
130
161
|
makeCredentialsUniform: boolean = true,
|
|
131
|
-
opts?: { maxTimeSkewInMS?: number }
|
|
162
|
+
opts?: { maxTimeSkewInMS?: number },
|
|
132
163
|
): IPresentation {
|
|
133
164
|
return CredentialMapper.jwtDecodedPresentationToUniformPresentation(jwt_decode(jwt), makeCredentialsUniform, opts)
|
|
134
165
|
}
|
|
@@ -136,19 +167,19 @@ export class CredentialMapper {
|
|
|
136
167
|
static jwtDecodedPresentationToUniformPresentation(
|
|
137
168
|
decoded: JwtDecodedVerifiablePresentation,
|
|
138
169
|
makeCredentialsUniform: boolean = true,
|
|
139
|
-
opts?: { maxTimeSkewInMS?: number }
|
|
140
|
-
):
|
|
141
|
-
const presentation:
|
|
142
|
-
...(decoded.vp
|
|
170
|
+
opts?: { maxTimeSkewInMS?: number },
|
|
171
|
+
): IVerifiablePresentation {
|
|
172
|
+
const presentation: IVerifiablePresentation = {
|
|
173
|
+
...(decoded.vp),
|
|
143
174
|
}
|
|
144
175
|
if (makeCredentialsUniform) {
|
|
176
|
+
if (!decoded.vp.verifiableCredential) {
|
|
177
|
+
throw Error('Verifiable Presentation should have a verifiable credential at this point')
|
|
178
|
+
}
|
|
145
179
|
presentation.verifiableCredential = decoded.vp.verifiableCredential.map((vc) =>
|
|
146
|
-
CredentialMapper.toUniformCredential(vc, opts)
|
|
147
|
-
)
|
|
180
|
+
CredentialMapper.toUniformCredential(vc, opts),
|
|
181
|
+
)
|
|
148
182
|
}
|
|
149
|
-
// Since this is a presentation, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
|
|
150
|
-
delete presentation.proof
|
|
151
|
-
|
|
152
183
|
if (decoded.iss) {
|
|
153
184
|
const holder = presentation.holder
|
|
154
185
|
if (holder) {
|
|
@@ -168,7 +199,7 @@ export class CredentialMapper {
|
|
|
168
199
|
return presentation
|
|
169
200
|
}
|
|
170
201
|
|
|
171
|
-
static toUniformCredential(verifiableCredential: OriginalVerifiableCredential, opts?: { maxTimeSkewInMS?: number }):
|
|
202
|
+
static toUniformCredential(verifiableCredential: OriginalVerifiableCredential, opts?: { maxTimeSkewInMS?: number }): IVerifiableCredential {
|
|
172
203
|
const original = verifiableCredential
|
|
173
204
|
const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential)
|
|
174
205
|
|
|
@@ -178,11 +209,11 @@ export class CredentialMapper {
|
|
|
178
209
|
if (isJwtDecoded || isJwtEncoded) {
|
|
179
210
|
return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential, opts)
|
|
180
211
|
} else {
|
|
181
|
-
return decoded as
|
|
212
|
+
return decoded as IVerifiableCredential
|
|
182
213
|
}
|
|
183
214
|
}
|
|
184
215
|
|
|
185
|
-
static toUniformPresentation(presentation: OriginalVerifiablePresentation, opts?: { maxTimeSkewInMS?: number }):
|
|
216
|
+
static toUniformPresentation(presentation: OriginalVerifiablePresentation, opts?: { maxTimeSkewInMS?: number }): IVerifiablePresentation {
|
|
186
217
|
const original = presentation
|
|
187
218
|
const decoded = CredentialMapper.decodeVerifiablePresentation(original)
|
|
188
219
|
const isJwtEncoded: boolean = CredentialMapper.isJwtEncoded(original)
|
|
@@ -190,30 +221,28 @@ export class CredentialMapper {
|
|
|
190
221
|
const uniformPresentation =
|
|
191
222
|
isJwtEncoded || isJwtDecoded
|
|
192
223
|
? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded as JwtDecodedVerifiablePresentation, false)
|
|
193
|
-
: (decoded as
|
|
224
|
+
: (decoded as IVerifiablePresentation)
|
|
194
225
|
uniformPresentation.verifiableCredential = uniformPresentation.verifiableCredential?.map((vc) =>
|
|
195
|
-
CredentialMapper.toUniformCredential(vc, opts)
|
|
226
|
+
CredentialMapper.toUniformCredential(vc, opts),
|
|
196
227
|
) as IVerifiableCredential[] // We cast it because we IPresentation needs a VC. The internal Credential doesn't have the required Proof anymore (that is intended)
|
|
197
228
|
return uniformPresentation
|
|
198
229
|
}
|
|
199
230
|
|
|
200
|
-
static jwtEncodedCredentialToUniformCredential(jwt: string, opts?: { maxTimeSkewInMS?: number }):
|
|
231
|
+
static jwtEncodedCredentialToUniformCredential(jwt: string, opts?: { maxTimeSkewInMS?: number }): IVerifiableCredential {
|
|
201
232
|
return CredentialMapper.jwtDecodedCredentialToUniformCredential(jwt_decode(jwt), opts)
|
|
202
233
|
}
|
|
203
234
|
|
|
204
|
-
static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential, opts?: { maxTimeSkewInMS?: number }):
|
|
205
|
-
const credential:
|
|
206
|
-
...(decoded.vc
|
|
235
|
+
static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential, opts?: { maxTimeSkewInMS?: number }): IVerifiableCredential {
|
|
236
|
+
const credential: IVerifiableCredential = {
|
|
237
|
+
...(decoded.vc),
|
|
207
238
|
}
|
|
208
|
-
// Since this is a credential, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
|
|
209
|
-
delete credential.proof
|
|
210
239
|
|
|
211
240
|
const maxSkewInMS = opts?.maxTimeSkewInMS !== undefined ? opts.maxTimeSkewInMS : 999
|
|
212
241
|
|
|
213
242
|
if (decoded.exp) {
|
|
214
243
|
const expDate = credential.expirationDate
|
|
215
244
|
const jwtExp = parseInt(decoded.exp.toString())
|
|
216
|
-
// fix seconds to
|
|
245
|
+
// fix seconds to millisecond for the date
|
|
217
246
|
const expDateAsStr = jwtExp < 9999999999 ? new Date(jwtExp * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtExp).toISOString()
|
|
218
247
|
if (expDate && expDate !== expDateAsStr) {
|
|
219
248
|
const diff = Math.abs(new Date(expDateAsStr).getTime() - new Date(expDate).getTime())
|
|
@@ -318,35 +347,54 @@ export class CredentialMapper {
|
|
|
318
347
|
|
|
319
348
|
static storedCredentialToOriginalFormat(credential: W3CVerifiableCredential): W3CVerifiableCredential {
|
|
320
349
|
const type: DocumentFormat = CredentialMapper.detectDocumentType(credential)
|
|
321
|
-
if (
|
|
322
|
-
|
|
350
|
+
if (typeof credential === 'string') {
|
|
351
|
+
if (type === DocumentFormat.JWT) {
|
|
352
|
+
return CredentialMapper.toCompactJWT(credential)
|
|
353
|
+
} else if (type === DocumentFormat.JSONLD) {
|
|
354
|
+
return JSON.parse(credential)
|
|
355
|
+
}
|
|
323
356
|
}
|
|
324
357
|
return credential
|
|
325
358
|
}
|
|
326
359
|
|
|
327
360
|
static storedPresentationToOriginalFormat(presentation: W3CVerifiablePresentation): W3CVerifiablePresentation {
|
|
328
361
|
const type: DocumentFormat = CredentialMapper.detectDocumentType(presentation)
|
|
329
|
-
if (
|
|
330
|
-
|
|
362
|
+
if (typeof presentation === 'string') {
|
|
363
|
+
if (type === DocumentFormat.JWT) {
|
|
364
|
+
return CredentialMapper.toCompactJWT(presentation)
|
|
365
|
+
} else if (type === DocumentFormat.JSONLD) {
|
|
366
|
+
return JSON.parse(presentation)
|
|
367
|
+
}
|
|
331
368
|
}
|
|
332
369
|
return presentation
|
|
333
370
|
}
|
|
334
371
|
|
|
335
|
-
static toCompactJWT(
|
|
336
|
-
if (CredentialMapper.detectDocumentType(
|
|
372
|
+
static toCompactJWT(jwtDocument: W3CVerifiableCredential | JwtDecodedVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiablePresentation): string {
|
|
373
|
+
if (CredentialMapper.detectDocumentType(jwtDocument) !== DocumentFormat.JWT) {
|
|
337
374
|
throw Error('Cannot convert non JWT credential to JWT')
|
|
338
375
|
}
|
|
339
|
-
if (typeof
|
|
340
|
-
return
|
|
376
|
+
if (typeof jwtDocument === 'string') {
|
|
377
|
+
return jwtDocument
|
|
378
|
+
}
|
|
379
|
+
let proof: string | undefined
|
|
380
|
+
if ('vp' in jwtDocument) {
|
|
381
|
+
proof = jwtDocument.vp.proof
|
|
382
|
+
} else if ('vc' in jwtDocument) {
|
|
383
|
+
proof = jwtDocument.vc.proof
|
|
384
|
+
} else {
|
|
385
|
+
proof = Array.isArray(jwtDocument.proof) ? jwtDocument.proof[0].jwt : jwtDocument.proof.jwt
|
|
341
386
|
}
|
|
342
|
-
|
|
387
|
+
if (!proof) {
|
|
388
|
+
throw Error(`Could not get JWT from supplied document`)
|
|
389
|
+
}
|
|
390
|
+
return proof
|
|
343
391
|
}
|
|
344
392
|
|
|
345
|
-
static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation): DocumentFormat {
|
|
393
|
+
static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiableCredential | JwtDecodedVerifiablePresentation): DocumentFormat {
|
|
346
394
|
if (typeof document === 'string') {
|
|
347
|
-
return DocumentFormat.JWT
|
|
395
|
+
return this.isJsonLdAsString(document) ? DocumentFormat.JSONLD : DocumentFormat.JWT
|
|
348
396
|
}
|
|
349
|
-
const proofs = (<IVerifiableCredential>document).proof
|
|
397
|
+
const proofs = 'vc' in document ? document.vc.proof : 'vp' in document ? document.vp.proof : (<IVerifiableCredential>document).proof
|
|
350
398
|
const proof: IProof = Array.isArray(proofs) ? proofs[0] : proofs
|
|
351
399
|
|
|
352
400
|
if (proof.jwt) {
|
package/src/types/did.ts
CHANGED
|
@@ -19,6 +19,7 @@ export enum IProofType {
|
|
|
19
19
|
JcsEd25519Signature2020 = 'JcsEd25519Signature2020',
|
|
20
20
|
BbsBlsSignatureProof2020 = 'BbsBlsSignatureProof2020',
|
|
21
21
|
BbsBlsBoundSignatureProof2020 = 'BbsBlsBoundSignatureProof2020',
|
|
22
|
+
JwtProof2020 = 'JwtProof2020'
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export interface IParsedDID {
|
package/src/types/vc.ts
CHANGED
|
@@ -53,6 +53,7 @@ export interface IProof {
|
|
|
53
53
|
domain?: string // A string restricting the (usage of a) proof to the domain and protects against replay attacks
|
|
54
54
|
proofValue?: string // One of any number of valid representations of proof values
|
|
55
55
|
jws?: string // JWS based proof
|
|
56
|
+
jwt?: string //Jwt 2020 proof. Used to map a JWT VC onto a uniform presentation, and retain access to the original JWT
|
|
56
57
|
nonce?: string // Similar to challenge. A nonce to protect against replay attacks, used in some ZKP proofs
|
|
57
58
|
requiredRevealStatements?: string[] // The parts of the proof that must be revealed in a derived proof
|
|
58
59
|
|
|
@@ -91,8 +92,8 @@ export type W3CVerifiableCredential = IVerifiableCredential | CompactJWT
|
|
|
91
92
|
export interface IPresentation {
|
|
92
93
|
id?: string
|
|
93
94
|
'@context': ICredentialContextType | ICredentialContextType[]
|
|
94
|
-
type
|
|
95
|
-
verifiableCredential
|
|
95
|
+
type?: string | string[]
|
|
96
|
+
verifiableCredential?: W3CVerifiableCredential[]
|
|
96
97
|
presentation_submission?: PresentationSubmission
|
|
97
98
|
holder?: string
|
|
98
99
|
|
|
@@ -126,9 +127,9 @@ export interface WrappedVerifiableCredential {
|
|
|
126
127
|
*/
|
|
127
128
|
format: CredentialFormat
|
|
128
129
|
/**
|
|
129
|
-
* Internal stable representation of a Credential
|
|
130
|
+
* Internal stable representation of a Credential
|
|
130
131
|
*/
|
|
131
|
-
credential:
|
|
132
|
+
credential: IVerifiableCredential
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
export interface WrappedVerifiablePresentation {
|
|
@@ -166,14 +167,14 @@ export enum OriginalType {
|
|
|
166
167
|
|
|
167
168
|
export interface UniformVerifiablePresentation {
|
|
168
169
|
'@context': ICredentialContextType | ICredentialContextType[]
|
|
169
|
-
type: string[]
|
|
170
|
+
type: string | string[]
|
|
170
171
|
verifiableCredential: WrappedVerifiableCredential[]
|
|
171
172
|
presentation_submission?: PresentationSubmission
|
|
172
173
|
holder?: string
|
|
173
174
|
}
|
|
174
175
|
|
|
175
176
|
export interface JwtDecodedVerifiableCredential {
|
|
176
|
-
vc:
|
|
177
|
+
vc: IVerifiableCredential
|
|
177
178
|
exp: string
|
|
178
179
|
iss: string
|
|
179
180
|
nbf: string
|