{"version":3,"file":"b64url.mjs","names":["REVERSE: Record<string, number>","r: Record<string, number>","out: number[]"],"sources":["../../src/jwe/b64url.ts"],"sourcesContent":["/**\n * base64url-no-padding encode/decode. Pure-JS so it runs under\n * Node, browsers, and React Native without atob/btoa or Buffer.\n */\n\nconst ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'\n\nexport function b64uEncode(bytes: Uint8Array): string {\n  let out = ''\n  let i = 0\n  for (; i + 3 <= bytes.length; i += 3) {\n    const a = bytes[i]\n    const b = bytes[i + 1]\n    const c = bytes[i + 2]\n    out += ALPHABET[a >> 2]\n    out += ALPHABET[((a & 0x03) << 4) | (b >> 4)]\n    out += ALPHABET[((b & 0x0f) << 2) | (c >> 6)]\n    out += ALPHABET[c & 0x3f]\n  }\n  const rem = bytes.length - i\n  if (rem === 1) {\n    const a = bytes[i]\n    out += ALPHABET[a >> 2]\n    out += ALPHABET[(a & 0x03) << 4]\n  } else if (rem === 2) {\n    const a = bytes[i]\n    const b = bytes[i + 1]\n    out += ALPHABET[a >> 2]\n    out += ALPHABET[((a & 0x03) << 4) | (b >> 4)]\n    out += ALPHABET[(b & 0x0f) << 2]\n  }\n  return out\n}\n\nconst REVERSE: Record<string, number> = (() => {\n  const r: Record<string, number> = {}\n  for (let i = 0; i < ALPHABET.length; i++) r[ALPHABET[i]] = i\n  return r\n})()\n\nexport function b64uDecode(input: string): Uint8Array {\n  // Strip padding if present + reject non-alphabet characters\n  let s = input\n  while (s.endsWith('=')) s = s.slice(0, -1)\n  const out: number[] = []\n  let buffer = 0\n  let bits = 0\n  for (const ch of s) {\n    const v = REVERSE[ch]\n    if (v === undefined) {\n      throw new Error(`invalid base64url character: ${ch}`)\n    }\n    buffer = (buffer << 6) | v\n    bits += 6\n    if (bits >= 8) {\n      bits -= 8\n      out.push((buffer >> bits) & 0xff)\n    }\n  }\n  return new Uint8Array(out)\n}\n"],"mappings":";;;;;AAKA,MAAM,WAAW;AAEjB,SAAgB,WAAW,OAA2B;CACpD,IAAI,MAAM;CACV,IAAI,IAAI;AACR,QAAO,IAAI,KAAK,MAAM,QAAQ,KAAK,GAAG;EACpC,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM,IAAI;EACpB,MAAM,IAAI,MAAM,IAAI;AACpB,SAAO,SAAS,KAAK;AACrB,SAAO,UAAW,IAAI,MAAS,IAAM,KAAK;AAC1C,SAAO,UAAW,IAAI,OAAS,IAAM,KAAK;AAC1C,SAAO,SAAS,IAAI;;CAEtB,MAAM,MAAM,MAAM,SAAS;AAC3B,KAAI,QAAQ,GAAG;EACb,MAAM,IAAI,MAAM;AAChB,SAAO,SAAS,KAAK;AACrB,SAAO,UAAU,IAAI,MAAS;YACrB,QAAQ,GAAG;EACpB,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM,IAAI;AACpB,SAAO,SAAS,KAAK;AACrB,SAAO,UAAW,IAAI,MAAS,IAAM,KAAK;AAC1C,SAAO,UAAU,IAAI,OAAS;;AAEhC,QAAO;;AAGT,MAAMA,iBAAyC;CAC7C,MAAMC,IAA4B,EAAE;AACpC,MAAK,IAAI,IAAI,GAAG,IAAI,IAAiB,IAAK,GAAE,SAAS,MAAM;AAC3D,QAAO;IACL;AAEJ,SAAgB,WAAW,OAA2B;CAEpD,IAAI,IAAI;AACR,QAAO,EAAE,SAAS,IAAI,CAAE,KAAI,EAAE,MAAM,GAAG,GAAG;CAC1C,MAAMC,MAAgB,EAAE;CACxB,IAAI,SAAS;CACb,IAAI,OAAO;AACX,MAAK,MAAM,MAAM,GAAG;EAClB,MAAM,IAAI,QAAQ;AAClB,MAAI,MAAM,OACR,OAAM,IAAI,MAAM,gCAAgC,KAAK;AAEvD,WAAU,UAAU,IAAK;AACzB,UAAQ;AACR,MAAI,QAAQ,GAAG;AACb,WAAQ;AACR,OAAI,KAAM,UAAU,OAAQ,IAAK;;;AAGrC,QAAO,IAAI,WAAW,IAAI"}