@sphereon/ssi-types 0.8.1-unstable.25 → 0.8.1-unstable.263

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, ICredential, 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(presentation: 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
15
  private static isJsonLdString;
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
+ }): IPresentation;
24
+ static toUniformCredential(verifiableCredential: OriginalVerifiableCredential, opts?: {
25
+ maxTimeSkewInMS?: number;
26
+ }): ICredential;
27
+ static toUniformPresentation(presentation: OriginalVerifiablePresentation, opts?: {
28
+ maxTimeSkewInMS?: number;
29
+ }): IPresentation;
30
+ static jwtEncodedCredentialToUniformCredential(jwt: string, opts?: {
31
+ maxTimeSkewInMS?: number;
32
+ }): ICredential;
33
+ static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential, opts?: {
34
+ maxTimeSkewInMS?: number;
35
+ }): ICredential;
36
+ static toExternalVerifiableCredential(verifiableCredential: any): IVerifiableCredential;
37
+ static storedCredentialToOriginalFormat(credential: W3CVerifiableCredential): W3CVerifiableCredential;
38
+ static storedPresentationToOriginalFormat(presentation: W3CVerifiablePresentation): W3CVerifiablePresentation;
39
+ static toCompactJWT(persistedCredential: W3CVerifiableCredential | W3CVerifiablePresentation): string;
40
+ static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation): 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,WAAW,EACX,aAAa,EAEb,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,gCAAgC,EAEhC,4BAA4B,EAC5B,8BAA8B,EAE9B,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;IAY7I,MAAM,CAAC,0BAA0B,CAAC,UAAU,EAAE,4BAA4B,GAAG,8BAA8B,GAAG,qBAAqB;IAYnI,MAAM,CAAC,+BAA+B,CACpC,YAAY,EAAE,8BAA8B,EAC5C,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,6BAA6B;IA4BhC,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;WAwBhB,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,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,aAAa;IA+BhB,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IAchI,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,aAAa;IAe9H,MAAM,CAAC,uCAAuC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IAI7G,MAAM,CAAC,uCAAuC,CAAC,OAAO,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IA6EzI,MAAM,CAAC,8BAA8B,CAAC,oBAAoB,EAAE,GAAG,GAAG,qBAAqB;IAsCvF,MAAM,CAAC,gCAAgC,CAAC,UAAU,EAAE,uBAAuB,GAAG,uBAAuB;IAQrG,MAAM,CAAC,kCAAkC,CAAC,YAAY,EAAE,yBAAyB,GAAG,yBAAyB;IAQ7G,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE,uBAAuB,GAAG,yBAAyB,GAAG,MAAM;IAUrG,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,yBAAyB,GAAG,cAAc;CAczG"}
@@ -36,7 +36,7 @@ class CredentialMapper {
36
36
  return credential;
37
37
  }
38
38
  }
39
- static toWrappedVerifiablePresentation(presentation) {
39
+ static toWrappedVerifiablePresentation(presentation, opts) {
40
40
  const original = presentation;
41
41
  const isJwtEncoded = CredentialMapper.isJwtEncoded(original);
42
42
  const isJwtDecoded = CredentialMapper.isJwtDecodedPresentation(original);
@@ -44,9 +44,9 @@ class CredentialMapper {
44
44
  const format = isJwtDecoded || isJwtEncoded ? 'jwt_vp' : 'ldp_vp';
45
45
  const decoded = CredentialMapper.decodeVerifiablePresentation(original);
46
46
  const vp = isJwtEncoded || isJwtDecoded
47
- ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded, false)
47
+ ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded, false, opts)
48
48
  : decoded;
49
- const vcs = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential);
49
+ const vcs = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential, opts);
50
50
  // todo: We probably want to add proofs as well
51
51
  return {
52
52
  type,
@@ -57,17 +57,17 @@ class CredentialMapper {
57
57
  vcs,
58
58
  };
59
59
  }
