UNPKG

@sphereon/did-auth-siop

Version:

Self Issued OpenID V2 (SIOPv2) and OpenID 4 Verifiable Presentations (OID4VP)

43 lines (36 loc) 1.16 kB
import { getUniResolver } from '@sphereon/did-uni-client' import { DIDDocument as DIFDIDDocument, Resolvable, Resolver, ResolverRegistry } from 'did-resolver' import { SIOPErrors } from '..' export interface DIDDocument extends DIFDIDDocument { owner?: string created?: string updated?: string proof?: LinkedDataProof } export interface LinkedDataProof { type: string created: string creator: string nonce: string signatureValue: string } export function getResolver(methods: string | string[]): Resolvable { function getMethodFromDid(did: string): string { if (!did) { throw new Error(SIOPErrors.BAD_PARAMS) } const split = did.split(':') if (split.length == 1 && did.length > 0) { return did } else if (!did.startsWith('did:') || split.length < 2) { throw new Error(SIOPErrors.BAD_PARAMS) } return split[1] } const uniResolvers: ResolverRegistry[] = [] for (const didMethod of typeof methods === 'string' ? [methods] : methods) { const uniResolver = getUniResolver(getMethodFromDid(didMethod)) uniResolvers.push(uniResolver) } return new Resolver(...uniResolvers) }