import { CompositeDidDocumentResolver, PlcDidDocumentResolver, WebDidDocumentResolver, } from "@atcute/identity-resolver"; import type { Did } from "@atcute/lexicons"; const didResolver = new CompositeDidDocumentResolver({ methods: { plc: new PlcDidDocumentResolver(), web: new WebDidDocumentResolver(), }, }); export const resolvePDS = async (did: Did): Promise => { try { const document = await didResolver.resolve(did as Did<"plc"> | Did<"web">); if (Array.isArray(document.service) === false) { return null; } for (const service of document.service) { if (service.id === "#atproto_pds") { return URL.parse(service.serviceEndpoint.toString()); } } } catch {} return null; };