{"version":3,"file":"pem.cjs","sources":["../../../../src/mods/pem/pem.ts"],"sourcesContent":["import { Base64 } from \"@hazae41/base64\"\n\nexport namespace PEM {\n  export const header = `-----BEGIN CERTIFICATE-----`\n  export const footer = `-----END CERTIFICATE-----`\n\n  export class MissingHeaderError extends Error {\n    readonly #class = MissingHeaderError\n    readonly name = this.#class.name\n\n    constructor() {\n      super(`Missing PEM header`)\n    }\n  }\n\n  export class MissingFooterError extends Error {\n    readonly #class = MissingFooterError\n    readonly name = this.#class.name\n\n    constructor() {\n      super(`Missing PEM footer`)\n    }\n  }\n\n  export function decodeOrThrow(text: string): Uint8Array<ArrayBuffer> {\n    text = text.replaceAll(`\\n`, ``)\n\n    if (!text.startsWith(header))\n      throw new MissingHeaderError()\n    if (!text.endsWith(footer))\n      throw new MissingFooterError()\n\n    const body = text.slice(header.length, -footer.length)\n\n    return Base64.decodePaddedOrThrow(body)\n  }\n\n  export function encodeOrThrow(bytes: Uint8Array): string {\n    let result = `${header}\\n`\n\n    let body = Base64.encodePaddedOrThrow(bytes)\n\n    while (body) {\n      result += `${body.slice(0, 64)}\\n`\n      body = body.slice(64)\n    }\n\n    result += `${footer}\\n`\n\n    return result\n  }\n}\n"],"names":["PEM","Base64"],"mappings":";;;;AAEiBA;AAAjB,CAAA,UAAiB,GAAG,EAAA;;IACL,GAAA,CAAA,MAAM,GAAG,6BAA6B;IACtC,GAAA,CAAA,MAAM,GAAG,2BAA2B;IAEjD,MAAa,kBAAmB,SAAQ,KAAK,CAAA;QAClC,MAAM,GAAG,EAAkB;AAC3B,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AAEhC,QAAA,WAAA,GAAA;YACE,KAAK,CAAC,CAAA,kBAAA,CAAoB,CAAC;QAC7B;AACD;;AAPY,IAAA,GAAA,CAAA,kBAAkB,qBAO9B;IAED,MAAa,kBAAmB,SAAQ,KAAK,CAAA;QAClC,MAAM,GAAG,EAAkB;AAC3B,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AAEhC,QAAA,WAAA,GAAA;YACE,KAAK,CAAC,CAAA,kBAAA,CAAoB,CAAC;QAC7B;AACD;;AAPY,IAAA,GAAA,CAAA,kBAAkB,qBAO9B;IAED,SAAgB,aAAa,CAAC,IAAY,EAAA;QACxC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA,EAAA,CAAI,EAAE,CAAA,CAAE,CAAC;AAEhC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAA,CAAA,MAAM,CAAC;YAC1B,MAAM,IAAI,kBAAkB,EAAE;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAA,CAAA,MAAM,CAAC;YACxB,MAAM,IAAI,kBAAkB,EAAE;AAEhC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAA,CAAA,MAAM,CAAC,MAAM,EAAE,CAAC,GAAA,CAAA,MAAM,CAAC,MAAM,CAAC;AAEtD,QAAA,OAAOC,aAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC;IACzC;AAXgB,IAAA,GAAA,CAAA,aAAa,gBAW5B;IAED,SAAgB,aAAa,CAAC,KAAiB,EAAA;AAC7C,QAAA,IAAI,MAAM,GAAG,CAAA,EAAG,GAAA,CAAA,MAAM,IAAI;QAE1B,IAAI,IAAI,GAAGA,aAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAE5C,OAAO,IAAI,EAAE;YACX,MAAM,IAAI,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,EAAA,CAAI;AAClC,YAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB;AAEA,QAAA,MAAM,IAAI,CAAA,EAAG,GAAA,CAAA,MAAM,IAAI;AAEvB,QAAA,OAAO,MAAM;IACf;AAbgB,IAAA,GAAA,CAAA,aAAa,gBAa5B;AACH,CAAC,EAjDgBD,WAAG,KAAHA,WAAG,GAAA,EAAA,CAAA,CAAA;;"}