From bd8fe29b95ddb0dba0602ab068c41927ede9e2d1 Mon Sep 17 00:00:00 2001
From: Roger Qiu <roger.qiu@polyhack.io>
Date: Fri, 15 Oct 2021 18:40:44 +1100
Subject: [PATCH 1/3] Changing to Id derivative of Uint8Array in order to
 provide operator overloading

---
 .eslintrc                     |   2 +-
 package-lock.json             |  12 ++--
 src/Id.ts                     |  35 ++++++++++
 src/IdDeterministic.ts        |  19 ++---
 src/IdRandom.ts               |  21 +++---
 src/IdSortable.ts             |  59 ++++++++--------
 src/utils.ts                  |  86 +++++++++++++++++------
 tests/IdDeterministic.test.ts |  40 ++++++++++-
 tests/IdRandom.test.ts        |  35 +++++++++-
 tests/IdSortable.test.ts      | 128 +++++++++++++++++++++++-----------
 tests/utils.test.ts           |  38 ++++++----
 tests/utils.ts                |   9 ++-
 12 files changed, 349 insertions(+), 135 deletions(-)
 create mode 100644 src/Id.ts

diff --git a/.eslintrc b/.eslintrc
index 070ec0b..9c4183d 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -27,7 +27,6 @@
     "no-constant-condition": 0,
     "no-useless-escape": 0,
     "no-console": "error",
