@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.
Files changed (453) hide show
  1. package/README.md +150 -107
  2. package/build/Release/bigint_buffer.node +0 -0
  3. package/dist/build/Release/bigint_buffer.node +0 -0
  4. package/dist/conversion/bundle.iife.js +421 -0
  5. package/dist/conversion/bundle.umd.js +423 -0
  6. package/dist/conversion/cjs/converter.d.ts +14 -0
  7. package/dist/conversion/cjs/index.d.ts +33 -0
  8. package/dist/conversion/cjs/index.js +418 -0
  9. package/dist/conversion/cjs/index.node.js +4 -0
  10. package/dist/conversion/cjs/package.json +1 -0
  11. package/dist/conversion/converter.d.ts +14 -0
  12. package/dist/conversion/esm/bundle.js +416 -0
  13. package/dist/conversion/esm/bundle.min.js +1 -0
  14. package/dist/conversion/esm/converter.d.ts +14 -0
  15. package/dist/conversion/esm/index.browser.js +416 -0
  16. package/dist/conversion/esm/index.d.ts +33 -0
  17. package/dist/conversion/esm/index.js +416 -0
  18. package/dist/conversion/esm/index.node.js +2 -0
  19. package/dist/conversion/esm/package.json +1 -0
  20. package/dist/conversion/index.d.ts +1 -0
  21. package/dist/index.cjs +1 -1
  22. package/dist/{types/dist/dist/index.d.ts → index.d.ts} +5 -5
  23. package/dist/index.js +301 -419
  24. package/dist/index.umd.js +1 -1
  25. package/dist/types/conversion/index.d.ts +1 -2
  26. package/dist/types/conversion/src/index.d.ts +2 -0
  27. package/dist/types/conversion/src/ts/converter.d.ts +7 -3
  28. package/dist/types/conversion/src/ts/index.d.ts +23 -10
  29. package/dist/types/index.d.ts +5 -5
  30. package/package.json +50 -33
  31. package/prebuilds/win32-x64/@gsknnft+bigint-buffer.node +0 -0
  32. package/scripts/postinstall.cjs +40 -0
  33. package/build/Release/bigint_buffer.exp +0 -0
  34. package/build/Release/bigint_buffer.iobj +0 -0
  35. package/build/Release/bigint_buffer.ipdb +0 -0
  36. package/build/Release/bigint_buffer.lib +0 -0
  37. package/build/Release/bigint_buffer.pdb +0 -0
  38. package/build/Release/obj/bigint_buffer/bigint_buffer.node.recipe +0 -11
  39. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.command.1.tlog +0 -0
  40. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.read.1.tlog +0 -0
  41. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.write.1.tlog +0 -0
  42. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/Cl.items.tlog +0 -2
  43. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/bigint_buffer.lastbuildstate +0 -2
  44. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.command.1.tlog +0 -0
  45. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.read.1.tlog +0 -0
  46. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.secondary.1.tlog +0 -5
  47. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.write.1.tlog +0 -0
  48. package/build/Release/obj/bigint_buffer/src/bigint-buffer.obj +0 -0
  49. package/build/Release/obj/bigint_buffer/win_delay_load_hook.obj +0 -0
  50. package/build/bigint_buffer.vcxproj +0 -148
  51. package/build/bigint_buffer.vcxproj.filters +0 -64
  52. package/build/binding.sln +0 -19
  53. package/build/config.gypi +0 -525
  54. package/dist/tsconfig.tsbuildinfo +0 -1
  55. package/dist/types/bigint-buffer.test.d.ts +0 -1
  56. package/dist/types/conversion/src/ts/fixedPoint/index.d.ts +0 -12
  57. package/dist/types/conversion/test/bigintToBase64.test.d.ts +0 -1
  58. package/dist/types/conversion/test/bigintToBuf.test.d.ts +0 -1
  59. package/dist/types/conversion/test/bigintToHex.test.d.ts +0 -1
  60. package/dist/types/conversion/test/bigintToText.test.d.ts +0 -1
  61. package/dist/types/conversion/test/bufToBigint.test.d.ts +0 -1
  62. package/dist/types/conversion/test/hexToBigint.test.d.ts +0 -1
  63. package/dist/types/conversion/test/hexToBuf.test.d.ts +0 -1
  64. package/dist/types/conversion/test/parseHex.test.d.ts +0 -1
  65. package/dist/types/conversion/test/setup.test.d.ts +0 -1
  66. package/dist/types/conversion/test/textToBuf.test.d.ts +0 -1
  67. package/dist/types/conversion/vite.config.d.ts +0 -2
  68. package/dist/types/conversion/vitest.config.d.ts +0 -2
  69. package/dist/types/dist/dist/conversion/conversion/index.d.ts +0 -2
  70. package/dist/types/index.bench.d.ts +0 -1
  71. package/dist/types/index.spec.d.ts +0 -1
  72. package/src/bigint-buffer.test.ts +0 -11
  73. package/src/conversion/.github/workflows/build-and-test.yml +0 -116
  74. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js +0 -178
  75. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js.map +0 -1
  76. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js +0 -178
  77. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js.map +0 -1
  78. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js +0 -178
  79. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js.map +0 -1
  80. package/src/conversion/CODE_OF_CONDUCT.md +0 -134
  81. package/src/conversion/LICENSE +0 -21
  82. package/src/conversion/README.md +0 -48
  83. package/src/conversion/coverage/base.css +0 -224
  84. package/src/conversion/coverage/block-navigation.js +0 -87
  85. package/src/conversion/coverage/clover.xml +0 -131
  86. package/src/conversion/coverage/coverage-final.json +0 -2
  87. package/src/conversion/coverage/favicon.png +0 -0
  88. package/src/conversion/coverage/index.html +0 -116
  89. package/src/conversion/coverage/index.ts.html +0 -1225
  90. package/src/conversion/coverage/prettify.css +0 -1
  91. package/src/conversion/coverage/prettify.js +0 -2
  92. package/src/conversion/coverage/sort-arrow-sprite.png +0 -0
  93. package/src/conversion/coverage/sorter.js +0 -210
  94. package/src/conversion/docs/README.md +0 -42
  95. package/src/conversion/docs/functions/base64ToBigint.md +0 -27
  96. package/src/conversion/docs/functions/bigintToBase64.md +0 -43
  97. package/src/conversion/docs/functions/bigintToBuf.md +0 -35
  98. package/src/conversion/docs/functions/bigintToHex.md +0 -43
  99. package/src/conversion/docs/functions/bigintToText.md +0 -31
  100. package/src/conversion/docs/functions/bufToBigint.md +0 -25
  101. package/src/conversion/docs/functions/bufToHex.md +0 -37
  102. package/src/conversion/docs/functions/bufToText.md +0 -27
  103. package/src/conversion/docs/functions/hexToBigint.md +0 -29
  104. package/src/conversion/docs/functions/hexToBuf.md +0 -37
  105. package/src/conversion/docs/functions/parseHex.md +0 -45
  106. package/src/conversion/docs/functions/textToBigint.md +0 -27
  107. package/src/conversion/docs/functions/textToBuf.md +0 -33
  108. package/src/conversion/docs/functions/toBigIntBE.md +0 -27
  109. package/src/conversion/docs/functions/toBigIntLE.md +0 -27
  110. package/src/conversion/docs/functions/toBufferBE.md +0 -33
  111. package/src/conversion/docs/functions/toBufferLE.md +0 -33
  112. package/src/conversion/docs/functions/validateBigIntBuffer.md +0 -15
  113. package/src/conversion/docs/type-aliases/TypedArray.md +0 -11
  114. package/src/conversion/docs/variables/isNative.md +0 -11
  115. package/src/conversion/example.cjs +0 -9
  116. package/src/conversion/example.esm.js +0 -11
  117. package/src/conversion/index.ts +0 -2
  118. package/src/conversion/node_modules/.bin/_mocha +0 -21
  119. package/src/conversion/node_modules/.bin/_mocha.CMD +0 -12
  120. package/src/conversion/node_modules/.bin/_mocha.ps1 +0 -41
  121. package/src/conversion/node_modules/.bin/c8 +0 -21
  122. package/src/conversion/node_modules/.bin/c8.CMD +0 -12
  123. package/src/conversion/node_modules/.bin/c8.ps1 +0 -41
  124. package/src/conversion/node_modules/.bin/esbuild +0 -21
  125. package/src/conversion/node_modules/.bin/esbuild.CMD +0 -12
  126. package/src/conversion/node_modules/.bin/esbuild.ps1 +0 -41
  127. package/src/conversion/node_modules/.bin/eslint +0 -21
  128. package/src/conversion/node_modules/.bin/eslint.CMD +0 -12
  129. package/src/conversion/node_modules/.bin/eslint.ps1 +0 -41
  130. package/src/conversion/node_modules/.bin/jiti +0 -21
  131. package/src/conversion/node_modules/.bin/jiti.CMD +0 -12
  132. package/src/conversion/node_modules/.bin/jiti.ps1 +0 -41
  133. package/src/conversion/node_modules/.bin/json5 +0 -21
  134. package/src/conversion/node_modules/.bin/json5.CMD +0 -12
  135. package/src/conversion/node_modules/.bin/json5.ps1 +0 -41
  136. package/src/conversion/node_modules/.bin/mocha +0 -21
  137. package/src/conversion/node_modules/.bin/mocha.CMD +0 -12
  138. package/src/conversion/node_modules/.bin/mocha.ps1 +0 -41
  139. package/src/conversion/node_modules/.bin/npm-run-all +0 -21
  140. package/src/conversion/node_modules/.bin/npm-run-all.CMD +0 -12
  141. package/src/conversion/node_modules/.bin/npm-run-all.ps1 +0 -41
  142. package/src/conversion/node_modules/.bin/puppeteer +0 -21
  143. package/src/conversion/node_modules/.bin/puppeteer.CMD +0 -12
  144. package/src/conversion/node_modules/.bin/puppeteer.ps1 +0 -41
  145. package/src/conversion/node_modules/.bin/rimraf +0 -16
  146. package/src/conversion/node_modules/.bin/rimraf.cmd +0 -17
  147. package/src/conversion/node_modules/.bin/rimraf.ps1 +0 -28
  148. package/src/conversion/node_modules/.bin/rollup +0 -21
  149. package/src/conversion/node_modules/.bin/rollup.CMD +0 -12
  150. package/src/conversion/node_modules/.bin/rollup.ps1 +0 -41
  151. package/src/conversion/node_modules/.bin/run-p +0 -21
  152. package/src/conversion/node_modules/.bin/run-p.CMD +0 -12
  153. package/src/conversion/node_modules/.bin/run-p.ps1 +0 -41
  154. package/src/conversion/node_modules/.bin/run-s +0 -21
  155. package/src/conversion/node_modules/.bin/run-s.CMD +0 -12
  156. package/src/conversion/node_modules/.bin/run-s.ps1 +0 -41
  157. package/src/conversion/node_modules/.bin/terser +0 -21
  158. package/src/conversion/node_modules/.bin/terser.CMD +0 -12
  159. package/src/conversion/node_modules/.bin/terser.ps1 +0 -41
  160. package/src/conversion/node_modules/.bin/ts-standard +0 -21
  161. package/src/conversion/node_modules/.bin/ts-standard.CMD +0 -12
  162. package/src/conversion/node_modules/.bin/ts-standard.ps1 +0 -41
  163. package/src/conversion/node_modules/.bin/tsc +0 -21
  164. package/src/conversion/node_modules/.bin/tsc.CMD +0 -12
  165. package/src/conversion/node_modules/.bin/tsc.ps1 +0 -41
  166. package/src/conversion/node_modules/.bin/tsserver +0 -21
  167. package/src/conversion/node_modules/.bin/tsserver.CMD +0 -12
  168. package/src/conversion/node_modules/.bin/tsserver.ps1 +0 -41
  169. package/src/conversion/node_modules/.bin/typedoc +0 -21
  170. package/src/conversion/node_modules/.bin/typedoc.CMD +0 -12
  171. package/src/conversion/node_modules/.bin/typedoc.ps1 +0 -41
  172. package/src/conversion/node_modules/.bin/vite +0 -21
  173. package/src/conversion/node_modules/.bin/vite.CMD +0 -12
  174. package/src/conversion/node_modules/.bin/vite.ps1 +0 -41
  175. package/src/conversion/node_modules/.bin/vitest +0 -21
  176. package/src/conversion/node_modules/.bin/vitest.CMD +0 -12
  177. package/src/conversion/node_modules/.bin/vitest.ps1 +0 -41
  178. package/src/conversion/node_modules/.bin/yaml +0 -21
  179. package/src/conversion/node_modules/.bin/yaml.CMD +0 -12
  180. package/src/conversion/node_modules/.bin/yaml.ps1 +0 -41
  181. package/src/conversion/node_modules/glob/LICENSE.md +0 -63
  182. package/src/conversion/node_modules/glob/README.md +0 -1177
  183. package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts +0 -388
  184. package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts.map +0 -1
  185. package/src/conversion/node_modules/glob/dist/commonjs/glob.js +0 -247
  186. package/src/conversion/node_modules/glob/dist/commonjs/glob.js.map +0 -1
  187. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts +0 -14
  188. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts.map +0 -1
  189. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js +0 -27
  190. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js.map +0 -1
  191. package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts +0 -24
  192. package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts.map +0 -1
  193. package/src/conversion/node_modules/glob/dist/commonjs/ignore.js +0 -119
  194. package/src/conversion/node_modules/glob/dist/commonjs/ignore.js.map +0 -1
  195. package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts +0 -97
  196. package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts.map +0 -1
  197. package/src/conversion/node_modules/glob/dist/commonjs/index.js +0 -68
  198. package/src/conversion/node_modules/glob/dist/commonjs/index.js.map +0 -1
  199. package/src/conversion/node_modules/glob/dist/commonjs/package.json +0 -3
  200. package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts +0 -76
  201. package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts.map +0 -1
  202. package/src/conversion/node_modules/glob/dist/commonjs/pattern.js +0 -219
  203. package/src/conversion/node_modules/glob/dist/commonjs/pattern.js.map +0 -1
  204. package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts +0 -59
  205. package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts.map +0 -1
  206. package/src/conversion/node_modules/glob/dist/commonjs/processor.js +0 -301
  207. package/src/conversion/node_modules/glob/dist/commonjs/processor.js.map +0 -1
  208. package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts +0 -97
  209. package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts.map +0 -1
  210. package/src/conversion/node_modules/glob/dist/commonjs/walker.js +0 -387
  211. package/src/conversion/node_modules/glob/dist/commonjs/walker.js.map +0 -1
  212. package/src/conversion/node_modules/glob/dist/esm/glob.d.ts +0 -388
  213. package/src/conversion/node_modules/glob/dist/esm/glob.d.ts.map +0 -1
  214. package/src/conversion/node_modules/glob/dist/esm/glob.js +0 -243
  215. package/src/conversion/node_modules/glob/dist/esm/glob.js.map +0 -1
  216. package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts +0 -14
  217. package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts.map +0 -1
  218. package/src/conversion/node_modules/glob/dist/esm/has-magic.js +0 -23
  219. package/src/conversion/node_modules/glob/dist/esm/has-magic.js.map +0 -1
  220. package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts +0 -24
  221. package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts.map +0 -1
  222. package/src/conversion/node_modules/glob/dist/esm/ignore.js +0 -115
  223. package/src/conversion/node_modules/glob/dist/esm/ignore.js.map +0 -1
  224. package/src/conversion/node_modules/glob/dist/esm/index.d.ts +0 -97
  225. package/src/conversion/node_modules/glob/dist/esm/index.d.ts.map +0 -1
  226. package/src/conversion/node_modules/glob/dist/esm/index.js +0 -55
  227. package/src/conversion/node_modules/glob/dist/esm/index.js.map +0 -1
  228. package/src/conversion/node_modules/glob/dist/esm/package.json +0 -3
  229. package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts +0 -76
  230. package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts.map +0 -1
  231. package/src/conversion/node_modules/glob/dist/esm/pattern.js +0 -215
  232. package/src/conversion/node_modules/glob/dist/esm/pattern.js.map +0 -1
  233. package/src/conversion/node_modules/glob/dist/esm/processor.d.ts +0 -59
  234. package/src/conversion/node_modules/glob/dist/esm/processor.d.ts.map +0 -1
  235. package/src/conversion/node_modules/glob/dist/esm/processor.js +0 -294
  236. package/src/conversion/node_modules/glob/dist/esm/processor.js.map +0 -1
  237. package/src/conversion/node_modules/glob/dist/esm/walker.d.ts +0 -97
  238. package/src/conversion/node_modules/glob/dist/esm/walker.d.ts.map +0 -1
  239. package/src/conversion/node_modules/glob/dist/esm/walker.js +0 -381
  240. package/src/conversion/node_modules/glob/dist/esm/walker.js.map +0 -1
  241. package/src/conversion/node_modules/glob/package.json +0 -93
  242. package/src/conversion/node_modules/minimatch/LICENSE.md +0 -55
  243. package/src/conversion/node_modules/minimatch/README.md +0 -453
  244. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +0 -2
  245. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +0 -1
  246. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  247. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +0 -1
  248. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts +0 -20
  249. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts.map +0 -1
  250. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js +0 -591
  251. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js.map +0 -1
  252. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +0 -8
  253. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +0 -1
  254. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -152
  255. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +0 -1
  256. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts +0 -15
  257. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts.map +0 -1
  258. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  259. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js.map +0 -1
  260. package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts +0 -94
  261. package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts.map +0 -1
  262. package/src/conversion/node_modules/minimatch/dist/commonjs/index.js +0 -1029
  263. package/src/conversion/node_modules/minimatch/dist/commonjs/index.js.map +0 -1
  264. package/src/conversion/node_modules/minimatch/dist/commonjs/package.json +0 -3
  265. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts +0 -22
  266. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +0 -1
  267. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  268. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js.map +0 -1
  269. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +0 -2
  270. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +0 -1
  271. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  272. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +0 -1
  273. package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts +0 -20
  274. package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts.map +0 -1
  275. package/src/conversion/node_modules/minimatch/dist/esm/ast.js +0 -587
  276. package/src/conversion/node_modules/minimatch/dist/esm/ast.js.map +0 -1
  277. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts +0 -8
  278. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +0 -1
  279. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js +0 -148
  280. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js.map +0 -1
  281. package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts +0 -15
  282. package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts.map +0 -1
  283. package/src/conversion/node_modules/minimatch/dist/esm/escape.js +0 -26
  284. package/src/conversion/node_modules/minimatch/dist/esm/escape.js.map +0 -1
  285. package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts +0 -94
  286. package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts.map +0 -1
  287. package/src/conversion/node_modules/minimatch/dist/esm/index.js +0 -1016
  288. package/src/conversion/node_modules/minimatch/dist/esm/index.js.map +0 -1
  289. package/src/conversion/node_modules/minimatch/dist/esm/package.json +0 -3
  290. package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts +0 -22
  291. package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts.map +0 -1
  292. package/src/conversion/node_modules/minimatch/dist/esm/unescape.js +0 -34
  293. package/src/conversion/node_modules/minimatch/dist/esm/unescape.js.map +0 -1
  294. package/src/conversion/node_modules/minimatch/package.json +0 -78
  295. package/src/conversion/node_modules/rimraf/LICENSE.md +0 -55
  296. package/src/conversion/node_modules/rimraf/README.md +0 -226
  297. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts +0 -3
  298. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts.map +0 -1
  299. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js +0 -58
  300. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js.map +0 -1
  301. package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts +0 -6
  302. package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts.map +0 -1
  303. package/src/conversion/node_modules/rimraf/dist/commonjs/error.js +0 -10
  304. package/src/conversion/node_modules/rimraf/dist/commonjs/error.js.map +0 -1
  305. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts +0 -3
  306. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts.map +0 -1
  307. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js +0 -38
  308. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js.map +0 -1
  309. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts +0 -15
  310. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts.map +0 -1
  311. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js +0 -33
  312. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js.map +0 -1
  313. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts +0 -3
  314. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts.map +0 -1
  315. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js +0 -24
  316. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js.map +0 -1
  317. package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts +0 -50
  318. package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts.map +0 -1
  319. package/src/conversion/node_modules/rimraf/dist/commonjs/index.js +0 -78
  320. package/src/conversion/node_modules/rimraf/dist/commonjs/index.js.map +0 -1
  321. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts +0 -34
  322. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts.map +0 -1
  323. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js +0 -53
  324. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js.map +0 -1
  325. package/src/conversion/node_modules/rimraf/dist/commonjs/package.json +0 -3
  326. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts +0 -4
  327. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts.map +0 -1
  328. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js +0 -48
  329. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js.map +0 -1
  330. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts +0 -3
  331. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts.map +0 -1
  332. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js +0 -19
  333. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js.map +0 -1
  334. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts +0 -8
  335. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts.map +0 -1
  336. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js +0 -65
  337. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js.map +0 -1
  338. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts +0 -3
  339. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts.map +0 -1
  340. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js +0 -8
  341. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js.map +0 -1
  342. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts +0 -4
  343. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts.map +0 -1
  344. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js +0 -138
  345. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js.map +0 -1
  346. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts +0 -4
  347. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts.map +0 -1
  348. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js +0 -24
  349. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js.map +0 -1
  350. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts +0 -4
  351. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts.map +0 -1
  352. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js +0 -103
  353. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js.map +0 -1
  354. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts +0 -4
  355. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts.map +0 -1
  356. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js +0 -159
  357. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js.map +0 -1
  358. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts +0 -4
  359. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts.map +0 -1
  360. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js +0 -18
  361. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js.map +0 -1
  362. package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts +0 -3
  363. package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts.map +0 -1
  364. package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs +0 -250
  365. package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs.map +0 -1
  366. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts +0 -3
  367. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts.map +0 -1
  368. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js +0 -55
  369. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js.map +0 -1
  370. package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts +0 -6
  371. package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts.map +0 -1
  372. package/src/conversion/node_modules/rimraf/dist/esm/error.js +0 -5
  373. package/src/conversion/node_modules/rimraf/dist/esm/error.js.map +0 -1
  374. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts +0 -3
  375. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts.map +0 -1
  376. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js +0 -33
  377. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js.map +0 -1
  378. package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts +0 -15
  379. package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts.map +0 -1
  380. package/src/conversion/node_modules/rimraf/dist/esm/fs.js +0 -18
  381. package/src/conversion/node_modules/rimraf/dist/esm/fs.js.map +0 -1
  382. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts +0 -3
  383. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts.map +0 -1
  384. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js +0 -19
  385. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js.map +0 -1
  386. package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts +0 -50
  387. package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts.map +0 -1
  388. package/src/conversion/node_modules/rimraf/dist/esm/index.js +0 -70
  389. package/src/conversion/node_modules/rimraf/dist/esm/index.js.map +0 -1
  390. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts +0 -34
  391. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts.map +0 -1
  392. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js +0 -46
  393. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js.map +0 -1
  394. package/src/conversion/node_modules/rimraf/dist/esm/package.json +0 -3
  395. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts +0 -4
  396. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts.map +0 -1
  397. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js +0 -46
  398. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js.map +0 -1
  399. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts +0 -3
  400. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts.map +0 -1
  401. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js +0 -14
  402. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js.map +0 -1
  403. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts +0 -8
  404. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts.map +0 -1
  405. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js +0 -60
  406. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js.map +0 -1
  407. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts +0 -3
  408. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts.map +0 -1
  409. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js +0 -5
  410. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js.map +0 -1
  411. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts +0 -4
  412. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts.map +0 -1
  413. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js +0 -133
  414. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js.map +0 -1
  415. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts +0 -4
  416. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts.map +0 -1
  417. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js +0 -19
  418. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js.map +0 -1
  419. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts +0 -4
  420. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts.map +0 -1
  421. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js +0 -98
  422. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js.map +0 -1
  423. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts +0 -4
  424. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts.map +0 -1
  425. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js +0 -154
  426. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js.map +0 -1
  427. package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts +0 -4
  428. package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts.map +0 -1
  429. package/src/conversion/node_modules/rimraf/dist/esm/use-native.js +0 -15
  430. package/src/conversion/node_modules/rimraf/dist/esm/use-native.js.map +0 -1
  431. package/src/conversion/node_modules/rimraf/package.json +0 -92
  432. package/src/conversion/package.json +0 -154
  433. package/src/conversion/src/docs/index.md +0 -52
  434. package/src/conversion/src/ts/converter.ts +0 -85
  435. package/src/conversion/src/ts/fixedPoint/index.ts +0 -87
  436. package/src/conversion/src/ts/index.ts +0 -500
  437. package/src/conversion/test/bigintToBase64.test.ts +0 -37
  438. package/src/conversion/test/bigintToBuf.test.ts +0 -43
  439. package/src/conversion/test/bigintToHex.test.ts +0 -52
  440. package/src/conversion/test/bigintToText.test.ts +0 -30
  441. package/src/conversion/test/bufToBigint.test.ts +0 -20
  442. package/src/conversion/test/hexToBigint.test.ts +0 -22
  443. package/src/conversion/test/hexToBuf.test.ts +0 -39
  444. package/src/conversion/test/parseHex.test.ts +0 -35
  445. package/src/conversion/test/setup.test.ts +0 -9
  446. package/src/conversion/test/textToBuf.test.ts +0 -26
  447. package/src/conversion/tsconfig.json +0 -57
  448. package/src/conversion/typedoc.json +0 -5
  449. package/src/conversion/vite.config.ts +0 -47
  450. package/src/conversion/vitest.config.ts +0 -15
  451. package/src/index.bench.ts +0 -206
  452. package/src/index.spec.ts +0 -318
  453. package/src/index.ts +0 -343
