@thi.ng/binary 3.5.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/buffers.d.ts +5 -3
- package/buffers.js +7 -3
- package/endianess.d.ts +4 -0
- package/endianess.js +27 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](https://mastodon.thi.ng/@toxi)
|
|
8
8
|
|
|
9
9
|
> [!NOTE]
|
|
10
|
-
> This is one of
|
|
10
|
+
> This is one of 212 standalone projects, maintained as part
|
|
11
11
|
> of the [@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo
|
|
12
12
|
> and anti-framework.
|
|
13
13
|
>
|
|
@@ -64,7 +64,7 @@ For Node.js REPL:
|
|
|
64
64
|
const bin = await import("@thi.ng/binary");
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
Package sizes (brotli'd, pre-treeshake): ESM: 2.
|
|
67
|
+
Package sizes (brotli'd, pre-treeshake): ESM: 2.53 KB
|
|
68
68
|
|
|
69
69
|
## Dependencies
|
|
70
70
|
|
package/buffers.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export declare const F64: Float64Array<ArrayBuffer>;
|
|
2
2
|
export declare const F32: Float32Array<ArrayBuffer>;
|
|
3
|
-
export declare const I8:
|
|
3
|
+
export declare const I8: Int8Array<ArrayBuffer>;
|
|
4
4
|
export declare const U8: Uint8Array<ArrayBuffer>;
|
|
5
|
+
export declare const I16: Int16Array<ArrayBuffer>;
|
|
5
6
|
export declare const U16: Uint16Array<ArrayBuffer>;
|
|
6
|
-
export declare const U32: Uint32Array<ArrayBuffer>;
|
|
7
|
-
export declare const I16: Int32Array<ArrayBuffer>;
|
|
8
7
|
export declare const I32: Int32Array<ArrayBuffer>;
|
|
8
|
+
export declare const U32: Uint32Array<ArrayBuffer>;
|
|
9
|
+
export declare const I64: BigInt64Array<ArrayBuffer>;
|
|
10
|
+
export declare const U64: BigUint64Array<ArrayBuffer>;
|
|
9
11
|
//# sourceMappingURL=buffers.d.ts.map
|
package/buffers.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
const F64 = new Float64Array(1);
|
|
2
2
|
const F32 = new Float32Array(F64.buffer);
|
|
3
|
-
const I8 = new
|
|
3
|
+
const I8 = new Int8Array(F64.buffer);
|
|
4
4
|
const U8 = new Uint8Array(F64.buffer);
|
|
5
|
+
const I16 = new Int16Array(F64.buffer);
|
|
5
6
|
const U16 = new Uint16Array(F64.buffer);
|
|
6
|
-
const U32 = new Uint32Array(F64.buffer);
|
|
7
|
-
const I16 = new Int32Array(F64.buffer);
|
|
8
7
|
const I32 = new Int32Array(F64.buffer);
|
|
8
|
+
const U32 = new Uint32Array(F64.buffer);
|
|
9
|
+
const I64 = new BigInt64Array(F64.buffer);
|
|
10
|
+
const U64 = new BigUint64Array(F64.buffer);
|
|
9
11
|
export {
|
|
10
12
|
F32,
|
|
11
13
|
F64,
|
|
12
14
|
I16,
|
|
13
15
|
I32,
|
|
16
|
+
I64,
|
|
14
17
|
I8,
|
|
15
18
|
U16,
|
|
16
19
|
U32,
|
|
20
|
+
U64,
|
|
17
21
|
U8
|
|
18
22
|
};
|
package/endianess.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface IDataView {
|
|
|
17
17
|
getU16(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
|
|
18
18
|
getI32(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
|
|
19
19
|
getU32(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
|
|
20
|
+
getU64(data: ArrayLike<number>, addr: number, isLE?: boolean): bigint;
|
|
21
|
+
getI64(data: ArrayLike<number>, addr: number, isLE?: boolean): bigint;
|
|
20
22
|
getF32(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
|
|
21
23
|
getF64(data: ArrayLike<number>, addr: number, isLE?: boolean): number;
|
|
22
24
|
setI8(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
|
|
@@ -25,6 +27,8 @@ export interface IDataView {
|
|
|
25
27
|
setU16(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
|
|
26
28
|
setI32(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
|
|
27
29
|
setU32(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
|
|
30
|
+
setI64(data: NumericArray, addr: number, val: bigint, isLE?: boolean): void;
|
|
31
|
+
setU64(data: NumericArray, addr: number, val: bigint, isLE?: boolean): void;
|
|
28
32
|
setF32(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
|
|
29
33
|
setF64(data: NumericArray, addr: number, val: number, isLE?: boolean): void;
|
|
30
34
|
}
|
package/endianess.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F32, F64, I16, I32, I8, U16, U32, U8 } from "./buffers.js";
|
|
1
|
+
import { F32, F64, I16, I32, I64, I8, U16, U32, U64, U8 } from "./buffers.js";
|
|
2
2
|
const IS_LE = (U32[0] = 1, U8[0] === 1);
|
|
3
3
|
const DATAVIEW = {
|
|
4
4
|
getI8: (src, i) => (I8[0] = src[i], I8[0]),
|
|
@@ -7,6 +7,8 @@ const DATAVIEW = {
|
|
|
7
7
|
getU16: (src, i, isLE) => __get2(src, i, U16, isLE),
|
|
8
8
|
getI32: (src, i, isLE) => __get4(src, i, I32, isLE),
|
|
9
9
|
getU32: (src, i, isLE) => __get4(src, i, U32, isLE) >>> 0,
|
|
10
|
+
getI64: (src, i, isLE) => __get8(src, i, I64, isLE),
|
|
11
|
+
getU64: (src, i, isLE) => __get8(src, i, U64, isLE),
|
|
10
12
|
getF32: (src, i, isLE) => __get4(src, i, F32, isLE),
|
|
11
13
|
getF64: (src, i, isLE) => __get8(src, i, F64, isLE),
|
|
12
14
|
setI8: (data, addr, x) => {
|
|
@@ -39,6 +41,14 @@ const DATAVIEW = {
|
|
|
39
41
|
setF64: (data, addr, x, isLE) => {
|
|
40
42
|
F64[0] = x;
|
|
41
43
|
__set8(data, addr, isLE);
|
|
44
|
+
},
|
|
45
|
+
setI64: (data, addr, x, isLE) => {
|
|
46
|
+
I64[0] = x;
|
|
47
|
+
__set8(data, addr, isLE);
|
|
48
|
+
},
|
|
49
|
+
setU64: (data, addr, x, isLE) => {
|
|
50
|
+
U64[0] = x;
|
|
51
|
+
__set8(data, addr, isLE);
|
|
42
52
|
}
|
|
43
53
|
};
|
|
44
54
|
const __get2 = (src, i, view, isLE = true) => isLE !== IS_LE ? (U8[1] = src[i], U8[0] = src[i + 1], view[0]) : (U8[0] = src[i], U8[1] = src[i + 1], view[0]);
|
|
@@ -68,9 +78,23 @@ const __set4 = (data, addr, isLE = true) => {
|
|
|
68
78
|
};
|
|
69
79
|
const __set8 = (data, addr, isLE = true) => {
|
|
70
80
|
if (isLE !== IS_LE) {
|
|
71
|
-
|
|
81
|
+
data[addr] = U8[7];
|
|
82
|
+
data[addr + 1] = U8[6];
|
|
83
|
+
data[addr + 2] = U8[5];
|
|
84
|
+
data[addr + 3] = U8[4];
|
|
85
|
+
data[addr + 4] = U8[3];
|
|
86
|
+
data[addr + 5] = U8[2];
|
|
87
|
+
data[addr + 6] = U8[1];
|
|
88
|
+
data[addr + 7] = U8[0];
|
|
72
89
|
} else {
|
|
73
|
-
|
|
90
|
+
data[addr] = U8[0];
|
|
91
|
+
data[addr + 1] = U8[1];
|
|
92
|
+
data[addr + 2] = U8[2];
|
|
93
|
+
data[addr + 3] = U8[3];
|
|
94
|
+
data[addr + 4] = U8[4];
|
|
95
|
+
data[addr + 5] = U8[5];
|
|
96
|
+
data[addr + 6] = U8[6];
|
|
97
|
+
data[addr + 7] = U8[7];
|
|
74
98
|
}
|
|
75
99
|
};
|
|
76
100
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thi.ng/binary",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "100+ assorted binary / bitwise operations, conversions, utilities, lookup tables",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"tool:tangle": "../../node_modules/.bin/tangle src/**/*.ts"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@thi.ng/api": "^8.12.
|
|
42
|
+
"@thi.ng/api": "^8.12.11"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"esbuild": "^0.27.0",
|
|
@@ -136,5 +136,5 @@
|
|
|
136
136
|
"transducers-binary"
|
|
137
137
|
]
|
|
138
138
|
},
|
|
139
|
-
"gitHead": "
|
|
139
|
+
"gitHead": "e7a21b9d2a188fa04d4c893d8531c40fbc0f4c06\n"
|
|
140
140
|
}
|