@@ -8,36 +8,34 @@ import {
88 ExperimentalSubjectIssuance ,
99 OID4VCICredentialFormat ,
1010 OpenId4VCIVersion ,
11- UniformCredentialOfferRequest ,
12- } from '@sphereon/oid4vci-common' ;
13- import { CredentialFormat } from '@sphereon/ssi-types' ;
11+ UniformCredentialOfferRequest
12+ } from '@sphereon/oid4vci-common'
13+ import { CredentialFormat } from '@sphereon/ssi-types'
1414
1515import { CredentialOfferClient } from './CredentialOfferClient' ;
16- import { CredentialRequestClient } from './CredentialRequestClient' ;
1716import { CredentialRequestClientBuilderV1_0_11 } from './CredentialRequestClientBuilderV1_0_11' ;
1817import { CredentialRequestClientBuilderV1_0_13 } from './CredentialRequestClientBuilderV1_0_13' ;
19- import { CredentialRequestClientV1_0_11 } from './CredentialRequestClientV1_0_11' ;
2018
2119type CredentialRequestClientBuilderVersionSpecific = CredentialRequestClientBuilderV1_0_11 | CredentialRequestClientBuilderV1_0_13 ;
2220
21+ function isV1_0_13 ( builder : CredentialRequestClientBuilderVersionSpecific ) : builder is CredentialRequestClientBuilderV1_0_13 {
22+ return ( builder as CredentialRequestClientBuilderV1_0_13 ) . withCredentialIdentifier !== undefined ;
23+ }
24+
2325export class CredentialRequestClientBuilder {
2426 private _builder : CredentialRequestClientBuilderVersionSpecific ;
2527
2628 private constructor ( builder : CredentialRequestClientBuilderVersionSpecific ) {
2729 this . _builder = builder ;
2830 }
2931
30- private isV1_0_13 ( builder : CredentialRequestClientBuilderVersionSpecific ) : builder is CredentialRequestClientBuilderV1_0_13 {
31- return ( builder as CredentialRequestClientBuilderV1_0_13 ) . withCredentialIdentifier !== undefined ;
32- }
33-
3432 public static fromCredentialIssuer ( {
35- credentialIssuer,
36- metadata,
37- version,
38- credentialIdentifier,
39- credentialTypes,
40- } : {
33+ credentialIssuer,
34+ metadata,
35+ version,
36+ credentialIdentifier,
37+ credentialTypes,
38+ } : {
4139 credentialIssuer : string ;
4240 metadata ?: EndpointMetadata ;
4341 version ?: OpenId4VCIVersion ;
@@ -101,9 +99,9 @@ export class CredentialRequestClientBuilder {
10199 }
102100
103101 public static fromCredentialOffer ( {
104- credentialOffer,
105- metadata,
106- } : {
102+ credentialOffer,
103+ metadata,
104+ } : {
107105 credentialOffer : CredentialOfferRequestWithBaseUrl ;
108106 metadata ?: EndpointMetadata ;
109107 } ) : CredentialRequestClientBuilder {
@@ -129,8 +127,12 @@ export class CredentialRequestClientBuilder {
129127 return this . _builder . version ;
130128 }
131129
132- public withCredentialEndpointFromMetadata ( metadata : CredentialIssuerMetadata ) : this {
133- this . _builder . credentialEndpoint = metadata . credential_endpoint ;
130+ public withCredentialEndpointFromMetadata ( metadata : CredentialIssuerMetadata | CredentialIssuerMetadataV1_0_13 ) : this {
131+ if ( isV1_0_13 ( this . _builder ) ) {
132+ this . _builder . withCredentialEndpointFromMetadata ( metadata as CredentialIssuerMetadataV1_0_13 )
133+ } else {
134+ this . _builder . withCredentialEndpointFromMetadata ( metadata as CredentialIssuerMetadata )
135+ }
134136 return this ;
135137 }
136138
@@ -140,12 +142,10 @@ export class CredentialRequestClientBuilder {
140142 }
141143
142144 public withDeferredCredentialEndpointFromMetadata ( metadata : CredentialIssuerMetadata | CredentialIssuerMetadataV1_0_13 ) : this {
143- if ( this . isV1_0_13 ( this . _builder ) ) {
144- ( this . _builder as CredentialRequestClientBuilderV1_0_13 ) . withDeferredCredentialEndpointFromMetadata (
145- metadata as CredentialIssuerMetadataV1_0_13 ,
146- ) ;
145+ if ( isV1_0_13 ( this . _builder ) ) {
146+ this . _builder . withDeferredCredentialEndpointFromMetadata ( metadata as CredentialIssuerMetadataV1_0_13 ) ;
147147 } else {
148- this . _builder . withDeferredCredentialEndpointFromMetadata ( metadata ) ;
148+ this . _builder . withDeferredCredentialEndpointFromMetadata ( metadata as CredentialIssuerMetadata ) ;
149149 }
150150 return this ;
151151 }
@@ -198,7 +198,7 @@ export class CredentialRequestClientBuilder {
198198 return this ;
199199 }
200200
201- public build ( ) : CredentialRequestClient | CredentialRequestClientV1_0_11 {
201+ public build ( ) {
202202 return this . _builder . build ( ) ;
203203 }
204204}
0 commit comments