: 8 - leftover\r
let bits = 0\r
let value = 0\r
+ let letter = -1\r
let index = 0\r
let output = new Uint8Array(Math.ceil((base32.length * 5) / 8))\r
for (let i = 0; i < base32.length; i++) {\r
- value = (value << 5) | ALPHABET.indexOf(base32[i])\r
+ letter = ALPHABET.indexOf(base32[i])\r
+ if (letter < 0) {\r
+ throw new RangeError('Invalid base32 character', { cause: base32[i] })\r
+ }\r
+ value = (value << 5) | letter\r
bits += 5\r
if (bits >= 8) {\r
output[index++] = (value >>> (bits + offset - 8)) & 255\r