package/README.md CHANGED
@@ -1,107 +1,150 @@
1
- ![CI](https://github.com/gsknknft/bigint-buffer/actions/workflows/ci.yaml/badge.svg)
2
- ![Release](https://github.com/gsknknft/bigint-buffer/actions/workflows/release.yaml/badge.svg)
3
-
4
- # @gsknnft/bigint-buffer
5
-
6
- Secure BigInt Buffer conversion with native bindings, browser fallbacks, and the `bigint-conversion` helper APIs built in. This is the actively maintained fork of the original `bigint-buffer`.
7
-
8
- **Upgrade notice:** The current 1.4.x line ships chunked, allocation-free BE/LE converters (Buffer.read/writeBigUInt64* when available) that are fuzzed across empty, tiny, and huge buffers, alongside FixedPoint utilities and packaged native bindings. CI-verified for Node 20–24. Upgrade for the fastest conversions and consistent behaviour across environments.
9
-
10
- [![NPM Version](https://img.shields.io/npm/v/@gsknnft/bigint-buffer.svg?style=flat-square)](https://www.npmjs.com/package/@gsknnft/bigint-buffer)
11
- [![Node Version](https://img.shields.io/node/v/@gsknnft/bigint-buffer.svg?style=flat-square)](https://nodejs.org)
12
-
13
- ---
14
-
15
- ## Why This Package
16
-
17
- - Native N-API binding with pure-JS fallback for browsers and constrained environments.
18
- - Conversion helpers from `bigint-conversion` in-core (no extra deps).
19
- - ESM and CJS exports plus a UMD/browser bundle.
20
- - Actively maintained; legacy `bigint-buffer` is deprecated and flagged by audits.
21
-
22
- ---
23
-
24
- ## Install
25
- ```bash
26
- npm install @gsknnft/bigint-buffer
27
- # or pnpm/yarn if preferred
28
- ```
29
-
30
- ---
31
-
32
- ## Quick Start
33
- ```ts
34
- import {
35
- toBigIntBE, toBigIntLE, toBufferBE, toBufferLE,
36
- bigintToBuf, bufToBigint, bigintToHex, hexToBigint,
37
- bigintToText, textToBigint, bigintToBase64, base64ToBigint,
38
- // New in 1.4.5
39
- toFixedPoint, fromFixedPoint, addFixedPoint, subtractFixedPoint,
40
- averageFixedPoint, compareFixedPoint, type FixedPoint,
41
- } from "@gsknnft/bigint-buffer";
42
-
43
- toBigIntBE(Buffer.from("deadbeef", "hex")); // 3735928559n
44
- toBufferLE(0xdeadbeefn, 6); // <Buffer ef be ad de 00 00>
45
- bigintToHex(123456789n); // "075bcd15"
46
- textToBigint("Hello"); // 0x48656c6c6f
47
- bigintToBase64(123456789n); // "B1vNFQ=="
48
-
49
- // FixedPoint usage
50
- const fp = toFixedPoint(123456789n, 18); // Convert bigint to FixedPoint
51
- const sum = addFixedPoint(fp, fp); // Add two FixedPoints
52
- const avg = averageFixedPoint([fp, fp]); // Average FixedPoints
53
- ```
54
-
55
- ### Performance
56
- - BE/LE conversions now stream bytes directly from buffers (64-bit chunks via Buffer.read/writeBigUInt64* when available) with no intermediate hex copies.
57
- - JS fallback matches the native binding semantics and is exercised against empty, tiny, and very large inputs in CI.
58
- - Native bindings still load automatically when present; the optimized fallback keeps browser and non-native runtimes fast.
59
- - Browser bundlers must polyfill Node built-ins: add a node polyfill plugin (e.g. `rollup-plugin-polyfill-node`) or explicit aliases for `buffer`, `path`, and `fs` so the fallback loader can resolve.
60
-
61
- ### Pushing Performance Further
62
- - For very large buffers, consider enabling the native binding (included in npm tarball) or adding SIMD/native glue in your host app if you need throughput beyond JS.
63
-
64
- ### Conversion Utilities
65
- ```ts
66
- import { conversionUtils } from "@gsknnft/bigint-buffer";
67
-
68
- const arrBuf = conversionUtils.bigintToBuf(123456789n, true); // ArrayBuffer
69
- const hex = conversionUtils.bigintToHex(123456789n, true); // '0x...' format
70
- const text = conversionUtils.bigintToText(123456789n);
71
- ```
72
-
73
- ---
74
-
75
- ## Runtime
76
- - Native binary: `build/Release/bigint_buffer.node` (included in npm package; loads automatically when available).
77
- - Fallback: pure JS bundle for browser and non-native installs (now improved in 1.4.5).
78
- - Check which path loaded:
79
- ```ts
80
- import { isNative } from "@gsknnft/bigint-buffer";
81
- console.log(isNative); // true when native binding is active
82
- ```
83
-
84
- ---
85
-
86
- ## Commands
87
- ```bash
88
- npm run build # bundle + declarations + type check
89
- npm test # vitest with coverage
90
- npm run test:node # mocha against built JS (after build/compile)
91
- npm run rebuild:native # rebuild the N-API binding
92
- ```
93
-
94
- ---
95
-
96
- ## API Surface (high level)
97
- - Core: `toBigIntBE/LE`, `toBufferBE/LE`, `validateBigIntBuffer`, `isNative`
98
- - Conversion: `bigintToBuf`, `bufToBigint`, `bigintToHex`, `hexToBigint`, `bigintToText`, `textToBigint`, `bigintToBase64`, `base64ToBigint`, `bufToHex`, `hexToBuf`, `textToBuf`, `bufToText`, `parseHex`
99
-
100
- All helpers are endian-safe and validated across Node and browser builds.
101
-
102
- ---
103
-
104
- ## Support
105
- - Version: 1.4.5 (FixedPoint, native bindings out-of-the-box, improved JS fallback)
106
- - Node: 20+ (tested through 24 LTS under CI)
107
- - Issues: https://github.com/gsknnft/bigint-buffer/issues
1
+ # @gsknnft/bigint-buffer
2
+
3
+ [![NPM Version](https://img.shields.io/npm/v/@gsknnft/bigint-buffer.svg?style=flat-square)](https://www.npmjs.com/package/@gsknnft/bigint-buffer)
4
+ [![Node Version](https://img.shields.io/node/v/@gsknnft/bigint-buffer.svg?style=flat-square)](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
@@ -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
+ })();