import b32decode from 'base32-decode';
import b32encode from 'base32-encode';
import { CrockfordBase32 } from 'crockford-base32';
const uid = '01FZD39998855SS2YG4XP4T14P';
const buffer = CrockfordBase32.decode(uid);
console.log('decoded', new Uint8Array(buffer).toString());
const res = CrockfordBase32.encode(buffer);
console.log('encoded', res);
const decoded = b32decode(uid, 'Crockford');
console.log('DECODED', new Uint8Array(decoded).toString());
const encoded = b32encode(decoded, 'Crockford');
console.log('ENCODED', encoded);
decoded 1,127,218,52,165,40,65,75,156,139,208,39,108,77,4,150
encoded 01FZD39998855SS2YG4XP4T14P
DECODED 0,95,246,141,41,74,16,82,231,34,244,9,219,19,65,37
ENCODED 01FZD39998855SS2YG4XP4T14M
01FZD39998855SS2YG4XP4T14Pis a valid base32 encoded string and a base32 string should round trip betweenb32decodeandb32encodeto the same value. It doesn't. Thecrockford-base32package does the round trip correctly.Result:
Run it on stackblitz:
https://stackblitz.com/edit/js-esmrfr