{"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,AAAQ,YACN,AAAgB,KAChB,AAAgB,WAChB;EAFgB;EACA;;CAGlB,IAAW,mBAAmB;AAC5B,SAAO,KAAK,UAAU,QAAQ,CAAC,QAAQ,SAAS,KAAK,UAAU,0CAA0C,SAAS;;CAGpH,IAAW,gBAAgB;AACzB,SAAO,KAAK,UAAU,QAAQ,CAAC,QAAQ,SAAS,KAAK,UAAU,6BAA6B,SAAS;;CAGvG,OAAc,QAAQ,KAAa;EACjC,MAAM,SAAS,SAAS,IAAI;EAC5B,MAAM,UAAU,YAAY,cAAc,OAAO,GAAG;AAKpD,SAAO,IAAI,OAAO,KAFA,UAAU,YAAY,QAAQ,CAEf;;;;;;CAOnC,IAAW,uBAAuB;AAChC,SAAO,GAAG,KAAK,IAAI;;CAGrB,OAAc,cAAc,WAAsB;AAGhD,SAAO,IAAI,OAFC,WAAW,YAAY,YAAY,UAAU,OAAO,EAAE,YAAY,OAAO,CAAC,CAAC,IAEhE,UAAU;;CAGnC,IAAW,UAAU;AACnB,SAAO,KAAK,UAAU,QAAQ;;CAGhC,IAAW,cAAc;AACvB,SAAO,kBAAkB,KAAK"}