@sphereon/oid4vci-client 0.10.4-unstable.75 → 0.10.4-unstable.76

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.
@@ -7,7 +7,8 @@ export interface CredentialRequestOpts {
7
7
  deferredCredentialIntervalInMS?: number;
8
8
  credentialEndpoint: string;
9
9
  deferredCredentialEndpoint?: string;
10
- credentialType: string;
10
+ credentialTypes?: string[];
11
+ credentialIdentifier?: string;
11
12
  format?: CredentialFormat | OID4VCICredentialFormat;
12
13
  proof: ProofOfPossession;
13
14
  token: string;
@@ -27,7 +28,9 @@ export declare class CredentialRequestClient {
27
28
  constructor(builder: CredentialRequestClientBuilder);
28
29
  acquireCredentialsUsingProof<DIDDoc>(opts: {
29
30
  proofInput: ProofOfPossessionBuilder<DIDDoc> | ProofOfPossession;
30
- credentialType: string;
31
+ credentialIdentifier?: string;
32
+ credentialTypes?: string | string[];
33
+ context?: string[];
31
34
  format?: CredentialFormat | OID4VCICredentialFormat;
32
35
  }): Promise<OpenIDResponse<CredentialResponse>>;
33
36
  acquireCredentialsUsingRequest(uniformRequest: UniformCredentialRequest): Promise<OpenIDResponse<CredentialResponse>>;
@@ -36,7 +39,9 @@ export declare class CredentialRequestClient {
36
39
  }): Promise<OpenIDResponse<CredentialResponse>>;
37
40
  createCredentialRequest<DIDDoc>(opts: {
38
41
  proofInput: ProofOfPossessionBuilder<DIDDoc> | ProofOfPossession;
39
- credentialType: string;
42
+ credentialIdentifier?: string;
43
+ credentialTypes?: string | string[];
44
+ context?: string[];
40
45
  format?: CredentialFormat | OID4VCICredentialFormat;
41
46
  version: OpenId4VCIVersion;
42
47
  }): Promise<CredentialRequestV1_0_13>;
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialRequestClient.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,kBAAkB,EAIlB,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,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,wBAAsB,UAAU,CAAC,MAAM,EACrC,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAChE,IAAI,EAAE;IACJ,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,8BAYF;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiC;IACxE,OAAO,CAAC,WAAW,CAAS;IAE5B,IAAI,qBAAqB,IAAI,qBAAqB,CAEjD;IAEM,UAAU,IAAI,OAAO;IAIrB,qBAAqB,IAAI,MAAM;IAI/B,6BAA6B,IAAI,MAAM,GAAG,SAAS;gBAIvC,OAAO,EAAE,8BAA8B;IAI7C,4BAA4B,CAAC,MAAM,EAAE,IAAI,EAAE;QACtD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,cAAc,EAAE,MAAM,CAAC;QACvB,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;IAuBrH,yBAAyB,CACpC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,SAAS,CAAC,EACrF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAmBjC,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;QACpD,OAAO,EAAE,iBAAiB,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA0CrC,OAAO,CAAC,OAAO;CAGhB"}
1
+ {"version":3,"file":"CredentialRequestClient.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,kBAAkB,EAKlB,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,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,wBAAsB,UAAU,CAAC,MAAM,EACrC,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAChE,IAAI,EAAE;IACJ,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,8BAYF;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiC;IACxE,OAAO,CAAC,WAAW,CAAS;IAE5B,IAAI,qBAAqB,IAAI,qBAAqB,CAEjD;IAEM,UAAU,IAAI,OAAO;IAIrB,qBAAqB,IAAI,MAAM;IAI/B,6BAA6B,IAAI,MAAM,GAAG,SAAS;gBAIvC,OAAO,EAAE,8BAA8B;IAI7C,4BAA4B,CAAC,MAAM,EAAE,IAAI,EAAE;QACtD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;KACrD,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAclC,8BAA8B,CAAC,cAAc,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAuBrH,yBAAyB,CACpC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,SAAS,CAAC,EACrF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAmBjC,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;QACpD,OAAO,EAAE,iBAAiB,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAoErC,OAAO,CAAC,OAAO;CAGhB"}
@@ -52,8 +52,15 @@ class CredentialRequestClient {
52
52
  }
53
53
  acquireCredentialsUsingProof(opts) {
54
54
  return __awaiter(this, void 0, void 0, function* () {
55
- const { credentialType, proofInput, format } = opts;
56
- const request = yield this.createCredentialRequest({ proofInput, credentialType, format, version: this.version() });
55
+ const { credentialIdentifier, credentialTypes, proofInput, format, context } = opts;
56
+ const request = yield this.createCredentialRequest({
57
+ proofInput,
58
+ credentialIdentifier,
59
+ credentialTypes,
60
+ context,
61
+ format,
62
+ version: this.version(),
63
+ });
57
64
  return yield this.acquireCredentialsUsingRequest(request);
58
65
  });
59
66
  }
@@ -103,43 +110,64 @@ class CredentialRequestClient {
103
110
  });
104
111
  }
