{"version":3,"file":"decodeSdJwtVc.mjs","names":[],"sources":["../../../src/modules/sd-jwt-vc/decodeSdJwtVc.ts"],"sourcesContent":["import { decodeSdJwtSync, getClaimsSync } from '@sd-jwt/core'\nimport { Hasher } from '../../crypto'\nimport { ClaimFormat } from '../vc/index'\nimport type { SdJwtVcHeader, SdJwtVcPayload } from './SdJwtVcOptions'\nimport type { SdJwtVc } from './SdJwtVcService'\nimport type { SdJwtVcTypeMetadata } from './typeMetadata'\nimport { parseHolderBindingFromCredential, parseIssuerFromCredential } from './utils'\n\nexport function sdJwtVcHasher(data: string | ArrayBufferLike, alg: string) {\n  return Hasher.hash(typeof data === 'string' ? data : new Uint8Array(data), alg)\n}\n\nexport function decodeSdJwtVc<\n  Header extends SdJwtVcHeader = SdJwtVcHeader,\n  Payload extends SdJwtVcPayload = SdJwtVcPayload,\n>(compactSdJwtVc: string, typeMetadata?: SdJwtVcTypeMetadata): SdJwtVc<Header, Payload> {\n  // NOTE: we use decodeSdJwtSync so we can make this method sync\n  const { jwt, disclosures, kbJwt } = decodeSdJwtSync(compactSdJwtVc, sdJwtVcHasher)\n  const prettyClaims = getClaimsSync(jwt.payload, disclosures, sdJwtVcHasher)\n\n  return {\n    compact: compactSdJwtVc,\n    header: jwt.header as Header,\n    payload: jwt.payload as Payload,\n    issuer: parseIssuerFromCredential(jwt.header, jwt.payload),\n    holder: parseHolderBindingFromCredential(jwt.payload) ?? undefined,\n    prettyClaims: prettyClaims as Payload,\n    claimFormat: ClaimFormat.SdJwtDc,\n    encoded: compactSdJwtVc,\n    kbJwt: kbJwt\n      ? {\n          payload: kbJwt.payload as Record<string, unknown>,\n          header: kbJwt.header as Record<string, unknown>,\n        }\n      : undefined,\n    ...(typeMetadata && { typeMetadata }),\n  }\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,cAAc,MAAgC,KAAa;CACzE,OAAO,OAAO,KAAK,OAAO,SAAS,WAAW,OAAO,IAAI,WAAW,IAAI,GAAG,GAAG;AAChF;AAEA,SAAgB,cAGd,gBAAwB,cAA8D;CAEtF,MAAM,EAAE,KAAK,aAAa,UAAU,gBAAgB,gBAAgB,aAAa;CACjF,MAAM,eAAe,cAAc,IAAI,SAAS,aAAa,aAAa;CAE1E,OAAO;EACL,SAAS;EACT,QAAQ,IAAI;EACZ,SAAS,IAAI;EACb,QAAQ,0BAA0B,IAAI,QAAQ,IAAI,OAAO;EACzD,QAAQ,iCAAiC,IAAI,OAAO,KAAK,KAAA;EAC3C;EACd,aAAA;EACA,SAAS;EACT,OAAO,QACH;GACE,SAAS,MAAM;GACf,QAAQ,MAAM;EAChB,IACA,KAAA;EACJ,GAAI,gBAAgB,EAAE,aAAa;CACrC;AACF"}