{"version":3,"file":"resolver.cjs","sources":["../src/resolver.ts"],"sourcesContent":["import fetch from 'cross-fetch'\nimport { DIDDocument, DIDResolutionResult, DIDResolver, ParsedDID } from 'did-resolver'\n\nconst DOC_PATH = '/.well-known/did.json'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nasync function get(url: string): Promise<any> {\n  const res = await fetch(url, { mode: 'cors' })\n  if (res.status >= 400) {\n    throw new Error(`Bad response ${res.statusText}`)\n  }\n  return res.json()\n}\n\nexport function getResolver(): Record<string, DIDResolver> {\n  async function resolve(did: string, parsed: ParsedDID): Promise<DIDResolutionResult> {\n    let err = null\n    let path = decodeURIComponent(parsed.id) + DOC_PATH\n    const id = parsed.id.split(':')\n    if (id.length > 1) {\n      path = id.map(decodeURIComponent).join('/') + '/did.json'\n    }\n\n    const url = `https://${path}`\n\n    const didDocumentMetadata = {}\n    let didDocument: DIDDocument | null = null\n\n    do {\n      try {\n        didDocument = await get(url)\n      } catch (error) {\n        err = `resolver_error: DID must resolve to a valid https URL containing a JSON document: ${error}`\n        break\n      }\n\n      // TODO: this excludes the use of query params\n      const docIdMatchesDid = didDocument?.id === did\n      if (!docIdMatchesDid) {\n        err = 'resolver_error: DID document id does not match requested did'\n        // break // uncomment this when adding more checks\n      }\n      // eslint-disable-next-line no-constant-condition\n    } while (false)\n\n    const contentType =\n      typeof didDocument?.['@context'] !== 'undefined' ? 'application/did+ld+json' : 'application/did+json'\n\n    if (err) {\n      return {\n        didDocument,\n        didDocumentMetadata,\n        didResolutionMetadata: {\n          error: 'notFound',\n          message: err,\n        },\n      }\n    } else {\n      return {\n        didDocument,\n        didDocumentMetadata,\n        didResolutionMetadata: { contentType },\n      }\n    }\n  }\n\n  return { web: resolve }\n}\n"],"names":["get","url","Promise","resolve","fetch","mode","then","res","status","Error","statusText","json","e","reject","_settle","pact","state","value","_Pact","s","v","bind","DOC_PATH","prototype","onFulfilled","onRejected","result","callback","_this","getResolver","did","parsed","_interrupt","_temp4","contentType","didDocument","err","didDocumentMetadata","didResolutionMetadata","error","message","path","decodeURIComponent","id","split","length","map","join","_temp3","_do","_temp2","docIdMatchesDid","_temp","_catch","_get","web"],"mappings":"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"}