60
- static toWrappedVerifiableCredentials(verifiableCredentials) {
61
- return verifiableCredentials.map(CredentialMapper.toWrappedVerifiableCredential);
60
+ static toWrappedVerifiableCredentials(verifiableCredentials, opts) {
61
+ return verifiableCredentials.map((vc) => CredentialMapper.toWrappedVerifiableCredential(vc, opts));
62
62
  }
63
- static toWrappedVerifiableCredential(verifiableCredential) {
63
+ static toWrappedVerifiableCredential(verifiableCredential, opts) {
64
64
  const original = verifiableCredential;
65
65
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential);
66
66
  const isJwtEncoded = CredentialMapper.isJwtEncoded(original);
67
67
  const isJwtDecoded = CredentialMapper.isJwtDecodedCredential(original);
68
68
  const type = isJwtEncoded ? types_1.OriginalType.JWT_ENCODED : isJwtDecoded ? types_1.OriginalType.JWT_DECODED : types_1.OriginalType.JSONLD;
69
69
  const credential = isJwtDecoded || isJwtDecoded
70
- ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded)
70
+ ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded, opts)
71
71
  : decoded;
72
72
  const format = isJwtDecoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc';
73
73
  //todo: We probably want to add proofs as well
@@ -91,13 +91,13 @@ class CredentialMapper {
91
91
  static isJwtDecodedPresentation(original) {
92
92
  return original['vp'] !== undefined && original['iss'] !== undefined;
93
93
  }
94
- static jwtEncodedPresentationToUniformPresentation(jwt, makeCredentialsUniform = true) {
95
- return CredentialMapper.jwtDecodedPresentationToUniformPresentation((0, jwt_decode_1.default)(jwt), makeCredentialsUniform);
94
+ static jwtEncodedPresentationToUniformPresentation(jwt, makeCredentialsUniform = true, opts) {
95
+ return CredentialMapper.jwtDecodedPresentationToUniformPresentation((0, jwt_decode_1.default)(jwt), makeCredentialsUniform, opts);
96
96
  }
97
- static jwtDecodedPresentationToUniformPresentation(decoded, makeCredentialsUniform = true) {
97
+ static jwtDecodedPresentationToUniformPresentation(decoded, makeCredentialsUniform = true, opts) {
98
98
  const presentation = Object.assign({}, decoded.vp);
99
99
  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)
100
+ presentation.verifiableCredential = decoded.vp.verifiableCredential.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)
101
101
  }
102
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
103
  delete presentation.proof;
@@ -119,19 +119,19 @@ class CredentialMapper {
119
119
  }
120
120
  return presentation;
121
121
  }
122
- static toUniformCredential(verifiableCredential) {
122
+ static toUniformCredential(verifiableCredential, opts) {
123
123
  const original = verifiableCredential;
124
124
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential);
125
125
  const isJwtEncoded = CredentialMapper.isJwtEncoded(original);
126
126
  const isJwtDecoded = CredentialMapper.isJwtDecodedCredential(original);
127
127
  if (isJwtDecoded || isJwtEncoded) {
128
- return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded);
128
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded, opts);
129
129
  }
130
130
  else {
131
131
  return decoded;
132
132
  }
133
133
  }
134
- static toUniformPresentation(presentation) {
134
+ static toUniformPresentation(presentation, opts) {
135
135
  var _a;
136
136
  const original = presentation;
137
137
  const decoded = CredentialMapper.decodeVerifiablePresentation(original);
@@ -140,23 +140,27 @@ class CredentialMapper {
140
140
  const uniformPresentation = isJwtEncoded || isJwtDecoded
141
141
  ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded, false)
142
142
  : 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)
143
+ 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
144
  return uniformPresentation;
145
145
  }
