Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@jsprismarine/jsbinaryutils

Package Overview
Dependencies
Maintainers
2
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jsprismarine/jsbinaryutils - npm Package Compare versions

Comparing version
3.2.2
to
3.2.3-beta.0
+49
-37
dist/BinaryStream.d.ts

@@ -7,6 +7,11 @@ /// <reference types="node" />

private writeIndex;
/**
* Creates a new BinaryStream instance.
* @param {Buffer|null|undefined} buffer - The array or Buffer containing binary data.
* @param {number} offset - The initial pointer position.
*/
constructor(buffer?: Buffer, offset?: number);
/**
* Reads a slice of buffer by the given length.
* @param len
* @param {number} len
*/

@@ -16,4 +21,3 @@ read(len: number): Buffer;

* Appends a buffer to the main buffer.
*
* @param buf
* @param {Buffer|Uint8Array} buf
*/

@@ -23,2 +27,3 @@ write(buf: Uint8Array): void;

* Reads an unsigned byte (0 to 255).
* @returns {number}
*/

@@ -28,3 +33,3 @@ readByte(): number;

* Writes an unsigned byte (0 to 255).
* @param v
* @param {number} v
*/

@@ -39,3 +44,3 @@ writeByte(v: number): void;

* Writes a signed byte (-128 to 127).
* @param v
* @param {number} v
*/

@@ -50,3 +55,3 @@ writeSignedByte(v: number): void;

* Writes a boolean (true or false).
* @param v
* @param {boolean} v
*/

@@ -61,3 +66,3 @@ writeBoolean(v: boolean): void;

* Writes a 16 bit (2 bytes) signed big-endian number.
* @param v
* @param {number} v
*/

@@ -72,3 +77,3 @@ writeShort(v: number): void;

* Writes a 16 bit (2 bytes) signed big-endian number.
* @param v
* @param {number} v
*/

@@ -83,3 +88,3 @@ writeShortLE(v: number): void;

* Writes a 16 bit (2 bytes) unsigned big-endian number.
* @param v
* @param {number} v
*/

@@ -94,3 +99,3 @@ writeUnsignedShort(v: number): void;

* Writes a 16 bit (2 bytes) unsigned little-endian number.
* @param v
* @param {number} v
*/

@@ -105,3 +110,3 @@ writeUnsignedShortLE(v: number): void;

* Writes a 24 bit (3 bytes) signed big-endian number.
* @param v
* @param {number} v
*/

@@ -116,3 +121,3 @@ writeTriad(v: number): void;

* Writes a 24 bit (3 bytes) signed little-endian number.
* @param v
* @param {number} v
*/

@@ -127,3 +132,3 @@ writeTriadLE(v: number): void;

* Writes a 24 bit (3 bytes) unsigned big-endian number.
* @param v
* @param {number} v
*/

@@ -138,3 +143,3 @@ writeUnsignedTriad(v: number): void;

* Writes a 24 bit (3 bytes) unsigned little-endian number.
* @param v
* @param {number} v
*/

@@ -144,2 +149,3 @@ writeUnsignedTriadLE(v: number): void;

* Reads a 32 bit (4 bytes) big-endian signed number.
* @returns {number}
*/

@@ -149,3 +155,3 @@ readInt(): number;

* Writes a 32 bit (4 bytes) big-endian signed number.
* @param v
* @param {number} v
*/

@@ -155,2 +161,3 @@ writeInt(v: number): void;

* Reads a 32 bit (4 bytes) signed number.
* @returns {number}
*/

@@ -160,3 +167,3 @@ readIntLE(): number;

* Writes a 32 bit (4 bytes) little-endian signed number.
* @param v
* @param {number} v
*/

@@ -171,3 +178,3 @@ writeIntLE(v: number): void;

* Writes a 32 bit (4 bytes) big-endian unsigned number.
* @param v
* @param {number} v
*/

@@ -182,3 +189,3 @@ writeUnsignedInt(v: number): void;

* Writes a 32 bit (4 bytes) little-endian unsigned number.
* @param v
* @param {number} v
*/

@@ -193,3 +200,3 @@ writeUnsignedIntLE(v: number): void;

* Writes a 32 bit (4 bytes) big-endian floating point number.
* @param v
* @param {number} v
*/

@@ -204,3 +211,3 @@ writeFloat(v: number): void;

* Writes a 32 bit (4 bytes) little-endian floating point number.
* @param v
* @param {number} v
*/

