@gsknnft/bigint-buffer 1.4.6 → 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 -107
- package/build/Release/bigint_buffer.node +0 -0
- 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 -0
- package/dist/index.cjs +1 -1
- package/dist/{types/dist/dist/index.d.ts → index.d.ts} +5 -5
- package/dist/index.js +301 -419
- 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/converter.d.ts +7 -3
- package/dist/types/conversion/src/ts/index.d.ts +23 -10
- package/dist/types/index.d.ts +5 -5
- package/package.json +50 -33
- package/prebuilds/win32-x64/@gsknnft+bigint-buffer.node +0 -0
- package/scripts/postinstall.cjs +40 -0
- package/build/Release/bigint_buffer.exp +0 -0
- package/build/Release/bigint_buffer.iobj +0 -0
- package/build/Release/bigint_buffer.ipdb +0 -0
- package/build/Release/bigint_buffer.lib +0 -0
- package/build/Release/bigint_buffer.pdb +0 -0
- package/build/Release/obj/bigint_buffer/bigint_buffer.node.recipe +0 -11
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.command.1.tlog +0 -0
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.read.1.tlog +0 -0
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.write.1.tlog +0 -0
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/Cl.items.tlog +0 -2
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/bigint_buffer.lastbuildstate +0 -2
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.command.1.tlog +0 -0
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.read.1.tlog +0 -0
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.secondary.1.tlog +0 -5
- package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.write.1.tlog +0 -0
- package/build/Release/obj/bigint_buffer/src/bigint-buffer.obj +0 -0
- package/build/Release/obj/bigint_buffer/win_delay_load_hook.obj +0 -0
- package/build/bigint_buffer.vcxproj +0 -148
- package/build/bigint_buffer.vcxproj.filters +0 -64
- package/build/binding.sln +0 -19
- package/build/config.gypi +0 -525
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/types/bigint-buffer.test.d.ts +0 -1
- package/dist/types/conversion/src/ts/fixedPoint/index.d.ts +0 -12
- 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/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/dist/dist/conversion/conversion/index.d.ts +0 -2
- package/dist/types/index.bench.d.ts +0 -1
- package/dist/types/index.spec.d.ts +0 -1
- package/src/bigint-buffer.test.ts +0 -11
- package/src/conversion/.github/workflows/build-and-test.yml +0 -116
- package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js +0 -178
- package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js.map +0 -1
- package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js +0 -178
- package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js.map +0 -1
- package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js +0 -178
- package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js.map +0 -1
- package/src/conversion/CODE_OF_CONDUCT.md +0 -134
- package/src/conversion/LICENSE +0 -21
- package/src/conversion/README.md +0 -48
- package/src/conversion/coverage/base.css +0 -224
- package/src/conversion/coverage/block-navigation.js +0 -87
- package/src/conversion/coverage/clover.xml +0 -131
- package/src/conversion/coverage/coverage-final.json +0 -2
- package/src/conversion/coverage/favicon.png +0 -0
- package/src/conversion/coverage/index.html +0 -116
- package/src/conversion/coverage/index.ts.html +0 -1225
- package/src/conversion/coverage/prettify.css +0 -1
- package/src/conversion/coverage/prettify.js +0 -2
- package/src/conversion/coverage/sort-arrow-sprite.png +0 -0
- package/src/conversion/coverage/sorter.js +0 -210
- package/src/conversion/docs/README.md +0 -42
- package/src/conversion/docs/functions/base64ToBigint.md +0 -27
- package/src/conversion/docs/functions/bigintToBase64.md +0 -43
- package/src/conversion/docs/functions/bigintToBuf.md +0 -35
- package/src/conversion/docs/functions/bigintToHex.md +0 -43
- package/src/conversion/docs/functions/bigintToText.md +0 -31
- package/src/conversion/docs/functions/bufToBigint.md +0 -25
- package/src/conversion/docs/functions/bufToHex.md +0 -37
- package/src/conversion/docs/functions/bufToText.md +0 -27
- package/src/conversion/docs/functions/hexToBigint.md +0 -29
- package/src/conversion/docs/functions/hexToBuf.md +0 -37
- package/src/conversion/docs/functions/parseHex.md +0 -45
- package/src/conversion/docs/functions/textToBigint.md +0 -27
- package/src/conversion/docs/functions/textToBuf.md +0 -33
- package/src/conversion/docs/functions/toBigIntBE.md +0 -27
- package/src/conversion/docs/functions/toBigIntLE.md +0 -27
- package/src/conversion/docs/functions/toBufferBE.md +0 -33
- package/src/conversion/docs/functions/toBufferLE.md +0 -33
- package/src/conversion/docs/functions/validateBigIntBuffer.md +0 -15
- package/src/conversion/docs/type-aliases/TypedArray.md +0 -11
- package/src/conversion/docs/variables/isNative.md +0 -11
- package/src/conversion/example.cjs +0 -9
- package/src/conversion/example.esm.js +0 -11
- package/src/conversion/index.ts +0 -2
- package/src/conversion/node_modules/.bin/_mocha +0 -21
- package/src/conversion/node_modules/.bin/_mocha.CMD +0 -12
- package/src/conversion/node_modules/.bin/_mocha.ps1 +0 -41
- package/src/conversion/node_modules/.bin/c8 +0 -21
- package/src/conversion/node_modules/.bin/c8.CMD +0 -12
- package/src/conversion/node_modules/.bin/c8.ps1 +0 -41
- package/src/conversion/node_modules/.bin/esbuild +0 -21
- package/src/conversion/node_modules/.bin/esbuild.CMD +0 -12
- package/src/conversion/node_modules/.bin/esbuild.ps1 +0 -41
- package/src/conversion/node_modules/.bin/eslint +0 -21
- package/src/conversion/node_modules/.bin/eslint.CMD +0 -12
- package/src/conversion/node_modules/.bin/eslint.ps1 +0 -41
- package/src/conversion/node_modules/.bin/jiti +0 -21
- package/src/conversion/node_modules/.bin/jiti.CMD +0 -12
- package/src/conversion/node_modules/.bin/jiti.ps1 +0 -41
- package/src/conversion/node_modules/.bin/json5 +0 -21
- package/src/conversion/node_modules/.bin/json5.CMD +0 -12
- package/src/conversion/node_modules/.bin/json5.ps1 +0 -41
- package/src/conversion/node_modules/.bin/mocha +0 -21
- package/src/conversion/node_modules/.bin/mocha.CMD +0 -12
- package/src/conversion/node_modules/.bin/mocha.ps1 +0 -41
- package/src/conversion/node_modules/.bin/npm-run-all +0 -21
- package/src/conversion/node_modules/.bin/npm-run-all.CMD +0 -12
- package/src/conversion/node_modules/.bin/npm-run-all.ps1 +0 -41
- package/src/conversion/node_modules/.bin/puppeteer +0 -21
- package/src/conversion/node_modules/.bin/puppeteer.CMD +0 -12
- package/src/conversion/node_modules/.bin/puppeteer.ps1 +0 -41
- package/src/conversion/node_modules/.bin/rimraf +0 -16
- package/src/conversion/node_modules/.bin/rimraf.cmd +0 -17
- package/src/conversion/node_modules/.bin/rimraf.ps1 +0 -28
- package/src/conversion/node_modules/.bin/rollup +0 -21
- package/src/conversion/node_modules/.bin/rollup.CMD +0 -12
- package/src/conversion/node_modules/.bin/rollup.ps1 +0 -41
- package/src/conversion/node_modules/.bin/run-p +0 -21
- package/src/conversion/node_modules/.bin/run-p.CMD +0 -12
- package/src/conversion/node_modules/.bin/run-p.ps1 +0 -41
- package/src/conversion/node_modules/.bin/run-s +0 -21
- package/src/conversion/node_modules/.bin/run-s.CMD +0 -12
- package/src/conversion/node_modules/.bin/run-s.ps1 +0 -41
- package/src/conversion/node_modules/.bin/terser +0 -21
- package/src/conversion/node_modules/.bin/terser.CMD +0 -12
- package/src/conversion/node_modules/.bin/terser.ps1 +0 -41
- package/src/conversion/node_modules/.bin/ts-standard +0 -21
- package/src/conversion/node_modules/.bin/ts-standard.CMD +0 -12
- package/src/conversion/node_modules/.bin/ts-standard.ps1 +0 -41
- package/src/conversion/node_modules/.bin/tsc +0 -21
- package/src/conversion/node_modules/.bin/tsc.CMD +0 -12
- package/src/conversion/node_modules/.bin/tsc.ps1 +0 -41
- package/src/conversion/node_modules/.bin/tsserver +0 -21
- package/src/conversion/node_modules/.bin/tsserver.CMD +0 -12
- package/src/conversion/node_modules/.bin/tsserver.ps1 +0 -41
- package/src/conversion/node_modules/.bin/typedoc +0 -21
- package/src/conversion/node_modules/.bin/typedoc.CMD +0 -12
- package/src/conversion/node_modules/.bin/typedoc.ps1 +0 -41
- package/src/conversion/node_modules/.bin/vite +0 -21
- package/src/conversion/node_modules/.bin/vite.CMD +0 -12
- package/src/conversion/node_modules/.bin/vite.ps1 +0 -41
- package/src/conversion/node_modules/.bin/vitest +0 -21
- package/src/conversion/node_modules/.bin/vitest.CMD +0 -12
- package/src/conversion/node_modules/.bin/vitest.ps1 +0 -41
- package/src/conversion/node_modules/.bin/yaml +0 -21
- package/src/conversion/node_modules/.bin/yaml.CMD +0 -12
- package/src/conversion/node_modules/.bin/yaml.ps1 +0 -41
- package/src/conversion/node_modules/glob/LICENSE.md +0 -63
- package/src/conversion/node_modules/glob/README.md +0 -1177
- package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts +0 -388
- package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/glob.js +0 -247
- package/src/conversion/node_modules/glob/dist/commonjs/glob.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts +0 -14
- package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js +0 -27
- package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts +0 -24
- package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/ignore.js +0 -119
- package/src/conversion/node_modules/glob/dist/commonjs/ignore.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts +0 -97
- package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/index.js +0 -68
- package/src/conversion/node_modules/glob/dist/commonjs/index.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/package.json +0 -3
- package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts +0 -76
- package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/pattern.js +0 -219
- package/src/conversion/node_modules/glob/dist/commonjs/pattern.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts +0 -59
- package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/processor.js +0 -301
- package/src/conversion/node_modules/glob/dist/commonjs/processor.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts +0 -97
- package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/commonjs/walker.js +0 -387
- package/src/conversion/node_modules/glob/dist/commonjs/walker.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/glob.d.ts +0 -388
- package/src/conversion/node_modules/glob/dist/esm/glob.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/glob.js +0 -243
- package/src/conversion/node_modules/glob/dist/esm/glob.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts +0 -14
- package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/has-magic.js +0 -23
- package/src/conversion/node_modules/glob/dist/esm/has-magic.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts +0 -24
- package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/ignore.js +0 -115
- package/src/conversion/node_modules/glob/dist/esm/ignore.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/index.d.ts +0 -97
- package/src/conversion/node_modules/glob/dist/esm/index.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/index.js +0 -55
- package/src/conversion/node_modules/glob/dist/esm/index.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/package.json +0 -3
- package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts +0 -76
- package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/pattern.js +0 -215
- package/src/conversion/node_modules/glob/dist/esm/pattern.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/processor.d.ts +0 -59
- package/src/conversion/node_modules/glob/dist/esm/processor.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/processor.js +0 -294
- package/src/conversion/node_modules/glob/dist/esm/processor.js.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/walker.d.ts +0 -97
- package/src/conversion/node_modules/glob/dist/esm/walker.d.ts.map +0 -1
- package/src/conversion/node_modules/glob/dist/esm/walker.js +0 -381
- package/src/conversion/node_modules/glob/dist/esm/walker.js.map +0 -1
- package/src/conversion/node_modules/glob/package.json +0 -93
- package/src/conversion/node_modules/minimatch/LICENSE.md +0 -55
- package/src/conversion/node_modules/minimatch/README.md +0 -453
- package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +0 -2
- package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
- package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts +0 -20
- package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js +0 -591
- package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +0 -8
- package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -152
- package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts +0 -15
- package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js +0 -30
- package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts +0 -94
- package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/index.js +0 -1029
- package/src/conversion/node_modules/minimatch/dist/commonjs/index.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/package.json +0 -3
- package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts +0 -22
- package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
- package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +0 -2
- package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
- package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts +0 -20
- package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/ast.js +0 -587
- package/src/conversion/node_modules/minimatch/dist/esm/ast.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts +0 -8
- package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js +0 -148
- package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts +0 -15
- package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/escape.js +0 -26
- package/src/conversion/node_modules/minimatch/dist/esm/escape.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts +0 -94
- package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/index.js +0 -1016
- package/src/conversion/node_modules/minimatch/dist/esm/index.js.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/package.json +0 -3
- package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts +0 -22
- package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts.map +0 -1
- package/src/conversion/node_modules/minimatch/dist/esm/unescape.js +0 -34
- package/src/conversion/node_modules/minimatch/dist/esm/unescape.js.map +0 -1
- package/src/conversion/node_modules/minimatch/package.json +0 -78
- package/src/conversion/node_modules/rimraf/LICENSE.md +0 -55
- package/src/conversion/node_modules/rimraf/README.md +0 -226
- package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js +0 -58
- package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts +0 -6
- package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/error.js +0 -10
- package/src/conversion/node_modules/rimraf/dist/commonjs/error.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js +0 -38
- package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts +0 -15
- package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js +0 -33
- package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js +0 -24
- package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts +0 -50
- package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/index.js +0 -78
- package/src/conversion/node_modules/rimraf/dist/commonjs/index.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts +0 -34
- package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js +0 -53
- package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/package.json +0 -3
- package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js +0 -48
- package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js +0 -19
- package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts +0 -8
- package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js +0 -65
- package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js +0 -8
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js +0 -138
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js +0 -24
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js +0 -103
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js +0 -159
- package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js +0 -18
- package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts +0 -3
- package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs +0 -250
- package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js +0 -55
- package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts +0 -6
- package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/error.js +0 -5
- package/src/conversion/node_modules/rimraf/dist/esm/error.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js +0 -33
- package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts +0 -15
- package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/fs.js +0 -18
- package/src/conversion/node_modules/rimraf/dist/esm/fs.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js +0 -19
- package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts +0 -50
- package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/index.js +0 -70
- package/src/conversion/node_modules/rimraf/dist/esm/index.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts +0 -34
- package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js +0 -46
- package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/package.json +0 -3
- package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js +0 -46
- package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js +0 -14
- package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts +0 -8
- package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js +0 -60
- package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts +0 -3
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js +0 -5
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js +0 -133
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js +0 -19
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js +0 -98
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js +0 -154
- package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts +0 -4
- package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts.map +0 -1
- package/src/conversion/node_modules/rimraf/dist/esm/use-native.js +0 -15
- package/src/conversion/node_modules/rimraf/dist/esm/use-native.js.map +0 -1
- package/src/conversion/node_modules/rimraf/package.json +0 -92
- package/src/conversion/package.json +0 -154
- package/src/conversion/src/docs/index.md +0 -52
- package/src/conversion/src/ts/converter.ts +0 -85
- package/src/conversion/src/ts/fixedPoint/index.ts +0 -87
- package/src/conversion/src/ts/index.ts +0 -500
- package/src/conversion/test/bigintToBase64.test.ts +0 -37
- package/src/conversion/test/bigintToBuf.test.ts +0 -43
- package/src/conversion/test/bigintToHex.test.ts +0 -52
- package/src/conversion/test/bigintToText.test.ts +0 -30
- package/src/conversion/test/bufToBigint.test.ts +0 -20
- package/src/conversion/test/hexToBigint.test.ts +0 -22
- package/src/conversion/test/hexToBuf.test.ts +0 -39
- package/src/conversion/test/parseHex.test.ts +0 -35
- package/src/conversion/test/setup.test.ts +0 -9
- package/src/conversion/test/textToBuf.test.ts +0 -26
- package/src/conversion/tsconfig.json +0 -57
- package/src/conversion/typedoc.json +0 -5
- package/src/conversion/vite.config.ts +0 -47
- package/src/conversion/vitest.config.ts +0 -15
- package/src/index.bench.ts +0 -206
- package/src/index.spec.ts +0 -318
- package/src/index.ts +0 -343
package/README.md
CHANGED
|
@@ -1,107 +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
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
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
|
-
-
|
|
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
|
|
Binary file
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
"use strict";
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.toBigIntValue = exports.toHexString = exports.ZERO_FIXED_POINT = exports.FIXED_POINT_PATTERN = exports.FIXED_POINT_DECIMALS = void 0;
|
|
7
|
+
exports.toBigIntLE = toBigIntLE;
|
|
8
|
+
exports.validateBigIntBuffer = validateBigIntBuffer;
|
|
9
|
+
exports.toBigIntBE = toBigIntBE;
|
|
10
|
+
exports.toBufferLE = toBufferLE;
|
|
11
|
+
exports.toBufferBE = toBufferBE;
|
|
12
|
+
exports.parseHex = parseHex;
|
|
13
|
+
exports.bigintToBuf = bigintToBuf;
|
|
14
|
+
exports.bufToBigint = bufToBigint;
|
|
15
|
+
exports.bigintToHex = bigintToHex;
|
|
16
|
+
exports.hexToBigint = hexToBigint;
|
|
17
|
+
exports.bigintToText = bigintToText;
|
|
18
|
+
exports.textToBigint = textToBigint;
|
|
19
|
+
exports.bufToText = bufToText;
|
|
20
|
+
exports.textToBuf = textToBuf;
|
|
21
|
+
exports.bufToHex = bufToHex;
|
|
22
|
+
exports.hexToBuf = hexToBuf;
|
|
23
|
+
exports.bigintToBase64 = bigintToBase64;
|
|
24
|
+
exports.base64ToBigint = base64ToBigint;
|
|
25
|
+
exports.toFixedPoint = toFixedPoint;
|
|
26
|
+
exports.fromFixedPoint = fromFixedPoint;
|
|
27
|
+
exports.addFixedPoint = addFixedPoint;
|
|
28
|
+
exports.subtractFixedPoint = subtractFixedPoint;
|
|
29
|
+
exports.averageFixedPoint = averageFixedPoint;
|
|
30
|
+
exports.compareFixedPoint = compareFixedPoint;
|
|
31
|
+
exports.fixedPointToBigInt = fixedPointToBigInt;
|
|
32
|
+
const converter_1 = require("./converter");
|
|
33
|
+
let converter;
|
|
34
|
+
const hasRead64LE = typeof Buffer.prototype.readBigUInt64LE === "function";
|
|
35
|
+
const hasRead64BE = typeof Buffer.prototype.readBigUInt64BE === "function";
|
|
36
|
+
const hasWrite64LE = typeof Buffer.prototype.writeBigUInt64LE === "function";
|
|
37
|
+
const hasWrite64BE = typeof Buffer.prototype.writeBigUInt64BE === "function";
|
|
38
|
+
const read64LE = hasRead64LE
|
|
39
|
+
? (buf, offset) => buf.readBigUInt64LE(offset)
|
|
40
|
+
: (buf, offset) => {
|
|
41
|
+
let out = 0n;
|
|
42
|
+
for (let i = 7; i >= 0; i--) {
|
|
43
|
+
out = (out << 8n) + BigInt(buf[offset + i]);
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
};
|
|
47
|
+
const read64BE = hasRead64BE
|
|
48
|
+
? (buf, offset) => buf.readBigUInt64BE(offset)
|
|
49
|
+
: (buf, offset) => {
|
|
50
|
+
let out = 0n;
|
|
51
|
+
for (let i = 0; i < 8; i++) {
|
|
52
|
+
out = (out << 8n) + BigInt(buf[offset + i]);
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
};
|
|
56
|
+
const write64LE = hasWrite64LE
|
|
57
|
+
? (buf, offset, value) => {
|
|
58
|
+
buf.writeBigUInt64LE(value, offset);
|
|
59
|
+
}
|
|
60
|
+
: (buf, offset, value) => {
|
|
61
|
+
let temp = value;
|
|
62
|
+
for (let i = 0; i < 8; i++) {
|
|
63
|
+
buf[offset + i] = Number(temp & 0xffn);
|
|
64
|
+
temp >>= 8n;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const write64BE = hasWrite64BE
|
|
68
|
+
? (buf, offset, value) => {
|
|
69
|
+
buf.writeBigUInt64BE(value, offset);
|
|
70
|
+
}
|
|
71
|
+
: (buf, offset, value) => {
|
|
72
|
+
let temp = value;
|
|
73
|
+
for (let i = 7; i >= 0; i--) {
|
|
74
|
+
buf[offset + i] = Number(temp & 0xffn);
|
|
75
|
+
temp >>= 8n;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const bufferToBigIntLE = (buf) => {
|
|
79
|
+
let result = 0n;
|
|
80
|
+
let multiplier = 1n;
|
|
81
|
+
const len = buf.length;
|
|
82
|
+
const remainder = len & 7;
|
|
83
|
+
for (let i = 0; i < remainder; i++) {
|
|
84
|
+
result += BigInt(buf[i]) * multiplier;
|
|
85
|
+
multiplier <<= 8n;
|
|
86
|
+
}
|
|
87
|
+
for (let offset = remainder; offset < len; offset += 8) {
|
|
88
|
+
const chunk = read64LE(buf, offset);
|
|
89
|
+
result += chunk * multiplier;
|
|
90
|
+
multiplier <<= 64n;
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
93
|
+
};
|
|
94
|
+
const bufferToBigIntBE = (buf) => {
|
|
95
|
+
const len = buf.length;
|
|
96
|
+
if (len === 0)
|
|
97
|
+
return 0n;
|
|
98
|
+
let result = 0n;
|
|
99
|
+
const remainder = len & 7;
|
|
100
|
+
let offset = 0;
|
|
101
|
+
if (remainder !== 0) {
|
|
102
|
+
for (; offset < remainder; offset++) {
|
|
103
|
+
result = (result << 8n) + BigInt(buf[offset]);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
for (; offset < len; offset += 8) {
|
|
107
|
+
const chunk = read64BE(buf, offset);
|
|
108
|
+
result = (result << 64n) + chunk;
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
};
|
|
112
|
+
const writeBigIntToBufferLE = (num, target) => {
|
|
113
|
+
const width = target.length;
|
|
114
|
+
let remaining = num;
|
|
115
|
+
let offset = 0;
|
|
116
|
+
const limit = width - (width % 8);
|
|
117
|
+
for (; offset < limit; offset += 8) {
|
|
118
|
+
write64LE(target, offset, remaining & 0xffffffffffffffffn);
|
|
119
|
+
remaining >>= 64n;
|
|
120
|
+
}
|
|
121
|
+
for (; offset < width; offset++) {
|
|
122
|
+
target[offset] = Number(remaining & 0xffn);
|
|
123
|
+
remaining >>= 8n;
|
|
124
|
+
}
|
|
125
|
+
return target;
|
|
126
|
+
};
|
|
127
|
+
const writeBigIntToBufferBE = (num, target) => {
|
|
128
|
+
const width = target.length;
|
|
129
|
+
let remaining = num;
|
|
130
|
+
let offset = width;
|
|
131
|
+
const limit = width & ~7;
|
|
132
|
+
while (offset > limit) {
|
|
133
|
+
offset--;
|
|
134
|
+
target[offset] = Number(remaining & 0xffn);
|
|
135
|
+
remaining >>= 8n;
|
|
136
|
+
}
|
|
137
|
+
for (; offset > 0; offset -= 8) {
|
|
138
|
+
const chunk = remaining & 0xffffffffffffffffn;
|
|
139
|
+
write64BE(target, offset - 8, chunk);
|
|
140
|
+
remaining >>= 64n;
|
|
141
|
+
}
|
|
142
|
+
return target;
|
|
143
|
+
};
|
|
144
|
+
const toBufferInput = (input) => {
|
|
145
|
+
if (Buffer.isBuffer(input))
|
|
146
|
+
return input;
|
|
147
|
+
if (input instanceof Uint8Array) {
|
|
148
|
+
return Buffer.from(input.buffer, input.byteOffset, input.byteLength);
|
|
149
|
+
}
|
|
150
|
+
return Buffer.from(input);
|
|
151
|
+
};
|
|
152
|
+
const assertWidth = (width, fnName) => {
|
|
153
|
+
if (!Number.isInteger(width) || width < 0) {
|
|
154
|
+
throw new RangeError(`${fnName} width must be a non-negative integer`);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
if (!converter_1.IS_BROWSER) {
|
|
158
|
+
converter = (0, converter_1.loadNative)();
|
|
159
|
+
}
|
|
160
|
+
if (converter === undefined) {
|
|
161
|
+
converter = {
|
|
162
|
+
toBigInt: (buf, bigEndian = true) => bigEndian ? bufferToBigIntBE(buf) : bufferToBigIntLE(buf),
|
|
163
|
+
fromBigInt: (num, buf, bigEndian = true) => bigEndian
|
|
164
|
+
? writeBigIntToBufferBE(num, buf)
|
|
165
|
+
: writeBigIntToBufferLE(num, buf),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function toBigIntLE(buf) {
|
|
169
|
+
if (converter === undefined)
|
|
170
|
+
return 0n;
|
|
171
|
+
return converter.toBigInt(toBufferInput(buf), false);
|
|
172
|
+
}
|
|
173
|
+
function validateBigIntBuffer() {
|
|
174
|
+
try {
|
|
175
|
+
const test = toBigIntLE(Buffer.from([0x01, 0x00]));
|
|
176
|
+
return test === BigInt(1);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function toBigIntBE(buf) {
|
|
183
|
+
if (converter === undefined)
|
|
184
|
+
return 0n;
|
|
185
|
+
return converter.toBigInt(toBufferInput(buf), true);
|
|
186
|
+
}
|
|
187
|
+
function toBufferLE(num, width) {
|
|
188
|
+
assertWidth(width, "toBufferLE");
|
|
189
|
+
if (converter === undefined)
|
|
190
|
+
return Buffer.alloc(0);
|
|
191
|
+
return converter.fromBigInt(num, Buffer.allocUnsafe(width), false);
|
|
192
|
+
}
|
|
193
|
+
function toBufferBE(num, width) {
|
|
194
|
+
assertWidth(width, "toBufferBE");
|
|
195
|
+
if (converter === undefined)
|
|
196
|
+
return Buffer.alloc(0);
|
|
197
|
+
return converter.fromBigInt(num, Buffer.allocUnsafe(width), true);
|
|
198
|
+
}
|
|
199
|
+
function parseHex(a, prefix0x = false, byteLength) {
|
|
200
|
+
const hexMatch = a.match(/^(0x)?([\da-fA-F]+)$/);
|
|
201
|
+
if (hexMatch == null) {
|
|
202
|
+
throw new RangeError("input must be a hexadecimal string, e.g. '0x124fe3a' or '0214f1b2'");
|
|
203
|
+
}
|
|
204
|
+
let hex = hexMatch[2];
|
|
205
|
+
if (byteLength !== undefined) {
|
|
206
|
+
if (byteLength < hex.length / 2) {
|
|
207
|
+
throw new RangeError(`expected byte length ${byteLength} < input hex byte length ${Math.ceil(hex.length / 2)}`);
|
|
208
|
+
}
|
|
209
|
+
hex = hex.padStart(byteLength * 2, "0");
|
|
210
|
+
}
|
|
211
|
+
return prefix0x ? "0x" + hex : hex;
|
|
212
|
+
}
|
|
213
|
+
function bigintToBuf(a, returnArrayBuffer = false) {
|
|
214
|
+
if (a < 0) {
|
|
215
|
+
throw RangeError("a should be a non-negative integer. Negative values are not supported");
|
|
216
|
+
}
|
|
217
|
+
return hexToBuf(bigintToHex(a), returnArrayBuffer);
|
|
218
|
+
}
|
|
219
|
+
function bufToBigint(buf) {
|
|
220
|
+
let bits = 8n;
|
|
221
|
+
if (ArrayBuffer.isView(buf)) {
|
|
222
|
+
bits = BigInt(buf.BYTES_PER_ELEMENT * 8);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
buf = new Uint8Array(buf);
|
|
226
|
+
}
|
|
227
|
+
let ret = 0n;
|
|
228
|
+
for (const i of buf.values()) {
|
|
229
|
+
const bi = BigInt(i);
|
|
230
|
+
ret = (ret << bits) + bi;
|
|
231
|
+
}
|
|
232
|
+
return ret;
|
|
233
|
+
}
|
|
234
|
+
function bigintToHex(a, prefix0x = false, byteLength) {
|
|
235
|
+
if (a < 0) {
|
|
236
|
+
throw RangeError("a should be a non-negative integer. Negative values are not supported");
|
|
237
|
+
}
|
|
238
|
+
return parseHex(a.toString(16), prefix0x, byteLength);
|
|
239
|
+
}
|
|
240
|
+
function hexToBigint(hexStr) {
|
|
241
|
+
return BigInt(parseHex(hexStr, true));
|
|
242
|
+
}
|
|
243
|
+
function bigintToText(a) {
|
|
244
|
+
if (a < 0) {
|
|
245
|
+
throw RangeError("a should be a non-negative integer. Negative values are not supported");
|
|
246
|
+
}
|
|
247
|
+
return bufToText(hexToBuf(a.toString(16)));
|
|
248
|
+
}
|
|
249
|
+
function textToBigint(text) {
|
|
250
|
+
return hexToBigint(bufToHex(textToBuf(text)));
|
|
251
|
+
}
|
|
252
|
+
function toBuffer(input) {
|
|
253
|
+
if (Buffer.isBuffer(input)) {
|
|
254
|
+
return input;
|
|
255
|
+
}
|
|
256
|
+
if (ArrayBuffer.isView(input)) {
|
|
257
|
+
return Buffer.from(input.buffer, input.byteOffset, input.byteLength);
|
|
258
|
+
}
|
|
259
|
+
if (input instanceof ArrayBuffer) {
|
|
260
|
+
return Buffer.from(new Uint8Array(input));
|
|
261
|
+
}
|
|
262
|
+
throw new TypeError("Unsupported input type for Buffer.from");
|
|
263
|
+
}
|
|
264
|
+
function bufToText(buf) {
|
|
265
|
+
const input = toBuffer(buf);
|
|
266
|
+
if (converter_1.IS_BROWSER) {
|
|
267
|
+
return new TextDecoder().decode(new Uint8Array(input));
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
return Buffer.from(input).toString();
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
function textToBuf(str, returnArrayBuffer = false) {
|
|
274
|
+
if (!converter_1.IS_BROWSER && !returnArrayBuffer) {
|
|
275
|
+
return Buffer.from(new TextEncoder().encode(str).buffer);
|
|
276
|
+
}
|
|
277
|
+
return new TextEncoder().encode(str).buffer;
|
|
278
|
+
}
|
|
279
|
+
function bufToHex(buf, prefix0x = false, byteLength) {
|
|
280
|
+
if (converter_1.IS_BROWSER) {
|
|
281
|
+
let s = "";
|
|
282
|
+
const h = "0123456789abcdef";
|
|
283
|
+
if (ArrayBuffer.isView(buf)) {
|
|
284
|
+
buf = new Uint8Array(buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength));
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
buf = new Uint8Array(buf);
|
|
288
|
+
}
|
|
289
|
+
buf.forEach((v) => {
|
|
290
|
+
s += h[v >> 4] + h[v & 15];
|
|
291
|
+
});
|
|
292
|
+
return parseHex(s, prefix0x, byteLength);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
const input = toBuffer(buf);
|
|
296
|
+
if (ArrayBuffer.isView(input)) {
|
|
297
|
+
buf = new Uint8Array(input.buffer.slice(input.byteOffset, input.byteOffset + input.byteLength));
|
|
298
|
+
}
|
|
299
|
+
return parseHex(Buffer.from(toBuffer(buf)).toString("hex"), prefix0x, byteLength);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
function hexToBuf(hexStr, returnArrayBuffer = false) {
|
|
303
|
+
let hex = parseHex(hexStr);
|
|
304
|
+
hex = parseHex(hexStr, false, Math.ceil(hex.length / 2));
|
|
305
|
+
if (converter_1.IS_BROWSER) {
|
|
306
|
+
return Uint8Array.from(hex.match(/[\da-fA-F]{2}/g).map((h) => {
|
|
307
|
+
return Number("0x" + h);
|
|
308
|
+
})).buffer;
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
const b = Buffer.from(hex, "hex");
|
|
312
|
+
return returnArrayBuffer
|
|
313
|
+
? b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength)
|
|
314
|
+
: b;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
function bigintToBase64(a, urlsafe = false, padding = true) {
|
|
318
|
+
if (a < 0n) {
|
|
319
|
+
throw new RangeError("negative bigint");
|
|
320
|
+
}
|
|
321
|
+
const buf = bigintToBuf(a);
|
|
322
|
+
let base64 = Buffer.isBuffer(buf)
|
|
323
|
+
? buf.toString("base64")
|
|
324
|
+
: Buffer.from(buf).toString("base64");
|
|
325
|
+
if (urlsafe) {
|
|
326
|
+
base64 = base64.replace(/\+/g, "-").replace(/\//g, "_");
|
|
327
|
+
}
|
|
328
|
+
if (!padding) {
|
|
329
|
+
base64 = base64.replace(/=+$/, "");
|
|
330
|
+
}
|
|
331
|
+
return base64;
|
|
332
|
+
}
|
|
333
|
+
function base64ToBigint(a) {
|
|
334
|
+
if (!a || a.trim() === "") {
|
|
335
|
+
return 0n;
|
|
336
|
+
}
|
|
337
|
+
const cleaned = a.trim();
|
|
338
|
+
if (!/^[A-Za-z0-9+/=_-]*$/.test(cleaned)) {
|
|
339
|
+
throw new RangeError("invalid base64");
|
|
340
|
+
}
|
|
341
|
+
let base64 = cleaned.replace(/-/g, "+").replace(/_/g, "/");
|
|
342
|
+
while (base64.length % 4 !== 0) {
|
|
343
|
+
base64 += "=";
|
|
344
|
+
}
|
|
345
|
+
const buf = Buffer.from(base64, "base64");
|
|
346
|
+
return bufToBigint(buf);
|
|
347
|
+
}
|
|
348
|
+
exports.FIXED_POINT_DECIMALS = 9;
|
|
349
|
+
exports.FIXED_POINT_PATTERN = /^-?0x[0-9a-f]+$/i;
|
|
350
|
+
exports.ZERO_FIXED_POINT = "0x0";
|
|
351
|
+
const normalizeHex = (value) => value.startsWith("0x") || value.startsWith("0X") ? value : `0x${value}`;
|
|
352
|
+
const toHexString = (value) => {
|
|
353
|
+
if (value === 0n) {
|
|
354
|
+
return exports.ZERO_FIXED_POINT;
|
|
355
|
+
}
|
|
356
|
+
const isNegative = value < 0n;
|
|
357
|
+
const absValue = isNegative ? -value : value;
|
|
358
|
+
const hexValue = bigintToHex(absValue);
|
|
359
|
+
return `${isNegative ? "-" : ""}0x${hexValue}`;
|
|
360
|
+
};
|
|
361
|
+
exports.toHexString = toHexString;
|
|
362
|
+
const toBigIntValue = (value) => {
|
|
363
|
+
if (!value) {
|
|
364
|
+
return 0n;
|
|
365
|
+
}
|
|
366
|
+
const trimmed = value.trim();
|
|
367
|
+
if (trimmed.length === 0) {
|
|
368
|
+
return 0n;
|
|
369
|
+
}
|
|
370
|
+
const isNegative = trimmed.startsWith("-");
|
|
371
|
+
const body = isNegative ? trimmed.slice(1) : trimmed;
|
|
372
|
+
const normalized = normalizeHex(body);
|
|
373
|
+
const bigValue = hexToBigint(normalized);
|
|
374
|
+
return isNegative ? -bigValue : bigValue;
|
|
375
|
+
};
|
|
376
|
+
exports.toBigIntValue = toBigIntValue;
|
|
377
|
+
function toFixedPoint(value, decimals = exports.FIXED_POINT_DECIMALS) {
|
|
378
|
+
if (!Number.isFinite(value)) {
|
|
379
|
+
return exports.ZERO_FIXED_POINT;
|
|
380
|
+
}
|
|
381
|
+
const scale = 10n ** BigInt(decimals);
|
|
382
|
+
const scaled = BigInt(Math.round(value * Number(scale)));
|
|
383
|
+
return (0, exports.toHexString)(scaled);
|
|
384
|
+
}
|
|
385
|
+
function fromFixedPoint(value, decimals = 9) {
|
|
386
|
+
if (!value)
|
|
387
|
+
return 0;
|
|
388
|
+
const trimmed = value.trim();
|
|
389
|
+
if (trimmed.length === 0)
|
|
390
|
+
return 0;
|
|
391
|
+
const isNegative = trimmed.startsWith('-');
|
|
392
|
+
const body = isNegative ? trimmed.slice(1) : trimmed;
|
|
393
|
+
const bigValue = isNegative ? -BigInt(body) : BigInt(body);
|
|
394
|
+
const scale = 10 ** decimals;
|
|
395
|
+
return Number(bigValue) / scale;
|
|
396
|
+
}
|
|
397
|
+
function addFixedPoint(a, b) {
|
|
398
|
+
return (0, exports.toHexString)((0, exports.toBigIntValue)(a) + (0, exports.toBigIntValue)(b));
|
|
399
|
+
}
|
|
400
|
+
function subtractFixedPoint(a, b) {
|
|
401
|
+
return (0, exports.toHexString)((0, exports.toBigIntValue)(a) - (0, exports.toBigIntValue)(b));
|
|
402
|
+
}
|
|
403
|
+
function averageFixedPoint(values) {
|
|
404
|
+
if (values.length === 0) {
|
|
405
|
+
return exports.ZERO_FIXED_POINT;
|
|
406
|
+
}
|
|
407
|
+
const sum = values.reduce((acc, value) => acc + (0, exports.toBigIntValue)(value), 0n);
|
|
408
|
+
return (0, exports.toHexString)(sum / BigInt(values.length));
|
|
409
|
+
}
|
|
410
|
+
function compareFixedPoint(a, b) {
|
|
411
|
+
const diff = (0, exports.toBigIntValue)(a) - (0, exports.toBigIntValue)(b);
|
|
412
|
+
if (diff === 0n) {
|
|
413
|
+
return 0;
|
|
414
|
+
}
|
|
415
|
+
return diff > 0n ? 1 : -1;
|
|
416
|
+
}
|
|
417
|
+
function fixedPointToBigInt(value) {
|
|
418
|
+
return (0, exports.toBigIntValue)(value);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
})();
|