@sphereon/ssi-types 0.8.1-next.26 → 0.8.1-next.272

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.
@@ -1,19 +1,42 @@
1
- import { ICredential, IPresentation, IVerifiableCredential, IVerifiablePresentation, JwtDecodedVerifiableCredential, JwtDecodedVerifiablePresentation, OriginalVerifiableCredential, OriginalVerifiablePresentation, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '../types';
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(presentation: OriginalVerifiablePresentation): WrappedVerifiablePresentation;
6
- static toWrappedVerifiableCredentials(verifiableCredentials: OriginalVerifiableCredential[]): WrappedVerifiableCredential[];
7
- static toWrappedVerifiableCredential(verifiableCredential: OriginalVerifiableCredential): WrappedVerifiableCredential;
5
+ static toWrappedVerifiablePresentation(originalPresentation: OriginalVerifiablePresentation, opts?: {
6
+ maxTimeSkewInMS?: number;
7
+ }): WrappedVerifiablePresentation;
8
+ static toWrappedVerifiableCredentials(verifiableCredentials: OriginalVerifiableCredential[], opts?: {
9
+ maxTimeSkewInMS?: number;
10
+ }): WrappedVerifiableCredential[];
11
+ static toWrappedVerifiableCredential(verifiableCredential: OriginalVerifiableCredential, opts?: {
12
+ maxTimeSkewInMS?: number;
13
+ }): WrappedVerifiableCredential;
8
14
  static isJwtEncoded(original: OriginalVerifiableCredential | OriginalVerifiablePresentation): boolean;
9
- private static isJsonLdString;
15
+ private static isJsonLdAsString;
10
16
  static isJwtDecodedCredential(original: OriginalVerifiableCredential): boolean;
11
17
  static isJwtDecodedPresentation(original: OriginalVerifiablePresentation): boolean;
12
- static jwtEncodedPresentationToUniformPresentation(jwt: string, makeCredentialsUniform?: boolean): IPresentation;
13
- static jwtDecodedPresentationToUniformPresentation(decoded: JwtDecodedVerifiablePresentation, makeCredentialsUniform?: boolean): IPresentation;
14
- static toUniformCredential(verifiableCredential: OriginalVerifiableCredential): ICredential;
15
- static toUniformPresentation(presentation: OriginalVerifiablePresentation): IPresentation;
16
- static jwtEncodedCredentialToUniformCredential(jwt: string): ICredential;
17
- static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential): ICredential;
18
+ static jwtEncodedPresentationToUniformPresentation(jwt: string, makeCredentialsUniform?: boolean, opts?: {
19
+ maxTimeSkewInMS?: number;
20
+ }): IPresentation;
21
+ static jwtDecodedPresentationToUniformPresentation(decoded: JwtDecodedVerifiablePresentation, makeCredentialsUniform?: boolean, opts?: {
22
+ maxTimeSkewInMS?: number;
23
+ }): IVerifiablePresentation;
24
+ static toUniformCredential(verifiableCredential: OriginalVerifiableCredential, opts?: {
25
+ maxTimeSkewInMS?: number;
26
+ }): IVerifiableCredential;
27
+ static toUniformPresentation(presentation: OriginalVerifiablePresentation, opts?: {
28
+ maxTimeSkewInMS?: number;
29
+ }): IVerifiablePresentation;
30
+ static jwtEncodedCredentialToUniformCredential(jwt: string, opts?: {
31
+ maxTimeSkewInMS?: number;
32
+ }): IVerifiableCredential;
33
+ static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential, opts?: {
34
+ maxTimeSkewInMS?: number;
35
+ }): IVerifiableCredential;
36
+ static toExternalVerifiableCredential(verifiableCredential: any): IVerifiableCredential;
37
+ static storedCredentialToOriginalFormat(credential: W3CVerifiableCredential): W3CVerifiableCredential;
38
+ static storedPresentationToOriginalFormat(presentation: W3CVerifiablePresentation): W3CVerifiablePresentation;
39
+ static toCompactJWT(jwtDocument: W3CVerifiableCredential | JwtDecodedVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiablePresentation): string;
40
+ static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiableCredential | JwtDecodedVerifiablePresentation): DocumentFormat;
18
41
  }
19
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,EAEL,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,gCAAgC,EAEhC,4BAA4B,EAC5B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,UAAU,CAAA;AAIjB,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,4BAA4B,CAAC,YAAY,EAAE,8BAA8B,GAAG,gCAAgC,GAAG,uBAAuB;IAY7I,MAAM,CAAC,0BAA0B,CAAC,UAAU,EAAE,4BAA4B,GAAG,8BAA8B,GAAG,qBAAqB;IAYnI,MAAM,CAAC,+BAA+B,CAAC,YAAY,EAAE,8BAA8B,GAAG,6BAA6B;IA4BnH,MAAM,CAAC,8BAA8B,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,GAAG,2BAA2B,EAAE;IAI3H,MAAM,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,4BAA4B,GAAG,2BAA2B;WAwBvG,YAAY,CAAC,QAAQ,EAAE,4BAA4B,GAAG,8BAA8B;IAIlG,OAAO,CAAC,MAAM,CAAC,cAAc;WAIf,sBAAsB,CAAC,QAAQ,EAAE,4BAA4B,GAAG,OAAO;WAIvE,wBAAwB,CAAC,QAAQ,EAAE,8BAA8B,GAAG,OAAO;IAIzF,MAAM,CAAC,2CAA2C,CAAC,GAAG,EAAE,MAAM,EAAE,sBAAsB,GAAE,OAAc,GAAG,aAAa;IAItH,MAAM,CAAC,2CAA2C,CAChD,OAAO,EAAE,gCAAgC,EACzC,sBAAsB,GAAE,OAAc,GACrC,aAAa;IA6BhB,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,4BAA4B,GAAG,WAAW;IAc3F,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,8BAA8B,GAAG,aAAa;IAezF,MAAM,CAAC,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIxE,MAAM,CAAC,uCAAuC,CAAC,OAAO,EAAE,8BAA8B,GAAG,WAAW;CAkErG"}
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;WAuBhB,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
- return (0, jwt_decode_1.default)(presentation);
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.isJsonLdString(presentation)) {
28
+ else if (CredentialMapper.isJsonLdAsString(presentation)) {
19
29
  return JSON.parse(presentation);
20
30
  }
21
31
  else {
@@ -23,54 +33,70 @@ class CredentialMapper {
23
33
  }
24
34
  }
25
35
  static decodeVerifiableCredential(credential) {
36
+ var _a;
26
37
  if (CredentialMapper.isJwtEncoded(credential)) {
27
- return (0, jwt_decode_1.default)(credential);
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.isJsonLdString(credential)) {
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(presentation) {
40
- const original = presentation;
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
- const vp = isJwtEncoded || isJwtDecoded
47
- ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded, false)
48
- : decoded;
49
- const vcs = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential);
50
- // todo: We probably want to add proofs as well
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: Object.assign(Object.assign({}, vp), { verifiableCredential: vcs }),
83
+ presentation,
57
84
  vcs,
58
85
  };
59
86
  }