-    "eqeqeq": ["error", "smart"],
     "capitalized-comments": [
       "warn",
       "always",
@@ -66,6 +65,7 @@
       {
         "selector": "parameter",
         "format": ["camelCase"],
+        "leadingUnderscore": "allowSingleOrDouble",
         "trailingUnderscore": "allowSingleOrDouble"
       },
       {
diff --git a/package-lock.json b/package-lock.json
index 48d6bde..5d6765c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -906,9 +906,9 @@
       "dev": true
     },
     "@types/node": {
-      "version": "14.17.21",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.21.tgz",
-      "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==",
+      "version": "14.17.27",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.27.tgz",
+      "integrity": "sha512-94+Ahf9IcaDuJTle/2b+wzvjmutxXAEXU6O81JHblYXUg2BDG+dnBy7VxIPHKAyEEDHzCMQydTJuWvrE+Aanzw==",
       "dev": true
     },
     "@types/prettier": {
@@ -3908,9 +3908,9 @@
       "dev": true
     },
     "typescript": {
-      "version": "4.4.3",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
-      "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
+      "version": "4.4.4",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
+      "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
       "dev": true
     },
     "uglify-js": {
diff --git a/src/Id.ts b/src/Id.ts
new file mode 100644
index 0000000..ba5aa72
--- /dev/null
+++ b/src/Id.ts
@@ -0,0 +1,35 @@
+import * as utils from './utils';
+
+/**
+ * IdInternal can be used as a string primitive
+ * This type hack prevents TS from complaining
+ * See: https://github.com/microsoft/TypeScript/issues/4538
+ */
+type Id = IdInternal & number;
+
+class IdInternal extends Uint8Array {
+  public static create(): Id;
+  public static create(length: number): Id;
+  public static create(array: ArrayLike<number> | ArrayBufferLike): Id;
+  public static create(
+    buffer: ArrayBufferLike,
+    byteOffset?: number,
+    length?: number,
+  ): Id;
+  public static create(...args: Array<any>): Id {
+    // @ts-ignore: spreading into Uint8Array constructor
+    return new IdInternal(...args) as Id;
+  }
+
+  public [Symbol.toPrimitive](_hint: 'string' | 'number' | 'default'): string {
+    return utils.toString(this as unknown as Id);
+  }
+
+  public toString(): string {
+    return utils.toString(this as unknown as Id);
+  }
+}
+
+export default IdInternal;
+
+export type { Id };
diff --git a/src/IdDeterministic.ts b/src/IdDeterministic.ts
index 7fb919a..2f1c53c 100644
--- a/src/IdDeterministic.ts
+++ b/src/IdDeterministic.ts
@@ -1,4 +1,7 @@
+import type { Id } from './Id';
+
 import { v5 as uuidv5, NIL } from 'uuid';
+import IdInternal from './Id';
 
 /**
  * This produces deterministic ids based on:
@@ -8,7 +11,7 @@ import { v5 as uuidv5, NIL } from 'uuid';
  *     namespaceUUID is SHA1(NIL UUID + namespace)
  * )
  */
-class IdDeterministic implements IterableIterator<ArrayBuffer> {
+class IdDeterministic implements IterableIterator<Id> {
   protected namespaceData: Uint8Array;
 
   public constructor({
@@ -21,20 +24,20 @@ class IdDeterministic implements IterableIterator<ArrayBuffer> {
     this.namespaceData = namespaceData;
   }
 
-  public get(name?: string): ArrayBuffer {
-    return this.next(name).value as ArrayBuffer;
+  public get(name?: string): Id {
+    return this.next(name).value as Id;
   }
 
-  public next(name: string = ''): IteratorResult<ArrayBuffer, void> {
-    const idData = new ArrayBuffer(16);
-    uuidv5(name, this.namespaceData, new Uint8Array(idData));
+  public next(name: string = ''): IteratorResult<Id, void> {
+    const id = IdInternal.create(16);
+    uuidv5(name, this.namespaceData, id);
     return {
-      value: idData,
+      value: id,
       done: false,
     };
   }
 
-  public [Symbol.iterator](): IterableIterator<ArrayBuffer> {
+  public [Symbol.iterator](): IterableIterator<Id> {
     return this;
   }
 }
diff --git a/src/IdRandom.ts b/src/IdRandom.ts
index b1056a5..0687057 100644
--- a/src/IdRandom.ts
+++ b/src/IdRandom.ts
@@ -1,7 +1,10 @@
+import type { Id } from './Id';
+
 import { v4 as uuidv4 } from 'uuid';
 import * as utils from './utils';
+import IdInternal from './Id';
 
-class IdRandom implements IterableIterator<ArrayBuffer> {
+class IdRandom implements IterableIterator<Id> {
   protected randomSource: (size: number) => Uint8Array;
 
   public constructor({
@@ -12,26 +15,26 @@ class IdRandom implements IterableIterator<ArrayBuffer> {
     this.randomSource = randomSource;
   }
 
-  public get(): ArrayBuffer {
-    return this.next().value as ArrayBuffer;
+  public get(): Id {
+    return this.next().value as Id;
   }
 
-  public next(): IteratorResult<ArrayBuffer, void> {
-    const idData = new ArrayBuffer(16);
-    // Uuidv4 does mutate the random data
+  public next(): IteratorResult<Id, void> {
+    const id = IdInternal.create(16);
+    // `uuidv4` mutates the random data
     uuidv4(
       {
         rng: () => this.randomSource(16),
       },
-      new Uint8Array(idData),
+      id,
     );
     return {
-      value: idData,
+      value: id,
       done: false,
     };
   }
 
-  public [Symbol.iterator](): IterableIterator<ArrayBuffer> {
+  public [Symbol.iterator](): IterableIterator<Id> {
     return this;
   }
 }
diff --git a/src/IdSortable.ts b/src/IdSortable.ts
index 11239b7..a73672d 100644
--- a/src/IdSortable.ts
+++ b/src/IdSortable.ts
@@ -1,3 +1,6 @@
+import type { Id } from './Id';
+
+import IdInternal from './Id';
 import * as utils from './utils';
 
 /**
@@ -22,11 +25,12 @@ const msecPrecision = 3;
 const variantBits = '10';
 const versionBits = '0111';
 
-function extractTs(idBytes: ArrayBuffer): number {
+function extractTs(idBytes: Uint8Array): number {
   // Decode the timestamp from the last id
   // the timestamp bits is 48 bits or 6 bytes
-  const idTsBytes = new Uint8Array(idBytes, 0, (unixtsSize + msecSize) / 8);
-  const idTsBits = utils.bytes2bin(idTsBytes);
+  // this creates a new zero-copy view
+  const idTsBytes = idBytes.subarray(0, (unixtsSize + msecSize) / 8);
+  const idTsBits = utils.bytes2bits(idTsBytes);
   const unixtsBits = idTsBits.substr(0, unixtsSize);
   const msecBits = idTsBits.substr(unixtsSize, unixtsSize + msecSize);
   const unixts = parseInt(unixtsBits, 2);
@@ -35,23 +39,21 @@ function extractTs(idBytes: ArrayBuffer): number {
   return utils.fromFixedPoint([unixts, msec], msecSize, msecPrecision);
 }
 
-function extractSeq(idBytes: ArrayBuffer): number {
-  const idSeqBytes = new Uint8Array(
-    idBytes,
+function extractSeq(idBytes: Uint8Array): number {
+  const idSeqBytes = idBytes.subarray(
     (unixtsSize + msecSize) / 8,
     (unixtsSize + msecSize + 4 + seqSize) / 8,
   );
-  const idSeqBits = utils.bytes2bin(idSeqBytes).substr(4, seqSize);
+  const idSeqBits = utils.bytes2bits(idSeqBytes).substr(4, seqSize);
   const seq = parseInt(idSeqBits, 2);
   return seq;
 }
 
-function extractRand(idBytes: ArrayBuffer): string {
-  const idRandBytes = new Uint8Array(
-    idBytes,
+function extractRand(idBytes: Uint8Array): string {
+  const idRandBytes = idBytes.subarray(
     (unixtsSize + msecSize + 4 + seqSize) / 8,
   );
-  const idRandBits = utils.bytes2bin(idRandBytes).substr(2);
+  const idRandBits = utils.bytes2bits(idRandBytes).substr(2);
   return idRandBits;
 }
 
@@ -63,12 +65,12 @@ function extractRand(idBytes: ArrayBuffer): string {
  * 12 bits seq enables 4096 ids per millisecond
  * After 4096, it rolls over
  */
-class IdSortable implements IterableIterator<ArrayBuffer> {
+class IdSortable implements IterableIterator<Id> {
   protected randomSource: (size: number) => Uint8Array;
   protected clock: () => number;
   protected nodeBits?: string;
   protected lastTs?: [number, number];
-  protected lastId_?: ArrayBuffer;
+  protected _lastId?: Id;
   protected seqCounter: number;
 
   public constructor({
@@ -77,8 +79,8 @@ class IdSortable implements IterableIterator<ArrayBuffer> {
     timeSource = utils.timeSource,
     randomSource = utils.randomBytes,
   }: {
-    lastId?: ArrayBuffer;
-    nodeId?: ArrayBuffer;
+    lastId?: Uint8Array;
+    nodeId?: Uint8Array;
     timeSource?: (lastTs?: number) => () => number;
     randomSource?: (size: number) => Uint8Array;
   } = {}) {
@@ -96,24 +98,24 @@ class IdSortable implements IterableIterator<ArrayBuffer> {
     }
   }
 
-  get lastId(): ArrayBuffer {
-    if (this.lastId_ == null) {
+  get lastId(): Id {
+    if (this._lastId == null) {
       throw new ReferenceError('lastId has not yet been generated');
     }
-    return this.lastId_;
+    return this._lastId;
   }
 
-  public get(): ArrayBuffer {
-    return this.next().value as ArrayBuffer;
+  public get(): Id {
+    return this.next().value as Id;
   }
 
-  public next(): IteratorResult<ArrayBuffer, void> {
+  public next(): IteratorResult<Id, void> {
     // Clock returns millisecond precision
     const ts = this.clock() / 10 ** msecPrecision;
     // Converting to seconds and subseconds
     const [unixts, msec] = utils.toFixedPoint(ts, msecSize, msecPrecision);
-    const unixtsBits = utils.dec2bin(unixts, unixtsSize);
-    const msecBits = utils.dec2bin(msec, msecSize);
+    const unixtsBits = utils.dec2bits(unixts, unixtsSize);
+    const msecBits = utils.dec2bits(msec, msecSize);
     if (
       this.lastTs != null &&
       this.lastTs[0] >= unixts &&
@@ -123,7 +125,7 @@ class IdSortable implements IterableIterator<ArrayBuffer> {
     } else {
       this.seqCounter = 0;
     }
-    const seqBits = utils.dec2bin(this.seqCounter, seqSize);
+    const seqBits = utils.dec2bits(this.seqCounter, seqSize);
     // NodeBits can be written to the most significant rand portion
     let randBits: string;
     if (this.nodeBits != null) {
@@ -137,17 +139,18 @@ class IdSortable implements IterableIterator<ArrayBuffer> {
     }
     const idBits =
       unixtsBits + msecBits + versionBits + seqBits + variantBits + randBits;
-    const idBytes = utils.bin2bytes(idBits);
+    const idBytes = utils.bits2bytes(idBits);
+    const id = IdInternal.create(idBytes.buffer);
     // Save the fixed point timestamp
     this.lastTs = [unixts, msec];
-    this.lastId_ = idBytes.buffer;
+    this._lastId = id;
     return {
-      value: idBytes.buffer,
+      value: id,
       done: false,
     };
   }
 
-  public [Symbol.iterator](): IterableIterator<ArrayBuffer> {
+  public [Symbol.iterator](): IterableIterator<Id> {
     return this;
   }
 }
diff --git a/src/utils.ts b/src/utils.ts
index b3c9754..6fc54c0 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -1,8 +1,10 @@
 import type { Codec } from 'multiformats/bases/base';
+import type { Id } from './Id';
 
 import crypto from 'crypto';
 import { performance } from 'perf_hooks';
 import { bases } from 'multiformats/basics';
+import IdInternal from './Id';
 
 /**
  * Gets random bytes as Uint8Array
@@ -19,17 +21,16 @@ function randomBits(
   size: number,
 ): string {
   const bytes = randomBytes(Math.ceil(size / 8));
-  const bits = [...bytes].map((n) => dec2bin(n, 8)).join('');
+  const bits = [...bytes].map((n) => dec2bits(n, 8)).join('');
   return bits.substr(0, size);
 }
 
-function nodeBits(nodeBytes: ArrayBuffer, size: number): string {
-  const bytes = new Uint8Array(
-    nodeBytes,
+function nodeBits(nodeBytes: Uint8Array, size: number): string {
+  const bytes = nodeBytes.subarray(
     0,
     Math.min(nodeBytes.byteLength, Math.ceil(size / 8)),
   );
-  const bits = [...bytes].map((n) => dec2bin(n, 8)).join('');
+  const bits = [...bytes].map((n) => dec2bits(n, 8)).join('');
   return bits.substr(0, size);
 }
 
@@ -71,8 +72,24 @@ function* take<T>(g: Iterator<T>, l: number): Generator<T> {
   }
 }
 
-function toUUID(bytes: ArrayBuffer): string {
-  const uuidHex = bytes2hex(new Uint8Array(bytes));
+function toString(id: Uint8Array): string {
+  return String.fromCharCode(...id);
+  // Const b = Buffer.from(id.buffer, id.byteOffset, id.byteLength);
+  // return b.toString('binary');
+}
+
+function fromString(idString: string): Id | undefined {
+  const id = IdInternal.create(16);
+  for (let i = 0; i < 16; i++) {
+    id[i] = idString.charCodeAt(i);
+  }
+  return id;
+  // Const b = Buffer.from(idString, 'binary');
+  // return IdInternal.create(b.buffer, b.byteOffset, b.byteLength);
+}
+
+function toUUID(id: Uint8Array): string {
+  const uuidHex = bytes2hex(id);
   return [
     uuidHex.substr(0, 8),
     uuidHex.substr(8, 4),
@@ -82,12 +99,12 @@ function toUUID(bytes: ArrayBuffer): string {
   ].join('-');
 }
 
-function fromUUID(uuid: string): ArrayBuffer | undefined {
+function fromUUID(uuid: string): Id | undefined {
   const uuidHex = uuid.split('-').join('');
   if (uuidHex.length !== 32) {
     return;
   }
-  return hex2bytes(uuidHex).buffer;
+  return IdInternal.create(hex2bytes(uuidHex).buffer);
 }
 
 type MultibaseFormats = keyof typeof bases;
@@ -101,26 +118,47 @@ for (const k in bases) {
 /**
  * Encodes an multibase ID string
  */
-function toMultibase(idBytes: ArrayBuffer, format: MultibaseFormats): string {
+function toMultibase(id: Uint8Array, format: MultibaseFormats): string {
   const codec = bases[format];
-  return codec.encode(new Uint8Array(idBytes));
+  return codec.encode(id);
 }
 
 /**
  * Decodes a multibase encoded ID
  * Do not use this for generic multibase strings
  */
-function fromMultibase(idString: string): ArrayBuffer | undefined {
+function fromMultibase(idString: string): Id | undefined {
   const prefix = idString[0];
   const codec = basesByPrefix[prefix];
   if (codec == null) {
     return;
   }
-  const buffer = codec.decode(idString).buffer;
+  const buffer = codec.decode(idString);
   if (buffer.byteLength !== 16) {
     return;
   }
-  return buffer;
+  return IdInternal.create(buffer);
+}
+
+/**
+ * Encodes as Buffer zero-copy
+ */
+function toBuffer(id: Uint8Array): Buffer {
+  return Buffer.from(id.buffer, id.byteOffset, id.byteLength);
+}
+
+/**
+ * Decodes as Buffer zero-copy
+ */
+function fromBuffer(idBuffer: Buffer): Id | undefined {
+  if (idBuffer.byteLength !== 16) {
+    return;
+  }
+  return IdInternal.create(
+    idBuffer.buffer,
+    idBuffer.byteOffset,
+    idBuffer.byteLength,
+  );
 }
 
 /**
@@ -138,15 +176,15 @@ function hex2bytes(hex: string): Uint8Array {
 /**
  * Encodes Uint8Array to bit string
  */
-function bytes2bin(bytes: Uint8Array): string {
-  return [...bytes].map((n) => dec2bin(n, 8)).join('');
+function bytes2bits(bytes: Uint8Array): string {
+  return [...bytes].map((n) => dec2bits(n, 8)).join('');
 }
 
 /**
  * Decodes bit string to Uint8Array
  */
-function bin2bytes(bin: string): Uint8Array {
-  const numbers = strChunks(bin, 8).map((b) => parseInt(b, 2));
+function bits2bytes(bits: string): Uint8Array {
+  const numbers = strChunks(bits, 8).map((b) => parseInt(b, 2));
   return new Uint8Array(numbers);
 }
 
@@ -154,7 +192,7 @@ function bin2bytes(bin: string): Uint8Array {
  * Encodes positive base 10 numbers to bit string
  * Will output bits in big-endian order
  */
-function dec2bin(dec: number, size: number): string {
+function dec2bits(dec: number, size: number): string {
   dec %= 2 ** size;
   // `>>>` coerces dec to unsigned integer
   return (dec >>> 0).toString(2).padStart(size, '0');
@@ -239,15 +277,19 @@ export {
   nodeBits,
   timeSource,
   take,
+  toString,
+  fromString,
   toUUID,
   fromUUID,
   toMultibase,
   fromMultibase,
+  toBuffer,
+  fromBuffer,
   bytes2hex,
   hex2bytes,
-  bytes2bin,
-  bin2bytes,
-  dec2bin,
+  bytes2bits,
+  bits2bytes,
+  dec2bits,
   dec2hex,
   strChunks,
   roundPrecise,
diff --git a/tests/IdDeterministic.test.ts b/tests/IdDeterministic.test.ts
index 297cb5e..ef5e66f 100644
--- a/tests/IdDeterministic.test.ts
+++ b/tests/IdDeterministic.test.ts
@@ -2,17 +2,24 @@ import IdDeterministic from '@/IdDeterministic';
 import * as utils from '@/utils';
 
 describe('IdDeterministic', () => {
-  test('ids are ArrayBuffer', () => {
+  test('ids are Uint8Array', () => {
     const idGen = new IdDeterministic();
     const id = idGen.get();
-    const idBuf = Buffer.from(id);
-    expect(idBuf.buffer).toBe(id);
+    expect(id).toBeInstanceOf(Uint8Array);
   });
   test('ids can be generated', () => {
     const idGen = new IdDeterministic();
     const ids = [...utils.take(idGen, 10)];
     expect(ids).toHaveLength(10);
   });
+  test('ids can be encoded and decoded as binary strings', () => {
+    const idGen = new IdDeterministic();
+    const id = idGen.get();
+    const encoded = id.toString();
+    const id_ = utils.fromString(encoded);
+    expect(id_).toBeDefined();
+    expect(utils.toBuffer(id).equals(utils.toBuffer(id_!))).toBe(true);
+  });
   test('ids can be encoded and decoded with multibase', () => {
     const idGen = new IdDeterministic();
     const id = idGen.get();
@@ -73,4 +80,31 @@ describe('IdDeterministic', () => {
     const idB2 = Buffer.from(idGen2.get('b'));
     expect(idB1.equals(idB2)).toBe(true);
   });
+  test('ids can be used as record indexes', () => {
+    const idGen = new IdDeterministic({ namespace: 'foo' });
+    const ids = [
+      idGen.get('a'),
+      idGen.get('b'),
+      idGen.get('c'),
+      idGen.get('d'),
+    ];
+    let counter = 0;
+    const record = {};
+    for (const id of ids) {
+      record[id] = counter;
+      expect(record[id]).toBe(counter);
+      counter++;
+    }
+  });
+  test('ids in strings can be compared for equality', () => {
+    const idGen = new IdDeterministic({ namespace: 'foo' });
+    const id1 = idGen.get('a');
+    const id2 = idGen.get('a');
+    // Objects will be different
+    expect(id1 == id2).toBe(false);
+    // Deterministic ids are the same
+    expect(id1.toString() == id2.toString()).toBe(true);
+    expect(id1.toString()).toBe(id2 + '');
+    expect(id2.toString()).toBe(String(id1));
+  });
 });
diff --git a/tests/IdRandom.test.ts b/tests/IdRandom.test.ts
index f7936ce..b3d344d 100644
--- a/tests/IdRandom.test.ts
+++ b/tests/IdRandom.test.ts
@@ -2,17 +2,24 @@ import IdRandom from '@/IdRandom';
 import * as utils from '@/utils';
 
 describe('IdRandom', () => {
-  test('ids are ArrayBuffer', () => {
+  test('ids are Uint8Array', () => {
     const idGen = new IdRandom();
     const id = idGen.get();
-    const idBuf = Buffer.from(id);
-    expect(idBuf.buffer).toBe(id);
+    expect(id).toBeInstanceOf(Uint8Array);
   });
   test('ids can be generated', () => {
     const idGen = new IdRandom();
     const ids = [...utils.take(idGen, 10)];
     expect(ids).toHaveLength(10);
   });
+  test('ids can be encoded and decoded as binary strings', () => {
+    const idGen = new IdRandom();
+    const id = idGen.get();
+    const encoded = id.toString();
+    const id_ = utils.fromString(encoded);
+    expect(id_).toBeDefined();
+    expect(utils.toBuffer(id).equals(utils.toBuffer(id_!))).toBe(true);
+  });
   test('ids can be encoded and decoded with multibase', () => {
     const idGen = new IdRandom();
     const id = idGen.get();
@@ -38,4 +45,26 @@ describe('IdRandom', () => {
     const idSet = new Set(ids);
     expect(idSet.size).toBe(count);
   });
+  test('ids can be used as record indexes', () => {
+    const idGen = new IdRandom();
+    const ids = [...utils.take(idGen, 10)];
+    let counter = 0;
+    const record = {};
+    for (const id of ids) {
+      record[id] = counter;
+      expect(record[id]).toBe(counter);
+      counter++;
+    }
+  });
+  test('ids in strings can be compared for equality', () => {
+    const idGen = new IdRandom();
+    const id1 = idGen.get();
+    const id2 = idGen.get();
+    // Objects will be different
+    expect(id1 == id2).toBe(false);
+    // Random ids are different
+    expect(id1.toString() == id2.toString()).toBe(false);
+    expect(id1.toString()).toBe(id1 + '');
+    expect(id2.toString()).toBe(String(id2));
+  });
 });
diff --git a/tests/IdSortable.test.ts b/tests/IdSortable.test.ts
index 9a7966a..9ed4170 100644
--- a/tests/IdSortable.test.ts
+++ b/tests/IdSortable.test.ts
@@ -1,26 +1,33 @@
 import IdSortable, { extractTs, extractSeq, extractRand } from '@/IdSortable';
 import * as utils from '@/utils';
-import { sleep } from './utils';
+import { sleep, shuffle } from './utils';
 
 describe('IdSortable', () => {
-  test('ids are ArrayBuffer', () => {
+  test('ids are Uint8Array', () => {
     const idGen = new IdSortable();
     const id = idGen.get();
-    const idBuf = Buffer.from(id);
-    expect(idBuf.buffer).toBe(id);
+    expect(id).toBeInstanceOf(Uint8Array);
   });
   test('ids can be generated', () => {
     const idGen = new IdSortable();
     const ids = [...utils.take(idGen, 10)];
     expect(ids).toHaveLength(10);
   });
+  test('ids can be encoded and decoded as binary strings', () => {
+    const idGen = new IdSortable();
+    const id = idGen.get();
+    const encoded = id.toString();
+    const id_ = utils.fromString(encoded);
+    expect(id_).toBeDefined();
+    expect(utils.toBuffer(id).equals(utils.toBuffer(id_!))).toBe(true);
+  });
   test('ids can be encoded and decoded with multibase', () => {
     const idGen = new IdSortable();
     const id = idGen.get();
     const encoded = utils.toMultibase(id, 'base58btc');
     const id_ = utils.fromMultibase(encoded);
     expect(id_).toBeDefined();
-    expect(Buffer.from(id).equals(Buffer.from(id_!))).toBe(true);
+    expect(utils.toBuffer(id).equals(utils.toBuffer(id_!))).toBe(true);
   });
   test('ids can be encoded and decoded with uuid', () => {
     const idGen = new IdSortable();
@@ -28,38 +35,46 @@ describe('IdSortable', () => {
     const uuid = utils.toUUID(id);
     const id_ = utils.fromUUID(uuid);
     expect(id_).toBeDefined();
-    expect(Buffer.from(id).equals(Buffer.from(id_!))).toBe(true);
+    expect(utils.toBuffer(id).equals(utils.toBuffer(id_!))).toBe(true);
   });
   test('maintains the last id generated', () => {
     const idGen = new IdSortable();
     idGen.get();
     idGen.get();
-    const id = Buffer.from(idGen.get());
-    const id_ = Buffer.from(idGen.lastId);
+    const id = utils.toBuffer(idGen.get());
+    const id_ = utils.toBuffer(idGen.lastId);
     expect(id.equals(id_)).toBe(true);
   });
-  test('ids are lexically sortable', () => {
+  test('ids in bytes are lexically sortable', () => {
     const id = new IdSortable();
-    const i1 = Buffer.from(id.get());
-    const i2 = Buffer.from(id.get());
-    const i3 = Buffer.from(id.get());
+    const i1 = utils.toBuffer(id.get());
+    const i2 = utils.toBuffer(id.get());
+    const i3 = utils.toBuffer(id.get());
     const buffers = [i3, i1, i2];
     // Comparison is done on the bytes in lexicographic order
     buffers.sort(Buffer.compare);
     expect(buffers).toStrictEqual([i1, i2, i3]);
   });
-  test('ids are lexically sortable with time delay', async () => {
+  test('ids in bytes are lexically sortable with time delay', async () => {
     const id = new IdSortable();
-    const i1 = Buffer.from(id.get());
+    const i1 = utils.toBuffer(id.get());
     await sleep(250);
-    const i2 = Buffer.from(id.get());
+    const i2 = utils.toBuffer(id.get());
     await sleep(500);
-    const i3 = Buffer.from(id.get());
+    const i3 = utils.toBuffer(id.get());
     const buffers = [i3, i1, i2];
     // Comparison is done on the bytes in lexicographic order
     buffers.sort(Buffer.compare);
     expect(buffers).toStrictEqual([i1, i2, i3]);
   });
+  test('encoded id strings are lexically sortable', () => {
+    const idGen = new IdSortable();
+    const idStrings = [...utils.take(idGen, 100)].map((id) => id.toString());
+    const idStringsShuffled = idStrings.slice();
+    shuffle(idStringsShuffled);
+    idStringsShuffled.sort();
+    expect(idStringsShuffled).toStrictEqual(idStrings);
+  });
   test('encoded uuids are lexically sortable', () => {
     const id = new IdSortable();
     const i1 = utils.toUUID(id.get());
@@ -86,9 +101,9 @@ describe('IdSortable', () => {
         return () => 0;
       },
     });
-    const i1 = Buffer.from(id.get());
-    const i2 = Buffer.from(id.get());
-    const i3 = Buffer.from(id.get());
+    const i1 = utils.toBuffer(id.get());
+    const i2 = utils.toBuffer(id.get());
+    const i3 = utils.toBuffer(id.get());
     // They should not equal
     expect(i1.equals(i2)).toBe(false);
     expect(i2.equals(i3)).toBe(false);
@@ -96,12 +111,12 @@ describe('IdSortable', () => {
     // Comparison is done on the bytes in lexicographic order
     buffers.sort(Buffer.compare);
     expect(buffers).toStrictEqual([i1, i2, i3]);
-    expect(extractTs(i1.buffer)).toBe(0);
-    expect(extractTs(i2.buffer)).toBe(0);
-    expect(extractTs(i3.buffer)).toBe(0);
-    expect(extractSeq(i1.buffer)).toBe(0);
-    expect(extractSeq(i2.buffer)).toBe(1);
-    expect(extractSeq(i3.buffer)).toBe(2);
+    expect(extractTs(i1)).toBe(0);
+    expect(extractTs(i2)).toBe(0);
+    expect(extractTs(i3)).toBe(0);
+    expect(extractSeq(i1)).toBe(0);
+    expect(extractSeq(i2)).toBe(1);
+    expect(extractSeq(i3)).toBe(2);
   });
   test('ids are monotonic over process restarts', () => {
     const id = new IdSortable({
@@ -110,39 +125,68 @@ describe('IdSortable', () => {
         return () => Date.now() + 100000;
       },
     });
-    const lastId = Buffer.from(id.get());
+    const lastId = utils.toBuffer(id.get());
     // Pass a future last id
     // the default time source should get an older timestamp
-    const id_ = new IdSortable({ lastId: lastId.buffer });
-    const currId = Buffer.from(id_.get());
+    const id_ = new IdSortable({ lastId });
+    const currId = utils.toBuffer(id_.get());
     expect(lastId.equals(currId)).toBe(false);
     const buffers = [currId, lastId];
     buffers.sort(Buffer.compare);
     expect(buffers).toStrictEqual([lastId, currId]);
     // Monotonicity is not enforced by seq
     // but rather the timestamp
-    expect(extractSeq(lastId.buffer)).toBe(0);
-    expect(extractSeq(currId.buffer)).toBe(0);
+    expect(extractSeq(lastId)).toBe(0);
+    expect(extractSeq(currId)).toBe(0);
   });
   test('ids can have machine id starting from the MSB of rand-section', () => {
     const nodeId = Buffer.from('abcd', 'utf-8');
-    const id = new IdSortable({
-      nodeId: nodeId.buffer.slice(
-        nodeId.byteOffset,
-        nodeId.byteOffset + nodeId.byteLength,
-      ),
-    });
-    const i1 = Buffer.from(id.get());
-    const i2 = Buffer.from(id.get());
-    const i3 = Buffer.from(id.get());
+    const id = new IdSortable({ nodeId });
+    const i1 = utils.toBuffer(id.get());
+    const i2 = utils.toBuffer(id.get());
+    const i3 = utils.toBuffer(id.get());
     const buffers = [i3, i1, i2];
     // Comparison is done on the bytes in lexicographic order
     buffers.sort(Buffer.compare);
     expect(buffers).toStrictEqual([i1, i2, i3]);
-    const randBits = extractRand(i1.buffer);
+    const randBits = extractRand(i1);
     expect(randBits.length).toBe(62);
-    const randBytes = utils.bin2bytes(randBits);
+    const randBytes = utils.bits2bytes(randBits);
     const nodeBytes = randBytes.slice(0, 4);
-    expect(Buffer.from(nodeBytes.buffer).equals(nodeId)).toBe(true);
+    expect(utils.toBuffer(nodeBytes).equals(nodeId)).toBe(true);
+  });
+  test('ids can be used as record indexes', () => {
+    const idGen = new IdSortable();
+    const ids = [...utils.take(idGen, 10)];
+    let counter = 0;
+    const record = {};
+    for (const id of ids) {
+      record[id] = counter;
+      expect(record[id]).toBe(counter);
+      counter++;
+    }
+  });
+  test('ids can use comparison operators', () => {
+    const idGen = new IdSortable();
+    let idToCompare = idGen.get();
+    const ids = [...utils.take(idGen, 100)];
+    for (const id of ids) {
+      expect(idToCompare < id).toBe(true);
+      expect(idToCompare <= id).toBe(true);
+      expect(idToCompare > id).toBe(false);
+      expect(idToCompare >= id).toBe(false);
+      idToCompare = id;
+    }
+  });
+  test('ids in strings can be compared for equality', () => {
+    const idGen = new IdSortable();
+    const id1 = idGen.get();
+    const id2 = idGen.get();
+    // Objects will be different
+    expect(id1 == id2).toBe(false);
+    // Sortable ids are different
+    expect(id1.toString() == id2.toString()).toBe(false);
+    expect(id1.toString()).toBe(id1 + '');
+    expect(id2.toString()).toBe(String(id2));
   });
 });
diff --git a/tests/utils.test.ts b/tests/utils.test.ts
index ce8d5a1..6a098c7 100644
--- a/tests/utils.test.ts
+++ b/tests/utils.test.ts
@@ -23,15 +23,15 @@ describe('utils', () => {
   });
   test('encoding and decoding bytes and bit strings', () => {
     // 128 size bit string
-    const bin =
+    const bits =
       '00000110000101100010100100001100101001110100010001110000000000001011000111101000111001101100100010110010011110110110110100110011';
     const bytes = new Uint8Array([
       6, 22, 41, 12, 167, 68, 112, 0, 177, 232, 230, 200, 178, 123, 109, 51,
     ]);
-    expect(utils.bin2bytes(bin)).toStrictEqual(bytes);
-    expect(utils.bytes2bin(bytes)).toBe(bin);
-    expect(utils.bytes2bin(utils.bin2bytes(bin))).toBe(bin);
-    expect(utils.bin2bytes(utils.bytes2bin(bytes))).toStrictEqual(bytes);
+    expect(utils.bits2bytes(bits)).toStrictEqual(bytes);
+    expect(utils.bytes2bits(bytes)).toBe(bits);
+    expect(utils.bytes2bits(utils.bits2bytes(bits))).toBe(bits);
+    expect(utils.bits2bytes(utils.bytes2bits(bytes))).toStrictEqual(bytes);
   });
   test('encoding and decoding bytes and hex strings', () => {
     // Uuid hex
@@ -45,13 +45,13 @@ describe('utils', () => {
     expect(utils.hex2bytes(utils.bytes2hex(bytes))).toStrictEqual(bytes);
   });
   test('encoding decimal to bit strings', () => {
-    expect(utils.dec2bin(0, 8)).toBe('00000000');
-    expect(utils.dec2bin(1, 8)).toBe('00000001');
-    expect(utils.dec2bin(2, 8)).toBe('00000010');
-    expect(utils.dec2bin(255, 8)).toBe('11111111');
+    expect(utils.dec2bits(0, 8)).toBe('00000000');
+    expect(utils.dec2bits(1, 8)).toBe('00000001');
+    expect(utils.dec2bits(2, 8)).toBe('00000010');
+    expect(utils.dec2bits(255, 8)).toBe('11111111');
     // This should roll back to the beginning
-    expect(utils.dec2bin(256, 8)).toBe('00000000');
-    expect(utils.dec2bin(257, 8)).toBe('00000001');
+    expect(utils.dec2bits(256, 8)).toBe('00000000');
+    expect(utils.dec2bits(257, 8)).toBe('00000001');
   });
   test('encoding decimal to hex strings', () => {
     expect(utils.dec2hex(0, 2)).toBe('00');
@@ -103,7 +103,7 @@ describe('utils', () => {
     const bytes = new Uint8Array([
       123, 124, 125, 126, 127, 128, 129, 130, 123, 124, 125, 126, 127, 128, 129,
       130,
-    ]).buffer;
+    ]);
     const encoded = utils.toMultibase(bytes, 'base58btc');
     expect(encoded).toBe('zGFRLUyEszBgw9bRXTeFvu7');
     const bytes_ = utils.fromMultibase(encoded);
@@ -113,4 +113,18 @@ describe('utils', () => {
     expect(utils.fromMultibase('aAQ3')).toBeUndefined();
     expect(utils.fromMultibase('aAQ333333333333333AAAAAA')).toBeUndefined();
   });
+  test('buffer encoding and decoding is zero copy', () => {
+    const bytes = new Uint8Array([
+      123, 124, 125, 126, 127, 128, 129, 130, 123, 124, 125, 126, 127, 128, 129,
+      130,
+    ]);
+    const buffer = utils.toBuffer(bytes);
+    buffer[0] = 122;
+    expect(bytes[0]).toBe(122);
+    const bytes_ = utils.fromBuffer(buffer);
+    expect(bytes_).toBeDefined();
+    bytes_![0] = 121;
+    expect(bytes[0]).toBe(121);
+    expect(buffer[0]).toBe(121);
+  });
 });
diff --git a/tests/utils.ts b/tests/utils.ts
index f9d4b34..48160d7 100644
--- a/tests/utils.ts
+++ b/tests/utils.ts
@@ -2,4 +2,11 @@ async function sleep(ms: number) {
   return await new Promise((r) => setTimeout(r, ms));
 }
 
-export { sleep };
+function shuffle(arr: Array<any>): void {
+  for (let i = arr.length - 1; i > 0; i--) {
+    const j = Math.floor(Math.random() * (i + 1));
+    [arr[i], arr[j]] = [arr[j], arr[i]];
+  }
+}
+
+export { sleep, shuffle };

From 3d425fa43c1bd091ea5a373cffb9f9cd0b60d7af Mon Sep 17 00:00:00 2001
From: Roger Qiu <roger.qiu@polyhack.io>
Date: Sun, 17 Oct 2021 16:33:56 +1100
Subject: [PATCH 2/3] Updated README to include comparison and string encoding
 and record index usage

---
 README.md | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index ff81a3f..1eb6628 100644
--- a/README.md
+++ b/README.md
@@ -24,10 +24,20 @@ const deteGen = new IdDeterministic({
 
 const deteId1 = deteGen.get();
 const deteId2 = deteGen.get('bar');
+const deteId3 = deteGen.get('bar');
 
 console.log(utils.toUUID(deteId1));
 console.log(utils.toMultibase(deteId2, 'base58btc'));
 
+// Will be cast to string index
+const recordOfDeteIds = {};
+recordOfDeteIds[deteId1] = 1;
+recordOfDeteIds[deteId2] = 1;
+console.log(recordOfDeteIds[deteId1]);
+
+// Can be checked for equality
+console.log(deteId2.toString() === deteId3.toString());
+
 // Strictly monotonic sortable ids, equivalent to UUIDv7
 
 let lastId = new Uint8Array(
@@ -35,7 +45,7 @@ let lastId = new Uint8Array(
     0x06, 0x16, 0x3e, 0xf5, 0x6d, 0x8d, 0x70, 0x00,
     0x87, 0xc4, 0x65, 0xd5, 0x21, 0x9b, 0x03, 0xd4,
   ]
-).buffer;
+);
 
 const sortGen = new IdSortable({ lastId });
 
@@ -44,9 +54,9 @@ const sortId2 = sortGen.get();
 const sortId3 = sortGen.get();
 
 const sortIds = [
-  Buffer.from(sortId2),
-  Buffer.from(sortId3),
-  Buffer.from(sortId1),
+  utils.toBuffer(sortId2),
+  utils.toBuffer(sortId3),
+  utils.toBuffer(sortId1),
 ];
 
 sortIds.sort(Buffer.compare);
@@ -55,6 +65,10 @@ console.log(sortIds);
 
 // Save the last id to ensure strict monotonicity across process restarts
 lastId = sortGen.lastId;
+
+// Ids can also be compared in order
+console.log(sortId1 < sortId2);
+console.log(sortId2 < sortId3);
 ```
 
 ## Installation

From 297ebf8acb25d695149caa4ae952756b0ad640d0 Mon Sep 17 00:00:00 2001
From: Roger Qiu <roger.qiu@polyhack.io>
Date: Sun, 17 Oct 2021 16:35:07 +1100
Subject: [PATCH 3/3] Updated docs

---
 docs/assets/js/search.js                  |    2 +-
 docs/classes/Id.default.html              | 2210 +++++++++++++++++++++
 docs/classes/IdDeterministic.default.html |   27 +-
 docs/classes/IdRandom.default.html        |   29 +-
 docs/classes/IdSortable.default.html      |   79 +-
 docs/index.html                           |   25 +-
 docs/modules.html                         |    4 +
 docs/modules/Id.html                      |  168 ++
 docs/modules/IdDeterministic.html         |    3 +
 docs/modules/IdRandom.html                |    3 +
 docs/modules/IdSortable.html              |   21 +-
 docs/modules/index.html                   |    3 +
 docs/modules/utils.html                   |  213 +-
 13 files changed, 2664 insertions(+), 123 deletions(-)
 create mode 100644 docs/classes/Id.default.html
 create mode 100644 docs/modules/Id.html

diff --git a/docs/assets/js/search.js b/docs/assets/js/search.js
index 1aeb559..05d6a29 100644
--- a/docs/assets/js/search.js
+++ b/docs/assets/js/search.js
@@ -1 +1 @@
-window.searchData = {"kinds":{"1":"Module","64":"Function","128":"Class","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","4194304":"Type alias","16777216":"Reference"},"rows":[{"id":0,"kind":1,"name":"IdDeterministic","url":"modules/IdDeterministic.html","classes":"tsd-kind-module"},{"id":1,"kind":128,"name":"default","url":"classes/IdDeterministic.default.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"IdDeterministic"},{"id":2,"kind":512,"name":"constructor","url":"classes/IdDeterministic.default.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":3,"kind":1024,"name":"namespaceData","url":"classes/IdDeterministic.default.html#namespaceData","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdDeterministic.default"},{"id":4,"kind":2048,"name":"get","url":"classes/IdDeterministic.default.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":5,"kind":2048,"name":"next","url":"classes/IdDeterministic.default.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":6,"kind":2048,"name":"[iterator]","url":"classes/IdDeterministic.default.html#_iterator_","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":7,"kind":1,"name":"IdRandom","url":"modules/IdRandom.html","classes":"tsd-kind-module"},{"id":8,"kind":128,"name":"default","url":"classes/IdRandom.default.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"IdRandom"},{"id":9,"kind":512,"name":"constructor","url":"classes/IdRandom.default.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"IdRandom.default"},{"id":10,"kind":1024,"name":"randomSource","url":"classes/IdRandom.default.html#randomSource","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdRandom.default"},{"id":11,"kind":65536,"name":"__type","url":"classes/IdRandom.default.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-class","parent":"IdRandom.default"},{"id":12,"kind":2048,"name":"get","url":"classes/IdRandom.default.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdRandom.default"},{"id":13,"kind":2048,"name":"next","url":"classes/IdRandom.default.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdRandom.default"},{"id":14,"kind":2048,"name":"[iterator]","url":"classes/IdRandom.default.html#_iterator_","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdRandom.default"},{"id":15,"kind":1,"name":"IdSortable","url":"modules/IdSortable.html","classes":"tsd-kind-module"},{"id":16,"kind":128,"name":"default","url":"classes/IdSortable.default.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"IdSortable"},{"id":17,"kind":512,"name":"constructor","url":"classes/IdSortable.default.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"IdSortable.default"},{"id":18,"kind":1024,"name":"randomSource","url":"classes/IdSortable.default.html#randomSource","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":19,"kind":65536,"name":"__type","url":"classes/IdSortable.default.html#__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-class","parent":"IdSortable.default"},{"id":20,"kind":1024,"name":"clock","url":"classes/IdSortable.default.html#clock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":21,"kind":65536,"name":"__type","url":"classes/IdSortable.default.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-class","parent":"IdSortable.default"},{"id":22,"kind":1024,"name":"nodeBits","url":"classes/IdSortable.default.html#nodeBits","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":23,"kind":1024,"name":"lastTs","url":"classes/IdSortable.default.html#lastTs","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":24,"kind":1024,"name":"lastId_","url":"classes/IdSortable.default.html#lastId_","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":25,"kind":1024,"name":"seqCounter","url":"classes/IdSortable.default.html#seqCounter","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":26,"kind":262144,"name":"lastId","url":"classes/IdSortable.default.html#lastId","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"IdSortable.default"},{"id":27,"kind":2048,"name":"get","url":"classes/IdSortable.default.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdSortable.default"},{"id":28,"kind":2048,"name":"next","url":"classes/IdSortable.default.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdSortable.default"},{"id":29,"kind":2048,"name":"[iterator]","url":"classes/IdSortable.default.html#_iterator_","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdSortable.default"},{"id":30,"kind":64,"name":"extractTs","url":"modules/IdSortable.html#extractTs","classes":"tsd-kind-function tsd-parent-kind-module","parent":"IdSortable"},{"id":31,"kind":64,"name":"extractSeq","url":"modules/IdSortable.html#extractSeq","classes":"tsd-kind-function tsd-parent-kind-module","parent":"IdSortable"},{"id":32,"kind":64,"name":"extractRand","url":"modules/IdSortable.html#extractRand","classes":"tsd-kind-function tsd-parent-kind-module","parent":"IdSortable"},{"id":33,"kind":1,"name":"index","url":"modules/index.html","classes":"tsd-kind-module"},{"id":34,"kind":1,"name":"utils","url":"modules/utils.html","classes":"tsd-kind-module"},{"id":35,"kind":64,"name":"randomBytes","url":"modules/utils.html#randomBytes","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":36,"kind":64,"name":"randomBits","url":"modules/utils.html#randomBits","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":37,"kind":64,"name":"nodeBits","url":"modules/utils.html#nodeBits","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":38,"kind":64,"name":"timeSource","url":"modules/utils.html#timeSource","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":39,"kind":64,"name":"take","url":"modules/utils.html#take","classes":"tsd-kind-function tsd-parent-kind-module tsd-has-type-parameter","parent":"utils"},{"id":40,"kind":64,"name":"toUUID","url":"modules/utils.html#toUUID","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":41,"kind":64,"name":"fromUUID","url":"modules/utils.html#fromUUID","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":42,"kind":64,"name":"toMultibase","url":"modules/utils.html#toMultibase","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":43,"kind":64,"name":"fromMultibase","url":"modules/utils.html#fromMultibase","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":44,"kind":64,"name":"bytes2hex","url":"modules/utils.html#bytes2hex","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":45,"kind":64,"name":"hex2bytes","url":"modules/utils.html#hex2bytes","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":46,"kind":64,"name":"bytes2bin","url":"modules/utils.html#bytes2bin","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":47,"kind":64,"name":"bin2bytes","url":"modules/utils.html#bin2bytes","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":48,"kind":64,"name":"dec2bin","url":"modules/utils.html#dec2bin","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":49,"kind":64,"name":"dec2hex","url":"modules/utils.html#dec2hex","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":50,"kind":64,"name":"strChunks","url":"modules/utils.html#strChunks","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":51,"kind":64,"name":"roundPrecise","url":"modules/utils.html#roundPrecise","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":52,"kind":64,"name":"toFixedPoint","url":"modules/utils.html#toFixedPoint","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":53,"kind":64,"name":"fromFixedPoint","url":"modules/utils.html#fromFixedPoint","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":54,"kind":4194304,"name":"MultibaseFormats","url":"modules/utils.html#MultibaseFormats","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"utils"},{"id":55,"kind":16777216,"name":"IdRandom","url":"modules/index.html#IdRandom","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"},{"id":56,"kind":16777216,"name":"IdDeterministic","url":"modules/index.html#IdDeterministic","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"},{"id":57,"kind":16777216,"name":"IdSortable","url":"modules/index.html#IdSortable","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"},{"id":58,"kind":16777216,"name":"utils","url":"modules/index.html#utils","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,28.416]],["parent/0",[]],["name/1",[1,28.416]],["parent/1",[0,2.738]],["name/2",[2,28.416]],["parent/2",[3,2.302]],["name/3",[4,36.889]],["parent/3",[3,2.302]],["name/4",[5,28.416]],["parent/4",[3,2.302]],["name/5",[6,28.416]],["parent/5",[3,2.302]],["name/6",[7,28.416]],["parent/6",[3,2.302]],["name/7",[8,28.416]],["parent/7",[]],["name/8",[1,28.416]],["parent/8",[8,2.738]],["name/9",[2,28.416]],["parent/9",[9,2.141]],["name/10",[10,31.781]],["parent/10",[9,2.141]],["name/11",[11,28.416]],["parent/11",[9,2.141]],["name/12",[5,28.416]],["parent/12",[9,2.141]],["name/13",[6,28.416]],["parent/13",[9,2.141]],["name/14",[7,28.416]],["parent/14",[9,2.141]],["name/15",[12,22.225]],["parent/15",[]],["name/16",[1,28.416]],["parent/16",[12,2.141]],["name/17",[2,28.416]],["parent/17",[13,1.437]],["name/18",[10,31.781]],["parent/18",[13,1.437]],["name/19",[11,28.416]],["parent/19",[13,1.437]],["name/20",[14,36.889]],["parent/20",[13,1.437]],["name/21",[11,28.416]],["parent/21",[13,1.437]],["name/22",[15,31.781]],["parent/22",[13,1.437]],["name/23",[16,36.889]],["parent/23",[13,1.437]],["name/24",[17,36.889]],["parent/24",[13,1.437]],["name/25",[18,36.889]],["parent/25",[13,1.437]],["name/26",[19,36.889]],["parent/26",[13,1.437]],["name/27",[5,28.416]],["parent/27",[13,1.437]],["name/28",[6,28.416]],["parent/28",[13,1.437]],["name/29",[7,28.416]],["parent/29",[13,1.437]],["name/30",[20,36.889]],["parent/30",[12,2.141]],["name/31",[21,36.889]],["parent/31",[12,2.141]],["name/32",[22,36.889]],["parent/32",[12,2.141]],["name/33",[23,23.896]],["parent/33",[]],["name/34",[24,9.808]],["parent/34",[]],["name/35",[25,36.889]],["parent/35",[24,0.945]],["name/36",[26,36.889]],["parent/36",[24,0.945]],["name/37",[15,31.781]],["parent/37",[24,0.945]],["name/38",[27,36.889]],["parent/38",[24,0.945]],["name/39",[28,36.889]],["parent/39",[24,0.945]],["name/40",[29,36.889]],["parent/40",[24,0.945]],["name/41",[30,36.889]],["parent/41",[24,0.945]],["name/42",[31,36.889]],["parent/42",[24,0.945]],["name/43",[32,36.889]],["parent/43",[24,0.945]],["name/44",[33,36.889]],["parent/44",[24,0.945]],["name/45",[34,36.889]],["parent/45",[24,0.945]],["name/46",[35,36.889]],["parent/46",[24,0.945]],["name/47",[36,36.889]],["parent/47",[24,0.945]],["name/48",[37,36.889]],["parent/48",[24,0.945]],["name/49",[38,36.889]],["parent/49",[24,0.945]],["name/50",[39,36.889]],["parent/50",[24,0.945]],["name/51",[40,36.889]],["parent/51",[24,0.945]],["name/52",[41,36.889]],["parent/52",[24,0.945]],["name/53",[42,36.889]],["parent/53",[24,0.945]],["name/54",[43,36.889]],["parent/54",[24,0.945]],["name/55",[8,28.416]],["parent/55",[23,2.302]],["name/56",[0,28.416]],["parent/56",[23,2.302]],["name/57",[12,22.225]],["parent/57",[23,2.302]],["name/58",[24,9.808]],["parent/58",[23,2.302]]],"invertedIndex":[["__type",{"_index":11,"name":{"11":{},"19":{},"21":{}},"parent":{}}],["bin2bytes",{"_index":36,"name":{"47":{}},"parent":{}}],["bytes2bin",{"_index":35,"name":{"46":{}},"parent":{}}],["bytes2hex",{"_index":33,"name":{"44":{}},"parent":{}}],["clock",{"_index":14,"name":{"20":{}},"parent":{}}],["constructor",{"_index":2,"name":{"2":{},"9":{},"17":{}},"parent":{}}],["dec2bin",{"_index":37,"name":{"48":{}},"parent":{}}],["dec2hex",{"_index":38,"name":{"49":{}},"parent":{}}],["default",{"_index":1,"name":{"1":{},"8":{},"16":{}},"parent":{}}],["extractrand",{"_index":22,"name":{"32":{}},"parent":{}}],["extractseq",{"_index":21,"name":{"31":{}},"parent":{}}],["extractts",{"_index":20,"name":{"30":{}},"parent":{}}],["fromfixedpoint",{"_index":42,"name":{"53":{}},"parent":{}}],["frommultibase",{"_index":32,"name":{"43":{}},"parent":{}}],["fromuuid",{"_index":30,"name":{"41":{}},"parent":{}}],["get",{"_index":5,"name":{"4":{},"12":{},"27":{}},"parent":{}}],["hex2bytes",{"_index":34,"name":{"45":{}},"parent":{}}],["iddeterministic",{"_index":0,"name":{"0":{},"56":{}},"parent":{"1":{}}}],["iddeterministic.default",{"_index":3,"name":{},"parent":{"2":{},"3":{},"4":{},"5":{},"6":{}}}],["idrandom",{"_index":8,"name":{"7":{},"55":{}},"parent":{"8":{}}}],["idrandom.default",{"_index":9,"name":{},"parent":{"9":{},"10":{},"11":{},"12":{},"13":{},"14":{}}}],["idsortable",{"_index":12,"name":{"15":{},"57":{}},"parent":{"16":{},"30":{},"31":{},"32":{}}}],["idsortable.default",{"_index":13,"name":{},"parent":{"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{}}}],["index",{"_index":23,"name":{"33":{}},"parent":{"55":{},"56":{},"57":{},"58":{}}}],["iterator",{"_index":7,"name":{"6":{},"14":{},"29":{}},"parent":{}}],["lastid",{"_index":19,"name":{"26":{}},"parent":{}}],["lastid_",{"_index":17,"name":{"24":{}},"parent":{}}],["lastts",{"_index":16,"name":{"23":{}},"parent":{}}],["multibaseformats",{"_index":43,"name":{"54":{}},"parent":{}}],["namespacedata",{"_index":4,"name":{"3":{}},"parent":{}}],["next",{"_index":6,"name":{"5":{},"13":{},"28":{}},"parent":{}}],["nodebits",{"_index":15,"name":{"22":{},"37":{}},"parent":{}}],["randombits",{"_index":26,"name":{"36":{}},"parent":{}}],["randombytes",{"_index":25,"name":{"35":{}},"parent":{}}],["randomsource",{"_index":10,"name":{"10":{},"18":{}},"parent":{}}],["roundprecise",{"_index":40,"name":{"51":{}},"parent":{}}],["seqcounter",{"_index":18,"name":{"25":{}},"parent":{}}],["strchunks",{"_index":39,"name":{"50":{}},"parent":{}}],["take",{"_index":28,"name":{"39":{}},"parent":{}}],["timesource",{"_index":27,"name":{"38":{}},"parent":{}}],["tofixedpoint",{"_index":41,"name":{"52":{}},"parent":{}}],["tomultibase",{"_index":31,"name":{"42":{}},"parent":{}}],["touuid",{"_index":29,"name":{"40":{}},"parent":{}}],["utils",{"_index":24,"name":{"34":{},"58":{}},"parent":{"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{}}}]],"pipeline":[]}}
\ No newline at end of file
+window.searchData = {"kinds":{"1":"Module","64":"Function","128":"Class","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","4194304":"Type alias","16777216":"Reference"},"rows":[{"id":0,"kind":1,"name":"Id","url":"modules/Id.html","classes":"tsd-kind-module"},{"id":1,"kind":128,"name":"default","url":"classes/Id.default.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"Id"},{"id":2,"kind":2048,"name":"create","url":"classes/Id.default.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Id.default"},{"id":3,"kind":512,"name":"constructor","url":"classes/Id.default.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited","parent":"Id.default"},{"id":4,"kind":2048,"name":"toString","url":"classes/Id.default.html#toString","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Id.default"},{"id":5,"kind":2048,"name":"[toPrimitive]","url":"classes/Id.default.html#_toPrimitive_","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Id.default"},{"id":6,"kind":4194304,"name":"Id","url":"modules/Id.html#Id-1","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"Id"},{"id":7,"kind":1,"name":"IdDeterministic","url":"modules/IdDeterministic.html","classes":"tsd-kind-module"},{"id":8,"kind":128,"name":"default","url":"classes/IdDeterministic.default.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"IdDeterministic"},{"id":9,"kind":512,"name":"constructor","url":"classes/IdDeterministic.default.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":10,"kind":1024,"name":"namespaceData","url":"classes/IdDeterministic.default.html#namespaceData","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdDeterministic.default"},{"id":11,"kind":2048,"name":"get","url":"classes/IdDeterministic.default.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":12,"kind":2048,"name":"next","url":"classes/IdDeterministic.default.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":13,"kind":2048,"name":"[iterator]","url":"classes/IdDeterministic.default.html#_iterator_","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdDeterministic.default"},{"id":14,"kind":1,"name":"IdRandom","url":"modules/IdRandom.html","classes":"tsd-kind-module"},{"id":15,"kind":128,"name":"default","url":"classes/IdRandom.default.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"IdRandom"},{"id":16,"kind":512,"name":"constructor","url":"classes/IdRandom.default.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"IdRandom.default"},{"id":17,"kind":1024,"name":"randomSource","url":"classes/IdRandom.default.html#randomSource","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdRandom.default"},{"id":18,"kind":65536,"name":"__type","url":"classes/IdRandom.default.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-class","parent":"IdRandom.default"},{"id":19,"kind":2048,"name":"get","url":"classes/IdRandom.default.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdRandom.default"},{"id":20,"kind":2048,"name":"next","url":"classes/IdRandom.default.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdRandom.default"},{"id":21,"kind":2048,"name":"[iterator]","url":"classes/IdRandom.default.html#_iterator_","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdRandom.default"},{"id":22,"kind":1,"name":"IdSortable","url":"modules/IdSortable.html","classes":"tsd-kind-module"},{"id":23,"kind":128,"name":"default","url":"classes/IdSortable.default.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"IdSortable"},{"id":24,"kind":512,"name":"constructor","url":"classes/IdSortable.default.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"IdSortable.default"},{"id":25,"kind":1024,"name":"randomSource","url":"classes/IdSortable.default.html#randomSource","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":26,"kind":65536,"name":"__type","url":"classes/IdSortable.default.html#__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-class","parent":"IdSortable.default"},{"id":27,"kind":1024,"name":"clock","url":"classes/IdSortable.default.html#clock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":28,"kind":65536,"name":"__type","url":"classes/IdSortable.default.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-class","parent":"IdSortable.default"},{"id":29,"kind":1024,"name":"nodeBits","url":"classes/IdSortable.default.html#nodeBits","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":30,"kind":1024,"name":"lastTs","url":"classes/IdSortable.default.html#lastTs","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":31,"kind":1024,"name":"_lastId","url":"classes/IdSortable.default.html#_lastId","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":32,"kind":1024,"name":"seqCounter","url":"classes/IdSortable.default.html#seqCounter","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"IdSortable.default"},{"id":33,"kind":262144,"name":"lastId","url":"classes/IdSortable.default.html#lastId","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"IdSortable.default"},{"id":34,"kind":2048,"name":"get","url":"classes/IdSortable.default.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdSortable.default"},{"id":35,"kind":2048,"name":"next","url":"classes/IdSortable.default.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdSortable.default"},{"id":36,"kind":2048,"name":"[iterator]","url":"classes/IdSortable.default.html#_iterator_","classes":"tsd-kind-method tsd-parent-kind-class","parent":"IdSortable.default"},{"id":37,"kind":64,"name":"extractTs","url":"modules/IdSortable.html#extractTs","classes":"tsd-kind-function tsd-parent-kind-module","parent":"IdSortable"},{"id":38,"kind":64,"name":"extractSeq","url":"modules/IdSortable.html#extractSeq","classes":"tsd-kind-function tsd-parent-kind-module","parent":"IdSortable"},{"id":39,"kind":64,"name":"extractRand","url":"modules/IdSortable.html#extractRand","classes":"tsd-kind-function tsd-parent-kind-module","parent":"IdSortable"},{"id":40,"kind":1,"name":"index","url":"modules/index.html","classes":"tsd-kind-module"},{"id":41,"kind":1,"name":"utils","url":"modules/utils.html","classes":"tsd-kind-module"},{"id":42,"kind":64,"name":"randomBytes","url":"modules/utils.html#randomBytes","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":43,"kind":64,"name":"randomBits","url":"modules/utils.html#randomBits","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":44,"kind":64,"name":"nodeBits","url":"modules/utils.html#nodeBits","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":45,"kind":64,"name":"timeSource","url":"modules/utils.html#timeSource","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":46,"kind":64,"name":"take","url":"modules/utils.html#take","classes":"tsd-kind-function tsd-parent-kind-module tsd-has-type-parameter","parent":"utils"},{"id":47,"kind":64,"name":"toString","url":"modules/utils.html#toString","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":48,"kind":64,"name":"fromString","url":"modules/utils.html#fromString","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":49,"kind":64,"name":"toUUID","url":"modules/utils.html#toUUID","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":50,"kind":64,"name":"fromUUID","url":"modules/utils.html#fromUUID","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":51,"kind":64,"name":"toMultibase","url":"modules/utils.html#toMultibase","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":52,"kind":64,"name":"fromMultibase","url":"modules/utils.html#fromMultibase","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":53,"kind":64,"name":"toBuffer","url":"modules/utils.html#toBuffer","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":54,"kind":64,"name":"fromBuffer","url":"modules/utils.html#fromBuffer","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":55,"kind":64,"name":"bytes2hex","url":"modules/utils.html#bytes2hex","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":56,"kind":64,"name":"hex2bytes","url":"modules/utils.html#hex2bytes","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":57,"kind":64,"name":"bytes2bits","url":"modules/utils.html#bytes2bits","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":58,"kind":64,"name":"bits2bytes","url":"modules/utils.html#bits2bytes","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":59,"kind":64,"name":"dec2bits","url":"modules/utils.html#dec2bits","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":60,"kind":64,"name":"dec2hex","url":"modules/utils.html#dec2hex","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":61,"kind":64,"name":"strChunks","url":"modules/utils.html#strChunks","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":62,"kind":64,"name":"roundPrecise","url":"modules/utils.html#roundPrecise","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":63,"kind":64,"name":"toFixedPoint","url":"modules/utils.html#toFixedPoint","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":64,"kind":64,"name":"fromFixedPoint","url":"modules/utils.html#fromFixedPoint","classes":"tsd-kind-function tsd-parent-kind-module","parent":"utils"},{"id":65,"kind":4194304,"name":"MultibaseFormats","url":"modules/utils.html#MultibaseFormats","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"utils"},{"id":66,"kind":16777216,"name":"IdRandom","url":"modules/index.html#IdRandom","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"},{"id":67,"kind":16777216,"name":"IdDeterministic","url":"modules/index.html#IdDeterministic","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"},{"id":68,"kind":16777216,"name":"IdSortable","url":"modules/index.html#IdSortable","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"},{"id":69,"kind":16777216,"name":"utils","url":"modules/index.html#utils","classes":"tsd-kind-reference tsd-parent-kind-module","parent":"index"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,27.586]],["parent/0",[]],["name/1",[1,27.586]],["parent/1",[0,2.657]],["name/2",[2,38.572]],["parent/2",[3,2.657]],["name/3",[4,27.586]],["parent/3",[3,2.657]],["name/4",[5,33.464]],["parent/4",[3,2.657]],["name/5",[6,38.572]],["parent/5",[3,2.657]],["name/6",[0,27.586]],["parent/6",[0,2.657]],["name/7",[7,30.099]],["parent/7",[]],["name/8",[1,27.586]],["parent/8",[7,2.899]],["name/9",[4,27.586]],["parent/9",[8,2.463]],["name/10",[9,38.572]],["parent/10",[8,2.463]],["name/11",[10,30.099]],["parent/11",[8,2.463]],["name/12",[11,30.099]],["parent/12",[8,2.463]],["name/13",[12,30.099]],["parent/13",[8,2.463]],["name/14",[13,30.099]],["parent/14",[]],["name/15",[1,27.586]],["parent/15",[13,2.899]],["name/16",[4,27.586]],["parent/16",[14,2.303]],["name/17",[15,33.464]],["parent/17",[14,2.303]],["name/18",[16,30.099]],["parent/18",[14,2.303]],["name/19",[10,30.099]],["parent/19",[14,2.303]],["name/20",[11,30.099]],["parent/20",[14,2.303]],["name/21",[12,30.099]],["parent/21",[14,2.303]],["name/22",[17,23.909]],["parent/22",[]],["name/23",[1,27.586]],["parent/23",[17,2.303]],["name/24",[4,27.586]],["parent/24",[18,1.599]],["name/25",[15,33.464]],["parent/25",[18,1.599]],["name/26",[16,30.099]],["parent/26",[18,1.599]],["name/27",[19,38.572]],["parent/27",[18,1.599]],["name/28",[16,30.099]],["parent/28",[18,1.599]],["name/29",[20,33.464]],["parent/29",[18,1.599]],["name/30",[21,38.572]],["parent/30",[18,1.599]],["name/31",[22,38.572]],["parent/31",[18,1.599]],["name/32",[23,38.572]],["parent/32",[18,1.599]],["name/33",[24,38.572]],["parent/33",[18,1.599]],["name/34",[10,30.099]],["parent/34",[18,1.599]],["name/35",[11,30.099]],["parent/35",[18,1.599]],["name/36",[12,30.099]],["parent/36",[18,1.599]],["name/37",[25,38.572]],["parent/37",[17,2.303]],["name/38",[26,38.572]],["parent/38",[17,2.303]],["name/39",[27,38.572]],["parent/39",[17,2.303]],["name/40",[28,25.579]],["parent/40",[]],["name/41",[29,9.855]],["parent/41",[]],["name/42",[30,38.572]],["parent/42",[29,0.949]],["name/43",[31,38.572]],["parent/43",[29,0.949]],["name/44",[20,33.464]],["parent/44",[29,0.949]],["name/45",[32,38.572]],["parent/45",[29,0.949]],["name/46",[33,38.572]],["parent/46",[29,0.949]],["name/47",[5,33.464]],["parent/47",[29,0.949]],["name/48",[34,38.572]],["parent/48",[29,0.949]],["name/49",[35,38.572]],["parent/49",[29,0.949]],["name/50",[36,38.572]],["parent/50",[29,0.949]],["name/51",[37,38.572]],["parent/51",[29,0.949]],["name/52",[38,38.572]],["parent/52",[29,0.949]],["name/53",[39,38.572]],["parent/53",[29,0.949]],["name/54",[40,38.572]],["parent/54",[29,0.949]],["name/55",[41,38.572]],["parent/55",[29,0.949]],["name/56",[42,38.572]],["parent/56",[29,0.949]],["name/57",[43,38.572]],["parent/57",[29,0.949]],["name/58",[44,38.572]],["parent/58",[29,0.949]],["name/59",[45,38.572]],["parent/59",[29,0.949]],["name/60",[46,38.572]],["parent/60",[29,0.949]],["name/61",[47,38.572]],["parent/61",[29,0.949]],["name/62",[48,38.572]],["parent/62",[29,0.949]],["name/63",[49,38.572]],["parent/63",[29,0.949]],["name/64",[50,38.572]],["parent/64",[29,0.949]],["name/65",[51,38.572]],["parent/65",[29,0.949]],["name/66",[13,30.099]],["parent/66",[28,2.463]],["name/67",[7,30.099]],["parent/67",[28,2.463]],["name/68",[17,23.909]],["parent/68",[28,2.463]],["name/69",[29,9.855]],["parent/69",[28,2.463]]],"invertedIndex":[["__type",{"_index":16,"name":{"18":{},"26":{},"28":{}},"parent":{}}],["_lastid",{"_index":22,"name":{"31":{}},"parent":{}}],["bits2bytes",{"_index":44,"name":{"58":{}},"parent":{}}],["bytes2bits",{"_index":43,"name":{"57":{}},"parent":{}}],["bytes2hex",{"_index":41,"name":{"55":{}},"parent":{}}],["clock",{"_index":19,"name":{"27":{}},"parent":{}}],["constructor",{"_index":4,"name":{"3":{},"9":{},"16":{},"24":{}},"parent":{}}],["create",{"_index":2,"name":{"2":{}},"parent":{}}],["dec2bits",{"_index":45,"name":{"59":{}},"parent":{}}],["dec2hex",{"_index":46,"name":{"60":{}},"parent":{}}],["default",{"_index":1,"name":{"1":{},"8":{},"15":{},"23":{}},"parent":{}}],["extractrand",{"_index":27,"name":{"39":{}},"parent":{}}],["extractseq",{"_index":26,"name":{"38":{}},"parent":{}}],["extractts",{"_index":25,"name":{"37":{}},"parent":{}}],["frombuffer",{"_index":40,"name":{"54":{}},"parent":{}}],["fromfixedpoint",{"_index":50,"name":{"64":{}},"parent":{}}],["frommultibase",{"_index":38,"name":{"52":{}},"parent":{}}],["fromstring",{"_index":34,"name":{"48":{}},"parent":{}}],["fromuuid",{"_index":36,"name":{"50":{}},"parent":{}}],["get",{"_index":10,"name":{"11":{},"19":{},"34":{}},"parent":{}}],["hex2bytes",{"_index":42,"name":{"56":{}},"parent":{}}],["id",{"_index":0,"name":{"0":{},"6":{}},"parent":{"1":{},"6":{}}}],["id.default",{"_index":3,"name":{},"parent":{"2":{},"3":{},"4":{},"5":{}}}],["iddeterministic",{"_index":7,"name":{"7":{},"67":{}},"parent":{"8":{}}}],["iddeterministic.default",{"_index":8,"name":{},"parent":{"9":{},"10":{},"11":{},"12":{},"13":{}}}],["idrandom",{"_index":13,"name":{"14":{},"66":{}},"parent":{"15":{}}}],["idrandom.default",{"_index":14,"name":{},"parent":{"16":{},"17":{},"18":{},"19":{},"20":{},"21":{}}}],["idsortable",{"_index":17,"name":{"22":{},"68":{}},"parent":{"23":{},"37":{},"38":{},"39":{}}}],["idsortable.default",{"_index":18,"name":{},"parent":{"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{}}}],["index",{"_index":28,"name":{"40":{}},"parent":{"66":{},"67":{},"68":{},"69":{}}}],["iterator",{"_index":12,"name":{"13":{},"21":{},"36":{}},"parent":{}}],["lastid",{"_index":24,"name":{"33":{}},"parent":{}}],["lastts",{"_index":21,"name":{"30":{}},"parent":{}}],["multibaseformats",{"_index":51,"name":{"65":{}},"parent":{}}],["namespacedata",{"_index":9,"name":{"10":{}},"parent":{}}],["next",{"_index":11,"name":{"12":{},"20":{},"35":{}},"parent":{}}],["nodebits",{"_index":20,"name":{"29":{},"44":{}},"parent":{}}],["randombits",{"_index":31,"name":{"43":{}},"parent":{}}],["randombytes",{"_index":30,"name":{"42":{}},"parent":{}}],["randomsource",{"_index":15,"name":{"17":{},"25":{}},"parent":{}}],["roundprecise",{"_index":48,"name":{"62":{}},"parent":{}}],["seqcounter",{"_index":23,"name":{"32":{}},"parent":{}}],["strchunks",{"_index":47,"name":{"61":{}},"parent":{}}],["take",{"_index":33,"name":{"46":{}},"parent":{}}],["timesource",{"_index":32,"name":{"45":{}},"parent":{}}],["tobuffer",{"_index":39,"name":{"53":{}},"parent":{}}],["tofixedpoint",{"_index":49,"name":{"63":{}},"parent":{}}],["tomultibase",{"_index":37,"name":{"51":{}},"parent":{}}],["toprimitive",{"_index":6,"name":{"5":{}},"parent":{}}],["tostring",{"_index":5,"name":{"4":{},"47":{}},"parent":{}}],["touuid",{"_index":35,"name":{"49":{}},"parent":{}}],["utils",{"_index":29,"name":{"41":{},"69":{}},"parent":{"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{}}}]],"pipeline":[]}}
\ No newline at end of file
diff --git a/docs/classes/Id.default.html b/docs/classes/Id.default.html
new file mode 100644
index 0000000..bac633f
--- /dev/null
+++ b/docs/classes/Id.default.html
@@ -0,0 +1,2210 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>default | @matrixai/id</title>
+	<meta name="description" content="Documentation for @matrixai/id">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+	<script async src="../assets/js/search.js" id="search-script"></script>
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">@matrixai/id</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../modules.html">@matrixai/id</a>
+				</li>
+				<li>
+					<a href="../modules/Id.html">Id</a>
+				</li>
+				<li>
+					<a href="Id.default.html">default</a>
+				</li>
+			</ul>
+			<h1>Class default</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="tsd-signature-type">Uint8Array</span>
+						<ul class="tsd-hierarchy">
+							<li>
+								<span class="target">default</span>
+							</li>
+						</ul>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section tsd-is-inherited">
+							<h3>Constructors</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><a href="Id.default.html#constructor" class="tsd-kind-icon">constructor</a></li>
+							</ul>
+						</section>
+						<section class="tsd-index-section tsd-is-inherited tsd-is-external">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#BYTES_PER_ELEMENT" class="tsd-kind-icon">BYTES_<wbr>PER_<wbr>ELEMENT</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#_toStringTag_" class="tsd-kind-icon">[to<wbr>String<wbr>Tag]</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#buffer" class="tsd-kind-icon">buffer</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#byteLength" class="tsd-kind-icon">byte<wbr>Length</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#byteOffset" class="tsd-kind-icon">byte<wbr>Offset</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#length" class="tsd-kind-icon">length</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="Id.default.html#BYTES_PER_ELEMENT-1" class="tsd-kind-icon">BYTES_<wbr>PER_<wbr>ELEMENT</a></li>
+							</ul>
+						</section>
+						<section class="tsd-index-section ">
+							<h3>Methods</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#_iterator_" class="tsd-kind-icon">[iterator]</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class"><a href="Id.default.html#_toPrimitive_" class="tsd-kind-icon">[to<wbr>Primitive]</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#copyWithin" class="tsd-kind-icon">copy<wbr>Within</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#entries" class="tsd-kind-icon">entries</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#every" class="tsd-kind-icon">every</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#fill" class="tsd-kind-icon">fill</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#filter" class="tsd-kind-icon">filter</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#find" class="tsd-kind-icon">find</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#findIndex" class="tsd-kind-icon">find<wbr>Index</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#forEach" class="tsd-kind-icon">for<wbr>Each</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#includes" class="tsd-kind-icon">includes</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#indexOf" class="tsd-kind-icon">index<wbr>Of</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#join" class="tsd-kind-icon">join</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#keys" class="tsd-kind-icon">keys</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#lastIndexOf" class="tsd-kind-icon">last<wbr>Index<wbr>Of</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#map" class="tsd-kind-icon">map</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external"><a href="Id.default.html#reduce" class="tsd-kind-icon">reduce</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external"><a href="Id.default.html#reduceRight" class="tsd-kind-icon">reduce<wbr>Right</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#reverse" class="tsd-kind-icon">reverse</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#set" class="tsd-kind-icon">set</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#slice" class="tsd-kind-icon">slice</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#some" class="tsd-kind-icon">some</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#sort" class="tsd-kind-icon">sort</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#subarray" class="tsd-kind-icon">subarray</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#toLocaleString" class="tsd-kind-icon">to<wbr>Locale<wbr>String</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-overwrite"><a href="Id.default.html#toString" class="tsd-kind-icon">to<wbr>String</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#valueOf" class="tsd-kind-icon">value<wbr>Of</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="Id.default.html#values" class="tsd-kind-icon">values</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><a href="Id.default.html#create" class="tsd-kind-icon">create</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static tsd-is-external"><a href="Id.default.html#from" class="tsd-kind-icon">from</a></li>
+								<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="Id.default.html#of" class="tsd-kind-icon">of</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-inherited">
+				<h2>Constructors</h2>
+				<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited">
+					<a name="constructor" class="tsd-anchor"></a>
+					<h3>constructor</h3>
+					<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited">
+						<li class="tsd-signature tsd-kind-icon">new default<span class="tsd-signature-symbol">(</span>length<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+						<li class="tsd-signature tsd-kind-icon">new default<span class="tsd-signature-symbol">(</span>array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+						<li class="tsd-signature tsd-kind-icon">new default<span class="tsd-signature-symbol">(</span>buffer<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBufferLike</span>, byteOffset<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, length<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+						<li class="tsd-signature tsd-kind-icon">new default<span class="tsd-signature-symbol">(</span>elements<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+						<li class="tsd-signature tsd-kind-icon">new default<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.constructor</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2284</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>length: <span class="tsd-signature-type">number</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.constructor</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2285</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>array: <span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ArrayBufferLike</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.constructor</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2286</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>buffer: <span class="tsd-signature-type">ArrayBufferLike</span></h5>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> byteOffset: <span class="tsd-signature-type">number</span></h5>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> length: <span class="tsd-signature-type">number</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.constructor</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:295</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>elements: <span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.constructor</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2017.typedarrays.d.ts:26</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-inherited tsd-is-external">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="BYTES_PER_ELEMENT" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> BYTES_<wbr>PER_<wbr>ELEMENT</h3>
+					<div class="tsd-signature tsd-kind-icon">BYTES_<wbr>PER_<wbr>ELEMENT<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
+					<aside class="tsd-sources">
+						<p>Inherited from Uint8Array.BYTES_PER_ELEMENT</p>
+						<ul>
+							<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2042</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>The size in bytes of each element in the array.</p>
+						</div>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="_toStringTag_" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> [to<wbr>String<wbr>Tag]</h3>
+					<div class="tsd-signature tsd-kind-icon">[to<wbr>String<wbr>Tag]<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;Uint8Array&quot;</span></div>
+					<aside class="tsd-sources">
+						<p>Inherited from Uint8Array.__@toStringTag@22</p>
+						<ul>
+							<li>Defined in node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:282</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="buffer" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> buffer</h3>
+					<div class="tsd-signature tsd-kind-icon">buffer<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ArrayBufferLike</span></div>
+					<aside class="tsd-sources">
+						<p>Inherited from Uint8Array.buffer</p>
+						<ul>
+							<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2047</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>The ArrayBuffer instance referenced by the array.</p>
+						</div>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="byteLength" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> byte<wbr>Length</h3>
+					<div class="tsd-signature tsd-kind-icon">byte<wbr>Length<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
+					<aside class="tsd-sources">
+						<p>Inherited from Uint8Array.byteLength</p>
+						<ul>
+							<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2052</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>The length in bytes of the array.</p>
+						</div>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="byteOffset" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> byte<wbr>Offset</h3>
+					<div class="tsd-signature tsd-kind-icon">byte<wbr>Offset<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
+					<aside class="tsd-sources">
+						<p>Inherited from Uint8Array.byteOffset</p>
+						<ul>
+							<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2057</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>The offset in bytes of the array.</p>
+						</div>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="length" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> length</h3>
+					<div class="tsd-signature tsd-kind-icon">length<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
+					<aside class="tsd-sources">
+						<p>Inherited from Uint8Array.length</p>
+						<ul>
+							<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2156</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>The length of the array.</p>
+						</div>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external">
+					<a name="BYTES_PER_ELEMENT-1" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> BYTES_<wbr>PER_<wbr>ELEMENT</h3>
+					<div class="tsd-signature tsd-kind-icon">BYTES_<wbr>PER_<wbr>ELEMENT<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
+					<aside class="tsd-sources">
+						<p>Inherited from Uint8Array.BYTES_PER_ELEMENT</p>
+						<ul>
+							<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2291</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>The size in bytes of each element in the array.</p>
+						</div>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Methods</h2>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="_iterator_" class="tsd-anchor"></a>
+					<h3>[iterator]</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.__@iterator@79</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:279</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
+					<a name="_toPrimitive_" class="tsd-anchor"></a>
+					<h3>[to<wbr>Primitive]</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
+						<li class="tsd-signature tsd-kind-icon">[to<wbr>Primitive]<span class="tsd-signature-symbol">(</span>_hint<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">&quot;string&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;number&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;default&quot;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/Id.ts#L24">src/Id.ts:24</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>_hint: <span class="tsd-signature-type">&quot;string&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;number&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;default&quot;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="copyWithin" class="tsd-anchor"></a>
+					<h3>copy<wbr>Within</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">copy<wbr>Within<span class="tsd-signature-symbol">(</span>target<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, start<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, end<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.copyWithin</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2068</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns the this object after copying a section of the array identified by start and end
+									to the same array starting at position target</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>target: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>If target is negative, it is treated as length+target where length is the
+										length of the array.</p>
+									</div>
+								</li>
+								<li>
+									<h5>start: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>If start is negative, it is treated as length+start. If end is negative, it
+										is treated as length+end.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> end: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>If not specified, length of the this object is used as its default value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="entries" class="tsd-anchor"></a>
+					<h3>entries</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">entries<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.entries</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:283</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns an array of key, value pairs for every entry in the array</p>
+								</div>
+							</div>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="every" class="tsd-anchor"></a>
+					<h3>every</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">every<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">unknown</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.every</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2078</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Determines whether all the members of an array satisfy the specified test.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>predicate: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">unknown</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to three arguments. The every method calls
+											the predicate function for each element in the array until the predicate returns a value
+										which is coercible to the Boolean value false, or until the end of the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>value: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>index: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">unknown</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An object to which the this keyword can refer in the predicate function.
+										If thisArg is omitted, undefined is used as the this value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="fill" class="tsd-anchor"></a>
+					<h3>fill</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">fill<span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, start<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, end<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.fill</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2088</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Changes all array elements from <code>start</code> to <code>end</code> index to a static <code>value</code> and returns the modified array</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>value: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>value to fill array section with</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> start: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>index to start filling the array at. If start is negative, it is treated as
+										length+start where length is the length of the array.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> end: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>index to stop filling the array at. If end is negative, it is treated as
+										length+end.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="filter" class="tsd-anchor"></a>
+					<h3>filter</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">filter<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">any</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.filter</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2097</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns the elements of an array that meet the condition specified in a callback function.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>predicate: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to three arguments. The filter method calls
+										the predicate function one time for each element in the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>value: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>index: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An object to which the this keyword can refer in the predicate function.
+										If thisArg is omitted, undefined is used as the this value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="find" class="tsd-anchor"></a>
+					<h3>find</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">find<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, obj<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.find</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2108</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns the value of the first element in the array where predicate is true, and undefined
+									otherwise.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>predicate: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, obj<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>find calls predicate once for each element of the array, in ascending
+											order, until it finds one where predicate returns true. If such an element is found, find
+										immediately returns that element value. Otherwise, find returns undefined.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, obj<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>value: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>index: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>obj: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>If provided, it will be used as the this value for each invocation of
+										predicate. If it is not provided, undefined is used instead.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="findIndex" class="tsd-anchor"></a>
+					<h3>find<wbr>Index</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">find<wbr>Index<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, obj<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.findIndex</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2119</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns the index of the first element in the array where predicate is true, and -1
+									otherwise.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>predicate: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, obj<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>find calls predicate once for each element of the array, in ascending
+											order, until it finds one where predicate returns true. If such an element is found,
+										findIndex immediately returns that element index. Otherwise, findIndex returns -1.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, obj<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>value: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>index: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>obj: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>If provided, it will be used as the this value for each invocation of
+										predicate. If it is not provided, undefined is used instead.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="forEach" class="tsd-anchor"></a>
+					<h3>for<wbr>Each</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">for<wbr>Each<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.forEach</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2128</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Performs the specified action for each element in an array.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to three arguments. forEach calls the
+										callbackfn function one time for each element in the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>value: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>index: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An object to which the this keyword can refer in the callbackfn function.
+										If thisArg is omitted, undefined is used as the this value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="includes" class="tsd-anchor"></a>
+					<h3>includes</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">includes<span class="tsd-signature-symbol">(</span>searchElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, fromIndex<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.includes</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2016.array.include.d.ts:54</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Determines whether an array includes a certain element, returning true or false as appropriate.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>searchElement: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The element to search for.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> fromIndex: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The position in this array at which to begin searching for searchElement.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="indexOf" class="tsd-anchor"></a>
+					<h3>index<wbr>Of</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">index<wbr>Of<span class="tsd-signature-symbol">(</span>searchElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, fromIndex<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.indexOf</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2136</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns the index of the first occurrence of a value in an array.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>searchElement: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The value to locate in the array.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> fromIndex: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The array index at which to begin the search. If fromIndex is omitted, the
+										search starts at index 0.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="join" class="tsd-anchor"></a>
+					<h3>join</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">join<span class="tsd-signature-symbol">(</span>separator<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.join</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2143</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Adds all the elements of an array separated by the specified separator string.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> separator: <span class="tsd-signature-type">string</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A string used to separate one element of an array from the next in the
+										resulting String. If omitted, the array elements are separated with a comma.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="keys" class="tsd-anchor"></a>
+					<h3>keys</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">keys<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.keys</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:287</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns an list of keys in the array</p>
+								</div>
+							</div>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="lastIndexOf" class="tsd-anchor"></a>
+					<h3>last<wbr>Index<wbr>Of</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">last<wbr>Index<wbr>Of<span class="tsd-signature-symbol">(</span>searchElement<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, fromIndex<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.lastIndexOf</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2151</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns the index of the last occurrence of a value in an array.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>searchElement: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The value to locate in the array.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> fromIndex: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The array index at which to begin the search. If fromIndex is omitted, the
+										search starts at index 0.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="map" class="tsd-anchor"></a>
+					<h3>map</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">map<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.map</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2166</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Calls a defined callback function on each element of an array, and returns an array that
+									contains the results.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to three arguments. The map method calls the
+										callbackfn function one time for each element in the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>value: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>index: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An object to which the this keyword can refer in the callbackfn function.
+										If thisArg is omitted, undefined is used as the this value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external">
+					<a name="reduce" class="tsd-anchor"></a>
+					<h3>reduce</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">reduce<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+						<li class="tsd-signature tsd-kind-icon">reduce<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span>, initialValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+						<li class="tsd-signature tsd-kind-icon">reduce&lt;U&gt;<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">U</span>, initialValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.reduce</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2178</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Calls the specified callback function for all the elements in an array. The return value of
+										the callback function is the accumulated result, and is provided as an argument in the next
+									call to the callback function.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to four arguments. The reduce method calls the
+										callbackfn function one time for each element in the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>previousValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentIndex: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.reduce</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2179</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>previousValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentIndex: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5>initialValue: <span class="tsd-signature-type">number</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.reduce</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2191</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Calls the specified callback function for all the elements in an array. The return value of
+										the callback function is the accumulated result, and is provided as an argument in the next
+									call to the callback function.</p>
+								</div>
+							</div>
+							<h4 class="tsd-type-parameters-title">Type parameters</h4>
+							<ul class="tsd-type-parameters">
+								<li>
+									<h4>U</h4>
+								</li>
+							</ul>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">U</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to four arguments. The reduce method calls the
+										callbackfn function one time for each element in the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>previousValue: <span class="tsd-signature-type">U</span></h5>
+														</li>
+														<li>
+															<h5>currentValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentIndex: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">U</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5>initialValue: <span class="tsd-signature-type">U</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>If initialValue is specified, it is used as the initial value to start
+											the accumulation. The first call to the callbackfn function provides this value as an argument
+										instead of an array value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">U</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external">
+					<a name="reduceRight" class="tsd-anchor"></a>
+					<h3>reduce<wbr>Right</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">reduce<wbr>Right<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+						<li class="tsd-signature tsd-kind-icon">reduce<wbr>Right<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span>, initialValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+						<li class="tsd-signature tsd-kind-icon">reduce<wbr>Right&lt;U&gt;<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">U</span>, initialValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.reduceRight</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2203</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Calls the specified callback function for all the elements in an array, in descending order.
+										The return value of the callback function is the accumulated result, and is provided as an
+									argument in the next call to the callback function.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to four arguments. The reduceRight method calls
+										the callbackfn function one time for each element in the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>previousValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentIndex: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.reduceRight</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2204</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>previousValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentIndex: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5>initialValue: <span class="tsd-signature-type">number</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.reduceRight</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2216</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Calls the specified callback function for all the elements in an array, in descending order.
+										The return value of the callback function is the accumulated result, and is provided as an
+									argument in the next call to the callback function.</p>
+								</div>
+							</div>
+							<h4 class="tsd-type-parameters-title">Type parameters</h4>
+							<ul class="tsd-type-parameters">
+								<li>
+									<h4>U</h4>
+								</li>
+							</ul>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>callbackfn: <span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">U</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to four arguments. The reduceRight method calls
+										the callbackfn function one time for each element in the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>previousValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span>, currentValue<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, currentIndex<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">U</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>previousValue: <span class="tsd-signature-type">U</span></h5>
+														</li>
+														<li>
+															<h5>currentValue: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>currentIndex: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">U</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5>initialValue: <span class="tsd-signature-type">U</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>If initialValue is specified, it is used as the initial value to start
+											the accumulation. The first call to the callbackfn function provides this value as an argument
+										instead of an array value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">U</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="reverse" class="tsd-anchor"></a>
+					<h3>reverse</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">reverse<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.reverse</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2221</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Reverses the elements in an Array.</p>
+								</div>
+							</div>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="set" class="tsd-anchor"></a>
+					<h3>set</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">set<span class="tsd-signature-symbol">(</span>array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span>, offset<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.set</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2228</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Sets a value or an array of values.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>array: <span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A typed or untyped array of values to set.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> offset: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The index in the current array at which the values are to be written.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="slice" class="tsd-anchor"></a>
+					<h3>slice</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">slice<span class="tsd-signature-symbol">(</span>start<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, end<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.slice</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2235</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns a section of an array.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> start: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The beginning of the specified portion of the array.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> end: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The end of the specified portion of the array. This is exclusive of the element at the index &#39;end&#39;.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="some" class="tsd-anchor"></a>
+					<h3>some</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">some<span class="tsd-signature-symbol">(</span>predicate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">unknown</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.some</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2245</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Determines whether the specified callback function returns true for any element of an array.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>predicate: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">unknown</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A function that accepts up to three arguments. The some method calls
+											the predicate function for each element in the array until the predicate returns a value
+										which is coercible to the Boolean value true, or until the end of the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">unknown</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>value: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>index: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>array: <span class="tsd-signature-type">Uint8Array</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">unknown</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An object to which the this keyword can refer in the predicate function.
+										If thisArg is omitted, undefined is used as the this value.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="sort" class="tsd-anchor"></a>
+					<h3>sort</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">sort<span class="tsd-signature-symbol">(</span>compareFn<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">(</span>a<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, b<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.sort</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2256</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Sorts an array.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> compareFn: <span class="tsd-signature-symbol">(</span>a<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, b<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>Function used to determine the order of the elements. It is expected to return
+											a negative value if first argument is less than second argument, zero if they&#39;re equal and a positive
+										value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.</p>
+										<pre><code class="language-ts"><span style="color: #000000">[</span><span style="color: #098658">11</span><span style="color: #000000">,</span><span style="color: #098658">2</span><span style="color: #000000">,</span><span style="color: #098658">22</span><span style="color: #000000">,</span><span style="color: #098658">1</span><span style="color: #000000">].</span><span style="color: #795E26">sort</span><span style="color: #000000">((</span><span style="color: #001080">a</span><span style="color: #000000">, </span><span style="color: #001080">b</span><span style="color: #000000">) </span><span style="color: #0000FF">=&gt;</span><span style="color: #000000"> </span><span style="color: #001080">a</span><span style="color: #000000"> - </span><span style="color: #001080">b</span><span style="color: #000000">)</span>
+</code></pre>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>a<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, b<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>a: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>b: <span class="tsd-signature-type">number</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="subarray" class="tsd-anchor"></a>
+					<h3>subarray</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">subarray<span class="tsd-signature-symbol">(</span>begin<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, end<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.subarray</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2264</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements
+									at begin, inclusive, up to end, exclusive.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> begin: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The index of the beginning of the array.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> end: <span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>The index of the end of the array.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="toLocaleString" class="tsd-anchor"></a>
+					<h3>to<wbr>Locale<wbr>String</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">to<wbr>Locale<wbr>String<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.toLocaleString</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2269</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Converts a number to a string by using the current locale.</p>
+								</div>
+							</div>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-overwrite">
+					<a name="toString" class="tsd-anchor"></a>
+					<h3>to<wbr>String</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-overwrite">
+						<li class="tsd-signature tsd-kind-icon">to<wbr>String<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Overrides Uint8Array.toString</p>
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/Id.ts#L28">src/Id.ts:28</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="valueOf" class="tsd-anchor"></a>
+					<h3>value<wbr>Of</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">value<wbr>Of<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.valueOf</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2277</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns the primitive value of the specified object.</p>
+								</div>
+							</div>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+					<a name="values" class="tsd-anchor"></a>
+					<h3>values</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">values<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.values</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:291</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns an list of values in the array</p>
+								</div>
+							</div>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static">
+					<a name="create" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagStatic">Static</span> create</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static">
+						<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
+						<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>length<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
+						<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>array<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ArrayBufferLike</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
+						<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>buffer<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBufferLike</span>, byteOffset<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, length<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/Id.ts#L11">src/Id.ts:11</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/Id.ts#L12">src/Id.ts:12</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>length: <span class="tsd-signature-type">number</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/Id.ts#L13">src/Id.ts:13</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>array: <span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ArrayBufferLike</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/Id.ts#L14">src/Id.ts:14</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>buffer: <span class="tsd-signature-type">ArrayBufferLike</span></h5>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> byteOffset: <span class="tsd-signature-type">number</span></h5>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> length: <span class="tsd-signature-type">number</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static tsd-is-external">
+					<a name="from" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagStatic">Static</span> from</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">from<span class="tsd-signature-symbol">(</span>arrayLike<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+						<li class="tsd-signature tsd-kind-icon">from&lt;T&gt;<span class="tsd-signature-symbol">(</span>arrayLike<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">&gt;</span>, mapfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>v<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span>, k<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+						<li class="tsd-signature tsd-kind-icon">from<span class="tsd-signature-symbol">(</span>arrayLike<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span>, mapfn<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">(</span>v<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, k<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.from</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2303</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Creates an array from an array-like or iterable object.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>arrayLike: <span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An array-like or iterable object to convert to an array.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.from</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2311</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Creates an array from an array-like or iterable object.</p>
+								</div>
+							</div>
+							<h4 class="tsd-type-parameters-title">Type parameters</h4>
+							<ul class="tsd-type-parameters">
+								<li>
+									<h4>T</h4>
+								</li>
+							</ul>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>arrayLike: <span class="tsd-signature-type">ArrayLike</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">&gt;</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An array-like or iterable object to convert to an array.</p>
+									</div>
+								</li>
+								<li>
+									<h5>mapfn: <span class="tsd-signature-symbol">(</span>v<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span>, k<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A mapping function to call on every element of the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>v<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span>, k<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>v: <span class="tsd-signature-type">T</span></h5>
+														</li>
+														<li>
+															<h5>k: <span class="tsd-signature-type">number</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>Value of &#39;this&#39; used to invoke the mapfn.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.from</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:303</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Creates an array from an array-like or iterable object.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>arrayLike: <span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>An array-like or iterable object to convert to an array.</p>
+									</div>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> mapfn: <span class="tsd-signature-symbol">(</span>v<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, k<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A mapping function to call on every element of the array.</p>
+									</div>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-signature">
+											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-external">
+												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>v<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, k<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+											</ul>
+											<ul class="tsd-descriptions">
+												<li class="tsd-description">
+													<h4 class="tsd-parameters-title">Parameters</h4>
+													<ul class="tsd-parameters">
+														<li>
+															<h5>v: <span class="tsd-signature-type">number</span></h5>
+														</li>
+														<li>
+															<h5>k: <span class="tsd-signature-type">number</span></h5>
+														</li>
+													</ul>
+													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>Value of &#39;this&#39; used to invoke the mapfn.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external">
+					<a name="of" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagStatic">Static</span> of</h3>
+					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external">
+						<li class="tsd-signature tsd-kind-icon">of<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>items<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<p>Inherited from Uint8Array.of</p>
+								<ul>
+									<li>Defined in node_modules/typescript/lib/lib.es5.d.ts:2297</li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Returns a new array from a set of elements.</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>items: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></h5>
+									<div class="tsd-comment tsd-typography">
+										<p>A set of elements to include in the new array object.</p>
+									</div>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class=" ">
+						<a href="../modules.html">Modules</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/Id.html">Id</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/IdDeterministic.html">Id<wbr>Deterministic</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/IdRandom.html">Id<wbr>Random</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/IdSortable.html">Id<wbr>Sortable</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/index.html">index</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/utils.html">utils</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-class tsd-parent-kind-module">
+						<a href="Id.default.html" class="tsd-kind-icon">default</a>
+						<ul>
+							<li class=" tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited">
+								<a href="Id.default.html#constructor" class="tsd-kind-icon">constructor</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#BYTES_PER_ELEMENT" class="tsd-kind-icon">BYTES_<wbr>PER_<wbr>ELEMENT</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#_toStringTag_" class="tsd-kind-icon">[to<wbr>String<wbr>Tag]</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#buffer" class="tsd-kind-icon">buffer</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#byteLength" class="tsd-kind-icon">byte<wbr>Length</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#byteOffset" class="tsd-kind-icon">byte<wbr>Offset</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#length" class="tsd-kind-icon">length</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external">
+								<a href="Id.default.html#BYTES_PER_ELEMENT-1" class="tsd-kind-icon">BYTES_<wbr>PER_<wbr>ELEMENT</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#_iterator_" class="tsd-kind-icon">[iterator]</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class">
+								<a href="Id.default.html#_toPrimitive_" class="tsd-kind-icon">[to<wbr>Primitive]</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#copyWithin" class="tsd-kind-icon">copy<wbr>Within</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#entries" class="tsd-kind-icon">entries</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#every" class="tsd-kind-icon">every</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#fill" class="tsd-kind-icon">fill</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#filter" class="tsd-kind-icon">filter</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#find" class="tsd-kind-icon">find</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#findIndex" class="tsd-kind-icon">find<wbr>Index</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#forEach" class="tsd-kind-icon">for<wbr>Each</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#includes" class="tsd-kind-icon">includes</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#indexOf" class="tsd-kind-icon">index<wbr>Of</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#join" class="tsd-kind-icon">join</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#keys" class="tsd-kind-icon">keys</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#lastIndexOf" class="tsd-kind-icon">last<wbr>Index<wbr>Of</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#map" class="tsd-kind-icon">map</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#reduce" class="tsd-kind-icon">reduce</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#reduceRight" class="tsd-kind-icon">reduce<wbr>Right</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#reverse" class="tsd-kind-icon">reverse</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#set" class="tsd-kind-icon">set</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#slice" class="tsd-kind-icon">slice</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#some" class="tsd-kind-icon">some</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#sort" class="tsd-kind-icon">sort</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#subarray" class="tsd-kind-icon">subarray</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#toLocaleString" class="tsd-kind-icon">to<wbr>Locale<wbr>String</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-overwrite">
+								<a href="Id.default.html#toString" class="tsd-kind-icon">to<wbr>String</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#valueOf" class="tsd-kind-icon">value<wbr>Of</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external">
+								<a href="Id.default.html#values" class="tsd-kind-icon">values</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-static">
+								<a href="Id.default.html#create" class="tsd-kind-icon">create</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static tsd-is-external">
+								<a href="Id.default.html#from" class="tsd-kind-icon">from</a>
+							</li>
+							<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external">
+								<a href="Id.default.html#of" class="tsd-kind-icon">of</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/Id.html#Id-1" class="tsd-kind-icon">Id</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
+				<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/classes/IdDeterministic.default.html b/docs/classes/IdDeterministic.default.html
index bcf5790..3f51407 100644
--- a/docs/classes/IdDeterministic.default.html
+++ b/docs/classes/IdDeterministic.default.html
@@ -91,7 +91,7 @@ <h3>Hierarchy</h3>
 			<section class="tsd-panel">
 				<h3>Implements</h3>
 				<ul class="tsd-hierarchy">
-					<li><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></li>
+					<li><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></li>
 				</ul>
 			</section>
 			<section class="tsd-panel-group tsd-index-group">
@@ -133,7 +133,7 @@ <h3>constructor</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdDeterministic.ts#L14">IdDeterministic.ts:14</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdDeterministic.ts#L17">src/IdDeterministic.ts:17</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -160,7 +160,7 @@ <h3><span class="tsd-flag ts-flagProtected">Protected</span> namespace<wbr>Data<
 					<div class="tsd-signature tsd-kind-icon">namespace<wbr>Data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Uint8Array</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdDeterministic.ts#L12">IdDeterministic.ts:12</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdDeterministic.ts#L15">src/IdDeterministic.ts:15</a></li>
 						</ul>
 					</aside>
 				</section>
@@ -171,17 +171,17 @@ <h2>Methods</h2>
 					<a name="_iterator_" class="tsd-anchor"></a>
 					<h3>[iterator]</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></li>
+						<li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<p>Implementation of IterableIterator.__@iterator@79</p>
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdDeterministic.ts#L37">IdDeterministic.ts:37</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdDeterministic.ts#L40">src/IdDeterministic.ts:40</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -189,13 +189,13 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableI
 					<a name="get" class="tsd-anchor"></a>
 					<h3>get</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span>name<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
+						<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span>name<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdDeterministic.ts#L24">IdDeterministic.ts:24</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdDeterministic.ts#L27">src/IdDeterministic.ts:27</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -204,7 +204,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 									<h5><span class="tsd-flag ts-flagOptional">Optional</span> name: <span class="tsd-signature-type">string</span></h5>
 								</li>
 							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
 						</li>
 					</ul>
 				</section>
@@ -212,14 +212,14 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuff
 					<a name="next" class="tsd-anchor"></a>
 					<h3>next</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">next<span class="tsd-signature-symbol">(</span>name<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
+						<li class="tsd-signature tsd-kind-icon">next<span class="tsd-signature-symbol">(</span>name<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<p>Implementation of IterableIterator.next</p>
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdDeterministic.ts#L28">IdDeterministic.ts:28</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdDeterministic.ts#L31">src/IdDeterministic.ts:31</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -228,7 +228,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 									<h5>name: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &#x27;&#x27;</span></h5>
 								</li>
 							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -240,6 +240,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorR
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/Id.html">Id</a>
+					</li>
 					<li class="current tsd-kind-module">
 						<a href="../modules/IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/classes/IdRandom.default.html b/docs/classes/IdRandom.default.html
index 9f8d3d8..deb6041 100644
--- a/docs/classes/IdRandom.default.html
+++ b/docs/classes/IdRandom.default.html
@@ -79,7 +79,7 @@ <h3>Hierarchy</h3>
 			<section class="tsd-panel">
 				<h3>Implements</h3>
 				<ul class="tsd-hierarchy">
-					<li><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></li>
+					<li><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></li>
 				</ul>
 			</section>
 			<section class="tsd-panel-group tsd-index-group">
@@ -121,7 +121,7 @@ <h3>constructor</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdRandom.ts#L7">IdRandom.ts:7</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdRandom.ts#L10">src/IdRandom.ts:10</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -138,7 +138,7 @@ <h5>random<wbr>Source<span class="tsd-signature-symbol">: </span>function</h5>
 												<li class="tsd-description">
 													<aside class="tsd-sources">
 														<ul>
-															<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdRandom.ts#L10">IdRandom.ts:10</a></li>
+															<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdRandom.ts#L13">src/IdRandom.ts:13</a></li>
 														</ul>
 													</aside>
 													<h4 class="tsd-parameters-title">Parameters</h4>
@@ -167,7 +167,7 @@ <h3><span class="tsd-flag ts-flagProtected">Protected</span> random<wbr>Source</
 					<div class="tsd-signature tsd-kind-icon">random<wbr>Source<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>size<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Uint8Array</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdRandom.ts#L5">IdRandom.ts:5</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdRandom.ts#L8">src/IdRandom.ts:8</a></li>
 						</ul>
 					</aside>
 					<div class="tsd-type-declaration">
@@ -199,17 +199,17 @@ <h2>Methods</h2>
 					<a name="_iterator_" class="tsd-anchor"></a>
 					<h3>[iterator]</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></li>
+						<li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<p>Implementation of IterableIterator.__@iterator@79</p>
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdRandom.ts#L34">IdRandom.ts:34</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdRandom.ts#L37">src/IdRandom.ts:37</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -217,16 +217,16 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableI
 					<a name="get" class="tsd-anchor"></a>
 					<h3>get</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
+						<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdRandom.ts#L15">IdRandom.ts:15</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdRandom.ts#L18">src/IdRandom.ts:18</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
 						</li>
 					</ul>
 				</section>
@@ -234,17 +234,17 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuff
 					<a name="next" class="tsd-anchor"></a>
 					<h3>next</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">next<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
+						<li class="tsd-signature tsd-kind-icon">next<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<p>Implementation of IterableIterator.next</p>
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdRandom.ts#L19">IdRandom.ts:19</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdRandom.ts#L22">src/IdRandom.ts:22</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -256,6 +256,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorR
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="../modules/IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/classes/IdSortable.default.html b/docs/classes/IdSortable.default.html
index 23d2bf5..1c6ea98 100644
--- a/docs/classes/IdSortable.default.html
+++ b/docs/classes/IdSortable.default.html
@@ -91,7 +91,7 @@ <h3>Hierarchy</h3>
 			<section class="tsd-panel">
 				<h3>Implements</h3>
 				<ul class="tsd-hierarchy">
-					<li><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></li>
+					<li><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></li>
 				</ul>
 			</section>
 			<section class="tsd-panel-group tsd-index-group">
@@ -107,8 +107,8 @@ <h3>Constructors</h3>
 						<section class="tsd-index-section tsd-is-private-protected">
 							<h3>Properties</h3>
 							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="IdSortable.default.html#_lastId" class="tsd-kind-icon">_last<wbr>Id</a></li>
 								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="IdSortable.default.html#clock" class="tsd-kind-icon">clock</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="IdSortable.default.html#lastId_" class="tsd-kind-icon">last<wbr>Id_</a></li>
 								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="IdSortable.default.html#lastTs" class="tsd-kind-icon">last<wbr>Ts</a></li>
 								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="IdSortable.default.html#nodeBits" class="tsd-kind-icon">node<wbr>Bits</a></li>
 								<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="IdSortable.default.html#randomSource" class="tsd-kind-icon">random<wbr>Source</a></li>
@@ -138,25 +138,25 @@ <h2>Constructors</h2>
 					<a name="constructor" class="tsd-anchor"></a>
 					<h3>constructor</h3>
 					<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">new default<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">{ </span>lastId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">; </span>nodeId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">; </span>randomSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>timeSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="IdSortable.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
+						<li class="tsd-signature tsd-kind-icon">new default<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">{ </span>lastId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">; </span>nodeId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">; </span>randomSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>timeSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="IdSortable.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L74">IdSortable.ts:74</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L76">src/IdSortable.ts:76</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>lastId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">; </span>nodeId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">; </span>randomSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>timeSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> = {}</span></h5>
+									<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>lastId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">; </span>nodeId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">; </span>randomSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>timeSource<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> = {}</span></h5>
 									<ul class="tsd-parameters">
 										<li class="tsd-parameter">
-											<h5><span class="tsd-flag ts-flagOptional">Optional</span> last<wbr>Id<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">ArrayBuffer</span></h5>
+											<h5><span class="tsd-flag ts-flagOptional">Optional</span> last<wbr>Id<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Uint8Array</span></h5>
 										</li>
 										<li class="tsd-parameter">
-											<h5><span class="tsd-flag ts-flagOptional">Optional</span> node<wbr>Id<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">ArrayBuffer</span></h5>
+											<h5><span class="tsd-flag ts-flagOptional">Optional</span> node<wbr>Id<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Uint8Array</span></h5>
 										</li>
 										<li class="tsd-parameter">
 											<h5>random<wbr>Source<span class="tsd-signature-symbol">: </span>function</h5>
@@ -167,7 +167,7 @@ <h5>random<wbr>Source<span class="tsd-signature-symbol">: </span>function</h5>
 												<li class="tsd-description">
 													<aside class="tsd-sources">
 														<ul>
-															<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L83">IdSortable.ts:83</a></li>
+															<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L85">src/IdSortable.ts:85</a></li>
 														</ul>
 													</aside>
 													<h4 class="tsd-parameters-title">Parameters</h4>
@@ -189,7 +189,7 @@ <h5>time<wbr>Source<span class="tsd-signature-symbol">: </span>function</h5>
 												<li class="tsd-description">
 													<aside class="tsd-sources">
 														<ul>
-															<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L82">IdSortable.ts:82</a></li>
+															<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L84">src/IdSortable.ts:84</a></li>
 														</ul>
 													</aside>
 													<h4 class="tsd-parameters-title">Parameters</h4>
@@ -224,13 +224,23 @@ <h4 class="tsd-returns-title">Returns <a href="IdSortable.default.html" class="t
 			</section>
 			<section class="tsd-panel-group tsd-member-group tsd-is-private-protected">
 				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
+					<a name="_lastId" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagProtected">Protected</span> <span class="tsd-flag ts-flagOptional">Optional</span> _last<wbr>Id</h3>
+					<div class="tsd-signature tsd-kind-icon">_last<wbr>Id<span class="tsd-signature-symbol">:</span> <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L73">src/IdSortable.ts:73</a></li>
+						</ul>
+					</aside>
+				</section>
 				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
 					<a name="clock" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagProtected">Protected</span> clock</h3>
 					<div class="tsd-signature tsd-kind-icon">clock<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">number</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L68">IdSortable.ts:68</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L70">src/IdSortable.ts:70</a></li>
 						</ul>
 					</aside>
 					<div class="tsd-type-declaration">
@@ -249,23 +259,13 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</s
 						</ul>
 					</div>
 				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
-					<a name="lastId_" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagProtected">Protected</span> <span class="tsd-flag ts-flagOptional">Optional</span> last<wbr>Id_</h3>
-					<div class="tsd-signature tsd-kind-icon">last<wbr>Id_<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ArrayBuffer</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L71">IdSortable.ts:71</a></li>
-						</ul>
-					</aside>
-				</section>
 				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
 					<a name="lastTs" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagProtected">Protected</span> <span class="tsd-flag ts-flagOptional">Optional</span> last<wbr>Ts</h3>
 					<div class="tsd-signature tsd-kind-icon">last<wbr>Ts<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L70">IdSortable.ts:70</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L72">src/IdSortable.ts:72</a></li>
 						</ul>
 					</aside>
 				</section>
@@ -275,7 +275,7 @@ <h3><span class="tsd-flag ts-flagProtected">Protected</span> <span class="tsd-fl
 					<div class="tsd-signature tsd-kind-icon">node<wbr>Bits<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L69">IdSortable.ts:69</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L71">src/IdSortable.ts:71</a></li>
 						</ul>
 					</aside>
 				</section>
@@ -285,7 +285,7 @@ <h3><span class="tsd-flag ts-flagProtected">Protected</span> random<wbr>Source</
 					<div class="tsd-signature tsd-kind-icon">random<wbr>Source<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>size<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Uint8Array</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L67">IdSortable.ts:67</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L69">src/IdSortable.ts:69</a></li>
 						</ul>
 					</aside>
 					<div class="tsd-type-declaration">
@@ -316,7 +316,7 @@ <h3><span class="tsd-flag ts-flagProtected">Protected</span> seq<wbr>Counter</h3
 					<div class="tsd-signature tsd-kind-icon">seq<wbr>Counter<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L72">IdSortable.ts:72</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L74">src/IdSortable.ts:74</a></li>
 						</ul>
 					</aside>
 				</section>
@@ -327,16 +327,16 @@ <h2>Accessors</h2>
 					<a name="lastId" class="tsd-anchor"></a>
 					<h3>last<wbr>Id</h3>
 					<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> lastId<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
+						<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> lastId<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L99">IdSortable.ts:99</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L101">src/IdSortable.ts:101</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
 						</li>
 					</ul>
 				</section>
@@ -347,17 +347,17 @@ <h2>Methods</h2>
 					<a name="_iterator_" class="tsd-anchor"></a>
 					<h3>[iterator]</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></li>
+						<li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<p>Implementation of IterableIterator.__@iterator@79</p>
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L150">IdSortable.ts:150</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L153">src/IdSortable.ts:153</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">&gt;</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -365,16 +365,16 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableI
 					<a name="get" class="tsd-anchor"></a>
 					<h3>get</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
+						<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L106">IdSortable.ts:106</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L108">src/IdSortable.ts:108</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
+							<h4 class="tsd-returns-title">Returns <a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a></h4>
 						</li>
 					</ul>
 				</section>
@@ -382,17 +382,17 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuff
 					<a name="next" class="tsd-anchor"></a>
 					<h3>next</h3>
 					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
-						<li class="tsd-signature tsd-kind-icon">next<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
+						<li class="tsd-signature tsd-kind-icon">next<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<p>Implementation of IterableIterator.next</p>
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L110">IdSortable.ts:110</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L112">src/IdSortable.ts:112</a></li>
 								</ul>
 							</aside>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorResult</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -404,6 +404,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorR
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="../modules/IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
@@ -432,10 +435,10 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IteratorR
 								<a href="IdSortable.default.html#constructor" class="tsd-kind-icon">constructor</a>
 							</li>
 							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
-								<a href="IdSortable.default.html#clock" class="tsd-kind-icon">clock</a>
+								<a href="IdSortable.default.html#_lastId" class="tsd-kind-icon">_last<wbr>Id</a>
 							</li>
 							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
-								<a href="IdSortable.default.html#lastId_" class="tsd-kind-icon">last<wbr>Id_</a>
+								<a href="IdSortable.default.html#clock" class="tsd-kind-icon">clock</a>
 							</li>
 							<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
 								<a href="IdSortable.default.html#lastTs" class="tsd-kind-icon">last<wbr>Ts</a>
diff --git a/docs/index.html b/docs/index.html
index 22165c4..3c17a18 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -81,10 +81,20 @@ <h1>js-id</h1>
 
 <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">deteId1</span><span style="color: #000000"> = </span><span style="color: #001080">deteGen</span><span style="color: #000000">.</span><span style="color: #795E26">get</span><span style="color: #000000">();</span>
 <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">deteId2</span><span style="color: #000000"> = </span><span style="color: #001080">deteGen</span><span style="color: #000000">.</span><span style="color: #795E26">get</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;bar&#039;</span><span style="color: #000000">);</span>
+<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">deteId3</span><span style="color: #000000"> = </span><span style="color: #001080">deteGen</span><span style="color: #000000">.</span><span style="color: #795E26">get</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;bar&#039;</span><span style="color: #000000">);</span>
 
 <span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">utils</span><span style="color: #000000">.</span><span style="color: #795E26">toUUID</span><span style="color: #000000">(</span><span style="color: #001080">deteId1</span><span style="color: #000000">));</span>
 <span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">utils</span><span style="color: #000000">.</span><span style="color: #795E26">toMultibase</span><span style="color: #000000">(</span><span style="color: #001080">deteId2</span><span style="color: #000000">, </span><span style="color: #A31515">&#039;base58btc&#039;</span><span style="color: #000000">));</span>
 
+<span style="color: #008000">// Will be cast to string index</span>
+<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">recordOfDeteIds</span><span style="color: #000000"> = {};</span>
+<span style="color: #001080">recordOfDeteIds</span><span style="color: #000000">[</span><span style="color: #001080">deteId1</span><span style="color: #000000">] = </span><span style="color: #098658">1</span><span style="color: #000000">;</span>
+<span style="color: #001080">recordOfDeteIds</span><span style="color: #000000">[</span><span style="color: #001080">deteId2</span><span style="color: #000000">] = </span><span style="color: #098658">1</span><span style="color: #000000">;</span>
+<span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">recordOfDeteIds</span><span style="color: #000000">[</span><span style="color: #001080">deteId1</span><span style="color: #000000">]);</span>
+
+<span style="color: #008000">// Can be checked for equality</span>
+<span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">deteId2</span><span style="color: #000000">.</span><span style="color: #795E26">toString</span><span style="color: #000000">() === </span><span style="color: #001080">deteId3</span><span style="color: #000000">.</span><span style="color: #795E26">toString</span><span style="color: #000000">());</span>
+
 <span style="color: #008000">// Strictly monotonic sortable ids, equivalent to UUIDv7</span>
 
 <span style="color: #0000FF">let</span><span style="color: #000000"> </span><span style="color: #001080">lastId</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #267F99">Uint8Array</span><span style="color: #000000">(</span>
@@ -92,7 +102,7 @@ <h1>js-id</h1>
 <span style="color: #000000">    </span><span style="color: #098658">0x06</span><span style="color: #000000">, </span><span style="color: #098658">0x16</span><span style="color: #000000">, </span><span style="color: #098658">0x3e</span><span style="color: #000000">, </span><span style="color: #098658">0xf5</span><span style="color: #000000">, </span><span style="color: #098658">0x6d</span><span style="color: #000000">, </span><span style="color: #098658">0x8d</span><span style="color: #000000">, </span><span style="color: #098658">0x70</span><span style="color: #000000">, </span><span style="color: #098658">0x00</span><span style="color: #000000">,</span>
 <span style="color: #000000">    </span><span style="color: #098658">0x87</span><span style="color: #000000">, </span><span style="color: #098658">0xc4</span><span style="color: #000000">, </span><span style="color: #098658">0x65</span><span style="color: #000000">, </span><span style="color: #098658">0xd5</span><span style="color: #000000">, </span><span style="color: #098658">0x21</span><span style="color: #000000">, </span><span style="color: #098658">0x9b</span><span style="color: #000000">, </span><span style="color: #098658">0x03</span><span style="color: #000000">, </span><span style="color: #098658">0xd4</span><span style="color: #000000">,</span>
 <span style="color: #000000">  ]</span>
-<span style="color: #000000">).</span><span style="color: #001080">buffer</span><span style="color: #000000">;</span>
+<span style="color: #000000">);</span>
 
 <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">sortGen</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #795E26">IdSortable</span><span style="color: #000000">({ </span><span style="color: #001080">lastId</span><span style="color: #000000"> });</span>
 
@@ -101,9 +111,9 @@ <h1>js-id</h1>
 <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">sortId3</span><span style="color: #000000"> = </span><span style="color: #001080">sortGen</span><span style="color: #000000">.</span><span style="color: #795E26">get</span><span style="color: #000000">();</span>
 
 <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">sortIds</span><span style="color: #000000"> = [</span>
-<span style="color: #000000">  </span><span style="color: #001080">Buffer</span><span style="color: #000000">.</span><span style="color: #795E26">from</span><span style="color: #000000">(</span><span style="color: #001080">sortId2</span><span style="color: #000000">),</span>
-<span style="color: #000000">  </span><span style="color: #001080">Buffer</span><span style="color: #000000">.</span><span style="color: #795E26">from</span><span style="color: #000000">(</span><span style="color: #001080">sortId3</span><span style="color: #000000">),</span>
-<span style="color: #000000">  </span><span style="color: #001080">Buffer</span><span style="color: #000000">.</span><span style="color: #795E26">from</span><span style="color: #000000">(</span><span style="color: #001080">sortId1</span><span style="color: #000000">),</span>
+<span style="color: #000000">  </span><span style="color: #001080">utils</span><span style="color: #000000">.</span><span style="color: #795E26">toBuffer</span><span style="color: #000000">(</span><span style="color: #001080">sortId2</span><span style="color: #000000">),</span>
+<span style="color: #000000">  </span><span style="color: #001080">utils</span><span style="color: #000000">.</span><span style="color: #795E26">toBuffer</span><span style="color: #000000">(</span><span style="color: #001080">sortId3</span><span style="color: #000000">),</span>
+<span style="color: #000000">  </span><span style="color: #001080">utils</span><span style="color: #000000">.</span><span style="color: #795E26">toBuffer</span><span style="color: #000000">(</span><span style="color: #001080">sortId1</span><span style="color: #000000">),</span>
 <span style="color: #000000">];</span>
 
 <span style="color: #001080">sortIds</span><span style="color: #000000">.</span><span style="color: #795E26">sort</span><span style="color: #000000">(</span><span style="color: #001080">Buffer</span><span style="color: #000000">.</span><span style="color: #001080">compare</span><span style="color: #000000">);</span>
@@ -112,6 +122,10 @@ <h1>js-id</h1>
 
 <span style="color: #008000">// Save the last id to ensure strict monotonicity across process restarts</span>
 <span style="color: #001080">lastId</span><span style="color: #000000"> = </span><span style="color: #001080">sortGen</span><span style="color: #000000">.</span><span style="color: #001080">lastId</span><span style="color: #000000">;</span>
+
+<span style="color: #008000">// Ids can also be compared in order</span>
+<span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">sortId1</span><span style="color: #000000"> &lt; </span><span style="color: #001080">sortId2</span><span style="color: #000000">);</span>
+<span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">sortId2</span><span style="color: #000000"> &lt; </span><span style="color: #001080">sortId3</span><span style="color: #000000">);</span>
 </code></pre>
 				<a href="#installation" id="installation" style="color: inherit; text-decoration: none;">
 					<h2>Installation</h2>
@@ -159,6 +173,9 @@ <h3>Publishing</h3>
 					<li class=" ">
 						<a href="modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="modules/IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/modules.html b/docs/modules.html
index 1026330..b0e637c 100644
--- a/docs/modules.html
+++ b/docs/modules.html
@@ -64,6 +64,7 @@ <h2>Index</h2>
 						<section class="tsd-index-section ">
 							<h3>Modules</h3>
 							<ul class="tsd-index-list">
+								<li class="tsd-kind-module"><a href="modules/Id.html" class="tsd-kind-icon">Id</a></li>
 								<li class="tsd-kind-module"><a href="modules/IdDeterministic.html" class="tsd-kind-icon">Id<wbr>Deterministic</a></li>
 								<li class="tsd-kind-module"><a href="modules/IdRandom.html" class="tsd-kind-icon">Id<wbr>Random</a></li>
 								<li class="tsd-kind-module"><a href="modules/IdSortable.html" class="tsd-kind-icon">Id<wbr>Sortable</a></li>
@@ -81,6 +82,9 @@ <h3>Modules</h3>
 					<li class="current ">
 						<a href="modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="modules/IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/modules/Id.html b/docs/modules/Id.html
new file mode 100644
index 0000000..b9815c8
--- /dev/null
+++ b/docs/modules/Id.html
@@ -0,0 +1,168 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>Id | @matrixai/id</title>
+	<meta name="description" content="Documentation for @matrixai/id">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+	<script async src="../assets/js/search.js" id="search-script"></script>
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">@matrixai/id</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../modules.html">@matrixai/id</a>
+				</li>
+				<li>
+					<a href="Id.html">Id</a>
+				</li>
+			</ul>
+			<h1>Module Id</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Classes</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-class tsd-parent-kind-module"><a href="../classes/Id.default.html" class="tsd-kind-icon">default</a></li>
+							</ul>
+						</section>
+						<section class="tsd-index-section ">
+							<h3>Type aliases</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="Id.html#Id-1" class="tsd-kind-icon">Id</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Type aliases</h2>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="Id-1" class="tsd-anchor"></a>
+					<h3>Id</h3>
+					<div class="tsd-signature tsd-kind-icon">Id<span class="tsd-signature-symbol">:</span> <a href="../classes/Id.default.html" class="tsd-signature-type" data-tsd-kind="Class">default</a><span class="tsd-signature-symbol"> &amp; </span><span class="tsd-signature-type">number</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/Id.ts#L8">src/Id.ts:8</a></li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>IdInternal can be used as a string primitive
+								This type hack prevents TS from complaining
+							See: <a href="https://github.com/microsoft/TypeScript/issues/4538">https://github.com/microsoft/TypeScript/issues/4538</a></p>
+						</div>
+					</div>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class=" ">
+						<a href="../modules.html">Modules</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="Id.html">Id</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="IdDeterministic.html">Id<wbr>Deterministic</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="IdRandom.html">Id<wbr>Random</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="IdSortable.html">Id<wbr>Sortable</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="index.html">index</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="utils.html">utils</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-class tsd-parent-kind-module">
+						<a href="../classes/Id.default.html" class="tsd-kind-icon">default</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="Id.html#Id-1" class="tsd-kind-icon">Id</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/modules/IdDeterministic.html b/docs/modules/IdDeterministic.html
index 6f9aa13..751422f 100644
--- a/docs/modules/IdDeterministic.html
+++ b/docs/modules/IdDeterministic.html
@@ -85,6 +85,9 @@ <h3>Classes</h3>
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="Id.html">Id</a>
+					</li>
 					<li class="current tsd-kind-module">
 						<a href="IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/modules/IdRandom.html b/docs/modules/IdRandom.html
index 24bff12..d063609 100644
--- a/docs/modules/IdRandom.html
+++ b/docs/modules/IdRandom.html
@@ -85,6 +85,9 @@ <h3>Classes</h3>
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/modules/IdSortable.html b/docs/modules/IdSortable.html
index 8069887..97a0571 100644
--- a/docs/modules/IdSortable.html
+++ b/docs/modules/IdSortable.html
@@ -92,19 +92,19 @@ <h2>Functions</h2>
 					<a name="extractRand" class="tsd-anchor"></a>
 					<h3>extract<wbr>Rand</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">extract<wbr>Rand<span class="tsd-signature-symbol">(</span>idBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+						<li class="tsd-signature tsd-kind-icon">extract<wbr>Rand<span class="tsd-signature-symbol">(</span>idBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L49">IdSortable.ts:49</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L52">src/IdSortable.ts:52</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>idBytes: <span class="tsd-signature-type">ArrayBuffer</span></h5>
+									<h5>idBytes: <span class="tsd-signature-type">Uint8Array</span></h5>
 								</li>
 							</ul>
 							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@@ -115,19 +115,19 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
 					<a name="extractSeq" class="tsd-anchor"></a>
 					<h3>extract<wbr>Seq</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">extract<wbr>Seq<span class="tsd-signature-symbol">(</span>idBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+						<li class="tsd-signature tsd-kind-icon">extract<wbr>Seq<span class="tsd-signature-symbol">(</span>idBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L38">IdSortable.ts:38</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L42">src/IdSortable.ts:42</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>idBytes: <span class="tsd-signature-type">ArrayBuffer</span></h5>
+									<h5>idBytes: <span class="tsd-signature-type">Uint8Array</span></h5>
 								</li>
 							</ul>
 							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
@@ -138,19 +138,19 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</s
 					<a name="extractTs" class="tsd-anchor"></a>
 					<h3>extract<wbr>Ts</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">extract<wbr>Ts<span class="tsd-signature-symbol">(</span>idBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
+						<li class="tsd-signature tsd-kind-icon">extract<wbr>Ts<span class="tsd-signature-symbol">(</span>idBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/IdSortable.ts#L25">IdSortable.ts:25</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/IdSortable.ts#L28">src/IdSortable.ts:28</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>idBytes: <span class="tsd-signature-type">ArrayBuffer</span></h5>
+									<h5>idBytes: <span class="tsd-signature-type">Uint8Array</span></h5>
 								</li>
 							</ul>
 							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
@@ -165,6 +165,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</s
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/modules/index.html b/docs/modules/index.html
index d7ef10e..04e911a 100644
--- a/docs/modules/index.html
+++ b/docs/modules/index.html
@@ -111,6 +111,9 @@ <h3>utils</h3>
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
diff --git a/docs/modules/utils.html b/docs/modules/utils.html
index 6485b62..da8445d 100644
--- a/docs/modules/utils.html
+++ b/docs/modules/utils.html
@@ -78,13 +78,15 @@ <h3>Type aliases</h3>
 						<section class="tsd-index-section ">
 							<h3>Functions</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#bin2bytes" class="tsd-kind-icon">bin2bytes</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#bytes2bin" class="tsd-kind-icon">bytes2bin</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#bits2bytes" class="tsd-kind-icon">bits2bytes</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#bytes2bits" class="tsd-kind-icon">bytes2bits</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#bytes2hex" class="tsd-kind-icon">bytes2hex</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#dec2bin" class="tsd-kind-icon">dec2bin</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#dec2bits" class="tsd-kind-icon">dec2bits</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#dec2hex" class="tsd-kind-icon">dec2hex</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#fromBuffer" class="tsd-kind-icon">from<wbr>Buffer</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#fromFixedPoint" class="tsd-kind-icon">from<wbr>Fixed<wbr>Point</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#fromMultibase" class="tsd-kind-icon">from<wbr>Multibase</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#fromString" class="tsd-kind-icon">from<wbr>String</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#fromUUID" class="tsd-kind-icon">fromUUID</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#hex2bytes" class="tsd-kind-icon">hex2bytes</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#nodeBits" class="tsd-kind-icon">node<wbr>Bits</a></li>
@@ -94,8 +96,10 @@ <h3>Functions</h3>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#strChunks" class="tsd-kind-icon">str<wbr>Chunks</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module tsd-has-type-parameter"><a href="utils.html#take" class="tsd-kind-icon">take</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#timeSource" class="tsd-kind-icon">time<wbr>Source</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#toBuffer" class="tsd-kind-icon">to<wbr>Buffer</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#toFixedPoint" class="tsd-kind-icon">to<wbr>Fixed<wbr>Point</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#toMultibase" class="tsd-kind-icon">to<wbr>Multibase</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#toString" class="tsd-kind-icon">to<wbr>String</a></li>
 								<li class="tsd-kind-function tsd-parent-kind-module"><a href="utils.html#toUUID" class="tsd-kind-icon">toUUID</a></li>
 							</ul>
 						</section>
@@ -110,7 +114,7 @@ <h3>Multibase<wbr>Formats</h3>
 					<div class="tsd-signature tsd-kind-icon">Multibase<wbr>Formats<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">keyof </span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">bases</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L93">utils.ts:93</a></li>
+							<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L110">src/utils.ts:110</a></li>
 						</ul>
 					</aside>
 				</section>
@@ -118,16 +122,16 @@ <h3>Multibase<wbr>Formats</h3>
 			<section class="tsd-panel-group tsd-member-group ">
 				<h2>Functions</h2>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="bin2bytes" class="tsd-anchor"></a>
-					<h3>bin2bytes</h3>
+					<a name="bits2bytes" class="tsd-anchor"></a>
+					<h3>bits2bytes</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">bin2bytes<span class="tsd-signature-symbol">(</span>bin<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
+						<li class="tsd-signature tsd-kind-icon">bits2bytes<span class="tsd-signature-symbol">(</span>bits<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L148">utils.ts:148</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L186">src/utils.ts:186</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -138,7 +142,7 @@ <h3>bin2bytes</h3>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>bin: <span class="tsd-signature-type">string</span></h5>
+									<h5>bits: <span class="tsd-signature-type">string</span></h5>
 								</li>
 							</ul>
 							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
@@ -146,16 +150,16 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Arra
 					</ul>
 				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="bytes2bin" class="tsd-anchor"></a>
-					<h3>bytes2bin</h3>
+					<a name="bytes2bits" class="tsd-anchor"></a>
+					<h3>bytes2bits</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">bytes2bin<span class="tsd-signature-symbol">(</span>bytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+						<li class="tsd-signature tsd-kind-icon">bytes2bits<span class="tsd-signature-symbol">(</span>bytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L141">utils.ts:141</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L179">src/utils.ts:179</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -183,7 +187,7 @@ <h3>bytes2hex</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L129">utils.ts:129</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L167">src/utils.ts:167</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -202,16 +206,16 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
 					</ul>
 				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="dec2bin" class="tsd-anchor"></a>
-					<h3>dec2bin</h3>
+					<a name="dec2bits" class="tsd-anchor"></a>
+					<h3>dec2bits</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">dec2bin<span class="tsd-signature-symbol">(</span>dec<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, size<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+						<li class="tsd-signature tsd-kind-icon">dec2bits<span class="tsd-signature-symbol">(</span>dec<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, size<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L157">utils.ts:157</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L195">src/utils.ts:195</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -243,7 +247,7 @@ <h3>dec2hex</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L167">utils.ts:167</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L205">src/utils.ts:205</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -265,6 +269,34 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
 						</li>
 					</ul>
 				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="fromBuffer" class="tsd-anchor"></a>
+					<h3>from<wbr>Buffer</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">from<wbr>Buffer<span class="tsd-signature-symbol">(</span>idBuffer<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L153">src/utils.ts:153</a></li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Decodes as Buffer zero-copy</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>idBuffer: <span class="tsd-signature-type">Buffer</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
+						</li>
+					</ul>
+				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
 					<a name="fromFixedPoint" class="tsd-anchor"></a>
 					<h3>from<wbr>Fixed<wbr>Point</h3>
@@ -275,7 +307,7 @@ <h3>from<wbr>Fixed<wbr>Point</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L222">utils.ts:222</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L260">src/utils.ts:260</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -305,13 +337,13 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</s
 					<a name="fromMultibase" class="tsd-anchor"></a>
 					<h3>from<wbr>Multibase</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">from<wbr>Multibase<span class="tsd-signature-symbol">(</span>idString<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
+						<li class="tsd-signature tsd-kind-icon">from<wbr>Multibase<span class="tsd-signature-symbol">(</span>idString<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L113">utils.ts:113</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L130">src/utils.ts:130</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -326,7 +358,30 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 									<h5>idString: <span class="tsd-signature-type">string</span></h5>
 								</li>
 							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
+							<h4 class="tsd-returns-title">Returns <a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="fromString" class="tsd-anchor"></a>
+					<h3>from<wbr>String</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">from<wbr>String<span class="tsd-signature-symbol">(</span>idString<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L81">src/utils.ts:81</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>idString: <span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -334,13 +389,13 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuff
 					<a name="fromUUID" class="tsd-anchor"></a>
 					<h3>fromUUID</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">fromUUID<span class="tsd-signature-symbol">(</span>uuid<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
+						<li class="tsd-signature tsd-kind-icon">fromUUID<span class="tsd-signature-symbol">(</span>uuid<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L85">utils.ts:85</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L102">src/utils.ts:102</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -349,7 +404,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 									<h5>uuid: <span class="tsd-signature-type">string</span></h5>
 								</li>
 							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
+							<h4 class="tsd-returns-title">Returns <a href="Id.html#Id-1" class="tsd-signature-type" data-tsd-kind="Type alias">Id</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -363,7 +418,7 @@ <h3>hex2bytes</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L133">utils.ts:133</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L171">src/utils.ts:171</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -380,19 +435,19 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Arra
 					<a name="nodeBits" class="tsd-anchor"></a>
 					<h3>node<wbr>Bits</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">node<wbr>Bits<span class="tsd-signature-symbol">(</span>nodeBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span>, size<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+						<li class="tsd-signature tsd-kind-icon">node<wbr>Bits<span class="tsd-signature-symbol">(</span>nodeBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span>, size<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L26">utils.ts:26</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L28">src/utils.ts:28</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>nodeBytes: <span class="tsd-signature-type">ArrayBuffer</span></h5>
+									<h5>nodeBytes: <span class="tsd-signature-type">Uint8Array</span></h5>
 								</li>
 								<li>
 									<h5>size: <span class="tsd-signature-type">number</span></h5>
@@ -412,7 +467,7 @@ <h3>random<wbr>Bits</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L17">utils.ts:17</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L19">src/utils.ts:19</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -461,7 +516,7 @@ <h3>random<wbr>Bytes</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L10">utils.ts:10</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L12">src/utils.ts:12</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -489,7 +544,7 @@ <h3>round<wbr>Precise</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L191">utils.ts:191</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L229">src/utils.ts:229</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -523,7 +578,7 @@ <h3>str<wbr>Chunks</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L177">utils.ts:177</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L215">src/utils.ts:215</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -555,7 +610,7 @@ <h3>take</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L66">utils.ts:66</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L67">src/utils.ts:67</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -592,7 +647,7 @@ <h3>time<wbr>Source</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L41">utils.ts:41</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L42">src/utils.ts:42</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -631,6 +686,34 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</s
 						</li>
 					</ul>
 				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="toBuffer" class="tsd-anchor"></a>
+					<h3>to<wbr>Buffer</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">to<wbr>Buffer<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L146">src/utils.ts:146</a></li>
+								</ul>
+							</aside>
+							<div class="tsd-comment tsd-typography">
+								<div class="lead">
+									<p>Encodes as Buffer zero-copy</p>
+								</div>
+							</div>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>id: <span class="tsd-signature-type">Uint8Array</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Buffer</span></h4>
+						</li>
+					</ul>
+				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
 					<a name="toFixedPoint" class="tsd-anchor"></a>
 					<h3>to<wbr>Fixed<wbr>Point</h3>
@@ -641,7 +724,7 @@ <h3>to<wbr>Fixed<wbr>Point</h3>
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L201">utils.ts:201</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L239">src/utils.ts:239</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -671,13 +754,13 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span
 					<a name="toMultibase" class="tsd-anchor"></a>
 					<h3>to<wbr>Multibase</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">to<wbr>Multibase<span class="tsd-signature-symbol">(</span>idBytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span>, format<span class="tsd-signature-symbol">: </span><a href="utils.html#MultibaseFormats" class="tsd-signature-type" data-tsd-kind="Type alias">MultibaseFormats</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+						<li class="tsd-signature tsd-kind-icon">to<wbr>Multibase<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span>, format<span class="tsd-signature-symbol">: </span><a href="utils.html#MultibaseFormats" class="tsd-signature-type" data-tsd-kind="Type alias">MultibaseFormats</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L104">utils.ts:104</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L121">src/utils.ts:121</a></li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -688,7 +771,7 @@ <h3>to<wbr>Multibase</h3>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>idBytes: <span class="tsd-signature-type">ArrayBuffer</span></h5>
+									<h5>id: <span class="tsd-signature-type">Uint8Array</span></h5>
 								</li>
 								<li>
 									<h5>format: <a href="utils.html#MultibaseFormats" class="tsd-signature-type" data-tsd-kind="Type alias">MultibaseFormats</a></h5>
@@ -698,23 +781,46 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
 						</li>
 					</ul>
 				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="toString" class="tsd-anchor"></a>
+					<h3>to<wbr>String</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">to<wbr>String<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L75">src/utils.ts:75</a></li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>id: <span class="tsd-signature-type">Uint8Array</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
 					<a name="toUUID" class="tsd-anchor"></a>
 					<h3>toUUID</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">toUUID<span class="tsd-signature-symbol">(</span>bytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+						<li class="tsd-signature tsd-kind-icon">toUUID<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/699ba29/src/utils.ts#L74">utils.ts:74</a></li>
+									<li>Defined in <a href="https://github.com/MatrixAI/js-id/blob/3d425fa/src/utils.ts#L91">src/utils.ts:91</a></li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>bytes: <span class="tsd-signature-type">ArrayBuffer</span></h5>
+									<h5>id: <span class="tsd-signature-type">Uint8Array</span></h5>
 								</li>
 							</ul>
 							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@@ -729,6 +835,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
 					<li class=" ">
 						<a href="../modules.html">Modules</a>
 					</li>
+					<li class=" tsd-kind-module">
+						<a href="Id.html">Id</a>
+					</li>
 					<li class=" tsd-kind-module">
 						<a href="IdDeterministic.html">Id<wbr>Deterministic</a>
 					</li>
@@ -752,26 +861,32 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
 						<a href="utils.html#MultibaseFormats" class="tsd-kind-icon">Multibase<wbr>Formats</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="utils.html#bin2bytes" class="tsd-kind-icon">bin2bytes</a>
+						<a href="utils.html#bits2bytes" class="tsd-kind-icon">bits2bytes</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="utils.html#bytes2bin" class="tsd-kind-icon">bytes2bin</a>
+						<a href="utils.html#bytes2bits" class="tsd-kind-icon">bytes2bits</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#bytes2hex" class="tsd-kind-icon">bytes2hex</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="utils.html#dec2bin" class="tsd-kind-icon">dec2bin</a>
+						<a href="utils.html#dec2bits" class="tsd-kind-icon">dec2bits</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#dec2hex" class="tsd-kind-icon">dec2hex</a>
 					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="utils.html#fromBuffer" class="tsd-kind-icon">from<wbr>Buffer</a>
+					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#fromFixedPoint" class="tsd-kind-icon">from<wbr>Fixed<wbr>Point</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#fromMultibase" class="tsd-kind-icon">from<wbr>Multibase</a>
 					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="utils.html#fromString" class="tsd-kind-icon">from<wbr>String</a>
+					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#fromUUID" class="tsd-kind-icon">fromUUID</a>
 					</li>
@@ -799,12 +914,18 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#timeSource" class="tsd-kind-icon">time<wbr>Source</a>
 					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="utils.html#toBuffer" class="tsd-kind-icon">to<wbr>Buffer</a>
+					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#toFixedPoint" class="tsd-kind-icon">to<wbr>Fixed<wbr>Point</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#toMultibase" class="tsd-kind-icon">to<wbr>Multibase</a>
 					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="utils.html#toString" class="tsd-kind-icon">to<wbr>String</a>
+					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
 						<a href="utils.html#toUUID" class="tsd-kind-icon">toUUID</a>
 					</li>