@@ -215,3 +222,3 @@ writeFloatLE(v: number): void;

* Writes a 64 bit (8 bytes) big-endian floating point number.
* @param v
* @param {number} v
*/

@@ -226,3 +233,3 @@ writeDouble(v: number): void;

* Writes a 64 bit (8 bytes) little-endian floating point number.
* @param v
* @param {number} v
*/

@@ -237,3 +244,3 @@ writeDoubleLE(v: number): void;

* Writes a 64 bit (8 bytes) signed big-endian number.
* @param v
* @param {bigint} v
*/

@@ -248,3 +255,3 @@ writeLong(v: bigint): void;

* Writes a 64 bit (8 bytes) signed big-endian number.
* @param v
* @param {bigint} v
*/

@@ -259,3 +266,3 @@ writeLongLE(v: bigint): void;

* Writes a 64 bit (8 bytes) unsigned big-endian number.
* @param v
* @param {bigint} v
*/

@@ -270,3 +277,3 @@ writeUnsignedLong(v: bigint): void;

* Writes a 64 bit (8 bytes) unsigned big-endian number.
* @param v
* @param {bigint} v
*/

@@ -276,2 +283,3 @@ writeUnsignedLongLE(v: bigint): void;

* Reads a 32 bit (4 bytes) zigzag-encoded number.
* @returns {number}
*/

@@ -281,4 +289,3 @@ readVarInt(): number;

* Writes a 32 bit (4 bytes) zigzag-encoded number.
*
* @param v
* @param {number} v
*/

@@ -288,2 +295,3 @@ writeVarInt(v: number): void;

* Reads a 32 bit unsigned number.
* @returns {number}
*/

@@ -293,4 +301,3 @@ readUnsignedVarInt(): number;

* Writes a 32 bit unsigned number with variable-length.
*
* @param v
* @param {number} v
*/

@@ -300,2 +307,3 @@ writeUnsignedVarInt(v: number): void;

* Reads a 64 bit zigzag-encoded variable-length number.
* @returns {bigint}
*/

@@ -305,3 +313,3 @@ readVarLong(): bigint;

* Writes a 64 bit unsigned zigzag-encoded number.
* @param v
* @param {bigint} v
*/

@@ -311,2 +319,3 @@ writeVarLong(v: bigint): void;

* Reads a 64 bit unsigned variable-length number.
* @returns {bigint}
*/

@@ -316,4 +325,3 @@ readUnsignedVarLong(): bigint;

* Writes a 64 bit unsigned variable-length number.
*
* @param v
* @param {bigint} v
*/

@@ -323,3 +331,3 @@ writeUnsignedVarLong(v: bigint): void;

* Increases the write offset by the given length.
* @param length
* @param {number} length
*/

@@ -329,2 +337,3 @@ private addOffset;

* Returns whatever or not the read offset is at end of line.
* @returns {number}
*/

@@ -334,2 +343,3 @@ feof(): boolean;

* Reads the remaining bytes and returns the buffer slice.
* @returns {Buffer}
*/

@@ -339,3 +349,3 @@ readRemaining(): Buffer;

* Skips len bytes on the buffer.
* @param len
* @param {number} len
*/

@@ -360,3 +370,3 @@ skip(len: number): void;

* Do read assertions, check if the read buffer is null.
* @param byteLength
* @param {number} byteLength
*/

@@ -366,5 +376,7 @@ private doReadAssertions;

* Do read assertions, check if the read buffer is null.
* @param byteLength
* @param {number|bigint} num
* @param {number|bigint} minVal
* @param {number|bigint} maxVal
*/
private doWriteAssertions;
}

@@ -8,2 +8,7 @@ "use strict";

