@sphereon/oid4vci-client 0.8.2-next.6 → 0.8.2-unstable.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -72,12 +72,10 @@ console.log(client.getAccessTokenEndpoint()); // https://auth.research.identipro
72
72
 
73
73
  The OID4VCI Server metadata contains information about token endpoints, credential endpoints, as well as additional
74
74
  information about supported Credentials, and their cryptographic suites and formats.
75
- The code above already retrieved the metadata, so it will not be fetched again. If you however not used
75
+ The code above already retrieved the metadata, so it will not be fetched again, and this method places the data in another variable. If you however have not used
76
76
  the `retrieveServerMetadata` option, you can use this method to fetch it from the Issuer:
77
77
 
78
78
  ```typescript
79
- import { OpenID4VCIClient } from '@sphereon/oid4vci-client';
80
-
81
79
  const metadata = await client.retrieveServerMetadata();
82
80
  ```
83
81
 
@@ -111,6 +109,9 @@ the [Proof of Posession](#proof-of-possession) chapter for more information.
111
109
  The Proof of Possession using a signature callback function. The example uses the `jose` library.
112
110
 
113
111
  ```typescript
112
+ import * as jose from 'jose';
113
+ import { DIDDocument } from 'did-resolver';
114
+
114
115
  const { privateKey, publicKey } = await jose.generateKeyPair('ES256');
115
116
 
116
117
  // Must be JWS
@@ -121,10 +122,10 @@ async function signCallback(args: Jwt, kid: string): Promise<string> {
121
122
  .setIssuer(kid)
122
123
  .setAudience(args.payload.aud)
123
124
  .setExpirationTime('2h')
124
- .sign(keypair.privateKey);
125
+ .sign(privateKey);
125
126
  }
126
127
 
127
- const callbacks: ProofOfPossessionCallbacks = {
128
+ const callbacks: ProofOfPossessionCallbacks<DIDDocument> = {
128
129
  signCallback,
129
130
  };
130
131
  ```
@@ -133,14 +134,14 @@ Now it is time to get the actual credential
133
134
 
134
135
  ```typescript
135
136
  const credentialResponse = await client.acquireCredentials({
136
- credentialType: 'OpenBadgeCredential',
137
+ credentialTypes: 'OpenBadgeCredential',
137
138
  proofCallbacks: callbacks,
138
- format: 'jwt_vc',
139
+ format: 'jwt_vc_json',
139
140
  alg: Alg.ES256K,
140
141
  kid: 'did:example:ebfeb1f712ebc6f1c276e12ec21#keys-1',
141
142
  });
142
143
  console.log(credentialResponse.credential);
143
- // JWT format. (LDP/JSON-LD is also supported by the client)
144
+ // JWT format. (LDP / JSON-LD ('ldp_vc' / 'jwt_vc_json-ld') is also supported by the client)
144
145
  // eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL2V4YW1wbGVzL3YxIl0sImlkIjoiaHR0cDovL2V4YW1wbGUuZWR1L2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVW5pdmVyc2l0eURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly9leGFtcGxlLmVkdS9pc3N1ZXJzLzU2NTA0OSIsImlzc3VhbmNlRGF0ZSI6IjIwMTAtMDEtMDFUMDA6MDA6MDBaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6ZXhhbXBsZTplYmZlYjFmNzEyZWJjNmYxYzI3NmUxMmVjMjEiLCJkZWdyZWUiOnsidHlwZSI6IkJhY2hlbG9yRGVncmVlIiwibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMifX19LCJpc3MiOiJodHRwczovL2V4YW1wbGUuZWR1L2lzc3VlcnMvNTY1MDQ5IiwibmJmIjoxMjYyMzA0MDAwLCJqdGkiOiJodHRwOi8vZXhhbXBsZS5lZHUvY3JlZGVudGlhbHMvMzczMiIsInN1YiI6ImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJ9.z5vgMTK1nfizNCg5N-niCOL3WUIAL7nXy-nGhDZYO_-PNGeE-0djCpWAMH8fD8eWSID5PfkPBYkx_dfLJnQ7NA
145
146
  ```
146
147
 
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorizationDetailsBuilder.d.ts","sourceRoot":"","sources":["../lib/AuthorizationDetailsBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAGlG,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAyC;;IAM9E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B;IAKnD,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,2BAA2B;IAKzE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,2BAA2B;IAS/D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,2BAA2B;IAU1D,cAAc,IAAI,6BAA6B;CAMhD"}
1
+ {"version":3,"file":"AuthorizationDetailsBuilder.d.ts","sourceRoot":"","sources":["../lib/AuthorizationDetailsBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAGxH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiD;;IAMtF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B;IAKnD,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,2BAA2B;IAKzE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,2BAA2B;IAS/D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,2BAA2B;IAU1D,cAAc,IAAI,6BAA6B;CAMhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialRequestClient.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EAEzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiC;IAExE,IAAI,qBAAqB,IAAI,qBAAqB,CAEjD;IAEM,qBAAqB,IAAI,MAAM;gBAInB,OAAO,EAAE,8BAA8B;IAI7C,4BAA4B,CAAC,MAAM,EAAE,IAAI,EAAE;QACtD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;KACrD,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAOlC,8BAA8B,CAAC,cAAc,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IA+BrH,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;QACpD,OAAO,EAAE,iBAAiB,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwCrC,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"CredentialRequestClient.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGlB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EAEzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiC;IAExE,IAAI,qBAAqB,IAAI,qBAAqB,CAEjD;IAEM,qBAAqB,IAAI,MAAM;gBAInB,OAAO,EAAE,8BAA8B;IAI7C,4BAA4B,CAAC,MAAM,EAAE,IAAI,EAAE;QACtD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;KACrD,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAOlC,8BAA8B,CAAC,cAAc,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAcrH,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;QACpD,OAAO,EAAE,iBAAiB,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA4DrC,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,aAAa;CAGtB"}
@@ -37,23 +37,7 @@ class CredentialRequestClient {
37
37
  }
38
38
  acquireCredentialsUsingRequest(uniformRequest) {
39
39
  return __awaiter(this, void 0, void 0, function* () {
40
- let request = uniformRequest;
41
- if (!this.isV11OrHigher()) {
42
- let format = uniformRequest.format;
43
- if (format === 'jwt_vc_json') {
44
- format = 'jwt_vc';
45
- }
46
- else if (format === 'jwt_vc_json-ld') {
47
- format = 'ldp_vc';
48
- }
49
- request = {
50
- format,
51
- proof: uniformRequest.proof,
52
- type: 'types' in uniformRequest
53
- ? uniformRequest.types.filter((t) => t !== 'VerifiableCredential')[0]
54
- : uniformRequest.credential_definition.types[0],
55
- };
56
- }
40
+ const request = (0, oid4vci_common_1.getCredentialRequestForVersion)(uniformRequest, this.version());
57
41
  const credentialEndpoint = this.credentialRequestOpts.credentialEndpoint;
58
42
  if (!(0, functions_1.isValidURL)(credentialEndpoint)) {
59
43
  debug(`Invalid credential endpoint: ${credentialEndpoint}`);
@@ -71,21 +55,10 @@ class CredentialRequestClient {
71
55
  return __awaiter(this, void 0, void 0, function* () {
72
56
  const { proofInput } = opts;
73
57
  const formatSelection = (_a = opts.format) !== null && _a !== void 0 ? _a : this.credentialRequestOpts.format;
74
- let format = formatSelection;
75
- if (opts.version < oid4vci_common_1.OpenId4VCIVersion.VER_1_0_11) {
76
- if (formatSelection === 'jwt_vc' || formatSelection === 'jwt') {
77
- format = 'jwt_vc_json';
78
- }
79
- else if (formatSelection === 'ldp_vc' || formatSelection === 'ldp') {
80
- format = 'jwt_vc_json-ld';
81
- }
82
- }
83
- if (!format) {
58
+ if (!formatSelection) {
84
59
  throw Error(`Format of credential to be issued is missing`);
85
60
  }
86
- else if (format !== 'jwt_vc_json-ld' && format !== 'jwt_vc_json' && format !== 'ldp_vc') {
87
- throw Error(`Invalid format of credential to be issued: ${format}`);
88
- }
61
+ const format = (0, oid4vci_common_1.getUniformFormat)(formatSelection);
89
62
  const typesSelection = (opts === null || opts === void 0 ? void 0 : opts.credentialTypes) && (typeof opts.credentialTypes === 'string' || opts.credentialTypes.length > 0)
90
63
  ? opts.credentialTypes
91
64
  : this.credentialRequestOpts.credentialTypes;
@@ -93,17 +66,45 @@ class CredentialRequestClient {
93
66
  if (types.length === 0) {
94
67
  throw Error(`Credential type(s) need to be provided`);
95
68
  }
69
+ // FIXME: this is mixing up the type (as id) from v8/v9 and the types (from the vc.type) from v11
96
70
  else if (!this.isV11OrHigher() && types.length !== 1) {
97
71
  throw Error('Only a single credential type is supported for V8/V9');
98
72
  }
99
73
  const proof = 'proof_type' in proofInput
100
74
  ? yield ProofOfPossessionBuilder_1.ProofOfPossessionBuilder.fromProof(proofInput, opts.version).build()
101
75
  : yield proofInput.build();
102
- return {
103
- types,
104
- format,
105
- proof,
106
- };
76
+ // TODO: we should move format specific logic
77
+ if (format === 'jwt_vc_json') {
78
+ return {
79
+ types,
80
+ format,
81
+ proof,
82
+ };
83
+ }
84
+ else if (format === 'jwt_vc_json-ld' || format === 'ldp_vc') {
85
+ return {
86
+ format,
87
+ proof,
88
+ credential_definition: {
89
+ types,
90
+ // FIXME: this was not included in the original code, but it is required
91
+ '@context': [],
92
+ },
93
+ };
94
+ }
95
+ else if (format === 'vc+sd-jwt') {
96
+ if (types.length > 1) {
97
+ throw Error(`Only a single credential type is supported for ${format}`);
98
+ }
99
+ return {
100
+ format,
101
+ proof,
102
+ credential_definition: {
103
+ vct: types[0],
104
+ },
105
+ };
106
+ }
107
+ throw new Error(`Unsupported format: ${format}`);
107
108
  });
108
109
  }
109
110
  version() {
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialRequestClient.js","sourceRoot":"","sources":["../lib/CredentialRequestClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CredentialRequestClient.js","sourceRoot":"","sources":["../lib/CredentialRequestClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialRequestClientBuilder.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EAExB,iCAAiC,EAEjC,gBAAgB,EAEhB,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,8BAA8B;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAM;IAC/B,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;WAER,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC;WAKvH,0BAA0B,CAAC,IAAI,EAAE;QAC7C,OAAO,EAAE,6BAA6B,CAAC;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,8BAA8B;WAmBpB,mBAAmB,CAAC,EAChC,eAAe,EACf,QAAQ,GACT,EAAE;QACD,eAAe,EAAE,iCAAiC,CAAC;QACnD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,8BAA8B;IAQ3B,kCAAkC,CAAC,QAAQ,EAAE,wBAAwB,GAAG,8BAA8B;IAKtG,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,8BAA8B;IAKlF,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,8BAA8B;IAKtF,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,8BAA8B;IAK9F,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,8BAA8B;IAK9D,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,8BAA8B;IAKpF,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,8BAA8B;IAKvE,KAAK,IAAI,uBAAuB;CAMxC"}
1
+ {"version":3,"file":"CredentialRequestClientBuilder.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EAExB,iCAAiC,EAEjC,gBAAgB,EAGhB,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,8BAA8B;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAM;IAC/B,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;WAER,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC;WAKvH,0BAA0B,CAAC,IAAI,EAAE;QAC7C,OAAO,EAAE,6BAA6B,CAAC;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,8BAA8B;WAmBpB,mBAAmB,CAAC,EAChC,eAAe,EACf,QAAQ,GACT,EAAE;QACD,eAAe,EAAE,iCAAiC,CAAC;QACnD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,8BAA8B;IAQ3B,kCAAkC,CAAC,QAAQ,EAAE,wBAAwB,GAAG,8BAA8B;IAKtG,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,8BAA8B;IAKlF,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,8BAA8B;IAKtF,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,8BAA8B;IAK9F,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,8BAA8B;IAK9D,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,8BAA8B;IAKpF,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,8BAA8B;IAKvE,KAAK,IAAI,uBAAuB;CAMxC"}
@@ -37,7 +37,7 @@ class CredentialRequestClientBuilder {
37
37
  }
38
38
  else {
39
39
  // todo: look whether this is correct
40
- builder.withCredentialType(request.credential_offer.credentials.flatMap((c) => (typeof c === 'string' ? c : c.types)));
40
+ builder.withCredentialType((0, oid4vci_common_1.getTypesFromOffer)(request.credential_offer));
41
41
  }
42
42
  return builder;
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialRequestClientBuilder.js","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CredentialRequestClientBuilder.js","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilder.ts"],"names":[],"mappings":"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"}
@@ -20,8 +20,9 @@ export declare class OpenID4VCIClient {
20
20
  private _alg;
21
21
  private _endpointMetadata;
22
22
  private _accessTokenResponse;
23
+ private _issuer;
23
24
  private constructor();
24
- static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, resolveOfferUri, }: {
25
+ static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, resolveOfferUri }: {
25
26
  uri: string;
26
27
  kid?: string;
27
28
  alg?: Alg | string;
@@ -29,6 +30,13 @@ export declare class OpenID4VCIClient {
29
30
  resolveOfferUri?: boolean;
30
31
  clientId?: string;
31
32
  }): Promise<OpenID4VCIClient>;
33
+ static fromIssuer({ issuer, kid, alg, retrieveServerMetadata, clientId }: {
34
+ issuer: string;
35
+ kid?: string;
36
+ alg?: Alg | string;
37
+ retrieveServerMetadata?: boolean;
38
+ clientId?: string;
39
+ }): Promise<OpenID4VCIClient>;
32
40
  retrieveServerMetadata(): Promise<EndpointMetadataResult>;
33
41
  createAuthorizationRequestUrl({ codeChallengeMethod, codeChallenge, authorizationDetails, redirectUri, scope }: AuthRequestOpts): string;
34
42
  acquirePushedAuthorizationRequestURI({ codeChallengeMethod, codeChallenge, authorizationDetails, redirectUri, scope, }: AuthRequestOpts): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenID4VCIClient.d.ts","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenID4VCIClient.d.ts","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"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"}
@@ -24,15 +24,25 @@ const ProofOfPossessionBuilder_1 = require("./ProofOfPossessionBuilder");
24
24
  const functions_1 = require("./functions");
25
25
  const debug = (0, debug_1.default)('sphereon:oid4vci');
26
26
  class OpenID4VCIClient {
27
- constructor(credentialOffer, kid, alg, clientId) {
27
+ constructor(credentialOffer, issuer, kid, alg, clientId) {
28
28
  this._credentialOffer = credentialOffer;
29
+ this._issuer = issuer;
29
30
  this._kid = kid;
30
31
  this._alg = alg;
31
32
  this._clientId = clientId;
32
33
  }
33
- static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, resolveOfferUri, }) {
34
+ static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, resolveOfferUri }) {
34
35
  return __awaiter(this, void 0, void 0, function* () {
35
- const client = new OpenID4VCIClient(yield CredentialOfferClient_1.CredentialOfferClient.fromURI(uri, { resolve: resolveOfferUri }), kid, alg, clientId);
36
+ const client = new OpenID4VCIClient(yield CredentialOfferClient_1.CredentialOfferClient.fromURI(uri, { resolve: resolveOfferUri }), undefined, kid, alg, clientId);
37
+ if (retrieveServerMetadata === undefined || retrieveServerMetadata) {
38
+ yield client.retrieveServerMetadata();
39
+ }
40
+ return client;
41
+ });
42
+ }
43
+ static fromIssuer({ issuer, kid, alg, retrieveServerMetadata, clientId }) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const client = new OpenID4VCIClient(undefined, issuer, kid, alg, clientId);
36
46
  if (retrieveServerMetadata === undefined || retrieveServerMetadata) {
37
47
  yield client.retrieveServerMetadata();
38
48
  }
@@ -43,7 +53,12 @@ class OpenID4VCIClient {
43
53
  return __awaiter(this, void 0, void 0, function* () {
44
54
  this.assertIssuerData();
45
55
  if (!this._endpointMetadata) {
46
- this._endpointMetadata = yield MetadataClient_1.MetadataClient.retrieveAllMetadataFromCredentialOffer(this.credentialOffer);
56
+ if (this._issuer) {
57
+ this._endpointMetadata = yield MetadataClient_1.MetadataClient.retrieveAllMetadata(this._issuer);
58
+ }
59
+ else {
60
+ this._endpointMetadata = yield MetadataClient_1.MetadataClient.retrieveAllMetadataFromCredentialOffer(this.credentialOffer);
61
+ }
47
62
  }
48
63
  return this.endpointMetadata;
49
64
  });
@@ -215,11 +230,9 @@ class OpenID4VCIClient {
215
230
  if (metadata.credentials_supported && Array.isArray(metadata.credentials_supported)) {
216
231
  let typeSupported = false;
217
232
  metadata.credentials_supported.forEach((supportedCredential) => {
218
- if (!supportedCredential.types || supportedCredential.types.length === 0) {
219
- throw Error('types is required in the credentials supported');
220
- }
221
- if (supportedCredential.types.sort().every((t, i) => types[i] === t) ||
222
- (types.length === 1 && (types[0] === supportedCredential.id || supportedCredential.types.includes(types[0])))) {
233
+ const subTypes = (0, IssuerMetadataUtils_1.getTypesFromCredentialSupported)(supportedCredential);
234
+ if (subTypes.sort().every((t, i) => types[i] === t) ||
235
+ (types.length === 1 && (types[0] === supportedCredential.id || subTypes.includes(types[0])))) {
223
236
  typeSupported = true;
224
237
  }
225
238
  });
@@ -275,7 +288,7 @@ class OpenID4VCIClient {
275
288
  issuerMetadata: this.endpointMetadata.credentialIssuerMetadata,
276
289
  version: this.version(),
277
290
  format: format,
278
- types: restrictToInitiationTypes ? this.getCredentialOfferTypes() : undefined,
291
+ types: restrictToInitiationTypes ? this.getCredentialOfferTypes() : undefined
279
292
  });
280
293
  }
281
294
  getCredentialOfferTypes() {
@@ -288,7 +301,18 @@ class OpenID4VCIClient {
288
301
  }
289
302
  else {
290
303
  return this.credentialOffer.credential_offer.credentials.map((c) => {
291
- return typeof c === 'string' ? [c] : c.types;
304
+ if (typeof c === 'string') {
305
+ return [c];
306
+ }
307
+ else if ('types' in c) {
308
+ return c.types;
309
+ }
310
+ else if ('vct' in c.credential_definition) {
311
+ return [c.credential_definition.vct];
312
+ }
313
+ else {
314
+ return c.credential_definition.types;
315
+ }
292
316
  });
293
317
  }
294
318
  }
@@ -296,6 +320,9 @@ class OpenID4VCIClient {
296
320
  return this.credentialOffer.supportedFlows;
297
321
  }
298
322
  get credentialOffer() {
323
+ if (!this._credentialOffer) {
324
+ throw new Error('no active credential offer available');
325
+ }
299
326
  return this._credentialOffer;
300
327
  }
301
328
  version() {
@@ -346,7 +373,7 @@ class OpenID4VCIClient {
346
373
  return this.endpointMetadata ? this.endpointMetadata.credential_endpoint : `${this.getIssuer()}/credential`;
347
374
  }
348
375
  assertIssuerData() {
349
- if (!this._credentialOffer) {
376
+ if (!this._credentialOffer && !this._issuer) {
350
377
  throw Error(`No issuance initiation or credential offer present`);
351
378
  }
352
379
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenID4VCIClient.js","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenID4VCIClient.js","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { AuthorizationDetailsJwtVcJson, OID4VCICredentialFormat } from '@sphereon/oid4vci-common';
1
+ import { AuthorizationDetails, AuthorizationDetailsJwtVcJson, OID4VCICredentialFormat } from '@sphereon/oid4vci-common';
2
2
 
3
3
  //todo: refactor this builder to be able to create ldp details as well
4
4
  export class AuthorizationDetailsBuilder {
5
- private readonly authorizationDetails: Partial<AuthorizationDetailsJwtVcJson>;
5
+ private readonly authorizationDetails: Partial<Exclude<AuthorizationDetails, string>>;
6
6
 
7
7
  constructor() {
8
8
  this.authorizationDetails = {};
@@ -1,6 +1,7 @@
1
1
  import {
2
- CredentialRequestV1_0_08,
3
2
  CredentialResponse,
3
+ getCredentialRequestForVersion,
4
+ getUniformFormat,
4
5
  OID4VCICredentialFormat,
5
6
  OpenId4VCIVersion,
6
7
  OpenIDResponse,
@@ -53,24 +54,7 @@ export class CredentialRequestClient {
53
54
  }
54
55
 
55
56
  public async acquireCredentialsUsingRequest(uniformRequest: UniformCredentialRequest): Promise<OpenIDResponse<CredentialResponse>> {
56
- let request: CredentialRequestV1_0_08 | UniformCredentialRequest = uniformRequest;
57
- if (!this.isV11OrHigher()) {
58
- let format: string = uniformRequest.format;
59
- if (format === 'jwt_vc_json') {
60
- format = 'jwt_vc';
61
- } else if (format === 'jwt_vc_json-ld') {
62
- format = 'ldp_vc';
63
- }
64
-
65
- request = {
66
- format,
67
- proof: uniformRequest.proof,
68
- type:
69
- 'types' in uniformRequest
70
- ? uniformRequest.types.filter((t) => t !== 'VerifiableCredential')[0]
71
- : uniformRequest.credential_definition.types[0],
72
- } as CredentialRequestV1_0_08;
73
- }
57
+ const request = getCredentialRequestForVersion(uniformRequest, this.version());
74
58
  const credentialEndpoint: string = this.credentialRequestOpts.credentialEndpoint;
75
59
  if (!isValidURL(credentialEndpoint)) {
76
60
  debug(`Invalid credential endpoint: ${credentialEndpoint}`);
@@ -92,20 +76,10 @@ export class CredentialRequestClient {
92
76
  const { proofInput } = opts;
93
77
  const formatSelection = opts.format ?? this.credentialRequestOpts.format;
94
78
 
95
- let format: OID4VCICredentialFormat = formatSelection as OID4VCICredentialFormat;
96
- if (opts.version < OpenId4VCIVersion.VER_1_0_11) {
97
- if (formatSelection === 'jwt_vc' || formatSelection === 'jwt') {
98
- format = 'jwt_vc_json';
99
- } else if (formatSelection === 'ldp_vc' || formatSelection === 'ldp') {
100
- format = 'jwt_vc_json-ld';
101
- }
102
- }
103
-
104
- if (!format) {
79
+ if (!formatSelection) {
105
80
  throw Error(`Format of credential to be issued is missing`);
106
- } else if (format !== 'jwt_vc_json-ld' && format !== 'jwt_vc_json' && format !== 'ldp_vc') {
107
- throw Error(`Invalid format of credential to be issued: ${format}`);
108
81
  }
82
+ const format = getUniformFormat(formatSelection);
109
83
  const typesSelection =
110
84
  opts?.credentialTypes && (typeof opts.credentialTypes === 'string' || opts.credentialTypes.length > 0)
111
85
  ? opts.credentialTypes
@@ -113,7 +87,9 @@ export class CredentialRequestClient {
113
87
  const types = Array.isArray(typesSelection) ? typesSelection : [typesSelection];
114
88
  if (types.length === 0) {
115
89
  throw Error(`Credential type(s) need to be provided`);
116
- } else if (!this.isV11OrHigher() && types.length !== 1) {
90
+ }
91
+ // FIXME: this is mixing up the type (as id) from v8/v9 and the types (from the vc.type) from v11
92
+ else if (!this.isV11OrHigher() && types.length !== 1) {
117
93
  throw Error('Only a single credential type is supported for V8/V9');
118
94
  }
119
95
 
@@ -121,16 +97,45 @@ export class CredentialRequestClient {
121
97
  'proof_type' in proofInput
122
98
  ? await ProofOfPossessionBuilder.fromProof(proofInput as ProofOfPossession, opts.version).build()
123
99
  : await proofInput.build();
124
- return {
125
- types,
126
- format,
127
- proof,
128
- } as UniformCredentialRequest;
100
+
101
+ // TODO: we should move format specific logic
102
+ if (format === 'jwt_vc_json') {
103
+ return {
104
+ types,
105
+ format,
106
+ proof,
107
+ };
108
+ } else if (format === 'jwt_vc_json-ld' || format === 'ldp_vc') {
109
+ return {
110
+ format,
111
+ proof,
112
+ credential_definition: {
113
+ types,
114
+ // FIXME: this was not included in the original code, but it is required
115
+ '@context': [],
116
+ },
117
+ };
118
+ } else if (format === 'vc+sd-jwt') {
119
+ if (types.length > 1) {
120
+ throw Error(`Only a single credential type is supported for ${format}`);
121
+ }
122
+
123
+ return {
124
+ format,
125
+ proof,
126
+ credential_definition: {
127
+ vct: types[0],
128
+ },
129
+ };
130
+ }
131
+
132
+ throw new Error(`Unsupported format: ${format}`);
129
133
  }
130
134
 
131
135
  private version(): OpenId4VCIVersion {
132
136
  return this.credentialRequestOpts?.version ?? OpenId4VCIVersion.VER_1_0_11;
133
137
  }
138
+
134
139
  private isV11OrHigher(): boolean {
135
140
  return this.version() >= OpenId4VCIVersion.VER_1_0_11;
136
141
  }
@@ -6,6 +6,7 @@ import {
6
6
  determineSpecVersionFromOffer,
7
7
  EndpointMetadata,
8
8
  getIssuerFromCredentialOfferPayload,
9
+ getTypesFromOffer,
9
10
  OID4VCICredentialFormat,
10
11
  OpenId4VCIVersion,
11
12
  UniformCredentialOfferRequest,
@@ -46,7 +47,7 @@ export class CredentialRequestClientBuilder {
46
47
  builder.withCredentialType((request.original_credential_offer as CredentialOfferPayloadV1_0_08).credential_type);
47
48
  } else {
48
49
  // todo: look whether this is correct
49
- builder.withCredentialType(request.credential_offer.credentials.flatMap((c) => (typeof c === 'string' ? c : c.types)));
50
+ builder.withCredentialType(getTypesFromOffer(request.credential_offer));
50
51
  }
51
52
 
52
53
  return builder;
@@ -15,7 +15,10 @@ import {
15
15
  PushedAuthorizationResponse,
16
16
  ResponseType,
17
17
  } from '@sphereon/oid4vci-common';
18
- import { getSupportedCredentials } from '@sphereon/oid4vci-common/dist/functions/IssuerMetadataUtils';
18
+ import {
19
+ getSupportedCredentials,
20
+ getTypesFromCredentialSupported
21
+ } from '@sphereon/oid4vci-common/dist/functions/IssuerMetadataUtils';
19
22
  import { CredentialSupportedTypeV1_0_08 } from '@sphereon/oid4vci-common/dist/types/v1_0_08.types';
20
23
  import { CredentialFormat } from '@sphereon/ssi-types';
21
24
  import Debug from 'debug';
@@ -46,28 +49,31 @@ interface AuthRequestOpts {
46
49
  }
47
50
 
48
51
  export class OpenID4VCIClient {
49
- private readonly _credentialOffer: CredentialOfferRequestWithBaseUrl;
52
+ private readonly _credentialOffer: CredentialOfferRequestWithBaseUrl | undefined;
50
53
  private _clientId?: string;
51
54
  private _kid: string | undefined;
52
55
  private _alg: Alg | string | undefined;
53
56
  private _endpointMetadata: EndpointMetadataResult | undefined;
54
57
  private _accessTokenResponse: AccessTokenResponse | undefined;
58
+ private _issuer: string | undefined;
55
59
 
56
- private constructor(credentialOffer: CredentialOfferRequestWithBaseUrl, kid?: string, alg?: Alg | string, clientId?: string) {
60
+ private constructor(credentialOffer?: CredentialOfferRequestWithBaseUrl, issuer?: string, kid?: string, alg?: Alg | string, clientId?: string) {
57
61
  this._credentialOffer = credentialOffer;
62
+ this._issuer = issuer;
58
63
  this._kid = kid;
59
64
  this._alg = alg;
60
65
  this._clientId = clientId;
61
66
  }
62
67
 
68
+
63
69
  public static async fromURI({
64
- uri,
65
- kid,
66
- alg,
67
- retrieveServerMetadata,
68
- clientId,
69
- resolveOfferUri,
70
- }: {
70
+ uri,
71
+ kid,
72
+ alg,
73
+ retrieveServerMetadata,
74
+ clientId,
75
+ resolveOfferUri
76
+ }: {
71
77
  uri: string;
72
78
  kid?: string;
73
79
  alg?: Alg | string;
@@ -75,7 +81,28 @@ export class OpenID4VCIClient {
75
81
  resolveOfferUri?: boolean;
76
82
  clientId?: string;
77
83
  }): Promise<OpenID4VCIClient> {
78
- const client = new OpenID4VCIClient(await CredentialOfferClient.fromURI(uri, { resolve: resolveOfferUri }), kid, alg, clientId);
84
+ const client = new OpenID4VCIClient(await CredentialOfferClient.fromURI(uri, { resolve: resolveOfferUri }), undefined, kid, alg, clientId);
85
+
86
+ if (retrieveServerMetadata === undefined || retrieveServerMetadata) {
87
+ await client.retrieveServerMetadata();
88
+ }
89
+ return client;
90
+ }
91
+
92
+ public static async fromIssuer({
93
+ issuer,
94
+ kid,
95
+ alg,
96
+ retrieveServerMetadata,
97
+ clientId
98
+ }: {
99
+ issuer: string;
100
+ kid?: string;
101
+ alg?: Alg | string;
102
+ retrieveServerMetadata?: boolean;
103
+ clientId?: string;
104
+ }): Promise<OpenID4VCIClient> {
105
+ const client = new OpenID4VCIClient(undefined, issuer, kid, alg, clientId);
79
106
 
80
107
  if (retrieveServerMetadata === undefined || retrieveServerMetadata) {
81
108
  await client.retrieveServerMetadata();
@@ -86,7 +113,11 @@ export class OpenID4VCIClient {
86
113
  public async retrieveServerMetadata(): Promise<EndpointMetadataResult> {
87
114
  this.assertIssuerData();
88
115
  if (!this._endpointMetadata) {
89
- this._endpointMetadata = await MetadataClient.retrieveAllMetadataFromCredentialOffer(this.credentialOffer);
116
+ if (this._issuer) {
117
+ this._endpointMetadata = await MetadataClient.retrieveAllMetadata(this._issuer);
118
+ } else {
119
+ this._endpointMetadata = await MetadataClient.retrieveAllMetadataFromCredentialOffer(this.credentialOffer);
120
+ }
90
121
  }
91
122
  return this.endpointMetadata;
92
123
  }
@@ -312,12 +343,10 @@ export class OpenID4VCIClient {
312
343
  let typeSupported = false;
313
344
 
314
345
  metadata.credentials_supported.forEach((supportedCredential) => {
315
- if (!supportedCredential.types || supportedCredential.types.length === 0) {
316
- throw Error('types is required in the credentials supported');
317
- }
346
+ const subTypes = getTypesFromCredentialSupported(supportedCredential);
318
347
  if (
319
- supportedCredential.types.sort().every((t, i) => types[i] === t) ||
320
- (types.length === 1 && (types[0] === supportedCredential.id || supportedCredential.types.includes(types[0])))
348
+ subTypes.sort().every((t, i) => types[i] === t) ||
349
+ (types.length === 1 && (types[0] === supportedCredential.id || subTypes.includes(types[0])))
321
350
  ) {
322
351
  typeSupported = true;
323
352
  }
@@ -378,13 +407,13 @@ export class OpenID4VCIClient {
378
407
  // Then match the object array on server metadata
379
408
  getCredentialsSupported(
380
409
  restrictToInitiationTypes: boolean,
381
- format?: (OID4VCICredentialFormat | string) | (OID4VCICredentialFormat | string)[],
410
+ format?: (OID4VCICredentialFormat | string) | (OID4VCICredentialFormat | string)[]
382
411
  ): CredentialSupported[] {
383
412
  return getSupportedCredentials({
384
413
  issuerMetadata: this.endpointMetadata.credentialIssuerMetadata,
385
414
  version: this.version(),
386
415
  format: format,
387
- types: restrictToInitiationTypes ? this.getCredentialOfferTypes() : undefined,
416
+ types: restrictToInitiationTypes ? this.getCredentialOfferTypes() : undefined
388
417
  });
389
418
  }
390
419
 
@@ -397,7 +426,15 @@ export class OpenID4VCIClient {
397
426
  return result;
398
427
  } else {
399
428
  return this.credentialOffer.credential_offer.credentials.map((c) => {
400
- return typeof c === 'string' ? [c] : c.types;
429
+ if (typeof c === 'string') {
430
+ return [c];
431
+ } else if ('types' in c) {
432
+ return c.types;
433
+ } else if ('vct' in c.credential_definition) {
434
+ return [c.credential_definition.vct];
435
+ } else {
436
+ return c.credential_definition.types;
437
+ }
401
438
  });
402
439
  }
403
440
  }
@@ -407,6 +444,9 @@ export class OpenID4VCIClient {
407
444
  }
408
445
 
409
446
  get credentialOffer(): CredentialOfferRequestWithBaseUrl {
447
+ if (!this._credentialOffer) {
448
+ throw new Error('no active credential offer available');
449
+ }
410
450
  return this._credentialOffer;
411
451
  }
412
452
 
@@ -467,7 +507,7 @@ export class OpenID4VCIClient {
467
507
  }
468
508
 
469
509
  private assertIssuerData(): void {
470
- if (!this._credentialOffer) {
510
+ if (!this._credentialOffer && !this._issuer) {
471
511
  throw Error(`No issuance initiation or credential offer present`);
472
512
  }
473
513
  }
@@ -3,6 +3,7 @@ import { KeyObject } from 'crypto';
3
3
  import {
4
4
  Alg,
5
5
  EndpointMetadata,
6
+ getCredentialRequestForVersion,
6
7
  getIssuerFromCredentialOfferPayload,
7
8
  Jwt,
8
9
  OpenId4VCIVersion,
@@ -149,9 +150,7 @@ describe('Credential Request Client ', () => {
149
150
  .withKid(kid)
150
151
  .withClientId('sphereon:wallet')
151
152
  .build();
152
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
153
- // @ts-ignore
154
- await expect(credReqClient.acquireCredentialsUsingRequest({ format: 'jwt_vc_json-ld', types: ['random'], proof })).rejects.toThrow(
153
+ await expect(credReqClient.acquireCredentialsUsingRequest({ format: 'jwt_vc_json', types: ['random'], proof })).rejects.toThrow(
155
154
  Error(URL_NOT_VALID),
156
155
  );
157
156
  });
@@ -194,10 +193,11 @@ describe('Credential Request Client with different issuers ', () => {
194
193
  jwt: getMockData('spruce')?.credential.request.proof.jwt as string,
195
194
  },
196
195
  credentialTypes: ['OpenBadgeCredential'],
197
- format: 'jwt_vc_json-ld',
196
+ format: 'jwt_vc',
198
197
  version: OpenId4VCIVersion.VER_1_0_08,
199
198
  });
200
- expect(credentialRequest).toEqual(getMockData('spruce')?.credential.request);
199
+ const draft8CredentialRequest = getCredentialRequestForVersion(credentialRequest, OpenId4VCIVersion.VER_1_0_08);
200
+ expect(draft8CredentialRequest).toEqual(getMockData('spruce')?.credential.request);
201
201
  });
202
202
 
203
203
  it('should create correct CredentialRequest for Walt', async () => {
@@ -264,7 +264,8 @@ describe('Credential Request Client with different issuers ', () => {
264
264
  format: 'ldp_vc',
265
265
  version: OpenId4VCIVersion.VER_1_0_08,
266
266
  });
267
- expect(credentialOffer).toEqual(getMockData('mattr')?.credential.request);
267
+ const credentialRequest = getCredentialRequestForVersion(credentialOffer, OpenId4VCIVersion.VER_1_0_08);
268
+ expect(credentialRequest).toEqual(getMockData('mattr')?.credential.request);
268
269
  });
269
270
 
270
271
  it('should create correct CredentialRequest for diwala', async () => {
@@ -286,6 +287,10 @@ describe('Credential Request Client with different issuers ', () => {
286
287
  format: 'ldp_vc',
287
288
  version: OpenId4VCIVersion.VER_1_0_08,
288
289
  });
289
- expect(credentialOffer).toEqual(getMockData('diwala')?.credential.request);
290
+
291
+ // createCredentialRequest returns uniform format in draft 11
292
+ const credentialRequest = getCredentialRequestForVersion(credentialOffer, OpenId4VCIVersion.VER_1_0_08);
293
+
294
+ expect(credentialRequest).toEqual(getMockData('diwala')?.credential.request);
290
295
  });
291
296
  });
@@ -1,10 +1,12 @@
1
- import { CodeChallengeMethod, WellKnownEndpoints } from '@sphereon/oid4vci-common';
1
+ import { CodeChallengeMethod, EndpointMetadataResult, Jwt, WellKnownEndpoints } from '@sphereon/oid4vci-common'
2
2
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
3
  // @ts-ignore
4
+ import { SignJWT } from 'jose'
4
5
  import nock from 'nock';
5
6
 
6
7
  import { OpenID4VCIClient } from '../OpenID4VCIClient';
7
8
 
9
+
8
10
  const MOCK_URL = 'https://server.example.com/';
9
11
 
10
12
  describe('OpenID4VCIClient should', () => {
@@ -95,25 +97,25 @@ describe('OpenID4VCIClient should', () => {
95
97
  format: 'ldp_vc',
96
98
  credential_definition: {
97
99
  '@context': ['https://www.w3.org/2018/credentials/v1', 'https://www.w3.org/2018/credentials/examples/v1'],
98
- types: ['VerifiableCredential', 'UniversityDegreeCredential'],
99
- },
100
+ types: ['VerifiableCredential', 'UniversityDegreeCredential']
101
+ }
100
102
  },
101
103
  {
102
104
  type: 'openid_credential',
103
105
  format: 'mso_mdoc',
104
- doctype: 'org.iso.18013.5.1.mDL',
105
- },
106
+ doctype: 'org.iso.18013.5.1.mDL'
107
+ }
106
108
  ],
107
- redirectUri: 'http://localhost:8881/cb',
108
- }),
109
+ redirectUri: 'http://localhost:8881/cb'
110
+ })
109
111
  ).toEqual(
110
- 'https://server.example.com/v1/auth/authorize?response_type=code&code_challenge_method=S256&code_challenge=mE2kPHmIprOqtkaYmESWj35yz-PB5vzdiSu0tAZ8sqs&authorization_details=%5B%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22ldp_vc%22%2C%22credential_definition%22%3A%7B%22%40context%22%3A%5B%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fv1%22%2C%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fexamples%2Fv1%22%5D%2C%22types%22%3A%5B%22VerifiableCredential%22%2C%22UniversityDegreeCredential%22%5D%7D%2C%22locations%22%3A%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%7D%2C%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22mso_mdoc%22%2C%22doctype%22%3A%22org%2Eiso%2E18013%2E5%2E1%2EmDL%22%2C%22locations%22%3A%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%7D%5D&redirect_uri=http%3A%2F%2Flocalhost%3A8881%2Fcb&scope=openid&client_id=test-client',
111
- );
112
- });
112
+ 'https://server.example.com/v1/auth/authorize?response_type=code&code_challenge_method=S256&code_challenge=mE2kPHmIprOqtkaYmESWj35yz-PB5vzdiSu0tAZ8sqs&authorization_details=%5B%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22ldp_vc%22%2C%22credential_definition%22%3A%7B%22%40context%22%3A%5B%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fv1%22%2C%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fexamples%2Fv1%22%5D%2C%22types%22%3A%5B%22VerifiableCredential%22%2C%22UniversityDegreeCredential%22%5D%7D%2C%22locations%22%3A%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%7D%2C%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22mso_mdoc%22%2C%22doctype%22%3A%22org%2Eiso%2E18013%2E5%2E1%2EmDL%22%2C%22locations%22%3A%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%7D%5D&redirect_uri=http%3A%2F%2Flocalhost%3A8881%2Fcb&scope=openid&client_id=test-client'
113
+ )
114
+ })
113
115
  it('create an authorization request url with authorization_details object property', async () => {
114
116
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
115
117
  // @ts-ignore
116
- client._endpointMetadata?.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
118
+ client._endpointMetadata?.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`
117
119
 
118
120
  expect(
119
121
  client.createAuthorizationRequestUrl({
@@ -124,19 +126,19 @@ describe('OpenID4VCIClient should', () => {
124
126
  format: 'ldp_vc',
125
127
  credential_definition: {
126
128
  '@context': ['https://www.w3.org/2018/credentials/v1', 'https://www.w3.org/2018/credentials/examples/v1'],
127
- types: ['VerifiableCredential', 'UniversityDegreeCredential'],
128
- },
129
+ types: ['VerifiableCredential', 'UniversityDegreeCredential']
130
+ }
129
131
  },
130
- redirectUri: 'http://localhost:8881/cb',
131
- }),
132
+ redirectUri: 'http://localhost:8881/cb'
133
+ })
132
134
  ).toEqual(
133
- 'https://server.example.com/v1/auth/authorize?response_type=code&code_challenge_method=S256&code_challenge=mE2kPHmIprOqtkaYmESWj35yz-PB5vzdiSu0tAZ8sqs&authorization_details=%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22ldp_vc%22%2C%22credential_definition%22%3A%7B%22%40context%22%3A%5B%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fv1%22%2C%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fexamples%2Fv1%22%5D%2C%22types%22%3A%5B%22VerifiableCredential%22%2C%22UniversityDegreeCredential%22%5D%7D%2C%22locations%22%3A%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%7D&redirect_uri=http%3A%2F%2Flocalhost%3A8881%2Fcb&scope=openid&client_id=test-client',
134
- );
135
- });
135
+ 'https://server.example.com/v1/auth/authorize?response_type=code&code_challenge_method=S256&code_challenge=mE2kPHmIprOqtkaYmESWj35yz-PB5vzdiSu0tAZ8sqs&authorization_details=%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22ldp_vc%22%2C%22credential_definition%22%3A%7B%22%40context%22%3A%5B%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fv1%22%2C%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fexamples%2Fv1%22%5D%2C%22types%22%3A%5B%22VerifiableCredential%22%2C%22UniversityDegreeCredential%22%5D%7D%2C%22locations%22%3A%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%7D&redirect_uri=http%3A%2F%2Flocalhost%3A8881%2Fcb&scope=openid&client_id=test-client'
136
+ )
137
+ })
136
138
  it('create an authorization request url with authorization_details and scope', async () => {
137
139
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
138
140
  // @ts-ignore
139
- client._endpointMetadata.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
141
+ client._endpointMetadata.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`
140
142
 
141
143
  expect(
142
144
  client.createAuthorizationRequestUrl({
@@ -148,14 +150,70 @@ describe('OpenID4VCIClient should', () => {
148
150
  locations: ['https://test.com'],
149
151
  credential_definition: {
150
152
  '@context': ['https://www.w3.org/2018/credentials/v1', 'https://www.w3.org/2018/credentials/examples/v1'],
151
- types: ['VerifiableCredential', 'UniversityDegreeCredential'],
152
- },
153
+ types: ['VerifiableCredential', 'UniversityDegreeCredential']
154
+ }
153
155
  },
154
156
  scope: 'openid',
155
- redirectUri: 'http://localhost:8881/cb',
156
- }),
157
+ redirectUri: 'http://localhost:8881/cb'
158
+ })
157
159
  ).toEqual(
158
- 'https://server.example.com/v1/auth/authorize?response_type=code&code_challenge_method=S256&code_challenge=mE2kPHmIprOqtkaYmESWj35yz-PB5vzdiSu0tAZ8sqs&authorization_details=%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22ldp_vc%22%2C%22locations%22%3A%5B%22https%3A%2F%2Ftest%2Ecom%22%2C%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%5D%2C%22credential_definition%22%3A%7B%22%40context%22%3A%5B%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fv1%22%2C%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fexamples%2Fv1%22%5D%2C%22types%22%3A%5B%22VerifiableCredential%22%2C%22UniversityDegreeCredential%22%5D%7D%7D&redirect_uri=http%3A%2F%2Flocalhost%3A8881%2Fcb&scope=openid&client_id=test-client',
159
- );
160
- });
161
- });
160
+ 'https://server.example.com/v1/auth/authorize?response_type=code&code_challenge_method=S256&code_challenge=mE2kPHmIprOqtkaYmESWj35yz-PB5vzdiSu0tAZ8sqs&authorization_details=%7B%22type%22%3A%22openid_credential%22%2C%22format%22%3A%22ldp_vc%22%2C%22locations%22%3A%5B%22https%3A%2F%2Ftest%2Ecom%22%2C%22https%3A%2F%2Fserver%2Eexample%2Ecom%22%5D%2C%22credential_definition%22%3A%7B%22%40context%22%3A%5B%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fv1%22%2C%22https%3A%2F%2Fwww%2Ew3%2Eorg%2F2018%2Fcredentials%2Fexamples%2Fv1%22%5D%2C%22types%22%3A%5B%22VerifiableCredential%22%2C%22UniversityDegreeCredential%22%5D%7D%7D&redirect_uri=http%3A%2F%2Flocalhost%3A8881%2Fcb&scope=openid&client_id=test-client'
161
+ )
162
+ })
163
+ })
164
+
165
+
166
+ // Research code below
167
+ const ESIGNET_ISSUER_URL = 'https://esignet.collab.mosip.net'
168
+ describe('OpenID4VCIClient with authorization_code flow should', () => {
169
+ let client: OpenID4VCIClient
170
+ beforeEach(async () => {
171
+
172
+ const origResponse = await fetch('https://esignet.collab.mosip.net/.well-known/openid-credential-issuer')
173
+ const responseText = await origResponse.text()
174
+ console.log(responseText)
175
+
176
+ client = await OpenID4VCIClient.fromIssuer({
177
+ issuer: ESIGNET_ISSUER_URL,
178
+ clientId: 'MUq1H5M4OBr9fxSC2fJrY4felRmxtDw4iRls2lBZQzI'
179
+ })
180
+ })
181
+
182
+ let metaData: EndpointMetadataResult
183
+ it('retrieve server metadata', async () => {
184
+ metaData = await client.retrieveServerMetadata()
185
+ expect(metaData.token_endpoint).toBeDefined()
186
+ expect(metaData.issuer).toBeDefined()
187
+ expect(metaData.credential_endpoint).toBeDefined()
188
+ expect(metaData.credentialIssuerMetadata).toBeDefined()
189
+ expect(metaData.credentialIssuerMetadata.credentials_supported).toBeDefined()
190
+ expect(metaData.credentialIssuerMetadata.credentials_supported).toHaveLength(1)
191
+ console.log(metaData.credentialIssuerMetadata)
192
+ })
193
+
194
+
195
+ async function proofOfPossessionCallbackFunction(args: Jwt, kid?: string): Promise<string> {
196
+ return await new SignJWT({ ...args.payload })
197
+ .setProtectedHeader({ ...args.header, kid: kid! })
198
+ .setIssuer(kid!)
199
+ .setIssuedAt()
200
+ .setExpirationTime('2h')
201
+ .sign(importedJwk)
202
+ }
203
+
204
+ it('get credential', async () => {
205
+
206
+ const credentialsSupported = metaData.credentialIssuerMetadata.credentials_supported
207
+ const credentials = await client.acquireCredentials({
208
+ credentialTypes: credentialsSupported[0],
209
+ format: 'ldp_vc',
210
+ proofCallbacks: {
211
+ signCallback: proofOfPossessionCallbackFunction
212
+ }
213
+ })
214
+
215
+ expect(credentials).toBeDefined()
216
+ expect(credentials.credential).toBeDefined()
217
+ })
218
+
219
+ })
@@ -1,4 +1,4 @@
1
- import { CredentialSupportedBrief, IssuerCredentialSubjectDisplay, IssuerMetadataV1_0_08 } from '@sphereon/oid4vci-common';
1
+ import { CredentialSupportedFormatV1_0_08, IssuerCredentialSubjectDisplay, IssuerMetadataV1_0_08 } from '@sphereon/oid4vci-common';
2
2
  import { ICredentialStatus, W3CVerifiableCredential } from '@sphereon/ssi-types';
3
3
 
4
4
  export function getMockData(issuerName: string): IssuerMockData | null {
@@ -42,7 +42,8 @@ export interface IssuerMockData {
42
42
  url: string;
43
43
  deeplink: string;
44
44
  request: {
45
- types: [string];
45
+ types?: [string];
46
+ type?: string;
46
47
  format: 'jwt_vc' | 'ldp_vc' | 'jwt_vc_json-ld' | string;
47
48
  proof: {
48
49
  proof_type: 'jwt' | string;
@@ -110,8 +111,8 @@ const mockData: VciMockDataStructure = {
110
111
  deeplink:
111
112
  'openid-initiate-issuance://?issuer=https%3A%2F%2Fngi%2Doidc4vci%2Dtest%2Espruceid%2Exyz&credential_type=OpenBadgeCredential&pre-authorized_code=eyJhbGciOiJFUzI1NiJ9.eyJjcmVkZW50aWFsX3R5cGUiOlsiT3BlbkJhZGdlQ3JlZGVudGlhbCJdLCJleHAiOiIyMDIzLTA0LTIwVDA5OjA0OjM2WiIsIm5vbmNlIjoibWFibmVpT0VSZVB3V3BuRFFweEt3UnRsVVRFRlhGUEwifQ.qOZRPN8sTv_knhp7WaWte2-aDULaPZX--2i9unF6QDQNUllqDhvxgIHMDCYHCV8O2_Gj-T2x1J84fDMajE3asg&user_pin_required=false',
112
113
  request: {
113
- types: ['OpenBadgeCredential'],
114
- format: 'jwt_vc_json-ld',
114
+ type: 'OpenBadgeCredential',
115
+ format: 'jwt_vc',
115
116
  proof: {
116
117
  proof_type: 'jwt',
117
118
  jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlV6STFOa3NpTENKMWMyVWlPaUp6YVdjaUxDSnJkSGtpT2lKRlF5SXNJbU55ZGlJNkluTmxZM0F5TlRack1TSXNJbmdpT2lKclpuVmpTa0V0VEhKck9VWjBPRmx5TFVkMlQzSmpia3N3YjNkc2RqUlhNblUwU3pJeFNHZHZTVlIzSWl3aWVTSTZJalozY0ZCUE1rOUNRVXBTU0ZFMVRXdEtXVlJaV0dsQlJFUXdOMU5OTlV0amVXcDNYMkUzVUUxWmVGa2lmUSMwIn0.eyJhdWQiOiJodHRwczovL25naS1vaWRjNHZjaS10ZXN0LnNwcnVjZWlkLnh5eiIsImlhdCI6MTY4MTkxMTA2MC45NDIsImV4cCI6MTY4MTkxMTcyMC45NDIsImlzcyI6InNwaGVyZW9uOnNzaS13YWxsZXQiLCJqdGkiOiJhNjA4MzMxZi02ZmE0LTQ0ZjAtYWNkZWY5NmFjMjdmNmQ3MCJ9.NwF3_41gwnlIdd_6Uk9CczeQHzIQt6UcvTT5Cxv72j9S1vNwiY9annA2kLsjsTiR5-WMBdUhJCO7wYCtZ15mxw',
@@ -514,7 +515,7 @@ const mockData: VciMockDataStructure = {
514
515
  types: ['PermanentResidentCard'],
515
516
  binding_methods_supported: ['did'],
516
517
  cryptographic_suites_supported: ['Ed25519Signature2018'],
517
- } as CredentialSupportedBrief,
518
+ } as CredentialSupportedFormatV1_0_08,
518
519
  },
519
520
  },
520
521
  AcademicAward: {
@@ -525,7 +526,7 @@ const mockData: VciMockDataStructure = {
525
526
  types: ['AcademicAward'],
526
527
  binding_methods_supported: ['did'],
527
528
  cryptographic_suites_supported: ['Ed25519Signature2018'],
528
- } as CredentialSupportedBrief,
529
+ } as CredentialSupportedFormatV1_0_08,
529
530
  },
530
531
  },
531
532
  LearnerProfile: {
@@ -536,7 +537,7 @@ const mockData: VciMockDataStructure = {
536
537
  types: ['LearnerProfile'],
537
538
  binding_methods_supported: ['did'],
538
539
  cryptographic_suites_supported: ['Ed25519Signature2018'],
539
- } as CredentialSupportedBrief,
540
+ } as CredentialSupportedFormatV1_0_08,
540
541
  },
541
542
  },
542
543
  OpenBadgeCredential: {
@@ -547,7 +548,7 @@ const mockData: VciMockDataStructure = {
547
548
  types: ['OpenBadgeCredential'],
548
549
  binding_methods_supported: ['did'],
549
550
  cryptographic_suites_supported: ['Ed25519Signature2018'],
550
- } as CredentialSupportedBrief,
551
+ } as CredentialSupportedFormatV1_0_08,
551
552
  },
552
553
  },
553
554
  },
@@ -573,8 +574,8 @@ const mockData: VciMockDataStructure = {
573
574
  'openid-initiate-issuance://?issuer=https://launchpad.mattrlabs.com&credential_type=OpenBadgeCredential&pre-authorized_code=g0UCOj6RAN5AwHU6gczm_GzB4_lH6GW39Z0Dl2DOOiO',
574
575
  url: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/credential',
575
576
  request: {
576
- types: ['OpenBadgeCredential'],
577
- format: 'jwt_vc_json-ld',
577
+ type: 'OpenBadgeCredential',
578
+ format: 'ldp_vc',
578
579
  proof: {
579
580
  proof_type: 'jwt',
580
581
  jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3AxM3N6QUFMVFN0cDV1OGtMcnl5YW5vYWtrVWtFUGZXazdvOHY3dms0RW1KI3o2TWtwMTNzekFBTFRTdHA1dThrTHJ5eWFub2Fra1VrRVBmV2s3bzh2N3ZrNEVtSiJ9.eyJhdWQiOiJodHRwczovL2xhdW5jaHBhZC5tYXR0cmxhYnMuY29tIiwiaWF0IjoxNjgxOTE0NDgyLjUxOSwiZXhwIjoxNjgxOTE1MTQyLjUxOSwiaXNzIjoic3BoZXJlb246c3NpLXdhbGxldCIsImp0aSI6ImI5NDY1ZGE5LTY4OGYtNDdjNi04MjUwNDA0ZGNiOWI5Y2E5In0.uQ8ewOfIjy_1p_Gk6PjeEWccBJnjOca1pwbTWiCAFMQX9wlIsfeUdGtXUoHjH5_PQtpwytodx7WU456_CT9iBQ',
@@ -687,8 +688,8 @@ const mockData: VciMockDataStructure = {
687
688
  'openid-initiate-issuance://?issuer=https://oidc4vc.diwala.io&amp;credential_type=OpenBadgeCredential&amp;pre-authorized_code=eyJhbGciOiJIUzI1NiJ9.eyJjcmVkZW50aWFsX3R5cGUiOiJPcGVuQmFkZ2VDcmVkZW50aWFsIiwiZXhwIjoxNjgxOTg0NDY3fQ.fEAHKz2nuWfiYHw406iNxr-81pWkNkbi31bWsYSf6Ng',
688
689
  url: 'https://oidc4vc.diwala.io/credential',
689
690
  request: {
690
- types: ['OpenBadgeCredential'],
691
- format: 'jwt_vc_json-ld',
691
+ type: 'OpenBadgeCredential',
692
+ format: 'ldp_vc',
692
693
  proof: {
693
694
  proof_type: 'jwt',
694
695
  jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3AxM3N6QUFMVFN0cDV1OGtMcnl5YW5vYWtrVWtFUGZXazdvOHY3dms0RW1KI3o2TWtwMTNzekFBTFRTdHA1dThrTHJ5eWFub2Fra1VrRVBmV2s3bzh2N3ZrNEVtSiJ9.eyJhdWQiOiJodHRwczovL29pZGM0dmMuZGl3YWxhLmlvIiwiaWF0IjoxNjgxOTE1MDk1LjIwMiwiZXhwIjoxNjgxOTE1NzU1LjIwMiwiaXNzIjoic3BoZXJlb246c3NpLXdhbGxldCIsImp0aSI6IjYxN2MwM2EzLTM3MTUtNGJlMy1hYjkxNzM4MTlmYzYxNTYzIn0.KA-cHjecaYp9FSaWHkz5cqtNyhBIVT_0I7cJnpHn03T4UWFvdhjhn8Hpe-BU247enFyWOWJ6v3NQZyZgle7xBA',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/oid4vci-client",
3
- "version": "0.8.2-next.6+094ebfc",
3
+ "version": "0.8.2-unstable.14+c920f6a",
4
4
  "description": "OpenID for Verifiable Credential Issuance (OpenID4VCI) client",
5
5
  "source": "lib/index.ts",
6
6
  "main": "dist/index.js",
@@ -15,7 +15,7 @@
15
15
  "build": "tsc"
16
16
  },
17
17
  "dependencies": {
18
- "@sphereon/oid4vci-common": "0.8.2-next.6+094ebfc",
18
+ "@sphereon/oid4vci-common": "0.8.2-unstable.14+c920f6a",
19
19
  "@sphereon/ssi-types": "0.17.2",
20
20
  "cross-fetch": "^3.1.8",
21
21
  "debug": "^4.3.4"
@@ -67,5 +67,5 @@
67
67
  "OIDC4VCI",
68
68
  "OID4VCI"
69
69
  ],
70
- "gitHead": "094ebfc61e1650e3c7bb32e4a22ec576d7049f18"
70
+ "gitHead": "c920f6a64935bdb950950945cee479d058477ae7"
71
71
  }