JSPM

@niyari/base32-ts

0.0.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 211
  • Score
    100M100P100Q75815F
  • License MIT

Base32 encode/decode for TypeScript.

Package Exports

  • @niyari/base32-ts
  • @niyari/base32-ts/dist/base32.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@niyari/base32-ts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

base32-ts

Base32 encode/decode for TypeScript

Install

npm i @niyari/base32-ts

Demo

https://niyari.github.io/base32-ts/demo/

Supported Browsers

ECMAScript 2020 and later. (Using BigInt within Crockford.)

  • Chrome 89+
  • Firefox 87+
  • Safari 14+
  • Edge(Chromium) 89+

Usage

RFC4648

const base32 = new Base32();
let base32_encoded = base32.encode('foobar');
// str = "MZXW6YTBOI======"
let base32_decoded = base32.decode('MZXW6YTBOI======');
// str = "foobar"

RFC4648_HEX

const base32_hex = new Base32({ variant: 'hex' });
base32_hex.encode('foobar');
// str = "CPNMUOJ1E8======"
base32_hex.decode('CPNMUOJ1E8======');
// str = "foobar"

Clockwork Base32

const base32_clockwork = new Base32({ variant: 'clockwork' }); // Clockwork (short name 'maki')
base32_clockwork.encode('foobar');
// str = "CSQPYRK1E8"
base32_clockwork.decode('CSQPYRK1E8');
// str = "foobar"

Encoding multibyte character set

base32.encode('Tofu on Fire!📛'); // (📛 = Name Badge:for Japanese preschoolers.)
// str = "KRXWM5JAN5XCARTJOJSSD4E7SONQ===="

API(Options)

new Base32([{ [variant] [,padding] [,raw] [,checksum] [,split] }]);

Variant

{ variant: '<string>' }
  • RFC4648
    • 4648
    • 3548
    • (empty)
  • RFC4648_HEX
    • hex
  • Clockwork Base32
    • clockwork
    • maki
  • Crockford
    • crockford

Encode: Set padding ( = )

{ padding: <bool> }
RFC4648 HEX Clockwork Crockford
default True True False -
const base32_np = new Base32({ padding: false }); // RFC4648 no padding
base32_np.encode('foobar');
// str = "MZXW6YTBOI"
const b32_cw_pad = new Base32({ variant: 'maki', padding: true }); // Clockwork use padding
b32_cw_pad.encode('foobar');
// str = "CSQPYRK1E8======"

Decode: Raw

Return Uint8Array object.

{ raw: <bool> }
RFC4648 HEX Clockwork Crockford
default False False False False(hexadecimal string)
const base32 = new Base32();
base32.decode('MZXW6YTBOI======'); // (default)
const base32_raw0 = new Base32({ raw: false });
base32_raw0.decode('MZXW6YTBOI======');
// Return value: String

const base32_raw1 = new Base32({ raw: true });
base32_raw1.decode('MZXW6YTBOI======');
const base32_crockford_raw = new Base32({ variant: 'crockford', raw: true });
base32_crockford_raw.decode(123456);
// Return value: Uint8Array object

Crockford

Encode an integer into a Crockford Symbol string.

Usage

const base32_crockford = new Base32({ variant: 'crockford' });
base32_crockford.encode(1234);
// str = "16J"
base32_crockford.decode('16J');
// str = "0x04d2" = 1234

In decoding, the misleading character "IiLl" is treated as 1 and "Oo" is treated as 0.

base32_crockford.decode('IiLl10Oo');
// str = "0x842108000"

API(Options)

{ variant: 'crockford' }

Checksum

{ variant: 'crockford', checksum: <bool> }
RFC4648 HEX Clockwork Crockford
default - - - False
const base32_crockford = new Base32({ variant: 'crockford', checksum: true });
base32_crockford.encode(1234);
// str = "16JD"
base32_crockford.decode('16JD');
// str = "0x04d2" = 1234

Encode: Split

{ variant: 'crockford', split: <unsigned integer> }
RFC4648 HEX Clockwork Crockford
default - - - 0
const base32_crockford = new Base32({ variant: 'crockford', split: 2 });
base32_crockford.encode(123456);
// str = "3R-J0"
const base32_crockford_s1 = new Base32({ variant: 'crockford', split: 1 });
base32_crockford_s1.encode(123456);
// str = "3-R-J-0"

See Also:

Clockwork Base32

Crockford

License

MIT