class BinaryStream {
/**
* Creates a new BinaryStream instance.
* @param {Buffer|null|undefined} buffer - The array or Buffer containing binary data.
* @param {number} offset - The initial pointer position.
*/
constructor(buffer, offset = 0) {

@@ -18,3 +23,3 @@ this.binary = [];

* Reads a slice of buffer by the given length.
* @param len
* @param {number} len
*/

@@ -31,2 +36,3 @@ read(len) {

* Reads an unsigned byte (0 to 255).
* @returns {number}
*/

@@ -39,3 +45,3 @@ readByte() {

* Writes an unsigned byte (0 to 255).
* @param v
* @param {number} v
*/

@@ -56,3 +62,3 @@ writeByte(v) {

* Writes a signed byte (-128 to 127).
* @param v
* @param {number} v
*/

@@ -74,3 +80,3 @@ writeSignedByte(v) {

* Writes a boolean (true or false).
* @param v
* @param {boolean} v
*/

@@ -90,3 +96,3 @@ writeBoolean(v) {

* Writes a 16 bit (2 bytes) signed big-endian number.
* @param v
* @param {number} v
*/

@@ -108,3 +114,3 @@ writeShort(v) {

* Writes a 16 bit (2 bytes) signed big-endian number.
* @param v
* @param {number} v
*/

@@ -126,3 +132,3 @@ writeShortLE(v) {

* Writes a 16 bit (2 bytes) unsigned big-endian number.
* @param v
* @param {number} v
*/

@@ -144,3 +150,3 @@ writeUnsignedShort(v) {

* Writes a 16 bit (2 bytes) unsigned little-endian number.
* @param v
* @param {number} v
*/

@@ -162,3 +168,3 @@ writeUnsignedShortLE(v) {

* Writes a 24 bit (3 bytes) signed big-endian number.
* @param v
* @param {number} v
*/

@@ -181,3 +187,3 @@ writeTriad(v) {

* Writes a 24 bit (3 bytes) signed little-endian number.
* @param v
* @param {number} v
*/

@@ -200,3 +206,3 @@ writeTriadLE(v) {

* Writes a 24 bit (3 bytes) unsigned big-endian number.
* @param v
* @param {number} v
*/

@@ -219,3 +225,3 @@ writeUnsignedTriad(v) {

* Writes a 24 bit (3 bytes) unsigned little-endian number.
* @param v
* @param {number} v
*/

@@ -230,2 +236,3 @@ writeUnsignedTriadLE(v) {

* Reads a 32 bit (4 bytes) big-endian signed number.
* @returns {number}
*/

@@ -238,3 +245,3 @@ readInt() {

* Writes a 32 bit (4 bytes) big-endian signed number.
* @param v
* @param {number} v
*/

@@ -252,2 +259,3 @@ writeInt(v) {

* Reads a 32 bit (4 bytes) signed number.
* @returns {number}
*/

@@ -260,3 +268,3 @@ readIntLE() {

* Writes a 32 bit (4 bytes) little-endian signed number.
* @param v
* @param {number} v
*/

@@ -282,3 +290,3 @@ writeIntLE(v) {

* Writes a 32 bit (4 bytes) big-endian unsigned number.
* @param v
* @param {number} v
*/

@@ -302,3 +310,3 @@ writeUnsignedInt(v) {

* Writes a 32 bit (4 bytes) little-endian unsigned number.
* @param v
* @param {number} v
*/

@@ -322,3 +330,3 @@ writeUnsignedIntLE(v) {

* Writes a 32 bit (4 bytes) big-endian floating point number.
* @param v
* @param {number} v
*/

@@ -339,3 +347,3 @@ writeFloat(v) {

* Writes a 32 bit (4 bytes) little-endian floating point number.
* @param v
* @param {number} v
*/

@@ -356,3 +364,3 @@ writeFloatLE(v) {

* Writes a 64 bit (8 bytes) big-endian floating point number.
* @param v
* @param {number} v
*/

@@ -373,3 +381,3 @@ writeDouble(v) {

* Writes a 64 bit (8 bytes) little-endian floating point number.
* @param v
* @param {number} v
*/

@@ -390,3 +398,3 @@ writeDoubleLE(v) {

* Writes a 64 bit (8 bytes) signed big-endian number.
* @param v
* @param {bigint} v
*/

@@ -416,3 +424,3 @@ writeLong(v) {

* Writes a 64 bit (8 bytes) signed big-endian number.
* @param v
* @param {bigint} v
*/

@@ -441,3 +449,3 @@ writeLongLE(v) {

* Writes a 64 bit (8 bytes) unsigned big-endian number.
* @param v
* @param {bigint} v
*/

@@ -467,3 +475,3 @@ writeUnsignedLong(v) {

* Writes a 64 bit (8 bytes) unsigned big-endian number.
* @param v
* @param {bigint} v
*/

@@ -484,2 +492,3 @@ writeUnsignedLongLE(v) {

* Reads a 32 bit (4 bytes) zigzag-encoded number.
* @returns {number}
*/

@@ -493,4 +502,3 @@ readVarInt() {

* Writes a 32 bit (4 bytes) zigzag-encoded number.
*
* @param v
* @param {number} v
*/

@@ -503,5 +511,6 @@ writeVarInt(v) {

* Reads a 32 bit unsigned number.
* @returns {number}
*/
readUnsignedVarInt() {
assert_1.default(this.buffer != null, 'Reading on empty buffer!');
(0, assert_1.default)(this.buffer != null, 'Reading on empty buffer!');
let value = 0;

@@ -522,4 +531,3 @@ for (let i = 0; i <= 28; i += 7) {

* Writes a 32 bit unsigned number with variable-length.
*
* @param v
* @param {number} v
*/

@@ -535,2 +543,3 @@ writeUnsignedVarInt(v) {

* Reads a 64 bit zigzag-encoded variable-length number.
* @returns {bigint}
*/

@@ -543,3 +552,3 @@ readVarLong() {

* Writes a 64 bit unsigned zigzag-encoded number.
* @param v
* @param {bigint} v
*/

@@ -551,2 +560,3 @@ writeVarLong(v) {

* Reads a 64 bit unsigned variable-length number.
* @returns {bigint}
*/

@@ -569,4 +579,3 @@ readUnsignedVarLong() {

* Writes a 64 bit unsigned variable-length number.
*
* @param v
* @param {bigint} v
*/

@@ -587,3 +596,3 @@ writeUnsignedVarLong(v) {

* Increases the write offset by the given length.
* @param length
* @param {number} length
*/

@@ -595,2 +604,3 @@ addOffset(length) {

* Returns whatever or not the read offset is at end of line.
* @returns {number}
*/

@@ -604,2 +614,3 @@ feof() {

* Reads the remaining bytes and returns the buffer slice.
* @returns {Buffer}
*/

@@ -615,6 +626,6 @@ readRemaining() {

* Skips len bytes on the buffer.
* @param len
* @param {number} len
*/
skip(len) {
assert_1.default(Number.isInteger(len), 'Cannot skip a float amount of bytes');
(0, assert_1.default)(Number.isInteger(len), 'Cannot skip a float amount of bytes');
this.readIndex += len;

@@ -645,16 +656,18 @@ }

* Do read assertions, check if the read buffer is null.
* @param byteLength
* @param {number} byteLength
*/
doReadAssertions(byteLength) {
assert_1.default(this.buffer !== null, 'Cannot read without buffer data!');
assert_1.default(this.buffer.byteLength >= byteLength, 'Cannot read without buffer data!');
(0, assert_1.default)(this.buffer !== null, 'Cannot read without buffer data!');
(0, assert_1.default)(this.buffer.byteLength >= byteLength, 'Cannot read without buffer data!');
}
/**
* Do read assertions, check if the read buffer is null.
* @param byteLength
* @param {number|bigint} num
* @param {number|bigint} minVal
* @param {number|bigint} maxVal
*/
doWriteAssertions(num, minVal, maxVal) {
assert_1.default(num >= minVal && num <= maxVal, `Value out of bounds: value=${num}, min=${minVal}, max=${maxVal}`);
(0, assert_1.default)(num >= minVal && num <= maxVal, `Value out of bounds: value=${num}, min=${minVal}, max=${maxVal}`);
}
}
exports.default = BinaryStream;
{
"name": "@jsprismarine/jsbinaryutils",
"version": "3.2.2",
"version": "3.2.3-beta.0",
"description": "Basic binary data managing tool written in TypeScript.",

@@ -32,8 +32,8 @@ "main": "./dist/BinaryStream.js",

"@types/jest": "^27.0.2",
"@types/node": "14.11.5",
"husky": "^4.3.8",
"@types/node": "^17.0.30",
"husky": "^7.0.4",
"jest": "^27.3.1",
"prettier": "2.4.1",
"ts-jest": "^27.0.7",
"typescript": "4.0.3"
"typescript": "^4.7.0-dev.20220430"
},

@@ -40,0 +40,0 @@ "husky": {

+140
-12

@@ -0,24 +1,152 @@

[![npm](https://img.shields.io/npm/v/@jsprismarine/jsbinaryutils?style=flat-square)](https://www.npmjs.com/package/@jsprismarine/jsbinaryutils)
[![Dependents (via libraries.io)](https://img.shields.io/librariesio/dependents/npm/@jsprismarine/jsbinaryutils?style=flat-square)](#)
![npm](https://img.shields.io/npm/dw/@jsprismarine/jsbinaryutils?style=flat-square)
# JSBinaryUtils
A TypeScript / JavaScript library for managing buffers in a NodeJS app.
This library has been created to solve the big overhead of resources usage when a project needs to write some new data very often in the same Buffer instance (Buffer.concat will create new Buffers, so it's really bad for the performance of real time applications, and that is why JSBinaryUtils was created).
https://www.npmjs.com/package/@jsprismarine/jsbinaryutils
:warning: This guide is incomplete, please help by contributing! thank you :)
## USE:
- [JSBinaryUtils](#jsbinaryutils)
- [Installation](#installation)
- [API](#api)
- [Reading](#reading)
- [read(len: number)](#read)
- [readByte()](#readbyte)
- [readSignedByte()](#readsbyte)
- [readBoolean()](#readboolean)
- [readShort()](#readshort)
- [readShortLE()](#readshortle)
- [readUnsignedShort()](#readushort)
- [readUnsignedShortLE()](#readushortle)
- [readTriad()](#readtriad)
- [Writing](#writing)
- [write(buffer: Uint8Array | Buffer)](#write)
## Installation
Install by `npm`
```sh
npm install @jsprismarine/jsbinaryutils
```
# Yarn
$ yarn add @jsprismarine/jsbinaryutils
# NPM
$ npm i @jsprismarine/jsbinaryutils
**or** install with `yarn`
```sh
yarn add @jsprismarine/jsbinaryutils
```
## Sample code
# Api
```js
const BinaryStream = require('@jsprismarine/jsbinaryutils').default;
A BinaryStream instance can be used for reading or for writing but not both at the same time.
let stream = new BinaryStream();
## Reading
stream.writeByte(1);
### <a name="read"></a>read(length: number)
console.log(stream.buffer);
Reads a slice of bytes in the buffer on the stream instance and returns it in a Buffer.
### Usage
```typescript
import BinaryStream from "@jsprismarine/jsbinaryutils";
const stream = new BinaryStream(Buffer.from([255, 255, 200, 2]));
console.log(stream.read(4)); // Buffer < 0xFF 0xFF 0xFF 0xC8 0x02 >
```
### <a name="readbyte"></a>readByte()
Reads an unsigned byte from the buffer (0 to 255).
### Usage
```typescript
import BinaryStream from "@jsprismarine/jsbinaryutils";
const stream = new BinaryStream(Buffer.from([0xFF]));
console.log(stream.readByte()); // 255
```
### <a name="readsbyte"></a>readSignedByte()
Reads a signed byte from the buffer (-128 to 127).
### Usage
```typescript
import BinaryStream from "@jsprismarine/jsbinaryutils";
const stream = new BinaryStream(Buffer.from([0x7F]));
console.log(stream.readSignedByte()); // 127
```
### <a name="readboolean"></a>readBoolean()
Reads a boolean (1 byte, either true or false).
Everything that is not 0x00 is true.
### Usage
```typescript
import BinaryStream from "@jsprismarine/jsbinaryutils";
const stream = new BinaryStream(Buffer.from([0x01]));
console.log(stream.readBoolean()); // true
```
### <a name="readshort"></a>readShort()
Reads a signed big-endian short (2 bytes).
### <a name="readshortle"></a>readShortLE()
Reads a signed little-endian short (2 bytes).
### <a name="readushort"></a>readUnsignedShort()
Reads an unsigned big-endian short (2 bytes).
### <a name="readushortle"></a>readUnsignedShortLE()
Reads an unsigned little-endian short (2 bytes).
### <a name="readtriad"></a>readTriad()
Reads a big-endian triad (3 bytes).
### <a name="readtriadle"></a>readTriadLE()
Reads a little-endian triad (3 bytes).
### <a name="readutriad"></a>readUnsignedTriad()
Reads an unsigned big-endian triad (3 bytes).
### <a name="readutriadle"></a>readUnsignedTriadLE()
Reads an unsigned little-endian triad (3 bytes).
### <a name="readint"></a>readInt()
Reads a signed big-endian integer (1 byte, 0 to 255).
todo...
## Writing
### <a name="write"></a>write(buffer: Uint8Array | Buffer)
Concatenates the given buffer with the stream instance one.
### Usage
```typescript
import BinaryStream from "@jsprismarine/jsbinaryutils";
const stream = new BinaryStream();
stream.write(Buffer.from([255, 255, 200, 2]));
console.log(stream.getBuffer()); // Buffer < 0xFF 0xFF 0xFF 0xC8 0x02 >
```