{"version":3,"file":"JsonWebKey2020.mjs","names":[],"sources":["../../../../../src/modules/dids/domain/verificationMethod/JsonWebKey2020.ts"],"sourcesContent":["import { CredoError } from '../../../../error'\nimport { PublicJwk } from '../../../kms'\nimport type { VerificationMethod } from './VerificationMethod'\n\nexport const VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020 = 'JsonWebKey2020'\n\ntype GetJsonWebKey2020Options = {\n  did: string\n\n  verificationMethodId?: string\n  publicJwk: PublicJwk\n}\n\n/**\n * Get a JsonWebKey2020 verification method.\n */\nexport function getJsonWebKey2020(options: GetJsonWebKey2020Options) {\n  const verificationMethodId = options.verificationMethodId ?? `${options.did}#${options.publicJwk.fingerprint}`\n\n  return {\n    id: verificationMethodId,\n    type: VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020,\n    controller: options.did,\n    publicKeyJwk: options.publicJwk.toJson(),\n  }\n}\n\n/**\n * Check whether a verification method is a JsonWebKey2020 verification method.\n */\nexport function isJsonWebKey2020(\n  verificationMethod: VerificationMethod\n): verificationMethod is VerificationMethod & { type: 'JsonWebKey2020' } {\n  return verificationMethod.type === VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020\n}\n\n/**\n * Get a key from a JsonWebKey2020 verification method.\n */\nexport function getPublicJwkFromJsonWebKey2020(verificationMethod: VerificationMethod & { type: 'JsonWebKey2020' }) {\n  if (!verificationMethod.publicKeyJwk) {\n    throw new CredoError(\n      `Missing publicKeyJwk on verification method with type ${VERIFICATION_METHOD_TYPE_JSON_WEB_KEY_2020}`\n    )\n  }\n\n  return PublicJwk.fromUnknown(verificationMethod.publicKeyJwk)\n}\n"],"mappings":";;;;;;;;AAIA,MAAa,6CAA6C;;;;AAY1D,SAAgB,kBAAkB,SAAmC;AAGnE,QAAO;EACL,IAH2B,QAAQ,wBAAwB,GAAG,QAAQ,IAAI,GAAG,QAAQ,UAAU;EAI/F,MAAM;EACN,YAAY,QAAQ;EACpB,cAAc,QAAQ,UAAU,QAAQ;EACzC;;;;;AAMH,SAAgB,iBACd,oBACuE;AACvE,QAAO,mBAAmB,SAAS;;;;;AAMrC,SAAgB,+BAA+B,oBAAqE;AAClH,KAAI,CAAC,mBAAmB,aACtB,OAAM,IAAI,WACR,yDAAyD,6CAC1D;AAGH,QAAO,UAAU,YAAY,mBAAmB,aAAa"}