@gsknnft/bigint-buffer 1.4.7 → 1.5.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 +150 -144
- package/dist/build/Release/bigint_buffer.node +0 -0
- package/dist/conversion/bundle.iife.js +421 -0
- package/dist/conversion/bundle.umd.js +423 -0
- package/dist/conversion/cjs/converter.d.ts +14 -0
- package/dist/conversion/cjs/index.d.ts +33 -0
- package/dist/conversion/cjs/index.js +418 -0
- package/dist/conversion/cjs/index.node.js +4 -0
- package/dist/conversion/cjs/package.json +1 -0
- package/dist/conversion/converter.d.ts +14 -0
- package/dist/conversion/esm/bundle.js +416 -0
- package/dist/conversion/esm/bundle.min.js +1 -0
- package/dist/conversion/esm/converter.d.ts +14 -0
- package/dist/conversion/esm/index.browser.js +416 -0
- package/dist/conversion/esm/index.d.ts +33 -0
- package/dist/conversion/esm/index.js +416 -0
- package/dist/conversion/esm/index.node.js +2 -0
- package/dist/conversion/esm/package.json +1 -0
- package/dist/conversion/index.d.ts +1 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +190 -250
- package/dist/index.umd.js +1 -1
- package/dist/types/conversion/index.d.ts +1 -2
- package/dist/types/conversion/src/index.d.ts +2 -0
- package/dist/types/conversion/src/ts/index.d.ts +4 -2
- package/dist/types/index.d.ts +4 -3
- package/package.json +141 -136
- package/scripts/postinstall.cjs +5 -3
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/types/bigint-buffer.test.d.ts +0 -1
- package/dist/types/conversion/test/bigintToBase64.test.d.ts +0 -1
- package/dist/types/conversion/test/bigintToBuf.test.d.ts +0 -1
- package/dist/types/conversion/test/bigintToHex.test.d.ts +0 -1
- package/dist/types/conversion/test/bigintToText.test.d.ts +0 -1
- package/dist/types/conversion/test/bufToBigint.test.d.ts +0 -1
- package/dist/types/conversion/test/fixedPoint.test.d.ts +0 -1
- package/dist/types/conversion/test/hexToBigint.test.d.ts +0 -1
- package/dist/types/conversion/test/hexToBuf.test.d.ts +0 -1
- package/dist/types/conversion/test/parseHex.test.d.ts +0 -1
- package/dist/types/conversion/test/setup.test.d.ts +0 -1
- package/dist/types/conversion/test/textToBuf.test.d.ts +0 -1
- package/dist/types/conversion/vite.config.d.ts +0 -2
- package/dist/types/conversion/vitest.config.d.ts +0 -2
- package/dist/types/index.bench.d.ts +0 -1
- package/dist/types/index.spec.d.ts +0 -1
package/README.md
CHANGED
|
@@ -1,144 +1,150 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
-
|
|
1
|
+
# @gsknnft/bigint-buffer
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@gsknnft/bigint-buffer)
|
|
4
|
+
[](https://nodejs.org)
|
|
5
|
+
|
|
6
|
+
BigInt <-> Buffer conversion with native bindings, fast JS fallback paths, and built-in conversion helpers.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install @gsknnft/bigint-buffer
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Quick Start
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import {
|
|
18
|
+
toBigIntBE,
|
|
19
|
+
toBigIntLE,
|
|
20
|
+
toBufferBE,
|
|
21
|
+
toBufferLE,
|
|
22
|
+
bigintToHex,
|
|
23
|
+
hexToBigint,
|
|
24
|
+
bigintToBase64,
|
|
25
|
+
base64ToBigint,
|
|
26
|
+
} from "@gsknnft/bigint-buffer";
|
|
27
|
+
|
|
28
|
+
const value = toBigIntBE(Buffer.from("deadbeef", "hex"));
|
|
29
|
+
const out = toBufferLE(value, 8);
|
|
30
|
+
|
|
31
|
+
const hex = bigintToHex(123456789n); // "075bcd15"
|
|
32
|
+
const roundTrip = hexToBigint(hex);
|
|
33
|
+
|
|
34
|
+
const b64 = bigintToBase64(123456789n);
|
|
35
|
+
const fromB64 = base64ToBigint(b64);
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## FixedPoint Helpers
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import {
|
|
42
|
+
toFixedPoint,
|
|
43
|
+
fromFixedPoint,
|
|
44
|
+
addFixedPoint,
|
|
45
|
+
subtractFixedPoint,
|
|
46
|
+
averageFixedPoint,
|
|
47
|
+
compareFixedPoint,
|
|
48
|
+
} from "@gsknnft/bigint-buffer";
|
|
49
|
+
|
|
50
|
+
const a = toFixedPoint(12.34, 9);
|
|
51
|
+
const b = toFixedPoint(7.66, 9);
|
|
52
|
+
const sum = addFixedPoint(a, b);
|
|
53
|
+
const avg = averageFixedPoint([a, b]);
|
|
54
|
+
const cmp = compareFixedPoint(a, b);
|
|
55
|
+
const n = fromFixedPoint(sum, 9);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Native Loading
|
|
59
|
+
|
|
60
|
+
The package tries native first, then falls back to JS:
|
|
61
|
+
|
|
62
|
+
1. `node-gyp-build` prebuild lookup from installed package root
|
|
63
|
+
2. `bindings` lookup with explicit `module_root` when resolvable
|
|
64
|
+
3. pure JS fallback
|
|
65
|
+
|
|
66
|
+
Set `BIGINT_BUFFER_NATIVE_PATH` to override lookup root when needed.
|
|
67
|
+
|
|
68
|
+
Enable debug logging:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
BIGINT_BUFFER_DEBUG=1 node your-app.js
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Silence fallback warning:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
BIGINT_BUFFER_SILENT_NATIVE_FAIL=1 node your-app.js
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Electron Packaging
|
|
81
|
+
|
|
82
|
+
Include the native binary in unpacked resources:
|
|
83
|
+
|
|
84
|
+
- `node_modules/@gsknnft/bigint-buffer/build/Release/bigint_buffer.node`
|
|
85
|
+
|
|
86
|
+
Common location at runtime:
|
|
87
|
+
|
|
88
|
+
- `resources/app.asar.unpacked/node_modules/@gsknnft/bigint-buffer/build/Release/bigint_buffer.node`
|
|
89
|
+
|
|
90
|
+
If your packager relocates native files, set `BIGINT_BUFFER_NATIVE_PATH` to the directory containing `build/Release/bigint_buffer.node`.
|
|
91
|
+
|
|
92
|
+
## Browser Notes
|
|
93
|
+
|
|
94
|
+
This package supports browser builds via fallback paths and conversion bundles.
|
|
95
|
+
|
|
96
|
+
If your bundler does not polyfill Node globals/modules automatically, add polyfills for:
|
|
97
|
+
|
|
98
|
+
- `Buffer`
|
|
99
|
+
- `path`
|
|
100
|
+
- `fs`
|
|
101
|
+
|
|
102
|
+
## Exports
|
|
103
|
+
|
|
104
|
+
Top-level package exports:
|
|
105
|
+
|
|
106
|
+
- ESM: `dist/index.js`
|
|
107
|
+
- CJS: `dist/index.cjs`
|
|
108
|
+
- Types: `dist/index.d.ts`
|
|
109
|
+
- Native binary export: `./build/Release/bigint_buffer.node`
|
|
110
|
+
- Conversion subpath: `@gsknnft/bigint-buffer/conversion`
|
|
111
|
+
|
|
112
|
+
## Commands
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npm run build # bundle + declarations + conversion sync + native sync
|
|
116
|
+
npm run compile # build + typecheck
|
|
117
|
+
npm test # vitest
|
|
118
|
+
npm run check # eslint
|
|
119
|
+
npm run rebuild # node-gyp rebuild + build + conversion build
|
|
120
|
+
npm run prebuilds # prebuildify for native binaries
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Internal build scripts (`scripts/*.ts`) are executed via `tsx` for stable ESM compatibility in local and CI environments.
|
|
124
|
+
|
|
125
|
+
## Quality Snapshot
|
|
126
|
+
|
|
127
|
+
Latest local run (Node 24, Vitest v4, v8 coverage):
|
|
128
|
+
|
|
129
|
+
- Tests: `141 passed`
|
|
130
|
+
- Coverage: `Statements 84.15%`, `Branches 72.36%`, `Functions 88.37%`, `Lines 85.88%`
|
|
131
|
+
- Benchmark snapshot: see `benchmark.md`
|
|
132
|
+
- Publish dry-run: clean tarball (no test/bench JS artifacts)
|
|
133
|
+
|
|
134
|
+
Reproduce:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
pnpm exec vitest run --coverage --pool=forks
|
|
138
|
+
pnpm run benchmark
|
|
139
|
+
pnpm pack --dry-run
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Runtime Compatibility
|
|
143
|
+
|
|
144
|
+
- Node: `>=20`
|
|
145
|
+
- Package format: ESM + CJS
|
|
146
|
+
- Native addon: N-API (`bigint_buffer.node`)
|
|
147
|
+
|
|
148
|
+
## License
|
|
149
|
+
|
|
150
|
+
Apache-2.0
|
|
Binary file
|