diff --git a/src/main/RP.ts b/src/main/RP.ts index ba29a0ab..7a0902a2 100644 --- a/src/main/RP.ts +++ b/src/main/RP.ts @@ -120,7 +120,7 @@ function createVerifyResponseOptsFromBuilderOrExistingOpts(opts: { builder?: RPB mode: VerificationMode.INTERNAL, resolveOpts: { didMethods: opts.builder.didMethods, - resolver: getResolver({ didMethods: opts.builder.didMethods }), + resolver: opts.builder.resolver ? getResolver({ resolver: opts.builder.resolver }) : getResolver({ didMethods: opts.builder.didMethods }), }, }, } diff --git a/src/main/RPBuilder.ts b/src/main/RPBuilder.ts index 4caf7ec3..5187ccb5 100644 --- a/src/main/RPBuilder.ts +++ b/src/main/RPBuilder.ts @@ -24,6 +24,7 @@ export default class RPBuilder { subjectIdentifierTypes: SubjectIdentifierType = SubjectIdentifierType.DID; didMethods: string[] = []; resolvers: Map = new Map(); + resolver?: Resolvable; credentialFormats: CredentialFormat[] = []; requestRegistration: Partial = {}; redirectUri: string; @@ -40,14 +41,19 @@ export default class RPBuilder { return this; } + defaultResolver(resolver: Resolvable): RPBuilder { + this.resolver = resolver; + return this; + } + addResolver(didMethod: string, resolver: Resolvable): RPBuilder { this.didMethods.push(DIDJwt.toSIOPRegistrationDidMethod(didMethod)); this.resolvers.set(DIDJwt.getMethodFromDid(didMethod), resolver); return this; } - addDidMethod(didMethod: string): RPBuilder { - this.addResolver(didMethod, new Resolver(getUniResolver(DIDJwt.getMethodFromDid(didMethod)))); + addDidMethod(didMethod: string, opts?: { resolveUrl?: string; baseUrl?: string }): RPBuilder { + this.addResolver(didMethod, new Resolver(getUniResolver(DIDJwt.getMethodFromDid(didMethod), { ...opts }))); return this; }