bebyte
Version:
Lightweight library for reading and writing unsigned integers (UInt) from 1 to 64 bits in Big Endian format. Supports precise binary serialization with byte-level control.
1 lines • 47.2 kB
Source Map (JSON)
{"version":3,"sources":["../src/ByteProcessor.ts","../src/ByteWriter.ts","../src/ByteReader.ts","../src/index.ts"],"sourcesContent":["/**\n * ByteProcessor is an abstract base class that provides a shared interface\n * for working with byte-oriented data structures. It manages a read/write\n * cursor (`offset`) and requires subclasses to implement a method that exports\n * the current byte data as a Uint8Array.\n */\nexport default abstract class ByteProcessor {\n protected _offset: number = 0\n\n /**\n * The current byte offset used for reading from or writing to a buffer.\n * Can be used to control the read/write position manually.\n */\n public get offset(): number {\n return this._offset\n }\n\n /**\n * Sets the current byte offset (cursor) to a new position.\n *\n * @param {number} value - The new offset position.\n */\n public set offset(value: number) {\n this._offset = value\n }\n\n /**\n * Converts the internal state or buffer content into a Uint8Array.\n *\n * @returns {Uint8Array} A byte array representing the internal data.\n */\n public abstract toUint8Array(): Uint8Array\n}","import ByteProcessor from \"@/ByteProcessor\";\n\ntype offset = number\ntype uint = number | bigint\ntype operation = 'setUint8' | 'setUint16' | 'setUint32' | 'setBigUint64'\n\n/**\n * ByteWriter is a low-level utility for writing unsigned integers of arbitrary bit-length\n * (from 1 to 64 bits) into a buffer using **Big Endian** byte order.\n *\n * Supports incremental writes and serialization to Uint8Array.\n *\n * Inherits from ByteProcessor.\n */\nexport default class ByteWriter extends ByteProcessor {\n private readonly buffer: Array<[operation, uint, offset]> = []\n\n /**\n * Writes an unsigned 1-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i1(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 1)\n this.i8(value, true)\n }\n\n /**\n * Writes an unsigned 2-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i2(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 2)\n this.i8(value, true)\n }\n\n /**\n * Writes an unsigned 3-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i3(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 3)\n this.i8(value, true)\n }\n\n /**\n * Writes an unsigned 4-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i4(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 4)\n this.i8(value, true)\n }\n\n /**\n * Writes an unsigned 5-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i5(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 5)\n this.i8(value, true)\n }\n\n /**\n * Writes an unsigned 6-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i6(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 6)\n this.i8(value, true)\n }\n\n /**\n * Writes an unsigned 7-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i7(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 7)\n this.i8(value, true)\n }\n\n /**\n * Writes an unsigned 8-bit integer into the buffer using 1 byte (i8) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i8(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 8)\n this.buffer.push(['setUint8', value, this.offset])\n this.offset += 1\n }\n\n /**\n * Writes an unsigned 9-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i9(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 9)\n this.i16(value, true)\n }\n\n /**\n * Writes an unsigned 10-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i10(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 10)\n this.i16(value, true)\n }\n\n /**\n * Writes an unsigned 11-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i11(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 11)\n this.i16(value, true)\n }\n\n /**\n * Writes an unsigned 12-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i12(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 12)\n this.i16(value, true)\n }\n\n /**\n * Writes an unsigned 13-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i13(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 13)\n this.i16(value, true)\n }\n\n /**\n * Writes an unsigned 14-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i14(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 14)\n this.i16(value, true)\n }\n\n /**\n * Writes an unsigned 15-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i15(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 15)\n this.i16(value, true)\n }\n\n /**\n * Writes an unsigned 16-bit integer into the buffer using 2 byte (i16) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i16(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 16)\n this.buffer.push(['setUint16', value, this.offset])\n this.offset += 2\n }\n\n /**\n * Writes an unsigned 17-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i17(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 17)\n this.i24(value, true)\n }\n\n /**\n * Writes an unsigned 18-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i18(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 18)\n this.i24(value, true)\n }\n\n /**\n * Writes an unsigned 19-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i19(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 19)\n this.i24(value, true)\n }\n\n /**\n * Writes an unsigned 20-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i20(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 20)\n this.i24(value, true)\n }\n\n /**\n * Writes an unsigned 21-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i21(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 21)\n this.i24(value, true)\n }\n\n /**\n * Writes an unsigned 22-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i22(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 22)\n this.i24(value, true)\n }\n\n /**\n * Writes an unsigned 23-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i23(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 23)\n this.i24(value, true)\n }\n\n /**\n * Writes an unsigned 24-bit integer into the buffer using 3 byte (i24) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i24(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 24)\n this.i8((value >> 16) & 0xFF, true)\n this.i8((value >> 8) & 0xFF, true)\n this.i8(value & 0xFF, true)\n }\n\n /**\n * Writes an unsigned 25-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i25(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 25)\n this.i32(value, true)\n }\n\n /**\n * Writes an unsigned 26-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i26(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 26)\n this.i32(value, true)\n }\n\n /**\n * Writes an unsigned 27-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i27(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 27)\n this.i32(value, true)\n }\n\n /**\n * Writes an unsigned 28-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i28(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 28)\n this.i32(value, true)\n }\n\n /**\n * Writes an unsigned 29-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i29(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 29)\n this.i32(value, true)\n }\n\n /**\n * Writes an unsigned 30-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i30(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 30)\n this.i32(value, true)\n }\n\n /**\n * Writes an unsigned 31-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i31(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 31)\n this.i32(value, true)\n }\n\n /**\n * Writes an unsigned 32-bit integer into the buffer using 4 byte (i32) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i32(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 32)\n this.buffer.push(['setUint32', value, this.offset])\n this.offset += 4\n }\n\n /**\n * Writes an unsigned 33-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i33(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 33);\n this.i40(value, true);\n }\n\n /**\n * Writes an unsigned 34-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i34(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 34);\n this.i40(value, true);\n }\n\n /**\n * Writes an unsigned 35-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i35(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 35);\n this.i40(value, true);\n }\n\n /**\n * Writes an unsigned 36-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i36(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 36);\n this.i40(value, true);\n }\n\n /**\n * Writes an unsigned 37-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i37(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 37);\n this.i40(value, true);\n }\n\n /**\n * Writes an unsigned 38-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i38(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 38);\n this.i40(value, true);\n }\n\n /**\n * Writes an unsigned 39-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i39(value: number, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 39);\n this.i40(value, true);\n }\n\n /**\n * Writes an unsigned 40-bit integer into the buffer using 5 byte (i40) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i40(value: number | bigint, skipValidation = false) {\n if (typeof value != \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 40);\n this.i8(Number((value >> 32n) & 0xFFn), true);\n this.i8(Number((value >> 24n) & 0xFFn), true);\n this.i8(Number((value >> 16n) & 0xFFn), true);\n this.i8(Number((value >> 8n) & 0xFFn), true);\n this.i8(Number(value & 0xFFn), true);\n }\n\n /**\n * Writes an unsigned 41-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i41(value: number | bigint, skipValidation = false) {\n if (typeof value !== \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 41);\n this.i48(value, true);\n }\n\n /**\n * Writes an unsigned 42-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i42(value: number | bigint, skipValidation = false) {\n if (typeof value !== \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 42);\n this.i48(value, true);\n }\n\n /**\n * Writes an unsigned 43-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i43(value: number | bigint, skipValidation = false) {\n if (typeof value !== \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 43);\n this.i48(value, true);\n }\n\n /**\n * Writes an unsigned 44-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i44(value: number | bigint, skipValidation = false) {\n if (typeof value !== \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 44);\n this.i48(value, true);\n }\n\n /**\n * Writes an unsigned 45-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i45(value: number | bigint, skipValidation = false) {\n if (typeof value !== \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 45);\n this.i48(value, true);\n }\n\n /**\n * Writes an unsigned 46-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i46(value: number | bigint, skipValidation = false) {\n if (typeof value !== \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 46);\n this.i48(value, true);\n }\n\n /**\n * Writes an unsigned 47-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i47(value: number | bigint, skipValidation = false) {\n if (typeof value !== \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 47);\n this.i48(value, true);\n }\n\n /**\n * Writes an unsigned 48-bit integer into the buffer using 6 byte (i48) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i48(value: number | bigint, skipValidation = false) {\n if (typeof value != \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 48);\n this.i8(Number((value >> 40n) & 0xFFn));\n this.i40(value, true)\n }\n\n /**\n * Writes an unsigned 49-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i49(value: number | bigint, skipValidation = false) {\n if (typeof value != \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 49);\n this.i56(value, true);\n }\n\n /**\n * Writes an unsigned 50-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i50(value: number | bigint, skipValidation = false) {\n if (typeof value != \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 50);\n this.i56(value, true);\n }\n\n /**\n * Writes an unsigned 51-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i51(value: number | bigint, skipValidation = false) {\n if (typeof value != \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 51);\n this.i56(value, true);\n }\n\n /**\n * Writes an unsigned 52-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {number | bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i52(value: number | bigint, skipValidation = false) {\n if (typeof value != \"bigint\") value = BigInt(value);\n skipValidation || this.validateBitLength(value, 52);\n this.i56(value, true);\n }\n\n /**\n * Writes an unsigned 53-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i53(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 53);\n this.i56(value, true);\n }\n\n /**\n * Writes an unsigned 54-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i54(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 54);\n this.i56(value, true);\n }\n\n /**\n * Writes an unsigned 55-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i55(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 55);\n this.i56(value, true);\n }\n\n /**\n * Writes an unsigned 56-bit integer into the buffer using 7 byte (i56) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i56(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 56);\n this.i8(Number((value >> 48n) & 0xFFn));\n this.i48(value, true)\n }\n\n /**\n * Writes an unsigned 57-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i57(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 57);\n this.i64(value, true);\n }\n\n /**\n * Writes an unsigned 58-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i58(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 58);\n this.i64(value, true);\n }\n\n /**\n * Writes an unsigned 59-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i59(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 59);\n this.i64(value, true);\n }\n\n /**\n * Writes an unsigned 60-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i60(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 60);\n this.i64(value, true);\n }\n\n /**\n * Writes an unsigned 61-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i61(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 61);\n this.i64(value, true);\n }\n\n /**\n * Writes an unsigned 62-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i62(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 62);\n this.i64(value, true);\n }\n\n /**\n * Writes an unsigned 63-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i63(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 63);\n this.i64(value, true);\n }\n\n /**\n * Writes an unsigned 64-bit integer into the buffer using 8 byte (i63) in **Big Endian** order\n *\n * @param {bigint} value - The unsigned integer to write.\n * @param {boolean} [skipValidation=false] - If true, skips bit-length validation.\n */\n public i64(value: bigint, skipValidation = false) {\n skipValidation || this.validateBitLength(value, 64);\n this.buffer.push(['setBigUint64', value, this.offset])\n this.offset += 8\n }\n\n /**\n * Writes a sequence of raw bytes to the buffer (without changing byte order).\n *\n * @param {Uint8Array} bytes - Raw bytes to write directly.\n */\n public write(bytes: Uint8Array) {\n bytes.forEach(value => this.i8(value))\n }\n\n /**\n * Finalizes all buffered write operations and returns a Uint8Array.\n * All multibyte values are written in **Big Endian** format.\n *\n * @returns {Uint8Array} A finalized byte array representing all written data.\n */\n public toUint8Array(): Uint8Array {\n const buffer = new Uint8Array(this.offset)\n if (this.offset == 0) return buffer\n const dataView = new DataView(buffer.buffer)\n while (this.buffer.length > 0) {\n const [operation, uint, offset] = this.buffer.shift()!;\n switch (operation) {\n case \"setUint8\":\n dataView.setUint8(offset, uint as number)\n break\n case \"setUint16\":\n dataView.setUint16(offset, uint as number, false)\n break\n case \"setUint32\":\n dataView.setUint32(offset, uint as number, false)\n break\n case \"setBigUint64\":\n dataView.setBigUint64(offset, uint as bigint, false)\n break\n }\n }\n return buffer\n }\n\n /**\n * Validates that a given value fits within a specified unsigned bit-length.\n *\n * @param {number} value - The value to validate.\n * @param {number} bits - Bit size (1–64) to validate against.\n * @throws {Error} If the value is out of bounds for the given bit-length.\n */\n private validateBitLength(value: number | bigint, bits: number) {\n if (typeof value != \"bigint\") value = BigInt(value)\n const max = (1n << BigInt(bits)) - 1n\n if (value < 0 || value > max) {\n throw new Error(`Illegal value. ${value} is out of Uint${bits}`)\n }\n }\n}","import ByteProcessor from \"@/ByteProcessor\";\n\n/**\n * ByteReader is a utility class for sequentially reading unsigned integers and byte sequences\n * from a given Uint8Array buffer, using **Big Endian** byte order for multi-byte reads.\n *\n * Extends: ByteProcessor\n */\nexport default class ByteReader extends ByteProcessor {\n private readonly view: DataView<ArrayBufferLike>\n\n /**\n * Creates a new ByteReader for reading from the specified buffer.\n *\n * @param {Uint8Array} buffer - The byte buffer to read from.\n */\n public constructor(private readonly buffer: Uint8Array) {\n super();\n this.view = new DataView(buffer.buffer)\n }\n\n /**\n * Reads an unsigned 8-bit integer.\n *\n * @returns {number} An integer between 0 and 255.\n */\n public i8(): number {\n return this.view.getUint8(this.offset++)\n }\n\n /**\n * Reads an unsigned 16-bit integer using **Big Endian** byte order.\n *\n * @returns {number} An integer between 0 and 65535.\n */\n public i16(): number {\n const offset = this.offset\n this.offset += 2\n return this.view.getUint16(offset, false)\n }\n\n /**\n * Reads an unsigned 24-bit integer using **Big Endian** byte order.\n *\n * @returns {number} An integer between 0 and 16,777,215.\n */\n public i24(): number {\n return this.i8() << 16 | this.i8() << 8 | this.i8()\n }\n\n /**\n * Reads an unsigned 32-bit integer using **Big Endian** byte order.\n *\n * @returns {number} An integer between 0 and 4,294,967,295.\n */\n public i32(): number {\n const offset = this.offset\n this.offset += 4\n return this.view.getUint32(offset, false)\n }\n\n /**\n * Reads an unsigned 40-bit integer using **Big Endian** byte order.\n *\n * @returns {bigint} A bigint between 0n and 1_099_511_627_775n.\n */\n public i40(): bigint {\n return (BigInt(this.i8()) << 32n) |\n (BigInt(this.i8()) << 24n) |\n (BigInt(this.i8()) << 16n) |\n (BigInt(this.i8()) << 8n) |\n BigInt(this.i8());\n }\n\n /**\n * Reads an unsigned 48-bit integer using **Big Endian** byte order.\n *\n * @returns {bigint} A bigint between 0n and 281_474_976_710_655n.\n */\n public i48(): bigint {\n return (BigInt(this.i8()) << 40n) | this.i40();\n }\n\n /**\n * Reads an unsigned 56-bit integer using **Big Endian** byte order.\n *\n * @returns {bigint} A bigint between 0n and 72_057_594_037_927_935n.\n */\n public i56(): bigint {\n return (BigInt(this.i8()) << 48n) | this.i48();\n }\n\n /**\n * Reads an unsigned 64-bit integer using **Big Endian** byte order.\n *\n * @returns {bigint} A bigint between 0n and 18_446_744_073_709_551_615n.\n */\n public i64(): bigint {\n const offset = this.offset\n this.offset += 8\n return this.view.getBigUint64(offset, false)\n }\n\n /**\n * Reads the next `length` bytes from the current position in the buffer.\n *\n * @param {number} length - Number of bytes to read.\n * @returns {Uint8Array} A slice of the buffer containing the requested bytes.\n */\n public read(length: number): Uint8Array {\n return this.buffer.slice(this.offset, this.offset += length);\n }\n\n /**\n * Reads all remaining bytes from the current position to the end of the buffer.\n *\n * @returns {Uint8Array} A slice of the buffer from current position to end.\n */\n public readRemaining(): Uint8Array {\n return this.read(this.buffer.length)\n }\n\n /**\n * Returns the original byte buffer.\n *\n * @returns {Uint8Array} The full underlying buffer.\n */\n public toUint8Array(): Uint8Array {\n return this.buffer;\n }\n}","import ByteWriter from \"@/ByteWriter\";\nimport ByteReader from \"@/ByteReader\";\n\nexport {\n type ByteWriter,\n type ByteReader\n}\n\nconst bebyte = {\n writer: () => new ByteWriter(),\n reader: (buffer: Uint8Array) => new ByteReader(buffer)\n}\nexport default bebyte"],"mappings":"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","names":["ByteProcessor","value","ByteWriter","ByteProcessor","value","skipValidation","bytes","buffer","dataView","operation","uint","offset","bits","max","ByteReader","ByteProcessor","buffer","offset","length","bebyte","ByteWriter","buffer","ByteReader","index_default"]}