105
112
  createCredentialRequest(opts) {
106
- var _a, _b;
113
+ var _a;
107
114
  return __awaiter(this, void 0, void 0, function* () {
108
- const { proofInput } = opts;
115
+ const { proofInput, credentialIdentifier: credential_identifier } = opts;
116
+ const proof = yield buildProof(proofInput, opts);
117
+ if (credential_identifier) {
118
+ if (opts.format || opts.credentialTypes || opts.context) {
119
+ throw Error(`You cannot mix credential_identifier with format, credential types and/or context`);
120
+ }
121
+ return {
122
+ credential_identifier,
123
+ proof,
124
+ };
125
+ }
109
126
  const formatSelection = (_a = opts.format) !== null && _a !== void 0 ? _a : this.credentialRequestOpts.format;
110
127
  if (!formatSelection) {
111
128
  throw Error(`Format of credential to be issued is missing`);
112
129
  }
113
130
  const format = (0, oid4vci_common_1.getUniformFormat)(formatSelection);
114
- const typeSelection = (_b = opts.credentialType) !== null && _b !== void 0 ? _b : this.credentialRequestOpts.credentialType;
115
- if (!typeSelection) {
116
- throw Error(`Credential type needs to be provided`);
131
+ const typesSelection = (opts === null || opts === void 0 ? void 0 : opts.credentialTypes) && (typeof opts.credentialTypes === 'string' || opts.credentialTypes.length > 0)
132
+ ? opts.credentialTypes
133
+ : this.credentialRequestOpts.credentialTypes;
134
+ if (!typesSelection) {
135
+ throw Error(`Credential type(s) need to be provided`);
136
+ }
137
+ const types = Array.isArray(typesSelection) ? typesSelection : [typesSelection];
138
+ if (types.length === 0) {
139
+ throw Error(`Credential type(s) need to be provided`);
117
140
  }
118
- const proof = yield buildProof(proofInput, opts);
119
141
  // TODO: we should move format specific logic
120
142
  if (format === 'jwt_vc_json' || format === 'jwt_vc') {
121
143
  return {
122
- credential_identifier: typeSelection,
144
+ types,
123
145
  format,
124
146
  proof,
125
147
  };
126
148
  }
127
149
  else if (format === 'jwt_vc_json-ld' || format === 'ldp_vc') {
150
+ if (this.version() >= oid4vci_common_1.OpenId4VCIVersion.VER_1_0_12 && !opts.context) {
151
+ throw Error('No @context value present, but it is required');
152
+ }
128
153
  return {
129
154
  format,
130
155
  proof,
131
156
  // Ignored because v11 does not have the context value, but it is required in v12
132
157
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
133
158
  // @ts-ignore
134
- credential_identifier: typeSelection,
159
+ credential_definition: Object.assign({ types }, (opts.context && { '@context': opts.context })),
135
160
  };
136
161
  }
137
162
  else if (format === 'vc+sd-jwt') {
163
+ if (types.length > 1) {
164
+ throw Error(`Only a single credential type is supported for ${format}`);
165
+ }
138
166
  // fixme: this isn't up to the CredentialRequest that we see in the version v1_0_13
139
167
  return {
140
168
  format,
141
169
  proof,
142
- vct: typeSelection,
170
+ vct: types[0],
143
171
  };
144
172
  }
145
173
  throw new Error(`Unsupported format: ${format}`);
@@ -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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"}
@@ -6,15 +6,17 @@ export declare class CredentialRequestClientBuilder {
6
6
  deferredCredentialEndpoint?: string;
7
7
  deferredCredentialAwait: boolean;
8
8
  deferredCredentialIntervalInMS: number;
9
- credentialType?: string;
9
+ credentialIdentifier?: string;
10
+ credentialTypes?: string[];
10
11
  format?: CredentialFormat | OID4VCICredentialFormat;
11
12
  token?: string;
12
13
  version?: OpenId4VCIVersion;
13
- static fromCredentialIssuer({ credentialIssuer, metadata, version, credentialType, }: {
14
+ static fromCredentialIssuer({ credentialIssuer, metadata, version, credentialIdentifier, credentialTypes, }: {
14
15
  credentialIssuer: string;
15
16
  metadata?: EndpointMetadata;
16
17
  version?: OpenId4VCIVersion;
17
- credentialType: string;
18
+ credentialIdentifier?: string;
19
+ credentialTypes?: string | string[];
18
20
  }): CredentialRequestClientBuilder;
19
21
  static fromURI({ uri, metadata }: {
20
22
  uri: string;
@@ -36,7 +38,8 @@ export declare class CredentialRequestClientBuilder {
36
38
  withDeferredCredentialEndpointFromMetadata(metadata: CredentialIssuerMetadataV1_0_13): this;
37
39
  withDeferredCredentialEndpoint(deferredCredentialEndpoint: string): this;
38
40
  withDeferredCredentialAwait(deferredCredentialAwait: boolean, deferredCredentialIntervalInMS?: number): this;
39
- withCredentialType(credentialType: string): this;
41
+ withCredentialIdentifier(credentialIdentifier: string): this;
42
+ withCredentialType(credentialTypes: string | string[]): this;
40
43
  withFormat(format: CredentialFormat | OID4VCICredentialFormat): this;
41
44
  withToken(accessToken: string): this;
42
45
  withTokenFromResponse(response: AccessTokenResponse): this;
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialRequestClientBuilder.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAE/B,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,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,UAAS;IAChC,8BAA8B,SAAQ;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;WAEd,oBAAoB,CAAC,EACjC,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,cAAc,GACf,EAAE;QACD,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,8BAA8B;WAYd,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;WAqBpB,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,+BAA+B,GAAG,IAAI;IAKnF,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAKxD,0CAA0C,CAAC,QAAQ,EAAE,+BAA+B,GAAG,IAAI;IAK3F,8BAA8B,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI;IAKxE,2BAA2B,CAAC,uBAAuB,EAAE,OAAO,EAAE,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI;IAM5G,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAKhD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,IAAI;IAKpE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKpC,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAK1D,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK7C,KAAK,IAAI,uBAAuB;CAMxC"}
1
+ {"version":3,"file":"CredentialRequestClientBuilder.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAE/B,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,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,UAAS;IAChC,8BAA8B,SAAQ;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAM;IAChC,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;WAEd,oBAAoB,CAAC,EACjC,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,oBAAoB,EACpB,eAAe,GAChB,EAAE;QACD,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KACrC,GAAG,8BAA8B;WAiBd,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;WAqBpB,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,+BAA+B,GAAG,IAAI;IAKnF,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAKxD,0CAA0C,CAAC,QAAQ,EAAE,+BAA+B,GAAG,IAAI;IAK3F,8BAA8B,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI;IAKxE,2BAA2B,CAAC,uBAAuB,EAAE,OAAO,EAAE,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI;IAM5G,wBAAwB,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI;IAK5D,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK5D,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,IAAI;IAKpE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKpC,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAK1D,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK7C,KAAK,IAAI,uBAAuB;CAMxC"}
@@ -17,8 +17,9 @@ class CredentialRequestClientBuilder {
17
17
  constructor() {
18
18
  this.deferredCredentialAwait = false;
19
19
  this.deferredCredentialIntervalInMS = 5000;
20
+ this.credentialTypes = [];
20
21
  }
21
- static fromCredentialIssuer({ credentialIssuer, metadata, version, credentialType, }) {
22
+ static fromCredentialIssuer({ credentialIssuer, metadata, version, credentialIdentifier, credentialTypes, }) {
22
23
  var _a;
23
24
  const issuer = credentialIssuer;
24
25
  const builder = new CredentialRequestClientBuilder();
@@ -27,7 +28,12 @@ class CredentialRequestClientBuilder {
27
28
  if (metadata === null || metadata === void 0 ? void 0 : metadata.deferred_credential_endpoint) {
28
29
  builder.withDeferredCredentialEndpoint(metadata.deferred_credential_endpoint);
29
30
  }
30
- builder.withCredentialType(credentialType);
31
+ if (credentialIdentifier) {
32
+ builder.withCredentialIdentifier(credentialIdentifier);
33
+ }
34
+ if (credentialTypes) {
35
+ builder.withCredentialType(credentialTypes);
36
+ }
31
37
  return builder;
32
38
  }
33
39
  static fromURI({ uri, metadata }) {
@@ -50,10 +56,10 @@ class CredentialRequestClientBuilder {
50
56
  if (metadata === null || metadata === void 0 ? void 0 : metadata.deferred_credential_endpoint) {
51
57
  builder.withDeferredCredentialEndpoint(metadata.deferred_credential_endpoint);
52
58
  }
53
- const types = request.credential_offer.credential_configuration_ids;
59
+ const ids = request.credential_offer.credential_configuration_ids;
54
60
  // if there's only one in the offer, we pre-select it. if not, you should provide the credentialType
55
- if (types.length && types.length === 1) {
56
- builder.withCredentialType(types[0]);
61
+ if (ids.length && ids.length === 1) {
62
+ builder.withCredentialIdentifier(ids[0]);
57
63
  }
58
64
  return builder;
59
65
  }
@@ -85,8 +91,12 @@ class CredentialRequestClientBuilder {
85
91
  this.deferredCredentialIntervalInMS = deferredCredentialIntervalInMS !== null && deferredCredentialIntervalInMS !== void 0 ? deferredCredentialIntervalInMS : 5000;
86
92
  return this;
87
93
  }
88
- withCredentialType(credentialType) {
89
- this.credentialType = credentialType;
94
+ withCredentialIdentifier(credentialIdentifier) {
95
+ this.credentialIdentifier = credentialIdentifier;
96
+ return this;
97
+ }
98
+ withCredentialType(credentialTypes) {
99
+ this.credentialTypes = Array.isArray(credentialTypes) ? credentialTypes : [credentialTypes];
90
100
  return this;
91
101
  }
92
102
  withFormat(format) {
@@ -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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"}
@@ -61,8 +61,9 @@ export declare class OpenID4VCIClient {
61
61
  code?: string;
62
62
  redirectUri?: string;
63
63
  }): Promise<AccessTokenResponse>;
64
- acquireCredentials({ credentialType, context, proofCallbacks, format, kid, jwk, alg, jti, deferredCredentialAwait, deferredCredentialIntervalInMS, }: {
65
- credentialType: string;
64
+ acquireCredentials({ credentialIdentifier, credentialTypes, context, proofCallbacks, format, kid, jwk, alg, jti, deferredCredentialAwait, deferredCredentialIntervalInMS, }: {
65
+ credentialIdentifier?: string;
66
+ credentialTypes?: string | string[];
66
67
  context?: string[];
67
68
  proofCallbacks: ProofOfPossessionCallbacks<any>;
68
69
  format?: CredentialFormat | OID4VCICredentialFormat;
@@ -76,6 +77,8 @@ export declare class OpenID4VCIClient {
76
77
  exportState(): Promise<string>;
77
78
  getCredentialsSupported(format?: (OID4VCICredentialFormat | string) | (OID4VCICredentialFormat | string)[]): Record<string, CredentialConfigurationSupportedV1_0_13>;
78
79
  issuerSupportedFlowTypes(): AuthzFlowType[];
80
+ isFlowTypeSupported(flowType: AuthzFlowType): boolean;
81
+ hasAuthorizationURL(): boolean;
79
82
  get credentialOffer(): CredentialOfferRequestWithBaseUrl | undefined;
80
83
  version(): OpenId4VCIVersion;
81
84
  get endpointMetadata(): EndpointMetadataResultV1_0_13;
@@ -83,9 +86,12 @@ export declare class OpenID4VCIClient {
83
86
  get alg(): string;
84
87
  set clientId(value: string | undefined);
85
88
  get clientId(): string | undefined;
89
+ hasAccessTokenResponse(): boolean;
86
90
  get accessTokenResponse(): AccessTokenResponse;
87
91
  getIssuer(): string;
88
- get authorizationURL(): string | undefined;
92
+ getAccessTokenEndpoint(): string;
93
+ getCredentialEndpoint(): string;
94
+ hasDeferredCredentialEndpoint(): boolean;
89
95
  getDeferredCredentialEndpoint(): string;
90
96
  /**
91
97
  * Too bad we need a method like this, but EBSI is not exposing metadata
@@ -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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"}
@@ -194,7 +194,7 @@ class OpenID4VCIClient {
194
194
  return this.accessTokenResponse;
195
195
  });
196
196
  }
197
- acquireCredentials({ credentialType, context, proofCallbacks, format, kid, jwk, alg, jti, deferredCredentialAwait, deferredCredentialIntervalInMS, }) {
197
+ acquireCredentials({ credentialIdentifier, credentialTypes, context, proofCallbacks, format, kid, jwk, alg, jti, deferredCredentialAwait, deferredCredentialIntervalInMS, }) {
198
198
  var _a, _b, _c;
199
199
  return __awaiter(this, void 0, void 0, function* () {
200
200
  if ([jwk, kid].filter((v) => v !== undefined).length > 1) {
@@ -213,7 +213,7 @@ class OpenID4VCIClient {
213
213
  })
214
214
  : CredentialRequestClientBuilder_1.CredentialRequestClientBuilder.fromCredentialIssuer({
215
215
  credentialIssuer: this.getIssuer(),
216
- credentialType,
216
+ credentialIdentifier: credentialIdentifier,
217
217
  metadata: this.endpointMetadata,
218
218
  version: this.version(),
219
219
  });
@@ -221,23 +221,37 @@ class OpenID4VCIClient {
221
221
  requestBuilder.withDeferredCredentialAwait(deferredCredentialAwait !== null && deferredCredentialAwait !== void 0 ? deferredCredentialAwait : false, deferredCredentialIntervalInMS);
222
222
  if ((_a = this.endpointMetadata) === null || _a === void 0 ? void 0 : _a.credentialIssuerMetadata) {
223
223
  const metadata = this.endpointMetadata.credentialIssuerMetadata;
224
- if (metadata.credentials_supported && Array.isArray(metadata.credentials_supported)) {
224
+ const types = credentialTypes ? (Array.isArray(credentialTypes) ? credentialTypes : [credentialTypes]) : undefined;
225
+ if (credentialIdentifier) {
226
+ if (typeof metadata.credential_configurations_supported !== 'object') {
227
+ throw Error(`Credentials_supported should be an object, current ${typeof metadata.credential_configurations_supported} when credential_identifier is used`);
228
+ }
229
+ const credentialsSupported = metadata.credential_configurations_supported;
230
+ if (!metadata.credential_configurations_supported || !credentialsSupported[credentialIdentifier]) {
231
+ throw new Error(`Credential type ${credentialIdentifier} is not supported by issuer ${this.getIssuer()}`);
232
+ }
233
+ }
234
+ else if (!types) {
235
+ throw Error(`If no credential_identifier is used, we expect types`);
236
+ }
237
+ else if (metadata.credentials_supported && Array.isArray(metadata.credentials_supported)) {
225
238
  let typeSupported = false;
226
239
  metadata.credentials_supported.forEach((supportedCredential) => {
227
240
  const subTypes = (0, oid4vci_common_1.getTypesFromCredentialSupported)(supportedCredential);
228
- if (subTypes.includes(credentialType) || credentialType === supportedCredential.id) {
241
+ if (subTypes.every((t, i) => types[i] === t) ||
242
+ (types.length === 1 && (types[0] === supportedCredential.id || subTypes.includes(types[0])))) {
229
243
  typeSupported = true;
230
244
  }
231
245
  });
232
246
  if (!typeSupported) {
233
- console.log(`Not all credential types ${JSON.stringify(credentialType)} are present in metadata for ${this.getIssuer()}`);
247
+ console.log(`Not all credential types ${JSON.stringify(credentialTypes)} are present in metadata for ${this.getIssuer()}`);
234
248
  // throw Error(`Not all credential types ${JSON.stringify(credentialTypes)} are supported by issuer ${this.getIssuer()}`);
235
249
  }
236
250
  }
237
- else if (metadata.credentials_supported && !Array.isArray(metadata.credentials_supported)) {
238
- const credentialsSupported = metadata.credentials_supported;
239
- if (!metadata.credentials_supported || !credentialsSupported[credentialType]) {
240
- throw new Error(`Credential type ${credentialType} is not supported by issuer ${this.getIssuer()}`);
251
+ else if (metadata.credential_configurations_supported && !Array.isArray(metadata.credential_configurations_supported)) {
252
+ const credentialsSupported = metadata.credential_configurations_supported;
253
+ if (types.some((type) => !metadata.credential_configurations_supported || !credentialsSupported[type])) {
254
+ throw Error(`Not all credential types ${JSON.stringify(credentialTypes)} are supported by issuer ${this.getIssuer()}`);
241
255
  }
242
256
  }
243
257
  // todo: Format check? We might end up with some disjoint type / format combinations supported by the server
@@ -262,11 +276,7 @@ class OpenID4VCIClient {
262
276
  if (jti) {
263
277
  proofBuilder.withJti(jti);
264
278
  }
265
- const response = yield credentialRequestClient.acquireCredentialsUsingProof({
266
- proofInput: proofBuilder,
267
- credentialType,
268
- format,
269
- });
279
+ const response = yield credentialRequestClient.acquireCredentialsUsingProof(Object.assign({ proofInput: proofBuilder }, (credentialIdentifier ? { credentialIdentifier } : { format, context, credentialTypes })));
270
280
  if (response.errorBody) {
271
281
  debug(`Credential request error:\r\n${JSON.stringify(response.errorBody)}`);
272
282
  throw Error(`Retrieving a credential from ${(_b = this._state.endpointMetadata) === null || _b === void 0 ? void 0 : _b.credential_endpoint} for issuer ${this.getIssuer()} failed with status: ${response.origResponse.status}`);
@@ -295,6 +305,12 @@ class OpenID4VCIClient {
295
305
  var _a, _b, _c, _d;
296
306
  return ((_b = (_a = this.credentialOffer) === null || _a === void 0 ? void 0 : _a.supportedFlows) !== null && _b !== void 0 ? _b : (((_d = (_c = this._state.endpointMetadata) === null || _c === void 0 ? void 0 : _c.credentialIssuerMetadata) === null || _d === void 0 ? void 0 : _d.authorization_endpoint) ? [oid4vci_common_1.AuthzFlowType.AUTHORIZATION_CODE_FLOW] : []));
297
307
  }
308
+ isFlowTypeSupported(flowType) {
309
+ return this.issuerSupportedFlowTypes().includes(flowType);
310
+ }
311
+ hasAuthorizationURL() {
312
+ return !!this._state.authorizationURL;
313
+ }
298
314
  get credentialOffer() {
299
315
  return this._state.credentialOffer;
300
316
  }
@@ -327,6 +343,9 @@ class OpenID4VCIClient {
327
343
  get clientId() {
328
344
  return this._state.clientId;
329
345
  }
346
+ hasAccessTokenResponse() {
347
+ return !!this._state.accessTokenResponse;
348
+ }
330
349
  get accessTokenResponse() {
331
350
  this.assertAccessToken();
332
351
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -336,8 +355,18 @@ class OpenID4VCIClient {
336
355
  this.assertIssuerData();
337
356
  return this._state.credentialIssuer;
338
357
  }
339
- get authorizationURL() {
340
- return this._state.authorizationURL;
358
+ getAccessTokenEndpoint() {
359
+ this.assertIssuerData();
360
+ return this.endpointMetadata
361
+ ? this.endpointMetadata.token_endpoint
362
+ : AccessTokenClient_1.AccessTokenClient.determineTokenURL({ issuerOpts: { issuer: this.getIssuer() } });
363
+ }
364
+ getCredentialEndpoint() {
365
+ this.assertIssuerData();
366
+ return this.endpointMetadata ? this.endpointMetadata.credential_endpoint : `${this.getIssuer()}/credential`;
367
+ }
368
+ hasDeferredCredentialEndpoint() {
369
+ return !!this.getAccessTokenEndpoint();
341
370
  }
342
371
  getDeferredCredentialEndpoint() {
343
372
  this.assertIssuerData();
@@ -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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"}
@@ -5,6 +5,7 @@ import {
5
5
  getCredentialRequestForVersion,
6
6
  getUniformFormat,
7
7
  isDeferredCredentialResponse,
8
+ JsonLdIssuerCredentialDefinition,
8
9
  OID4VCICredentialFormat,
9
10
  OpenId4VCIVersion,
10
11
  OpenIDResponse,
@@ -26,7 +27,8 @@ export interface CredentialRequestOpts {
26
27
  deferredCredentialIntervalInMS?: number;
27
28
  credentialEndpoint: string;
28
29
  deferredCredentialEndpoint?: string;
29
- credentialType: string;
30
+ credentialTypes?: string[];
31
+ credentialIdentifier?: string;
30
32
  format?: CredentialFormat | OID4VCICredentialFormat;
31
33
  proof: ProofOfPossession;
32
34
  token: string;
@@ -78,12 +80,21 @@ export class CredentialRequestClient {
78
80
 
79
81
  public async acquireCredentialsUsingProof<DIDDoc>(opts: {
80
82
  proofInput: ProofOfPossessionBuilder<DIDDoc> | ProofOfPossession;
81
- credentialType: string;
83
+ credentialIdentifier?: string;
84
+ credentialTypes?: string | string[];
85
+ context?: string[];
82
86
  format?: CredentialFormat | OID4VCICredentialFormat;
83
87
  }): Promise<OpenIDResponse<CredentialResponse>> {
84
- const { credentialType, proofInput, format } = opts;
85
-
86
- const request = await this.createCredentialRequest({ proofInput, credentialType, format, version: this.version() });
88
+ const { credentialIdentifier, credentialTypes, proofInput, format, context } = opts;
89
+
90
+ const request = await this.createCredentialRequest({
91
+ proofInput,
92
+ credentialIdentifier,
93
+ credentialTypes,
94
+ context,
95
+ format,
96
+ version: this.version(),
97
+ });
87
98
  return await this.acquireCredentialsUsingRequest(request);
88
99
  }
89
100
 
@@ -136,45 +147,73 @@ export class CredentialRequestClient {
136
147
 
137
148
  public async createCredentialRequest<DIDDoc>(opts: {
138
149
  proofInput: ProofOfPossessionBuilder<DIDDoc> | ProofOfPossession;
139
- credentialType: string;
150
+ credentialIdentifier?: string;
151
+ credentialTypes?: string | string[];
152
+ context?: string[];
140
153
  format?: CredentialFormat | OID4VCICredentialFormat;
141
154
  version: OpenId4VCIVersion;
142
155
  }): Promise<CredentialRequestV1_0_13> {
143
- const { proofInput } = opts;
156
+ const { proofInput, credentialIdentifier: credential_identifier } = opts;
157
+ const proof = await buildProof(proofInput, opts);
158
+ if (credential_identifier) {
159
+ if (opts.format || opts.credentialTypes || opts.context) {
160
+ throw Error(`You cannot mix credential_identifier with format, credential types and/or context`);
161
+ }
162
+ return {
163
+ credential_identifier,
164
+ proof,
165
+ };
166
+ }
144
167
  const formatSelection = opts.format ?? this.credentialRequestOpts.format;
145
168
 
146
169
  if (!formatSelection) {
147
170
  throw Error(`Format of credential to be issued is missing`);
148
171
  }
149
172
  const format = getUniformFormat(formatSelection);
150
- const typeSelection = opts.credentialType ?? this.credentialRequestOpts.credentialType;
151
- if (!typeSelection) {
152
- throw Error(`Credential type needs to be provided`);
173
+ const typesSelection =
174
+ opts?.credentialTypes && (typeof opts.credentialTypes === 'string' || opts.credentialTypes.length > 0)
175
+ ? opts.credentialTypes
176
+ : this.credentialRequestOpts.credentialTypes;
177
+ if (!typesSelection) {
178
+ throw Error(`Credential type(s) need to be provided`);
179
+ }
180
+ const types = Array.isArray(typesSelection) ? typesSelection : [typesSelection];
181
+ if (types.length === 0) {
182
+ throw Error(`Credential type(s) need to be provided`);
153
183
  }
154
- const proof = await buildProof(proofInput, opts);
155
184
 
156
185
  // TODO: we should move format specific logic
157
186
  if (format === 'jwt_vc_json' || format === 'jwt_vc') {
158
187
  return {
159
- credential_identifier: typeSelection,
188
+ types,
160
189
  format,
161
190
  proof,
162
191
  };
163
192
  } else if (format === 'jwt_vc_json-ld' || format === 'ldp_vc') {
193
+ if (this.version() >= OpenId4VCIVersion.VER_1_0_12 && !opts.context) {
194
+ throw Error('No @context value present, but it is required');
195
+ }
196
+
164
197
  return {
165
198
  format,
166
199
  proof,
167
200
  // Ignored because v11 does not have the context value, but it is required in v12
168
201
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
169
202
  // @ts-ignore
170
- credential_identifier: typeSelection,
203
+ credential_definition: {
204
+ types,
205
+ ...(opts.context && { '@context': opts.context }),
206
+ } as JsonLdIssuerCredentialDefinition,
171
207
  };
172
208
  } else if (format === 'vc+sd-jwt') {
209
+ if (types.length > 1) {
210
+ throw Error(`Only a single credential type is supported for ${format}`);
211
+ }
173
212
  // fixme: this isn't up to the CredentialRequest that we see in the version v1_0_13
174
213
  return {
175
214
  format,
176
215
  proof,
177
- vct: typeSelection,
216
+ vct: types[0],
178
217
  } as CredentialRequestV1_0_13;
179
218
  }
180
219
 
@@ -20,7 +20,8 @@ export class CredentialRequestClientBuilder {
20
20
  deferredCredentialEndpoint?: string;
21
21
  deferredCredentialAwait = false;
22
22
  deferredCredentialIntervalInMS = 5000;
23
- credentialType?: string;
23
+ credentialIdentifier?: string;
24
+ credentialTypes?: string[] = [];
24
25
  format?: CredentialFormat | OID4VCICredentialFormat;
25
26
  token?: string;
26
27
  version?: OpenId4VCIVersion;
@@ -29,12 +30,14 @@ export class CredentialRequestClientBuilder {
29
30
  credentialIssuer,
30
31
  metadata,
31
32
  version,
32
- credentialType,
33
+ credentialIdentifier,
34
+ credentialTypes,
33
35
  }: {
34
36
  credentialIssuer: string;
35
37
  metadata?: EndpointMetadata;
36
38
  version?: OpenId4VCIVersion;
37
- credentialType: string;
39
+ credentialIdentifier?: string;
40
+ credentialTypes?: string | string[];
38
41
  }): CredentialRequestClientBuilder {
39
42
  const issuer = credentialIssuer;
40
43
  const builder = new CredentialRequestClientBuilder();
@@ -43,7 +46,12 @@ export class CredentialRequestClientBuilder {
43
46
  if (metadata?.deferred_credential_endpoint) {
44
47
  builder.withDeferredCredentialEndpoint(metadata.deferred_credential_endpoint);
45
48
  }
46
- builder.withCredentialType(credentialType);
49
+ if (credentialIdentifier) {
50
+ builder.withCredentialIdentifier(credentialIdentifier);
51
+ }
52
+ if (credentialTypes) {
53
+ builder.withCredentialType(credentialTypes);
54
+ }
47
55
  return builder;
48
56
  }
49
57
 
@@ -71,10 +79,10 @@ export class CredentialRequestClientBuilder {
71
79
  if (metadata?.deferred_credential_endpoint) {
72
80
  builder.withDeferredCredentialEndpoint(metadata.deferred_credential_endpoint);
73
81
  }
74
- const types: string[] = (request.credential_offer as CredentialOfferPayloadV1_0_13).credential_configuration_ids;
82
+ const ids: string[] = (request.credential_offer as CredentialOfferPayloadV1_0_13).credential_configuration_ids;
75
83
  // if there's only one in the offer, we pre-select it. if not, you should provide the credentialType
76
- if (types.length && types.length === 1) {
77
- builder.withCredentialType(types[0]);
84
+ if (ids.length && ids.length === 1) {
85
+ builder.withCredentialIdentifier(ids[0]);
78
86
  }
79
87
  return builder;
80
88
  }
@@ -119,8 +127,13 @@ export class CredentialRequestClientBuilder {
119
127
  return this;
120
128
  }
121
129
 
122
- public withCredentialType(credentialType: string): this {
123
- this.credentialType = credentialType;
130
+ public withCredentialIdentifier(credentialIdentifier: string): this {
131
+ this.credentialIdentifier = credentialIdentifier;
132
+ return this;
133
+ }
134
+
135
+ public withCredentialType(credentialTypes: string | string[]): this {
136
+ this.credentialTypes = Array.isArray(credentialTypes) ? credentialTypes : [credentialTypes];
124
137
  return this;
125
138
  }
126
139
 
@@ -318,7 +318,8 @@ export class OpenID4VCIClient {
318
318
  }
319
319
 
320
320
  public async acquireCredentials({
321
- credentialType,
321
+ credentialIdentifier,
322
+ credentialTypes,
322
323
  context,
323
324
  proofCallbacks,
324
325
  format,
@@ -329,7 +330,8 @@ export class OpenID4VCIClient {
329
330
  deferredCredentialAwait,
330
331
  deferredCredentialIntervalInMS,
331
332
  }: {
332
- credentialType: string;
333
+ credentialIdentifier?: string;
334
+ credentialTypes?: string | string[];
333
335
  context?: string[];
334
336
  proofCallbacks: ProofOfPossessionCallbacks<any>;
335
337
  format?: CredentialFormat | OID4VCICredentialFormat;
@@ -355,7 +357,7 @@ export class OpenID4VCIClient {
355
357
  })
356
358
  : CredentialRequestClientBuilder.fromCredentialIssuer({
357
359
  credentialIssuer: this.getIssuer(),
358
- credentialType,
360
+ credentialIdentifier: credentialIdentifier,
359
361
  metadata: this.endpointMetadata,
360
362
  version: this.version(),
361
363
  });
@@ -364,24 +366,41 @@ export class OpenID4VCIClient {
364
366
  requestBuilder.withDeferredCredentialAwait(deferredCredentialAwait ?? false, deferredCredentialIntervalInMS);
365
367
  if (this.endpointMetadata?.credentialIssuerMetadata) {
366
368
  const metadata = this.endpointMetadata.credentialIssuerMetadata;
367
- if (metadata.credentials_supported && Array.isArray(metadata.credentials_supported)) {
369
+ const types = credentialTypes ? (Array.isArray(credentialTypes) ? credentialTypes : [credentialTypes]) : undefined;
370
+
371
+ if (credentialIdentifier) {
372
+ if (typeof metadata.credential_configurations_supported !== 'object') {
373
+ throw Error(
374
+ `Credentials_supported should be an object, current ${typeof metadata.credential_configurations_supported} when credential_identifier is used`,
375
+ );
376
+ }
377
+ const credentialsSupported = metadata.credential_configurations_supported;
378
+ if (!metadata.credential_configurations_supported || !credentialsSupported[credentialIdentifier]) {
379
+ throw new Error(`Credential type ${credentialIdentifier} is not supported by issuer ${this.getIssuer()}`);
380
+ }
381
+ } else if (!types) {
382
+ throw Error(`If no credential_identifier is used, we expect types`);
383
+ } else if (metadata.credentials_supported && Array.isArray(metadata.credentials_supported)) {
368
384
  let typeSupported = false;
369
385
 
370
386
  metadata.credentials_supported.forEach((supportedCredential) => {
371
387
  const subTypes = getTypesFromCredentialSupported(supportedCredential);
372
- if (subTypes.includes(credentialType) || credentialType === supportedCredential.id) {
388
+ if (
389
+ subTypes.every((t, i) => types[i] === t) ||
390
+ (types.length === 1 && (types[0] === supportedCredential.id || subTypes.includes(types[0])))
391
+ ) {
373
392
  typeSupported = true;
374
393
  }
375
394
  });
376
395
 
377
396
  if (!typeSupported) {
378
- console.log(`Not all credential types ${JSON.stringify(credentialType)} are present in metadata for ${this.getIssuer()}`);
397
+ console.log(`Not all credential types ${JSON.stringify(credentialTypes)} are present in metadata for ${this.getIssuer()}`);
379
398
  // throw Error(`Not all credential types ${JSON.stringify(credentialTypes)} are supported by issuer ${this.getIssuer()}`);
380
399
  }
381
- } else if (metadata.credentials_supported && !Array.isArray(metadata.credentials_supported)) {
382
- const credentialsSupported = metadata.credentials_supported;
383
- if (!metadata.credentials_supported || !credentialsSupported[credentialType]) {
384
- throw new Error(`Credential type ${credentialType} is not supported by issuer ${this.getIssuer()}`);
400
+ } else if (metadata.credential_configurations_supported && !Array.isArray(metadata.credential_configurations_supported)) {
401
+ const credentialsSupported = metadata.credential_configurations_supported;
402
+ if (types.some((type) => !metadata.credential_configurations_supported || !credentialsSupported[type])) {
403
+ throw Error(`Not all credential types ${JSON.stringify(credentialTypes)} are supported by issuer ${this.getIssuer()}`);
385
404
  }
386
405
  }
387
406
  // todo: Format check? We might end up with some disjoint type / format combinations supported by the server
@@ -410,8 +429,7 @@ export class OpenID4VCIClient {
410
429
  }
411
430
  const response = await credentialRequestClient.acquireCredentialsUsingProof({
412
431
  proofInput: proofBuilder,
413
- credentialType,
414
- format,
432
+ ...(credentialIdentifier ? { credentialIdentifier } : { format, context, credentialTypes }),
415
433
  });
416
434
  if (response.errorBody) {
417
435
  debug(`Credential request error:\r\n${JSON.stringify(response.errorBody)}`);
@@ -453,6 +471,14 @@ export class OpenID4VCIClient {
453
471
  );
454
472
  }
455
473
 
474
+ isFlowTypeSupported(flowType: AuthzFlowType): boolean {
475
+ return this.issuerSupportedFlowTypes().includes(flowType);
476
+ }
477
+
478
+ public hasAuthorizationURL(): boolean {
479
+ return !!this._state.authorizationURL;
480
+ }
481
+
456
482
  get credentialOffer(): CredentialOfferRequestWithBaseUrl | undefined {
457
483
  return this._state.credentialOffer;
458
484
  }
@@ -491,6 +517,10 @@ export class OpenID4VCIClient {
491
517
  return this._state.clientId;
492
518
  }
493
519
 
520
+ public hasAccessTokenResponse(): boolean {
521
+ return !!this._state.accessTokenResponse;
522
+ }
523
+
494
524
  get accessTokenResponse(): AccessTokenResponse {
495
525
  this.assertAccessToken();
496
526
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -502,8 +532,20 @@ export class OpenID4VCIClient {
502
532
  return this._state.credentialIssuer;
503
533
  }
504
534
 
505
- get authorizationURL(): string | undefined {
506
- return this._state.authorizationURL;
535
+ public getAccessTokenEndpoint(): string {
536
+ this.assertIssuerData();
537
+ return this.endpointMetadata
538
+ ? this.endpointMetadata.token_endpoint
539
+ : AccessTokenClient.determineTokenURL({ issuerOpts: { issuer: this.getIssuer() } });
540
+ }
541
+
542
+ public getCredentialEndpoint(): string {
543
+ this.assertIssuerData();
544
+ return this.endpointMetadata ? this.endpointMetadata.credential_endpoint : `${this.getIssuer()}/credential`;
545
+ }
546
+
547
+ public hasDeferredCredentialEndpoint(): boolean {
548
+ return !!this.getAccessTokenEndpoint();
507
549
  }
508
550
 
509
551
  public getDeferredCredentialEndpoint(): string {
@@ -104,7 +104,7 @@ describe('Credential Request Client ', () => {
104
104
  .withClientId('sphereon:wallet')
105
105
  .build();
106
106
  const credentialRequest = await credReqClient.createCredentialRequest({
107
- credentialType: 'OpenBadgeCredential',
107
+ credentialTypes: 'OpenBadgeCredential',
108
108
  proofInput: proof,
109
109
  format: 'jwt',
110
110
  version: OpenId4VCIVersion.VER_1_0_13,
@@ -119,7 +119,7 @@ describe('Credential Request Client ', () => {
119
119
  const credReqClient = CredentialRequestClientBuilder.fromCredentialOfferRequest({ request: INITIATION_TEST })
120
120
  .withCredentialEndpoint('httpsf://oidc4vci.demo.spruceid.com/credential')
121
121
  .withFormat('jwt_vc')
122
- .withCredentialType('https://imsglobal.github.io/openbadges-specification/ob_v3p0.html#OpenBadgeCredential')
122
+ .withCredentialIdentifier('https://imsglobal.github.io/openbadges-specification/ob_v3p0.html#OpenBadgeCredential')
123
123
  .build();
124
124
  const proof: ProofOfPossession = await ProofOfPossessionBuilder.fromJwt({
125
125
  jwt: jwt1_0_08,
@@ -190,7 +190,7 @@ describe('Credential Request Client with different issuers ', () => {
190
190
  proof_type: 'jwt',
191
191
  jwt: getMockData('spruce')?.credential.request.proof.jwt as string,
192
192
  },
193
- credentialType: 'OpenBadgeCredential',
193
+ credentialTypes: 'OpenBadgeCredential',
194
194
  format: 'jwt_vc',
195
195
  version: OpenId4VCIVersion.VER_1_0_13,
196
196
  });
@@ -237,7 +237,7 @@ describe('Credential Request Client with different issuers ', () => {
237
237
  proof_type: 'jwt',
238
238
  jwt: getMockData('uniissuer')?.credential.request.proof.jwt as string,
239
239
  },
240
- credentialType: 'OpenBadgeCredential',
240
+ credentialIdentifier: 'OpenBadgeCredential',
241
241
  format: 'jwt_vc',
242
242
  version: OpenId4VCIVersion.VER_1_0_13,
243
243
  });
@@ -324,8 +324,8 @@ describe('Credential Request Client with different issuers ', () => {
324
324
  proof_type: 'jwt',
325
325
  jwt: getMockData('diwala')?.credential.request.proof.jwt as string,
326
326
  },
327
- credentialType: 'OpenBadgeCredential',
328
- format: 'ldp_vc',
327
+ credentialIdentifier: 'BevoegdheidUittreksel_jwt_vc_json',
328
+ // format: 'ldp_vc',
329
329
  version: OpenId4VCIVersion.VER_1_0_13,
330
330
  });
331
331
 
@@ -335,7 +335,9 @@ describe('Credential Request Client with different issuers ', () => {
335
335
  OpenId4VCIVersion.VER_1_0_13,
336
336
  ) as CredentialRequestV1_0_13;
337
337
 
338
- expect(credentialRequest.credential_identifier).toEqual('OpenBadgeCredential');
338
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
339
+ // @ts-ignore
340
+ expect(credentialRequest.credential_identifier).toEqual('BevoegdheidUittreksel_jwt_vc_json');
339
341
  expect(credentialRequest.proof).toEqual({
340
342
  jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3AxM3N6QUFMVFN0cDV1OGtMcnl5YW5vYWtrVWtFUGZXazdvOHY3dms0RW1KI3o2TWtwMTNzekFBTFRTdHA1dThrTHJ5eWFub2Fra1VrRVBmV2s3bzh2N3ZrNEVtSiJ9.eyJhdWQiOiJodHRwczovL29pZGM0dmMuZGl3YWxhLmlvIiwiaWF0IjoxNjgxOTE1MDk1LjIwMiwiZXhwIjoxNjgxOTE1NzU1LjIwMiwiaXNzIjoic3BoZXJlb246c3NpLXdhbGxldCIsImp0aSI6IjYxN2MwM2EzLTM3MTUtNGJlMy1hYjkxNzM4MTlmYzYxNTYzIn0.KA-cHjecaYp9FSaWHkz5cqtNyhBIVT_0I7cJnpHn03T4UWFvdhjhn8Hpe-BU247enFyWOWJ6v3NQZyZgle7xBA',
341
343
  proof_type: 'jwt',
@@ -76,12 +76,12 @@ describe('Credential Request Client Builder', () => {
76
76
  const credReqClient = (await CredentialRequestClientBuilder.fromURI({ uri: INITIATION_TEST_URI }))
77
77
  .withCredentialEndpoint('https://oidc4vci.demo.spruceid.com/credential')
78
78
  .withFormat('jwt_vc')
79
- .withCredentialType('credentialType')
79
+ .withCredentialIdentifier('credentialType')
80
80
  .withToken('token')
81
81
  .build();
82
82
  expect(credReqClient.credentialRequestOpts.credentialEndpoint).toBe('https://oidc4vci.demo.spruceid.com/credential');
83
83
  expect(credReqClient.credentialRequestOpts.format).toBe('jwt_vc');
84
- expect(credReqClient.credentialRequestOpts.credentialType).toStrictEqual('credentialType');
84
+ expect(credReqClient.credentialRequestOpts.credentialIdentifier).toStrictEqual('credentialType');
85
85
  expect(credReqClient.credentialRequestOpts.token).toBe('token');
86
86
  });
87
87
 
@@ -89,7 +89,7 @@ describe('Credential Request Client Builder', () => {
89
89
  const credReqClient = (await CredentialRequestClientBuilder.fromURI({ uri: INITIATION_TEST_URI }))
90
90
  .withCredentialEndpoint('https://oidc4vci.demo.spruceid.com/credential')
91
91
  .withFormat('jwt_vc')
92
- .withCredentialType('OpenBadgeCredential')
92
+ .withCredentialIdentifier('OpenBadgeCredential')
93
93
  .build();
94
94
  const proof: ProofOfPossession = await ProofOfPossessionBuilder.fromJwt({
95
95
  jwt: jwtv1_0_11,
@@ -105,7 +105,7 @@ describe('Credential Request Client Builder', () => {
105
105
  await proofOfPossessionVerifierCallbackFunction({ ...proof, kid });
106
106
  const credentialRequest: CredentialRequestV1_0_13 = await credReqClient.createCredentialRequest({
107
107
  proofInput: proof,
108
- credentialType: 'OpenBadgeCredential',
108
+ credentialIdentifier: 'OpenBadgeCredential',
109
109
  version: OpenId4VCIVersion.VER_1_0_13,
110
110
  });
111
111
  expect(credentialRequest.proof?.jwt).toContain(partialJWT);
@@ -281,7 +281,7 @@ describe('OID4VCI-Client should', () => {
281
281
  .build();
282
282
  const credResponse = await credReqClient.acquireCredentialsUsingProof({
283
283
  proofInput: proof,
284
- credentialType: credentialOffer.original_credential_offer.credential_configuration_ids[0],
284
+ credentialTypes: credentialOffer.original_credential_offer.credential_configuration_ids[0],
285
285
  });
286
286
  expect(credResponse.successBody?.credential).toEqual(mockedVC);
287
287
  },
@@ -18,11 +18,11 @@ const jwk = { kty: 'EC', crv: 'P-256', x: 'zQOowIC1gWJtdddB5GAt4lau6Lt8Ihy771iAf
18
18
 
19
19
  const issuerMetadata = new IssuerMetadataBuilderV1_13()
20
20
  .withCredentialIssuer('https://example.com')
21
- .withCredentialEndpoint('https://credenital-endpoint.example.com')
21
+ .withCredentialEndpoint('https://credential-endpoint.example.com')
22
22
  .withTokenEndpoint('https://token-endpoint.example.com')
23
23
  .addCredentialConfigurationsSupported('SdJwtCredentialId', {
24
24
  format: 'vc+sd-jwt',
25
- vct: 'SdJwtCredential',
25
+ vct: 'SdJwtCredentialId',
26
26
  id: 'SdJwtCredentialId',
27
27
  } as CredentialConfigurationSupportedV1_0_13)
28
28
  .build();
@@ -107,7 +107,7 @@ describe('sd-jwt vc', () => {
107
107
  });
108
108
 
109
109
  const supported = client.getCredentialsSupported('vc+sd-jwt');
110
- expect(supported).toEqual({ SdJwtCredentialId: { format: 'vc+sd-jwt', id: 'SdJwtCredentialId', vct: 'SdJwtCredential' } });
110
+ expect(supported).toEqual({ SdJwtCredentialId: { format: 'vc+sd-jwt', id: 'SdJwtCredentialId', vct: 'SdJwtCredentialId' } });
111
111
 
112
112
  const offered = supported['SdJwtCredentialId'] as CredentialSupportedSdJwtVc;
113
113
 
@@ -145,8 +145,8 @@ describe('sd-jwt vc', () => {
145
145
  );
146
146
 
147
147
  const credentials = await client.acquireCredentials({
148
- credentialType: offered.vct,
149
- format: 'vc+sd-jwt',
148
+ credentialIdentifier: offered.vct,
149
+ // format: 'vc+sd-jwt',
150
150
  alg,
151
151
  jwk,
152
152
  proofCallbacks: {
@@ -159,7 +159,7 @@ describe('sd-jwt vc', () => {
159
159
  c_nonce: 'new-c-nonce',
160
160
  c_nonce_expires_in: 300,
161
161
  credential: 'sd-jwt',
162
- format: 'vc+sd-jwt',
162
+ // format: 'vc+sd-jwt',
163
163
  });
164
164
  },
165
165
  UNIT_TEST_TIMEOUT,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/oid4vci-client",
3
- "version": "0.10.4-unstable.75+400fb74",
3
+ "version": "0.10.4-unstable.76+d61fa03",
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.10.4-unstable.75+400fb74",
18
+ "@sphereon/oid4vci-common": "0.10.4-unstable.76+d61fa03",
19
19
  "@sphereon/ssi-types": "^0.23.0",
20
20
  "cross-fetch": "^3.1.8",
21
21
  "debug": "^4.3.4"
@@ -69,5 +69,5 @@
69
69
  "OIDC4VCI",
70
70
  "OID4VCI"
71
71
  ],
72
- "gitHead": "400fb74626081498dada6854435a2908f5073771"
72
+ "gitHead": "d61fa035a8a40bbae188422f29fab449f85e09d7"
73
73
  }