146
- static jwtEncodedCredentialToUniformCredential(jwt) {
147
- return CredentialMapper.jwtDecodedCredentialToUniformCredential((0, jwt_decode_1.default)(jwt));
146
+ static jwtEncodedCredentialToUniformCredential(jwt, opts) {
147
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential((0, jwt_decode_1.default)(jwt), opts);
148
148
  }
149
- static jwtDecodedCredentialToUniformCredential(decoded) {
149
+ static jwtDecodedCredentialToUniformCredential(decoded, opts) {
150
150
  const credential = Object.assign({}, decoded.vc);
151
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
152
  delete credential.proof;
153
+ const maxSkewInMS = (opts === null || opts === void 0 ? void 0 : opts.maxTimeSkewInMS) !== undefined ? opts.maxTimeSkewInMS : 999;
153
154
  if (decoded.exp) {
154
155
  const expDate = credential.expirationDate;
155
156
  const jwtExp = parseInt(decoded.exp.toString());
156
157
  // fix seconds to millisecs for the date
157
158
  const expDateAsStr = jwtExp < 9999999999 ? new Date(jwtExp * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtExp).toISOString();
158
159
  if (expDate && expDate !== expDateAsStr) {
159
- throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`);
160
+ const diff = Math.abs(new Date(expDateAsStr).getTime() - new Date(expDate).getTime());
161
+ if (!maxSkewInMS || diff > maxSkewInMS) {
162
+ throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`);
163
+ }
160
164
  }
161
165
  credential.expirationDate = expDateAsStr;
162
166
  }
@@ -166,7 +170,10 @@ class CredentialMapper {
166
170
  // fix seconds to millisecs for the date
167
171
  const nbfDateAsStr = jwtNbf < 9999999999 ? new Date(jwtNbf * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtNbf).toISOString();
168
172
  if (issuanceDate && issuanceDate !== nbfDateAsStr) {
169
- throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`);
173
+ const diff = Math.abs(new Date(nbfDateAsStr).getTime() - new Date(issuanceDate).getTime());
174
+ if (!maxSkewInMS || diff > maxSkewInMS) {
175
+ throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`);
176
+ }
170
177
  }
171
178
  credential.issuanceDate = nbfDateAsStr;
172
179
  }
@@ -184,7 +191,9 @@ class CredentialMapper {
184
191
  }
185
192
  }
186
193
  }
187
- credential.issuer = decoded.iss;
194
+ else {
195
+ credential.issuer = decoded.iss;
196
+ }
188
197
  }
189
198
  if (decoded.sub) {
190
199
  const subjects = Array.isArray(credential.credentialSubject) ? credential.credentialSubject : [credential.credentialSubject];
@@ -207,6 +216,66 @@ class CredentialMapper {
207
216
  }
208
217
  return credential;
209
218
  }
219
+ static toExternalVerifiableCredential(verifiableCredential) {
220
+ let proof;
221
+ if (verifiableCredential.proof) {
222
+ if (!verifiableCredential.proof.type) {
223
+ throw new Error('Verifiable credential proof is missing a type');
224
+ }
225
+ if (!verifiableCredential.proof.created) {
226
+ throw new Error('Verifiable credential proof is missing a created date');
227
+ }
228
+ if (!verifiableCredential.proof.proofPurpose) {
229
+ throw new Error('Verifiable credential proof is missing a proof purpose');
230
+ }
231
+ if (!verifiableCredential.proof.verificationMethod) {
232
+ throw new Error('Verifiable credential proof is missing a verification method');
233
+ }
234
+ proof = Object.assign(Object.assign({}, verifiableCredential.proof), { type: verifiableCredential.proof.type, created: verifiableCredential.proof.created, proofPurpose: verifiableCredential.proof.proofPurpose, verificationMethod: verifiableCredential.proof.verificationMethod });
235
+ }
236
+ return Object.assign(Object.assign({}, verifiableCredential), { type: verifiableCredential.type
237
+ ? typeof verifiableCredential.type === 'string'
238
+ ? [verifiableCredential.type]
239
+ : verifiableCredential.type
240
+ : ['VerifiableCredential'], proof });
241
+ }
242
+ static storedCredentialToOriginalFormat(credential) {
243
+ const type = CredentialMapper.detectDocumentType(credential);
244
+ if (type == 0 /* DocumentFormat.JWT */) {
245
+ return CredentialMapper.toCompactJWT(credential);
246
+ }
247
+ return credential;
248
+ }
249
+ static storedPresentationToOriginalFormat(presentation) {
250
+ const type = CredentialMapper.detectDocumentType(presentation);
251
+ if (type == 0 /* DocumentFormat.JWT */) {
252
+ return CredentialMapper.toCompactJWT(presentation);
253
+ }
254
+ return presentation;
255
+ }
256
+ static toCompactJWT(persistedCredential) {
257
+ if (CredentialMapper.detectDocumentType(persistedCredential) !== 0 /* DocumentFormat.JWT */) {
258
+ throw Error('Cannot convert non JWT credential to JWT');
259
+ }
260
+ if (typeof persistedCredential === 'string') {
261
+ return persistedCredential;
262
+ }
263
+ return Array.isArray(persistedCredential.proof) ? persistedCredential.proof[0].jwt : persistedCredential.proof.jwt;
264
+ }
265
+ static detectDocumentType(document) {
266
+ if (typeof document === 'string') {
267
+ return 0 /* DocumentFormat.JWT */;
268
+ }
269
+ const proofs = document.proof;
270
+ const proof = Array.isArray(proofs) ? proofs[0] : proofs;
271
+ if (proof.jwt) {
272
+ return 0 /* DocumentFormat.JWT */;
273
+ }
274
+ else if (proof.type === 'EthereumEip712Signature2021') {
275
+ return 2 /* DocumentFormat.EIP712 */;
276
+ }
277
+ return 1 /* DocumentFormat.JSONLD */;
278
+ }
210
279
  }
