function base64UrlEncode()

in src/soz.ts [25:44]


function base64UrlEncode(bytes: Uint8Array) {
  let base64 = "";
  const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";

  for (let i = 0; i < bytes.length; i += 3) {
    const byte1 = bytes[i];
    const byte2 = i + 1 < bytes.length ? bytes[i + 1] : 0;
    const byte3 = i + 2 < bytes.length ? bytes[i + 2] : 0;

    const triplet = (byte1 << 16) | (byte2 << 8) | byte3;

    for (let j = 0; j < 4; j++) {
      if (i * 8 + j * 6 <= bytes.length * 8) {
        base64 += base64Chars.charAt((triplet >>> (6 * (3 - j))) & 0x3f);
      }
    }
  }

  return base64;
}