60
- static toWrappedVerifiableCredentials(verifiableCredentials) {
61
- return verifiableCredentials.map(CredentialMapper.toWrappedVerifiableCredential);
87
+ static toWrappedVerifiableCredentials(verifiableCredentials, opts) {
88
+ return verifiableCredentials.map((vc) => CredentialMapper.toWrappedVerifiableCredential(vc, opts));
62
89
  }
63
- static toWrappedVerifiableCredential(verifiableCredential) {
90
+ static toWrappedVerifiableCredential(verifiableCredential, opts) {
64
91
  const original = verifiableCredential;
65
92
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential);
66
93
  const isJwtEncoded = CredentialMapper.isJwtEncoded(original);
67
94
  const isJwtDecoded = CredentialMapper.isJwtDecodedCredential(original);
68
95
  const type = isJwtEncoded ? types_1.OriginalType.JWT_ENCODED : isJwtDecoded ? types_1.OriginalType.JWT_DECODED : types_1.OriginalType.JSONLD;
69
- const credential = isJwtDecoded || isJwtDecoded
70
- ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded)
96
+ const credential = isJwtEncoded || isJwtDecoded
97
+ ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded, opts)
71
98
  : decoded;
72
- const format = isJwtDecoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc';
73
- //todo: We probably want to add proofs as well
99
+ const format = isJwtEncoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc';
74
100
  return {
75
101
  original,
76
102
  decoded,
@@ -82,7 +108,7 @@ class CredentialMapper {
82
108
  static isJwtEncoded(original) {
83
109
  return utils_1.ObjectUtils.isString(original) && original.startsWith('ey');
84
110
  }
85
- static isJsonLdString(original) {
111
+ static isJsonLdAsString(original) {
86
112
  return utils_1.ObjectUtils.isString(original) && original.includes('@context');
87
113
  }
88
114
  static isJwtDecodedCredential(original) {
@@ -91,16 +117,17 @@ class CredentialMapper {
91
117
  static isJwtDecodedPresentation(original) {
92
118
  return original['vp'] !== undefined && original['iss'] !== undefined;
93
119
  }
94
- static jwtEncodedPresentationToUniformPresentation(jwt, makeCredentialsUniform = true) {
95
- return CredentialMapper.jwtDecodedPresentationToUniformPresentation((0, jwt_decode_1.default)(jwt), makeCredentialsUniform);
120
+ static jwtEncodedPresentationToUniformPresentation(jwt, makeCredentialsUniform = true, opts) {
121
+ return CredentialMapper.jwtDecodedPresentationToUniformPresentation((0, jwt_decode_1.default)(jwt), makeCredentialsUniform, opts);
96
122
  }
97
- static jwtDecodedPresentationToUniformPresentation(decoded, makeCredentialsUniform = true) {
98
- const presentation = Object.assign({}, decoded.vp);
123
+ static jwtDecodedPresentationToUniformPresentation(decoded, makeCredentialsUniform = true, opts) {
124
+ const presentation = Object.assign({}, (decoded.vp));
99
125
  if (makeCredentialsUniform) {
100
- presentation.verifiableCredential = decoded.vp.verifiableCredential.map(CredentialMapper.toUniformCredential); // We cast it because we IPresentation needs a VC. The internal Credential doesn't have the required Proof anymore (that is intended)
126
+ if (!decoded.vp.verifiableCredential) {
127
+ throw Error('Verifiable Presentation should have a verifiable credential at this point');
128
+ }
129
+ presentation.verifiableCredential = decoded.vp.verifiableCredential.map((vc) => CredentialMapper.toUniformCredential(vc, opts));
101
130
  }
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
131
  if (decoded.iss) {
105
132
  const holder = presentation.holder;
106
133
  if (holder) {
@@ -119,19 +146,19 @@ class CredentialMapper {
119
146
  }
120
147
  return presentation;
121
148
  }
122
- static toUniformCredential(verifiableCredential) {
149
+ static toUniformCredential(verifiableCredential, opts) {
123
150
  const original = verifiableCredential;
124
151
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential);
125
152
  const isJwtEncoded = CredentialMapper.isJwtEncoded(original);
126
153
  const isJwtDecoded = CredentialMapper.isJwtDecodedCredential(original);
127
154
  if (isJwtDecoded || isJwtEncoded) {
128
- return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded);
155
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded, opts);
129
156
  }
130
157
  else {
131
158
  return decoded;
132
159
  }
133
160
  }
134
- static toUniformPresentation(presentation) {
161
+ static toUniformPresentation(presentation, opts) {
135
162
  var _a;
136
163
  const original = presentation;
137
164
  const decoded = CredentialMapper.decodeVerifiablePresentation(original);
@@ -140,23 +167,25 @@ class CredentialMapper {
140
167
  const uniformPresentation = isJwtEncoded || isJwtDecoded
141
168
  ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded, false)
142
169
  : decoded;
143
- uniformPresentation.verifiableCredential = (_a = uniformPresentation.verifiableCredential) === null || _a === void 0 ? void 0 : _a.map(CredentialMapper.toUniformCredential); // We cast it because we IPresentation needs a VC. The internal Credential doesn't have the required Proof anymore (that is intended)
170
+ uniformPresentation.verifiableCredential = (_a = uniformPresentation.verifiableCredential) === null || _a === void 0 ? void 0 : _a.map((vc) => CredentialMapper.toUniformCredential(vc, opts)); // We cast it because we IPresentation needs a VC. The internal Credential doesn't have the required Proof anymore (that is intended)
144
171
  return uniformPresentation;
145
172
  }
146
- static jwtEncodedCredentialToUniformCredential(jwt) {
147
- return CredentialMapper.jwtDecodedCredentialToUniformCredential((0, jwt_decode_1.default)(jwt));
173
+ static jwtEncodedCredentialToUniformCredential(jwt, opts) {
174
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential((0, jwt_decode_1.default)(jwt), opts);
148
175
  }
149
- static jwtDecodedCredentialToUniformCredential(decoded) {
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;
176
+ static jwtDecodedCredentialToUniformCredential(decoded, opts) {
177
+ const credential = Object.assign({}, (decoded.vc));
178
+ const maxSkewInMS = (opts === null || opts === void 0 ? void 0 : opts.maxTimeSkewInMS) !== undefined ? opts.maxTimeSkewInMS : 999;
153
179
  if (decoded.exp) {
154
180
  const expDate = credential.expirationDate;
155
181
  const jwtExp = parseInt(decoded.exp.toString());
156
- // fix seconds to millisecs for the date
182
+ // fix seconds to millisecond for the date
157
183
  const expDateAsStr = jwtExp < 9999999999 ? new Date(jwtExp * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtExp).toISOString();
158
184
  if (expDate && expDate !== expDateAsStr) {
159
- throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`);
185
+ const diff = Math.abs(new Date(expDateAsStr).getTime() - new Date(expDate).getTime());
186
+ if (!maxSkewInMS || diff > maxSkewInMS) {
187
+ throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`);
188
+ }
160
189
  }
161
190
  credential.expirationDate = expDateAsStr;
162
191
  }
@@ -166,7 +195,10 @@ class CredentialMapper {
166
195
  // fix seconds to millisecs for the date
167
196
  const nbfDateAsStr = jwtNbf < 9999999999 ? new Date(jwtNbf * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtNbf).toISOString();
168
197
  if (issuanceDate && issuanceDate !== nbfDateAsStr) {
169
- throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`);
198
+ const diff = Math.abs(new Date(nbfDateAsStr).getTime() - new Date(issuanceDate).getTime());
199
+ if (!maxSkewInMS || diff > maxSkewInMS) {
200
+ throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`);
201
+ }
170
202
  }
171
203
  credential.issuanceDate = nbfDateAsStr;
172
204
  }
@@ -184,7 +216,9 @@ class CredentialMapper {
184
216
  }
185
217
  }
186
218
  }
187
- credential.issuer = decoded.iss;
219
+ else {
220
+ credential.issuer = decoded.iss;
221
+ }
188
222
  }
189
223
  if (decoded.sub) {
190
224
  const subjects = Array.isArray(credential.credentialSubject) ? credential.credentialSubject : [credential.credentialSubject];
@@ -207,6 +241,89 @@ class CredentialMapper {
207
241
  }
208
242
  return credential;
209
243
  }
244
+ static toExternalVerifiableCredential(verifiableCredential) {
245
+ let proof;
246
+ if (verifiableCredential.proof) {
247
+ if (!verifiableCredential.proof.type) {
248
+ throw new Error('Verifiable credential proof is missing a type');
249
+ }
250
+ if (!verifiableCredential.proof.created) {
251
+ throw new Error('Verifiable credential proof is missing a created date');
252
+ }
253
+ if (!verifiableCredential.proof.proofPurpose) {
254
+ throw new Error('Verifiable credential proof is missing a proof purpose');
255
+ }
256
+ if (!verifiableCredential.proof.verificationMethod) {
257
+ throw new Error('Verifiable credential proof is missing a verification method');
258
+ }
259
+ proof = Object.assign(Object.assign({}, verifiableCredential.proof), { type: verifiableCredential.proof.type, created: verifiableCredential.proof.created, proofPurpose: verifiableCredential.proof.proofPurpose, verificationMethod: verifiableCredential.proof.verificationMethod });
260
+ }
261
+ return Object.assign(Object.assign({}, verifiableCredential), { type: verifiableCredential.type
262
+ ? typeof verifiableCredential.type === 'string'
263
+ ? [verifiableCredential.type]
264
+ : verifiableCredential.type
265
+ : ['VerifiableCredential'], proof });
266
+ }
267
+ static storedCredentialToOriginalFormat(credential) {
268
+ const type = CredentialMapper.detectDocumentType(credential);
269
+ if (typeof credential === 'string') {
270
+ if (type === 0 /* DocumentFormat.JWT */) {
271
+ return CredentialMapper.toCompactJWT(credential);
272
+ }
273
+ else if (type === 1 /* DocumentFormat.JSONLD */) {
274
+ return JSON.parse(credential);
275
+ }
276
+ }
277
+ return credential;
278
+ }
279
+ static storedPresentationToOriginalFormat(presentation) {
280
+ const type = CredentialMapper.detectDocumentType(presentation);
281
+ if (typeof presentation === 'string') {
282
+ if (type === 0 /* DocumentFormat.JWT */) {
283
+ return CredentialMapper.toCompactJWT(presentation);
284
+ }
285
+ else if (type === 1 /* DocumentFormat.JSONLD */) {
286
+ return JSON.parse(presentation);
287
+ }
288
+ }
289
+ return presentation;
290
+ }
291
+ static toCompactJWT(jwtDocument) {
292
+ if (CredentialMapper.detectDocumentType(jwtDocument) !== 0 /* DocumentFormat.JWT */) {
293
+ throw Error('Cannot convert non JWT credential to JWT');
294
+ }
295
+ if (typeof jwtDocument === 'string') {
296
+ return jwtDocument;
297
+ }
298
+ let proof;
299
+ if ('vp' in jwtDocument) {
300
+ proof = jwtDocument.vp.proof;
301
+ }
302
+ else if ('vc' in jwtDocument) {
303
+ proof = jwtDocument.vc.proof;
304
+ }
305
+ else {
306
+ proof = Array.isArray(jwtDocument.proof) ? jwtDocument.proof[0].jwt : jwtDocument.proof.jwt;
307
+ }
308
+ if (!proof) {
309
+ throw Error(`Could not get JWT from supplied document`);
310
+ }
311
+ return proof;
312
+ }
313
+ static detectDocumentType(document) {
314
+ if (typeof document === 'string') {
315
+ return this.isJsonLdAsString(document) ? 1 /* DocumentFormat.JSONLD */ : 0 /* DocumentFormat.JWT */;
316
+ }
317
+ const proofs = 'vc' in document ? document.vc.proof : 'vp' in document ? document.vp.proof : document.proof;
318
+ const proof = Array.isArray(proofs) ? proofs[0] : proofs;
319
+ if (proof.jwt) {
320
+ return 0 /* DocumentFormat.JWT */;
321
+ }
322
+ else if (proof.type === 'EthereumEip712Signature2021') {
323
+ return 2 /* DocumentFormat.EIP712 */;
324
+ }
325
+ return 1 /* DocumentFormat.JSONLD */;
326
+ }
210
327
  }
211
328
  exports.CredentialMapper = CredentialMapper;
212
329
  //# sourceMappingURL=credential-mapper.js.map
@@ -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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"}
@@ -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;
@@ -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;CAChE;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"}
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);
@@ -1 +1 @@
1
- {"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/types/did.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/types/did.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { PresentationSubmission } from './pex';
2
2
  import { IProofPurpose, IProofType } from './did';
3
- export declare type AdditionalClaims = Record<string, any>;
4
- export declare type IIssuerId = string;
3
+ export type AdditionalClaims = Record<string, any>;
4
+ export type IIssuerId = string;
5
5
  export interface ICredential {
6
6
  '@context': ICredentialContextType | ICredentialContextType[];
7
7
  type: string[];
@@ -19,12 +19,12 @@ export interface ICredential {
19
19
  export interface ICredentialSubject {
20
20
  id?: string;
21
21
  }
22
- export declare type ICredentialContextType = (ICredentialContext & AdditionalClaims) | string;
22
+ export type ICredentialContextType = (ICredentialContext & AdditionalClaims) | string;
23
23
  export interface ICredentialContext {
24
24
  name?: string;
25
25
  did?: string;
26
26
  }
27
- export declare type ICredentialSchemaType = ICredentialSchema | string;
27
+ export type ICredentialSchemaType = ICredentialSchema | string;
28
28
  export interface ICredentialSchema {
29
29
  id: string;
30
30
  type?: string;
@@ -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;
@@ -53,33 +54,33 @@ export interface IIssuer {
53
54
  export interface IHasProof {
54
55
  proof: IProof | IProof[];
55
56
  }
56
- export declare type IVerifiableCredential = ICredential & IHasProof;
57
+ export type IVerifiableCredential = ICredential & IHasProof;
57
58
  /**
58
59
  * Represents a Json Web Token in compact form.
59
60
  */
60
- export declare type CompactJWT = string;
61
+ export type CompactJWT = string;
61
62
  /**
62
63
  * Represents a signed Verifiable Credential (includes proof), in either JSON or compact JWT format.
63
64
  * See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model}
64
65
  * See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats}
65
66
  */
66
- export declare type W3CVerifiableCredential = IVerifiableCredential | CompactJWT;
67
+ export type W3CVerifiableCredential = IVerifiableCredential | CompactJWT;
67
68
  export interface IPresentation {
68
69
  id?: string;
69
70
  '@context': ICredentialContextType | ICredentialContextType[];
70
- type: string[];
71
- verifiableCredential: W3CVerifiableCredential[];
71
+ type?: string | string[];
72
+ verifiableCredential?: W3CVerifiableCredential[];
72
73
  presentation_submission?: PresentationSubmission;
73
74
  holder?: string;
74
75
  [x: string]: any;
75
76
  }
76
- export declare type IVerifiablePresentation = IPresentation & IHasProof;
77
+ export type IVerifiablePresentation = IPresentation & IHasProof;
77
78
  /**
78
79
  * Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format.
79
80
  * See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model}
80
81
  * See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats}
81
82
  */
82
- export declare type W3CVerifiablePresentation = IVerifiablePresentation | CompactJWT;
83
+ export type W3CVerifiablePresentation = IVerifiablePresentation | CompactJWT;
83
84
  export interface WrappedVerifiableCredential {
84
85
  /**
85
86
  * Original VC that we've received
@@ -96,11 +97,11 @@ export interface WrappedVerifiableCredential {
96
97
  /**
97
98
  * The claim format, typically used during exchange transport protocols
98
99
  */
99
- format: ClaimFormat;
100
+ format: CredentialFormat;
100
101
  /**
101
- * Internal stable representation of a Credential without Proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding
102
+ * Internal stable representation of a Credential
102
103
  */
103
- credential: ICredential;
104
+ credential: IVerifiableCredential;
104
105
  }
105
106
  export interface WrappedVerifiablePresentation {
106
107
  /**
@@ -118,7 +119,7 @@ export interface WrappedVerifiablePresentation {
118
119
  /**
119
120
  * The claim format, typically used during exchange transport protocols
120
121
  */
121
- format: ClaimFormat;
122
+ format: PresentationFormat;
122
123
  /**
123
124
  * Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding
124
125
  */
@@ -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: ICredential;
145
+ vc: IVerifiableCredential;
145
146
  exp: string;
146
147
  iss: string;
147
148
  nbf: string;
@@ -158,8 +159,15 @@ export interface JwtDecodedVerifiablePresentation {
158
159
  jti: string;
159
160
  [x: string]: any;
160
161
  }
161
- export declare type ClaimFormat = 'jwt' | 'jwt_vc' | 'jwt_vp' | 'ldp' | 'ldp_vc' | 'ldp_vp' | string;
162
- export declare type OriginalVerifiableCredential = W3CVerifiableCredential | JwtDecodedVerifiableCredential;
163
- export declare type OriginalVerifiablePresentation = W3CVerifiablePresentation | JwtDecodedVerifiablePresentation;
164
- export declare type Original = OriginalVerifiablePresentation | OriginalVerifiableCredential;
162
+ export type CredentialFormat = 'jwt' | 'ldp' | 'jwt_vc' | 'ldp_vc' | string;
163
+ export type PresentationFormat = 'jwt' | 'ldp' | 'jwt_vp' | 'ldp_vp' | string;
164
+ export type ClaimFormat = CredentialFormat | PresentationFormat;
165
+ export type OriginalVerifiableCredential = W3CVerifiableCredential | JwtDecodedVerifiableCredential;
166
+ export type OriginalVerifiablePresentation = W3CVerifiablePresentation | JwtDecodedVerifiablePresentation;
167
+ export type Original = OriginalVerifiablePresentation | OriginalVerifiableCredential;
168
+ export declare const enum DocumentFormat {
169
+ JWT = 0,
170
+ JSONLD = 1,
171
+ EIP712 = 2
172
+ }
165
173
  //# sourceMappingURL=vc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vc.d.ts","sourceRoot":"","sources":["../../src/types/vc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vc.d.ts","sourceRoot":"","sources":["../../src/types/vc.ts"],"names":[],"mappings":"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"}
package/dist/types/vc.js CHANGED
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OriginalType = void 0;
3
+ exports.DocumentFormat = exports.OriginalType = void 0;
4
4
  var OriginalType;
5
5
  (function (OriginalType) {
6
6
  OriginalType["JSONLD"] = "json-ld";
7
7
  OriginalType["JWT_ENCODED"] = "jwt-encoded";
8
8
  OriginalType["JWT_DECODED"] = "jwt-decoded";
9
9
  })(OriginalType = exports.OriginalType || (exports.OriginalType = {}));
10
+ var DocumentFormat;
11
+ (function (DocumentFormat) {
12
+ DocumentFormat[DocumentFormat["JWT"] = 0] = "JWT";
13
+ DocumentFormat[DocumentFormat["JSONLD"] = 1] = "JSONLD";
14
+ DocumentFormat[DocumentFormat["EIP712"] = 2] = "EIP712";
15
+ })(DocumentFormat = exports.DocumentFormat || (exports.DocumentFormat = {}));
10
16
  //# sourceMappingURL=vc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vc.js","sourceRoot":"","sources":["../../src/types/vc.ts"],"names":[],"mappings":";;;AAgKA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,kCAAkB,CAAA;IAClB,2CAA2B,CAAA;IAC3B,2CAA2B,CAAA;AAC7B,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB"}
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-next.26+4dc8dea",
4
+ "version": "0.8.1-next.272+a34f653",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
@@ -12,6 +12,7 @@
12
12
  },
13
13
  "devDependencies": {
14
14
  "@types/jest": "^27.0.2",
15
+ "@veramo/core": "4.2.0",
15
16
  "jest": "^27.3.1",
16
17
  "prettier": "^2.4.1",
17
18
  "ts-jest": "^27.0.7",
@@ -37,5 +38,5 @@
37
38
  "Verifiable Credentials",
38
39
  "DIDs"
39
40
  ],
40
- "gitHead": "4dc8dea175ff9eb8526ce6f1abb4b72ffbb58128"
41
+ "gitHead": "a34f653b26d26b6d980aa9196b814ad42cfa5e3f"
41
42
  }
@@ -1,7 +1,9 @@
1
1
  import {
2
- ClaimFormat,
3
- ICredential,
2
+ DocumentFormat,
4
3
  IPresentation,
4
+ IProof,
5
+ IProofPurpose,
6
+ IProofType,
5
7
  IVerifiableCredential,
6
8
  IVerifiablePresentation,
7
9
  JwtDecodedVerifiableCredential,
@@ -9,6 +11,10 @@ import {
9
11
  OriginalType,
10
12
  OriginalVerifiableCredential,
11
13
  OriginalVerifiablePresentation,
14
+ PresentationFormat,
15
+ UniformVerifiablePresentation,
16
+ W3CVerifiableCredential,
17
+ W3CVerifiablePresentation,
12
18
  WrappedVerifiableCredential,
13
19
  WrappedVerifiablePresentation,
14
20
  } from '../types'
@@ -18,10 +24,20 @@ import { ObjectUtils } from '../utils'
18
24
  export class CredentialMapper {
19
25
  static decodeVerifiablePresentation(presentation: OriginalVerifiablePresentation): JwtDecodedVerifiablePresentation | IVerifiablePresentation {
20
26
  if (CredentialMapper.isJwtEncoded(presentation)) {
21
- return jwt_decode(presentation as string) as JwtDecodedVerifiablePresentation
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
22
38
  } else if (CredentialMapper.isJwtDecodedPresentation(presentation)) {
23
39
  return presentation as JwtDecodedVerifiablePresentation
24
- } else if (CredentialMapper.isJsonLdString(presentation)) {
40
+ } else if (CredentialMapper.isJsonLdAsString(presentation)) {
25
41
  return JSON.parse(presentation as string) as IVerifiablePresentation
26
42
  } else {
27
43
  return presentation as IVerifiablePresentation
@@ -30,51 +46,73 @@ export class CredentialMapper {
30
46
 
31
47
  static decodeVerifiableCredential(credential: OriginalVerifiableCredential): JwtDecodedVerifiableCredential | IVerifiableCredential {
32
48
  if (CredentialMapper.isJwtEncoded(credential)) {
33
- return jwt_decode(credential as string) as JwtDecodedVerifiableCredential
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
34
59
  } else if (CredentialMapper.isJwtDecodedCredential(credential)) {
35
60
  return credential as JwtDecodedVerifiableCredential
36
- } else if (CredentialMapper.isJsonLdString(credential)) {
61
+ } else if (CredentialMapper.isJsonLdAsString(credential)) {
37
62
  return JSON.parse(credential as string) as IVerifiableCredential
38
63
  } else {
39
64
  return credential as IVerifiableCredential
40
65
  }
41
66
  }
42
67
 
43
- static toWrappedVerifiablePresentation(presentation: OriginalVerifiablePresentation): WrappedVerifiablePresentation {
44
- const original = presentation
68
+ static toWrappedVerifiablePresentation(
69
+ originalPresentation: OriginalVerifiablePresentation,
70
+ opts?: { maxTimeSkewInMS?: number },
71
+ ): WrappedVerifiablePresentation {
72
+ const original = originalPresentation
45
73
  const isJwtEncoded: boolean = CredentialMapper.isJwtEncoded(original)
46
74
  const isJwtDecoded: boolean = CredentialMapper.isJwtDecodedPresentation(original)
47
75
 
48
76
  const type = isJwtEncoded ? OriginalType.JWT_ENCODED : isJwtDecoded ? OriginalType.JWT_DECODED : OriginalType.JSONLD
49
- const format: ClaimFormat = isJwtDecoded || isJwtEncoded ? 'jwt_vp' : 'ldp_vp'
77
+ const format: PresentationFormat = isJwtDecoded || isJwtEncoded ? 'jwt_vp' : 'ldp_vp'
50
78
  const decoded = CredentialMapper.decodeVerifiablePresentation(original)
51
- const vp: IPresentation =
52
- isJwtEncoded || isJwtDecoded
53
- ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded as JwtDecodedVerifiablePresentation, false)
54
- : (decoded as IPresentation)
55
- const vcs: WrappedVerifiableCredential[] = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential)
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)
56
89
 
57
- // todo: We probably want to add proofs as well
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
58
94
  return {
59
95
  type,
60
96
  format,
61
97
  original,
62
98
  decoded,
63
- presentation: {
64
- ...vp,
65
- 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
66
- },
99
+ presentation,
67
100
  vcs,
68
101
  }
69
102
  }
70
103
 
71
- static toWrappedVerifiableCredentials(verifiableCredentials: OriginalVerifiableCredential[]): WrappedVerifiableCredential[] {
72
- return verifiableCredentials.map(CredentialMapper.toWrappedVerifiableCredential)
104
+ static toWrappedVerifiableCredentials(
105
+ verifiableCredentials: OriginalVerifiableCredential[],
106
+ opts?: { maxTimeSkewInMS?: number },
107
+ ): WrappedVerifiableCredential[] {
108
+ return verifiableCredentials.map((vc) => CredentialMapper.toWrappedVerifiableCredential(vc, opts))
73
109
  }
74
110
 
75
- static toWrappedVerifiableCredential(verifiableCredential: OriginalVerifiableCredential): WrappedVerifiableCredential {
111
+ static toWrappedVerifiableCredential(
112
+ verifiableCredential: OriginalVerifiableCredential,
113
+ opts?: { maxTimeSkewInMS?: number },
114
+ ): WrappedVerifiableCredential {
76
115
  const original = verifiableCredential
77
-
78
116
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential)
79
117
 
80
118
  const isJwtEncoded = CredentialMapper.isJwtEncoded(original)
@@ -82,11 +120,11 @@ export class CredentialMapper {
82
120
  const type = isJwtEncoded ? OriginalType.JWT_ENCODED : isJwtDecoded ? OriginalType.JWT_DECODED : OriginalType.JSONLD
83
121
 
84
122
  const credential =
85
- isJwtDecoded || isJwtDecoded
86
- ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential)
87
- : (decoded as ICredential)
88
- const format = isJwtDecoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc'
89
- //todo: We probably want to add proofs as well
123
+ isJwtEncoded || isJwtDecoded
124
+ ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential, opts)
125
+ : (decoded as IVerifiableCredential)
126
+
127
+ const format = isJwtEncoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc'
90
128
  return {
91
129
  original,
92
130
  decoded,
@@ -100,7 +138,7 @@ export class CredentialMapper {
100
138
  return ObjectUtils.isString(original) && (original as string).startsWith('ey')
101
139
  }
102
140
 
103
- private static isJsonLdString(original: OriginalVerifiableCredential | OriginalVerifiablePresentation) {
141
+ private static isJsonLdAsString(original: OriginalVerifiableCredential | OriginalVerifiablePresentation) {
104
142
  return ObjectUtils.isString(original) && (original as string).includes('@context')
105
143
  }
106
144
 
@@ -112,23 +150,30 @@ export class CredentialMapper {
112
150
  return (<JwtDecodedVerifiablePresentation>original)['vp'] !== undefined && (<JwtDecodedVerifiablePresentation>original)['iss'] !== undefined
113
151
  }
114
152
 
115
- static jwtEncodedPresentationToUniformPresentation(jwt: string, makeCredentialsUniform: boolean = true): IPresentation {
116
- return CredentialMapper.jwtDecodedPresentationToUniformPresentation(jwt_decode(jwt), makeCredentialsUniform)
153
+ static jwtEncodedPresentationToUniformPresentation(
154
+ jwt: string,
155
+ makeCredentialsUniform: boolean = true,
156
+ opts?: { maxTimeSkewInMS?: number },
157
+ ): IPresentation {
158
+ return CredentialMapper.jwtDecodedPresentationToUniformPresentation(jwt_decode(jwt), makeCredentialsUniform, opts)
117
159
  }
118
160
 
119
161
  static jwtDecodedPresentationToUniformPresentation(
120
162
  decoded: JwtDecodedVerifiablePresentation,
121
- makeCredentialsUniform: boolean = true
122
- ): IPresentation {
123
- const presentation: IPresentation = {
124
- ...(decoded.vp as IPresentation),
163
+ makeCredentialsUniform: boolean = true,
164
+ opts?: { maxTimeSkewInMS?: number },
165
+ ): IVerifiablePresentation {
166
+ const presentation: IVerifiablePresentation = {
167
+ ...(decoded.vp),
125
168
  }
126
169
  if (makeCredentialsUniform) {
127
- presentation.verifiableCredential = decoded.vp.verifiableCredential.map(CredentialMapper.toUniformCredential) as IVerifiableCredential[] // We cast it because we IPresentation needs a VC. The internal Credential doesn't have the required Proof anymore (that is intended)
170
+ if (!decoded.vp.verifiableCredential) {
171
+ throw Error('Verifiable Presentation should have a verifiable credential at this point')
172
+ }
173
+ presentation.verifiableCredential = decoded.vp.verifiableCredential.map((vc) =>
174
+ CredentialMapper.toUniformCredential(vc, opts),
175
+ )
128
176
  }
129
- // Since this is a presentation, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
130
- delete presentation.proof
131
-
132
177
  if (decoded.iss) {
133
178
  const holder = presentation.holder
134
179
  if (holder) {
@@ -148,7 +193,7 @@ export class CredentialMapper {
148
193
  return presentation
149
194
  }
150
195
 
151
- static toUniformCredential(verifiableCredential: OriginalVerifiableCredential): ICredential {
196
+ static toUniformCredential(verifiableCredential: OriginalVerifiableCredential, opts?: { maxTimeSkewInMS?: number }): IVerifiableCredential {
152
197
  const original = verifiableCredential
153
198
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential)
154
199
 
@@ -156,13 +201,13 @@ export class CredentialMapper {
156
201
  const isJwtDecoded: boolean = CredentialMapper.isJwtDecodedCredential(original)
157
202
 
158
203
  if (isJwtDecoded || isJwtEncoded) {
159
- return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential)
204
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential, opts)
160
205
  } else {
161
- return decoded as ICredential
206
+ return decoded as IVerifiableCredential
162
207
  }
163
208
  }
164
209
 
165
- static toUniformPresentation(presentation: OriginalVerifiablePresentation): IPresentation {
210
+ static toUniformPresentation(presentation: OriginalVerifiablePresentation, opts?: { maxTimeSkewInMS?: number }): IVerifiablePresentation {
166
211
  const original = presentation
167
212
  const decoded = CredentialMapper.decodeVerifiablePresentation(original)
168
213
  const isJwtEncoded: boolean = CredentialMapper.isJwtEncoded(original)
@@ -170,31 +215,34 @@ export class CredentialMapper {
170
215
  const uniformPresentation =
171
216
  isJwtEncoded || isJwtDecoded
172
217
  ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded as JwtDecodedVerifiablePresentation, false)
173
- : (decoded as IPresentation)
174
- uniformPresentation.verifiableCredential = uniformPresentation.verifiableCredential?.map(
175
- CredentialMapper.toUniformCredential
218
+ : (decoded as IVerifiablePresentation)
219
+ uniformPresentation.verifiableCredential = uniformPresentation.verifiableCredential?.map((vc) =>
220
+ CredentialMapper.toUniformCredential(vc, opts),
176
221
  ) as IVerifiableCredential[] // We cast it because we IPresentation needs a VC. The internal Credential doesn't have the required Proof anymore (that is intended)
177
222
  return uniformPresentation
178
223
  }
179
224
 
180
- static jwtEncodedCredentialToUniformCredential(jwt: string): ICredential {
181
- return CredentialMapper.jwtDecodedCredentialToUniformCredential(jwt_decode(jwt))
225
+ static jwtEncodedCredentialToUniformCredential(jwt: string, opts?: { maxTimeSkewInMS?: number }): IVerifiableCredential {
226
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential(jwt_decode(jwt), opts)
182
227
  }
183
228
 
184
- static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential): ICredential {
185
- const credential: ICredential = {
186
- ...(decoded.vc as ICredential),
229
+ static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential, opts?: { maxTimeSkewInMS?: number }): IVerifiableCredential {
230
+ const credential: IVerifiableCredential = {
231
+ ...(decoded.vc),
187
232
  }
188
- // Since this is a credential, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
189
- delete credential.proof
233
+
234
+ const maxSkewInMS = opts?.maxTimeSkewInMS !== undefined ? opts.maxTimeSkewInMS : 999
190
235
 
191
236
  if (decoded.exp) {
192
237
  const expDate = credential.expirationDate
193
238
  const jwtExp = parseInt(decoded.exp.toString())
194
- // fix seconds to millisecs for the date
239
+ // fix seconds to millisecond for the date
195
240
  const expDateAsStr = jwtExp < 9999999999 ? new Date(jwtExp * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtExp).toISOString()
196
241
  if (expDate && expDate !== expDateAsStr) {
197
- throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`)
242
+ const diff = Math.abs(new Date(expDateAsStr).getTime() - new Date(expDate).getTime())
243
+ if (!maxSkewInMS || diff > maxSkewInMS) {
244
+ throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`)
245
+ }
198
246
  }
199
247
  credential.expirationDate = expDateAsStr
200
248
  }
@@ -205,7 +253,10 @@ export class CredentialMapper {
205
253
  // fix seconds to millisecs for the date
206
254
  const nbfDateAsStr = jwtNbf < 9999999999 ? new Date(jwtNbf * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtNbf).toISOString()
207
255
  if (issuanceDate && issuanceDate !== nbfDateAsStr) {
208
- throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`)
256
+ const diff = Math.abs(new Date(nbfDateAsStr).getTime() - new Date(issuanceDate).getTime())
257
+ if (!maxSkewInMS || diff > maxSkewInMS) {
258
+ throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`)
259
+ }
209
260
  }
210
261
  credential.issuanceDate = nbfDateAsStr
211
262
  }
@@ -222,8 +273,9 @@ export class CredentialMapper {
222
273
  throw new Error(`Inconsistent issuers between JWT claim (${decoded.iss}) and VC value (${issuer.id})`)
223
274
  }
224
275
  }
276
+ } else {
277
+ credential.issuer = decoded.iss
225
278
  }
226
- credential.issuer = decoded.iss
227
279
  }
228
280
 
229
281
  if (decoded.sub) {
@@ -245,6 +297,105 @@ export class CredentialMapper {
245
297
  }
246
298
  credential.id = decoded.jti
247
299
  }
300
+
248
301
  return credential
249
302
  }
303
+
304
+ static toExternalVerifiableCredential(verifiableCredential: any): IVerifiableCredential {
305
+ let proof
306
+ if (verifiableCredential.proof) {
307
+ if (!verifiableCredential.proof.type) {
308
+ throw new Error('Verifiable credential proof is missing a type')
309
+ }
310
+
311
+ if (!verifiableCredential.proof.created) {
312
+ throw new Error('Verifiable credential proof is missing a created date')
313
+ }
314
+
315
+ if (!verifiableCredential.proof.proofPurpose) {
316
+ throw new Error('Verifiable credential proof is missing a proof purpose')
317
+ }
318
+
319
+ if (!verifiableCredential.proof.verificationMethod) {
320
+ throw new Error('Verifiable credential proof is missing a verification method')
321
+ }
322
+ proof = {
323
+ ...verifiableCredential.proof,
324
+ type: verifiableCredential.proof.type,
325
+ created: verifiableCredential.proof.created,
326
+ proofPurpose: verifiableCredential.proof.proofPurpose,
327
+ verificationMethod: verifiableCredential.proof.verificationMethod,
328
+ }
329
+ }
330
+
331
+ return {
332
+ ...verifiableCredential,
333
+ type: verifiableCredential.type
334
+ ? typeof verifiableCredential.type === 'string'
335
+ ? [verifiableCredential.type]
336
+ : verifiableCredential.type
337
+ : ['VerifiableCredential'],
338
+ proof,
339
+ }
340
+ }
341
+
342
+ static storedCredentialToOriginalFormat(credential: W3CVerifiableCredential): W3CVerifiableCredential {
343
+ const type: DocumentFormat = CredentialMapper.detectDocumentType(credential)
344
+ if (typeof credential === 'string') {
345
+ if (type === DocumentFormat.JWT) {
346
+ return CredentialMapper.toCompactJWT(credential)
347
+ } else if (type === DocumentFormat.JSONLD) {
348
+ return JSON.parse(credential)
349
+ }
350
+ }
351
+ return credential
352
+ }
353
+
354
+ static storedPresentationToOriginalFormat(presentation: W3CVerifiablePresentation): W3CVerifiablePresentation {
355
+ const type: DocumentFormat = CredentialMapper.detectDocumentType(presentation)
356
+ if (typeof presentation === 'string') {
357
+ if (type === DocumentFormat.JWT) {
358
+ return CredentialMapper.toCompactJWT(presentation)
359
+ } else if (type === DocumentFormat.JSONLD) {
360
+ return JSON.parse(presentation)
361
+ }
362
+ }
363
+ return presentation
364
+ }
365
+
366
+ static toCompactJWT(jwtDocument: W3CVerifiableCredential | JwtDecodedVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiablePresentation): string {
367
+ if (CredentialMapper.detectDocumentType(jwtDocument) !== DocumentFormat.JWT) {
368
+ throw Error('Cannot convert non JWT credential to JWT')
369
+ }
370
+ if (typeof jwtDocument === 'string') {
371
+ return jwtDocument
372
+ }
373
+ let proof: string | undefined
374
+ if ('vp' in jwtDocument) {
375
+ proof = jwtDocument.vp.proof
376
+ } else if ('vc' in jwtDocument) {
377
+ proof = jwtDocument.vc.proof
378
+ } else {
379
+ proof = Array.isArray(jwtDocument.proof) ? jwtDocument.proof[0].jwt : jwtDocument.proof.jwt
380
+ }
381
+ if (!proof) {
382
+ throw Error(`Could not get JWT from supplied document`)
383
+ }
384
+ return proof
385
+ }
386
+
387
+ static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation | JwtDecodedVerifiableCredential | JwtDecodedVerifiablePresentation): DocumentFormat {
388
+ if (typeof document === 'string') {
389
+ return this.isJsonLdAsString(document) ? DocumentFormat.JSONLD : DocumentFormat.JWT
390
+ }
391
+ const proofs = 'vc' in document ? document.vc.proof : 'vp' in document ? document.vp.proof : (<IVerifiableCredential>document).proof
392
+ const proof: IProof = Array.isArray(proofs) ? proofs[0] : proofs
393
+
394
+ if (proof.jwt) {
395
+ return DocumentFormat.JWT
396
+ } else if (proof.type === 'EthereumEip712Signature2021') {
397
+ return DocumentFormat.EIP712
398
+ }
399
+ return DocumentFormat.JSONLD
400
+ }
250
401
  }
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: string[]
95
- verifiableCredential: W3CVerifiableCredential[] // we relax to ICredential for internal decoded stable representations without proofs
95
+ type?: string | string[]
96
+ verifiableCredential?: W3CVerifiableCredential[]
96
97
  presentation_submission?: PresentationSubmission
97
98
  holder?: string
98
99
 
@@ -124,11 +125,11 @@ export interface WrappedVerifiableCredential {
124
125
  /**
125
126
  * The claim format, typically used during exchange transport protocols
126
127
  */
127
- format: ClaimFormat
128
+ format: CredentialFormat
128
129
  /**
129
- * Internal stable representation of a Credential without Proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding
130
+ * Internal stable representation of a Credential
130
131
  */
131
- credential: ICredential
132
+ credential: IVerifiableCredential
132
133
  }
133
134
 
134
135
  export interface WrappedVerifiablePresentation {
@@ -147,7 +148,7 @@ export interface WrappedVerifiablePresentation {
147
148
  /**
148
149
  * The claim format, typically used during exchange transport protocols
149
150
  */
150
- format: ClaimFormat
151
+ format: PresentationFormat
151
152
  /**
152
153
  * Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding
153
154
  */
@@ -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: ICredential
177
+ vc: IVerifiableCredential
177
178
  exp: string
178
179
  iss: string
179
180
  nbf: string
@@ -194,8 +195,16 @@ export interface JwtDecodedVerifiablePresentation {
194
195
  [x: string]: any
195
196
  }
196
197
 
197
- export type ClaimFormat = 'jwt' | 'jwt_vc' | 'jwt_vp' | 'ldp' | 'ldp_vc' | 'ldp_vp' | string
198
+ export type CredentialFormat = 'jwt' | 'ldp' | 'jwt_vc' | 'ldp_vc' | string
199
+ export type PresentationFormat = 'jwt' | 'ldp' | 'jwt_vp' | 'ldp_vp' | string
200
+ export type ClaimFormat = CredentialFormat | PresentationFormat
198
201
 
199
202
  export type OriginalVerifiableCredential = W3CVerifiableCredential | JwtDecodedVerifiableCredential
200
203
  export type OriginalVerifiablePresentation = W3CVerifiablePresentation | JwtDecodedVerifiablePresentation
201
204
  export type Original = OriginalVerifiablePresentation | OriginalVerifiableCredential
205
+
206
+ export const enum DocumentFormat {
207
+ JWT,
208
+ JSONLD,
209
+ EIP712,
210
+ }