{"version":3,"file":"DidJwk.mjs","names":[],"sources":["../../../../../src/modules/dids/methods/jwk/DidJwk.ts"],"sourcesContent":["import { JsonEncoder } from '../../../../utils'\nimport { PublicJwk } from '../../../kms'\nimport { parseDid } from '../../domain/parse'\nimport { getDidJwkDocument } from './didJwkDidDocument'\n\nexport class DidJwk {\n  private constructor(\n    public readonly did: string,\n    public readonly publicJwk: PublicJwk\n  ) {}\n\n  public get allowsEncrypting() {\n    return this.publicJwk.toJson().use === 'enc' || this.publicJwk.supportedEncryptionKeyAgreementAlgorithms.length > 0\n  }\n\n  public get allowsSigning() {\n    return this.publicJwk.toJson().use === 'sig' || this.publicJwk.supportedSignatureAlgorithms.length > 0\n  }\n\n  public static fromDid(did: string) {\n    const parsed = parseDid(did)\n    const jwkJson = JsonEncoder.fromBase64Url(parsed.id)\n\n    // This validates the jwk\n    const publicJwk = PublicJwk.fromUnknown(jwkJson)\n\n    return new DidJwk(did, publicJwk)\n  }\n\n  /**\n   * A did:jwk DID can only have one verification method, and the verification method\n   * id will always be `<did>#0`.\n   */\n  public get verificationMethodId() {\n    return `${this.did}#0`\n  }\n\n  public static fromPublicJwk(publicJwk: PublicJwk) {\n    const did = `did:jwk:${JsonEncoder.toBase64Url(publicJwk.toJson({ includeKid: false }))}`\n\n    return new DidJwk(did, publicJwk)\n  }\n\n  public get jwkJson() {\n    return this.publicJwk.toJson()\n  }\n\n  public get didDocument() {\n    return getDidJwkDocument(this)\n  }\n}\n"],"mappings":";;;;;;;AAKA,IAAa,SAAb,MAAa,OAAO;CAClB,YACE,KACA,WACA;EAFgB,KAAA,MAAA;EACA,KAAA,YAAA;CACf;CAEH,IAAW,mBAAmB;EAC5B,OAAO,KAAK,UAAU,OAAO,CAAC,CAAC,QAAQ,SAAS,KAAK,UAAU,0CAA0C,SAAS;CACpH;CAEA,IAAW,gBAAgB;EACzB,OAAO,KAAK,UAAU,OAAO,CAAC,CAAC,QAAQ,SAAS,KAAK,UAAU,6BAA6B,SAAS;CACvG;CAEA,OAAc,QAAQ,KAAa;EACjC,MAAM,SAAS,SAAS,GAAG;EAC3B,MAAM,UAAU,YAAY,cAAc,OAAO,EAAE;EAGnD,MAAM,YAAY,UAAU,YAAY,OAAO;EAE/C,OAAO,IAAI,OAAO,KAAK,SAAS;CAClC;;;;;CAMA,IAAW,uBAAuB;EAChC,OAAO,GAAG,KAAK,IAAI;CACrB;CAEA,OAAc,cAAc,WAAsB;EAChD,MAAM,MAAM,WAAW,YAAY,YAAY,UAAU,OAAO,EAAE,YAAY,MAAM,CAAC,CAAC;EAEtF,OAAO,IAAI,OAAO,KAAK,SAAS;CAClC;CAEA,IAAW,UAAU;EACnB,OAAO,KAAK,UAAU,OAAO;CAC/B;CAEA,IAAW,cAAc;EACvB,OAAO,kBAAkB,IAAI;CAC/B;AACF"}