211
280
  exports.CredentialMapper = CredentialMapper;
212
281
  //# 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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"}
@@ -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;
@@ -53,17 +53,17 @@ export interface IIssuer {
53
53
  export interface IHasProof {
54
54
  proof: IProof | IProof[];
55
55
  }
56
- export declare type IVerifiableCredential = ICredential & IHasProof;
56
+ export type IVerifiableCredential = ICredential & IHasProof;
57
57
  /**
58
58
  * Represents a Json Web Token in compact form.
59
59
  */
60
- export declare type CompactJWT = string;
60
+ export type CompactJWT = string;
61
61
  /**
62
62
  * Represents a signed Verifiable Credential (includes proof), in either JSON or compact JWT format.
63
63
  * See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model}
64
64
  * See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats}
65
65
  */
66
- export declare type W3CVerifiableCredential = IVerifiableCredential | CompactJWT;
66
+ export type W3CVerifiableCredential = IVerifiableCredential | CompactJWT;
67
67
  export interface IPresentation {
68
68
  id?: string;
69
69
  '@context': ICredentialContextType | ICredentialContextType[];
@@ -73,13 +73,13 @@ export interface IPresentation {
73
73
  holder?: string;
74
74
  [x: string]: any;
75
75
  }
76
- export declare type IVerifiablePresentation = IPresentation & IHasProof;
76
+ export type IVerifiablePresentation = IPresentation & IHasProof;
77
77
  /**
78
78
  * Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format.
79
79
  * See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model}
80
80
  * See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats}
81
81
  */
82
- export declare type W3CVerifiablePresentation = IVerifiablePresentation | CompactJWT;
82
+ export type W3CVerifiablePresentation = IVerifiablePresentation | CompactJWT;
83
83
  export interface WrappedVerifiableCredential {
84
84
  /**
85
85
  * Original VC that we've received
@@ -96,7 +96,7 @@ export interface WrappedVerifiableCredential {
96
96
  /**
97
97
  * The claim format, typically used during exchange transport protocols
98
98
  */
99
- format: ClaimFormat;
99
+ format: CredentialFormat;
100
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
102
  */
@@ -118,7 +118,7 @@ export interface WrappedVerifiablePresentation {
118
118
  /**
119
119
  * The claim format, typically used during exchange transport protocols
120
120
  */
121
- format: ClaimFormat;
121
+ format: PresentationFormat;
122
122
  /**
123
123
  * Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding
124
124
  */
@@ -158,8 +158,15 @@ export interface JwtDecodedVerifiablePresentation {
158
158
  jti: string;
159
159
  [x: string]: any;
160
160
  }
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;
161
+ export type CredentialFormat = 'jwt' | 'ldp' | 'jwt_vc' | 'ldp_vc' | string;
162
+ export type PresentationFormat = 'jwt' | 'ldp' | 'jwt_vp' | 'ldp_vp' | string;
163
+ export type ClaimFormat = CredentialFormat | PresentationFormat;
164
+ export type OriginalVerifiableCredential = W3CVerifiableCredential | JwtDecodedVerifiableCredential;
165
+ export type OriginalVerifiablePresentation = W3CVerifiablePresentation | JwtDecodedVerifiablePresentation;
166
+ export type Original = OriginalVerifiablePresentation | OriginalVerifiableCredential;
167
+ export declare const enum DocumentFormat {
168
+ JWT = 0,
169
+ JSONLD = 1,
170
+ EIP712 = 2
171
+ }
165
172
  //# 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":";;;AAgKA,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.25+8c8420a",
4
+ "version": "0.8.1-unstable.263+0ccab93",
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": "8c8420a269feeb27374aa810986b4400d2a6c6d6"
41
+ "gitHead": "0ccab93d1692d0e82262f7778c22aeae8e8683e8"
41
42
  }
@@ -1,7 +1,8 @@
1
1
  import {
2
- ClaimFormat,
2
+ DocumentFormat,
3
3
  ICredential,
4
4
  IPresentation,
5
+ IProof,
5
6
  IVerifiableCredential,
6
7
  IVerifiablePresentation,
7
8
  JwtDecodedVerifiableCredential,
@@ -9,6 +10,9 @@ import {
9
10
  OriginalType,
10
11
  OriginalVerifiableCredential,
11
12
  OriginalVerifiablePresentation,
13
+ PresentationFormat,
14
+ W3CVerifiableCredential,
15
+ W3CVerifiablePresentation,
12
16
  WrappedVerifiableCredential,
13
17
  WrappedVerifiablePresentation,
14
18
  } from '../types'
@@ -40,19 +44,22 @@ export class CredentialMapper {
40
44
  }
41
45
  }
42
46
 
43
- static toWrappedVerifiablePresentation(presentation: OriginalVerifiablePresentation): WrappedVerifiablePresentation {
47
+ static toWrappedVerifiablePresentation(
48
+ presentation: OriginalVerifiablePresentation,
49
+ opts?: { maxTimeSkewInMS?: number }
50
+ ): WrappedVerifiablePresentation {
44
51
  const original = presentation
45
52
  const isJwtEncoded: boolean = CredentialMapper.isJwtEncoded(original)
46
53
  const isJwtDecoded: boolean = CredentialMapper.isJwtDecodedPresentation(original)
47
54
 
48
55
  const type = isJwtEncoded ? OriginalType.JWT_ENCODED : isJwtDecoded ? OriginalType.JWT_DECODED : OriginalType.JSONLD
49
- const format: ClaimFormat = isJwtDecoded || isJwtEncoded ? 'jwt_vp' : 'ldp_vp'
56
+ const format: PresentationFormat = isJwtDecoded || isJwtEncoded ? 'jwt_vp' : 'ldp_vp'
50
57
  const decoded = CredentialMapper.decodeVerifiablePresentation(original)
51
58
  const vp: IPresentation =
52
59
  isJwtEncoded || isJwtDecoded
53
- ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded as JwtDecodedVerifiablePresentation, false)
60
+ ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded as JwtDecodedVerifiablePresentation, false, opts)
54
61
  : (decoded as IPresentation)
55
- const vcs: WrappedVerifiableCredential[] = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential)
62
+ const vcs: WrappedVerifiableCredential[] = CredentialMapper.toWrappedVerifiableCredentials(vp.verifiableCredential, opts)
56
63
 
57
64
  // todo: We probably want to add proofs as well
58
65
  return {
@@ -68,11 +75,17 @@ export class CredentialMapper {
68
75
  }
69
76
  }
70
77
 
71
- static toWrappedVerifiableCredentials(verifiableCredentials: OriginalVerifiableCredential[]): WrappedVerifiableCredential[] {
72
- return verifiableCredentials.map(CredentialMapper.toWrappedVerifiableCredential)
78
+ static toWrappedVerifiableCredentials(
79
+ verifiableCredentials: OriginalVerifiableCredential[],
80
+ opts?: { maxTimeSkewInMS?: number }
81
+ ): WrappedVerifiableCredential[] {
82
+ return verifiableCredentials.map((vc) => CredentialMapper.toWrappedVerifiableCredential(vc, opts))
73
83
  }
74
84
 
75
- static toWrappedVerifiableCredential(verifiableCredential: OriginalVerifiableCredential): WrappedVerifiableCredential {
85
+ static toWrappedVerifiableCredential(
86
+ verifiableCredential: OriginalVerifiableCredential,
87
+ opts?: { maxTimeSkewInMS?: number }
88
+ ): WrappedVerifiableCredential {
76
89
  const original = verifiableCredential
77
90
 
78
91
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential)
@@ -83,7 +96,7 @@ export class CredentialMapper {
83
96
 
84
97
  const credential =
85
98
  isJwtDecoded || isJwtDecoded
86
- ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential)
99
+ ? CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential, opts)
87
100
  : (decoded as ICredential)
88
101
  const format = isJwtDecoded || isJwtDecoded ? 'jwt_vc' : 'ldp_vc'
89
102
  //todo: We probably want to add proofs as well
@@ -112,19 +125,26 @@ export class CredentialMapper {
112
125
  return (<JwtDecodedVerifiablePresentation>original)['vp'] !== undefined && (<JwtDecodedVerifiablePresentation>original)['iss'] !== undefined
113
126
  }
114
127
 
115
- static jwtEncodedPresentationToUniformPresentation(jwt: string, makeCredentialsUniform: boolean = true): IPresentation {
116
- return CredentialMapper.jwtDecodedPresentationToUniformPresentation(jwt_decode(jwt), makeCredentialsUniform)
128
+ static jwtEncodedPresentationToUniformPresentation(
129
+ jwt: string,
130
+ makeCredentialsUniform: boolean = true,
131
+ opts?: { maxTimeSkewInMS?: number }
132
+ ): IPresentation {
133
+ return CredentialMapper.jwtDecodedPresentationToUniformPresentation(jwt_decode(jwt), makeCredentialsUniform, opts)
117
134
  }
118
135
 
119
136
  static jwtDecodedPresentationToUniformPresentation(
120
137
  decoded: JwtDecodedVerifiablePresentation,
121
- makeCredentialsUniform: boolean = true
138
+ makeCredentialsUniform: boolean = true,
139
+ opts?: { maxTimeSkewInMS?: number }
122
140
  ): IPresentation {
123
141
  const presentation: IPresentation = {
124
142
  ...(decoded.vp as IPresentation),
125
143
  }
126
144
  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)
145
+ presentation.verifiableCredential = decoded.vp.verifiableCredential.map((vc) =>
146
+ CredentialMapper.toUniformCredential(vc, opts)
147
+ ) as IVerifiableCredential[] // We cast it because we IPresentation needs a VC. The internal Credential doesn't have the required Proof anymore (that is intended)
128
148
  }
129
149
  // Since this is a presentation, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
130
150
  delete presentation.proof
@@ -148,7 +168,7 @@ export class CredentialMapper {
148
168
  return presentation
149
169
  }
150
170
 
151
- static toUniformCredential(verifiableCredential: OriginalVerifiableCredential): ICredential {
171
+ static toUniformCredential(verifiableCredential: OriginalVerifiableCredential, opts?: { maxTimeSkewInMS?: number }): ICredential {
152
172
  const original = verifiableCredential
153
173
  const decoded = CredentialMapper.decodeVerifiableCredential(verifiableCredential)
154
174
 
@@ -156,13 +176,13 @@ export class CredentialMapper {
156
176
  const isJwtDecoded: boolean = CredentialMapper.isJwtDecodedCredential(original)
157
177
 
158
178
  if (isJwtDecoded || isJwtEncoded) {
159
- return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential)
179
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential(decoded as JwtDecodedVerifiableCredential, opts)
160
180
  } else {
161
181
  return decoded as ICredential
162
182
  }
163
183
  }
164
184
 
165
- static toUniformPresentation(presentation: OriginalVerifiablePresentation): IPresentation {
185
+ static toUniformPresentation(presentation: OriginalVerifiablePresentation, opts?: { maxTimeSkewInMS?: number }): IPresentation {
166
186
  const original = presentation
167
187
  const decoded = CredentialMapper.decodeVerifiablePresentation(original)
168
188
  const isJwtEncoded: boolean = CredentialMapper.isJwtEncoded(original)
@@ -171,30 +191,35 @@ export class CredentialMapper {
171
191
  isJwtEncoded || isJwtDecoded
172
192
  ? CredentialMapper.jwtDecodedPresentationToUniformPresentation(decoded as JwtDecodedVerifiablePresentation, false)
173
193
  : (decoded as IPresentation)
174
- uniformPresentation.verifiableCredential = uniformPresentation.verifiableCredential?.map(
175
- CredentialMapper.toUniformCredential
194
+ uniformPresentation.verifiableCredential = uniformPresentation.verifiableCredential?.map((vc) =>
195
+ CredentialMapper.toUniformCredential(vc, opts)
176
196
  ) 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
197
  return uniformPresentation
178
198
  }
179
199
 
180
- static jwtEncodedCredentialToUniformCredential(jwt: string): ICredential {
181
- return CredentialMapper.jwtDecodedCredentialToUniformCredential(jwt_decode(jwt))
200
+ static jwtEncodedCredentialToUniformCredential(jwt: string, opts?: { maxTimeSkewInMS?: number }): ICredential {
201
+ return CredentialMapper.jwtDecodedCredentialToUniformCredential(jwt_decode(jwt), opts)
182
202
  }
183
203
 
184
- static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential): ICredential {
204
+ static jwtDecodedCredentialToUniformCredential(decoded: JwtDecodedVerifiableCredential, opts?: { maxTimeSkewInMS?: number }): ICredential {
185
205
  const credential: ICredential = {
186
206
  ...(decoded.vc as ICredential),
187
207
  }
188
208
  // Since this is a credential, we delete any proof just to be sure (should not occur on JWT, but better safe than sorry)
189
209
  delete credential.proof
190
210
 
211
+ const maxSkewInMS = opts?.maxTimeSkewInMS !== undefined ? opts.maxTimeSkewInMS : 999
212
+
191
213
  if (decoded.exp) {
192
214
  const expDate = credential.expirationDate
193
215
  const jwtExp = parseInt(decoded.exp.toString())
194
216
  // fix seconds to millisecs for the date
195
217
  const expDateAsStr = jwtExp < 9999999999 ? new Date(jwtExp * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtExp).toISOString()
196
218
  if (expDate && expDate !== expDateAsStr) {
197
- throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`)
219
+ const diff = Math.abs(new Date(expDateAsStr).getTime() - new Date(expDate).getTime())
220
+ if (!maxSkewInMS || diff > maxSkewInMS) {
221
+ throw new Error(`Inconsistent expiration dates between JWT claim (${expDateAsStr}) and VC value (${expDate})`)
222
+ }
198
223
  }
199
224
  credential.expirationDate = expDateAsStr
200
225
  }
@@ -205,7 +230,10 @@ export class CredentialMapper {
205
230
  // fix seconds to millisecs for the date
206
231
  const nbfDateAsStr = jwtNbf < 9999999999 ? new Date(jwtNbf * 1000).toISOString().replace(/\.000Z/, 'Z') : new Date(jwtNbf).toISOString()
207
232
  if (issuanceDate && issuanceDate !== nbfDateAsStr) {
208
- throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`)
233
+ const diff = Math.abs(new Date(nbfDateAsStr).getTime() - new Date(issuanceDate).getTime())
234
+ if (!maxSkewInMS || diff > maxSkewInMS) {
235
+ throw new Error(`Inconsistent issuance dates between JWT claim (${nbfDateAsStr}) and VC value (${issuanceDate})`)
236
+ }
209
237
  }
210
238
  credential.issuanceDate = nbfDateAsStr
211
239
  }
@@ -222,8 +250,9 @@ export class CredentialMapper {
222
250
  throw new Error(`Inconsistent issuers between JWT claim (${decoded.iss}) and VC value (${issuer.id})`)
223
251
  }
224
252
  }
253
+ } else {
254
+ credential.issuer = decoded.iss
225
255
  }
226
- credential.issuer = decoded.iss
227
256
  }
228
257
 
229
258
  if (decoded.sub) {
@@ -245,6 +274,86 @@ export class CredentialMapper {
245
274
  }
246
275
  credential.id = decoded.jti
247
276
  }
277
+
248
278
  return credential
249
279
  }
280
+
281
+ static toExternalVerifiableCredential(verifiableCredential: any): IVerifiableCredential {
282
+ let proof
283
+ if (verifiableCredential.proof) {
284
+ if (!verifiableCredential.proof.type) {
285
+ throw new Error('Verifiable credential proof is missing a type')
286
+ }
287
+
288
+ if (!verifiableCredential.proof.created) {
289
+ throw new Error('Verifiable credential proof is missing a created date')
290
+ }
291
+
292
+ if (!verifiableCredential.proof.proofPurpose) {
293
+ throw new Error('Verifiable credential proof is missing a proof purpose')
294
+ }
295
+
296
+ if (!verifiableCredential.proof.verificationMethod) {
297
+ throw new Error('Verifiable credential proof is missing a verification method')
298
+ }
299
+ proof = {
300
+ ...verifiableCredential.proof,
301
+ type: verifiableCredential.proof.type,
302
+ created: verifiableCredential.proof.created,
303
+ proofPurpose: verifiableCredential.proof.proofPurpose,
304
+ verificationMethod: verifiableCredential.proof.verificationMethod,
305
+ }
306
+ }
307
+
308
+ return {
309
+ ...verifiableCredential,
310
+ type: verifiableCredential.type
311
+ ? typeof verifiableCredential.type === 'string'
312
+ ? [verifiableCredential.type]
313
+ : verifiableCredential.type
314
+ : ['VerifiableCredential'],
315
+ proof,
316
+ }
317
+ }
318
+
319
+ static storedCredentialToOriginalFormat(credential: W3CVerifiableCredential): W3CVerifiableCredential {
320
+ const type: DocumentFormat = CredentialMapper.detectDocumentType(credential)
321
+ if (type == DocumentFormat.JWT) {
322
+ return CredentialMapper.toCompactJWT(credential)
323
+ }
324
+ return credential
325
+ }
326
+
327
+ static storedPresentationToOriginalFormat(presentation: W3CVerifiablePresentation): W3CVerifiablePresentation {
328
+ const type: DocumentFormat = CredentialMapper.detectDocumentType(presentation)
329
+ if (type == DocumentFormat.JWT) {
330
+ return CredentialMapper.toCompactJWT(presentation)
331
+ }
332
+ return presentation
333
+ }
334
+
335
+ static toCompactJWT(persistedCredential: W3CVerifiableCredential | W3CVerifiablePresentation): string {
336
+ if (CredentialMapper.detectDocumentType(persistedCredential) !== DocumentFormat.JWT) {
337
+ throw Error('Cannot convert non JWT credential to JWT')
338
+ }
339
+ if (typeof persistedCredential === 'string') {
340
+ return persistedCredential
341
+ }
342
+ return Array.isArray(persistedCredential.proof) ? persistedCredential.proof[0].jwt : persistedCredential.proof.jwt
343
+ }
344
+
345
+ static detectDocumentType(document: W3CVerifiableCredential | W3CVerifiablePresentation): DocumentFormat {
346
+ if (typeof document === 'string') {
347
+ return DocumentFormat.JWT
348
+ }
349
+ const proofs = (<IVerifiableCredential>document).proof
350
+ const proof: IProof = Array.isArray(proofs) ? proofs[0] : proofs
351
+
352
+ if (proof.jwt) {
353
+ return DocumentFormat.JWT
354
+ } else if (proof.type === 'EthereumEip712Signature2021') {
355
+ return DocumentFormat.EIP712
356
+ }
357
+ return DocumentFormat.JSONLD
358
+ }
250
359
  }
package/src/types/vc.ts CHANGED
@@ -124,7 +124,7 @@ export interface WrappedVerifiableCredential {
124
124
  /**
125
125
  * The claim format, typically used during exchange transport protocols
126
126
  */
127
- format: ClaimFormat
127
+ format: CredentialFormat
128
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
130
  */
@@ -147,7 +147,7 @@ export interface WrappedVerifiablePresentation {
147
147
  /**
148
148
  * The claim format, typically used during exchange transport protocols
149
149
  */
150
- format: ClaimFormat
150
+ format: PresentationFormat
151
151
  /**
152
152
  * Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding
153
153
  */
@@ -194,8 +194,16 @@ export interface JwtDecodedVerifiablePresentation {
194
194
  [x: string]: any
195
195
  }
196
196
 
197
- export type ClaimFormat = 'jwt' | 'jwt_vc' | 'jwt_vp' | 'ldp' | 'ldp_vc' | 'ldp_vp' | string
197
+ export type CredentialFormat = 'jwt' | 'ldp' | 'jwt_vc' | 'ldp_vc' | string
198
+ export type PresentationFormat = 'jwt' | 'ldp' | 'jwt_vp' | 'ldp_vp' | string
199
+ export type ClaimFormat = CredentialFormat | PresentationFormat
198
200
 
199
201
  export type OriginalVerifiableCredential = W3CVerifiableCredential | JwtDecodedVerifiableCredential
200
202
  export type OriginalVerifiablePresentation = W3CVerifiablePresentation | JwtDecodedVerifiablePresentation
201
203
  export type Original = OriginalVerifiablePresentation | OriginalVerifiableCredential
204
+
205
+ export const enum DocumentFormat {
206
+ JWT,
207
+ JSONLD,
208
+ EIP712,
209
+ }