{"version":3,"file":"W3cDataIntegrityCryptosuiteRegistry.mjs","names":[],"sources":["../../../src/modules/w3c-di/W3cDataIntegrityCryptosuiteRegistry.ts"],"sourcesContent":["import type { AgentContext } from '../../agent/context'\nimport { CredoError } from '../../error'\nimport { injectAll, injectable } from '../../plugins'\nimport { PublicJwk, type SupportedPublicJwkClass } from '../kms/jwk/PublicJwk'\nimport type { W3cDataIntegrityCryptosuiteInfo } from './cryptosuites/types'\nimport { W3cDataIntegrityCryptosuiteToken } from './cryptosuites/types'\n\n@injectable()\nexport class W3cDataIntegrityCryptosuiteRegistry {\n  private cryptosuiteMapping: W3cDataIntegrityCryptosuiteInfo[]\n\n  public constructor(\n    @injectAll(W3cDataIntegrityCryptosuiteToken) cryptosuites: Array<W3cDataIntegrityCryptosuiteInfo | 'default'>\n  ) {\n    this.cryptosuiteMapping = cryptosuites.filter(\n      (cryptosuite): cryptosuite is W3cDataIntegrityCryptosuiteInfo => cryptosuite !== 'default'\n    )\n  }\n\n  public get supportedCryptosuites(): string[] {\n    return this.cryptosuiteMapping.map((x) => x.cryptosuite)\n  }\n\n  public getByCryptosuite(cryptosuite: string) {\n    const cryptosuiteInfo = this.cryptosuiteMapping.find((x) => x.cryptosuite === cryptosuite)\n\n    if (!cryptosuiteInfo) {\n      throw new CredoError(`No Data Integrity cryptosuite registered for cryptosuite: ${cryptosuite}`)\n    }\n\n    return cryptosuiteInfo\n  }\n\n  public getAllByPublicJwkType(publicJwkType: SupportedPublicJwkClass | PublicJwk) {\n    const publicJwkClass = publicJwkType instanceof PublicJwk ? publicJwkType.JwkClass : publicJwkType\n    return this.cryptosuiteMapping.filter((x) => x.supportedPublicJwkTypes.includes(publicJwkClass))\n  }\n\n  public createByCryptosuite(agentContext: AgentContext, cryptosuite: string) {\n    const cryptosuiteInfo = this.getByCryptosuite(cryptosuite)\n    return new cryptosuiteInfo.cryptosuiteClass(agentContext)\n  }\n}\n"],"mappings":";;;;;;;;;AAQO,IAAM,sCAAN,MAAM,oCAAoC;CAG/C,YACE,cACA;EACA,KAAK,qBAAqB,aAAa,QACpC,gBAAgE,gBAAgB,SACnF;CACF;CAEA,IAAW,wBAAkC;EAC3C,OAAO,KAAK,mBAAmB,KAAK,MAAM,EAAE,WAAW;CACzD;CAEA,iBAAwB,aAAqB;EAC3C,MAAM,kBAAkB,KAAK,mBAAmB,MAAM,MAAM,EAAE,gBAAgB,WAAW;EAEzF,IAAI,CAAC,iBACH,MAAM,IAAI,WAAW,6DAA6D,aAAa;EAGjG,OAAO;CACT;CAEA,sBAA6B,eAAoD;EAC/E,MAAM,iBAAiB,yBAAyB,YAAY,cAAc,WAAW;EACrF,OAAO,KAAK,mBAAmB,QAAQ,MAAM,EAAE,wBAAwB,SAAS,cAAc,CAAC;CACjG;CAEA,oBAA2B,cAA4B,aAAqB;EAE1E,OAAO,KADiB,KAAK,iBAAiB,WACrB,EAAA,CAAE,iBAAiB,YAAY;CAC1D;AACF;;CAnCC,WAAW;CAKP,gBAAA,GAAA,UAAU,gCAAgC,CAAA"}