@gsknnft/bigint-buffer 1.4.6 → 1.4.7

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 (420) hide show
  1. package/README.md +40 -3
  2. package/build/Release/bigint_buffer.node +0 -0
  3. package/dist/build/Release/bigint_buffer.node +0 -0
  4. package/dist/index.cjs +1 -1
  5. package/dist/{types/dist/dist/index.d.ts → index.d.ts} +1 -2
  6. package/dist/index.js +352 -410
  7. package/dist/index.umd.js +1 -1
  8. package/dist/tsconfig.tsbuildinfo +1 -1
  9. package/dist/types/conversion/src/ts/converter.d.ts +7 -3
  10. package/dist/types/conversion/src/ts/index.d.ts +19 -8
  11. package/dist/types/conversion/test/fixedPoint.test.d.ts +1 -0
  12. package/dist/types/index.d.ts +1 -2
  13. package/package.json +153 -141
  14. package/prebuilds/win32-x64/@gsknnft+bigint-buffer.node +0 -0
  15. package/scripts/postinstall.cjs +38 -0
  16. package/build/Release/bigint_buffer.exp +0 -0
  17. package/build/Release/bigint_buffer.iobj +0 -0
  18. package/build/Release/bigint_buffer.ipdb +0 -0
  19. package/build/Release/bigint_buffer.lib +0 -0
  20. package/build/Release/bigint_buffer.pdb +0 -0
  21. package/build/Release/obj/bigint_buffer/bigint_buffer.node.recipe +0 -11
  22. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.command.1.tlog +0 -0
  23. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.read.1.tlog +0 -0
  24. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/CL.write.1.tlog +0 -0
  25. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/Cl.items.tlog +0 -2
  26. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/bigint_buffer.lastbuildstate +0 -2
  27. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.command.1.tlog +0 -0
  28. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.read.1.tlog +0 -0
  29. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.secondary.1.tlog +0 -5
  30. package/build/Release/obj/bigint_buffer/bigint_buffer.tlog/link.write.1.tlog +0 -0
  31. package/build/Release/obj/bigint_buffer/src/bigint-buffer.obj +0 -0
  32. package/build/Release/obj/bigint_buffer/win_delay_load_hook.obj +0 -0
  33. package/build/bigint_buffer.vcxproj +0 -148
  34. package/build/bigint_buffer.vcxproj.filters +0 -64
  35. package/build/binding.sln +0 -19
  36. package/build/config.gypi +0 -525
  37. package/dist/types/conversion/src/ts/fixedPoint/index.d.ts +0 -12
  38. package/src/bigint-buffer.test.ts +0 -11
  39. package/src/conversion/.github/workflows/build-and-test.yml +0 -116
  40. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js +0 -178
  41. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js.map +0 -1
  42. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js +0 -178
  43. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js.map +0 -1
  44. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js +0 -178
  45. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js.map +0 -1
  46. package/src/conversion/CODE_OF_CONDUCT.md +0 -134
  47. package/src/conversion/LICENSE +0 -21
  48. package/src/conversion/README.md +0 -48
  49. package/src/conversion/coverage/base.css +0 -224
  50. package/src/conversion/coverage/block-navigation.js +0 -87
  51. package/src/conversion/coverage/clover.xml +0 -131
  52. package/src/conversion/coverage/coverage-final.json +0 -2
  53. package/src/conversion/coverage/favicon.png +0 -0
  54. package/src/conversion/coverage/index.html +0 -116
  55. package/src/conversion/coverage/index.ts.html +0 -1225
  56. package/src/conversion/coverage/prettify.css +0 -1
  57. package/src/conversion/coverage/prettify.js +0 -2
  58. package/src/conversion/coverage/sort-arrow-sprite.png +0 -0
  59. package/src/conversion/coverage/sorter.js +0 -210
  60. package/src/conversion/docs/README.md +0 -42
  61. package/src/conversion/docs/functions/base64ToBigint.md +0 -27
  62. package/src/conversion/docs/functions/bigintToBase64.md +0 -43
  63. package/src/conversion/docs/functions/bigintToBuf.md +0 -35
  64. package/src/conversion/docs/functions/bigintToHex.md +0 -43
  65. package/src/conversion/docs/functions/bigintToText.md +0 -31
  66. package/src/conversion/docs/functions/bufToBigint.md +0 -25
  67. package/src/conversion/docs/functions/bufToHex.md +0 -37
  68. package/src/conversion/docs/functions/bufToText.md +0 -27
  69. package/src/conversion/docs/functions/hexToBigint.md +0 -29
  70. package/src/conversion/docs/functions/hexToBuf.md +0 -37
  71. package/src/conversion/docs/functions/parseHex.md +0 -45
  72. package/src/conversion/docs/functions/textToBigint.md +0 -27
  73. package/src/conversion/docs/functions/textToBuf.md +0 -33
  74. package/src/conversion/docs/functions/toBigIntBE.md +0 -27
  75. package/src/conversion/docs/functions/toBigIntLE.md +0 -27
  76. package/src/conversion/docs/functions/toBufferBE.md +0 -33
  77. package/src/conversion/docs/functions/toBufferLE.md +0 -33
  78. package/src/conversion/docs/functions/validateBigIntBuffer.md +0 -15
  79. package/src/conversion/docs/type-aliases/TypedArray.md +0 -11
  80. package/src/conversion/docs/variables/isNative.md +0 -11
  81. package/src/conversion/example.cjs +0 -9
  82. package/src/conversion/example.esm.js +0 -11
  83. package/src/conversion/index.ts +0 -2
  84. package/src/conversion/node_modules/.bin/_mocha +0 -21
  85. package/src/conversion/node_modules/.bin/_mocha.CMD +0 -12
  86. package/src/conversion/node_modules/.bin/_mocha.ps1 +0 -41
  87. package/src/conversion/node_modules/.bin/c8 +0 -21
  88. package/src/conversion/node_modules/.bin/c8.CMD +0 -12
  89. package/src/conversion/node_modules/.bin/c8.ps1 +0 -41
  90. package/src/conversion/node_modules/.bin/esbuild +0 -21
  91. package/src/conversion/node_modules/.bin/esbuild.CMD +0 -12
  92. package/src/conversion/node_modules/.bin/esbuild.ps1 +0 -41
  93. package/src/conversion/node_modules/.bin/eslint +0 -21
  94. package/src/conversion/node_modules/.bin/eslint.CMD +0 -12
  95. package/src/conversion/node_modules/.bin/eslint.ps1 +0 -41
  96. package/src/conversion/node_modules/.bin/jiti +0 -21
  97. package/src/conversion/node_modules/.bin/jiti.CMD +0 -12
  98. package/src/conversion/node_modules/.bin/jiti.ps1 +0 -41
  99. package/src/conversion/node_modules/.bin/json5 +0 -21
  100. package/src/conversion/node_modules/.bin/json5.CMD +0 -12
  101. package/src/conversion/node_modules/.bin/json5.ps1 +0 -41
  102. package/src/conversion/node_modules/.bin/mocha +0 -21
  103. package/src/conversion/node_modules/.bin/mocha.CMD +0 -12
  104. package/src/conversion/node_modules/.bin/mocha.ps1 +0 -41
  105. package/src/conversion/node_modules/.bin/npm-run-all +0 -21
  106. package/src/conversion/node_modules/.bin/npm-run-all.CMD +0 -12
  107. package/src/conversion/node_modules/.bin/npm-run-all.ps1 +0 -41
  108. package/src/conversion/node_modules/.bin/puppeteer +0 -21
  109. package/src/conversion/node_modules/.bin/puppeteer.CMD +0 -12
  110. package/src/conversion/node_modules/.bin/puppeteer.ps1 +0 -41
  111. package/src/conversion/node_modules/.bin/rimraf +0 -16
  112. package/src/conversion/node_modules/.bin/rimraf.cmd +0 -17
  113. package/src/conversion/node_modules/.bin/rimraf.ps1 +0 -28
  114. package/src/conversion/node_modules/.bin/rollup +0 -21
  115. package/src/conversion/node_modules/.bin/rollup.CMD +0 -12
  116. package/src/conversion/node_modules/.bin/rollup.ps1 +0 -41
  117. package/src/conversion/node_modules/.bin/run-p +0 -21
  118. package/src/conversion/node_modules/.bin/run-p.CMD +0 -12
  119. package/src/conversion/node_modules/.bin/run-p.ps1 +0 -41
  120. package/src/conversion/node_modules/.bin/run-s +0 -21
  121. package/src/conversion/node_modules/.bin/run-s.CMD +0 -12
  122. package/src/conversion/node_modules/.bin/run-s.ps1 +0 -41
  123. package/src/conversion/node_modules/.bin/terser +0 -21
  124. package/src/conversion/node_modules/.bin/terser.CMD +0 -12
  125. package/src/conversion/node_modules/.bin/terser.ps1 +0 -41
  126. package/src/conversion/node_modules/.bin/ts-standard +0 -21
  127. package/src/conversion/node_modules/.bin/ts-standard.CMD +0 -12
  128. package/src/conversion/node_modules/.bin/ts-standard.ps1 +0 -41
  129. package/src/conversion/node_modules/.bin/tsc +0 -21
  130. package/src/conversion/node_modules/.bin/tsc.CMD +0 -12
  131. package/src/conversion/node_modules/.bin/tsc.ps1 +0 -41
  132. package/src/conversion/node_modules/.bin/tsserver +0 -21
  133. package/src/conversion/node_modules/.bin/tsserver.CMD +0 -12
  134. package/src/conversion/node_modules/.bin/tsserver.ps1 +0 -41
  135. package/src/conversion/node_modules/.bin/typedoc +0 -21
  136. package/src/conversion/node_modules/.bin/typedoc.CMD +0 -12
  137. package/src/conversion/node_modules/.bin/typedoc.ps1 +0 -41
  138. package/src/conversion/node_modules/.bin/vite +0 -21
  139. package/src/conversion/node_modules/.bin/vite.CMD +0 -12
  140. package/src/conversion/node_modules/.bin/vite.ps1 +0 -41
  141. package/src/conversion/node_modules/.bin/vitest +0 -21
  142. package/src/conversion/node_modules/.bin/vitest.CMD +0 -12
  143. package/src/conversion/node_modules/.bin/vitest.ps1 +0 -41
  144. package/src/conversion/node_modules/.bin/yaml +0 -21
  145. package/src/conversion/node_modules/.bin/yaml.CMD +0 -12
  146. package/src/conversion/node_modules/.bin/yaml.ps1 +0 -41
  147. package/src/conversion/node_modules/glob/LICENSE.md +0 -63
  148. package/src/conversion/node_modules/glob/README.md +0 -1177
  149. package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts +0 -388
  150. package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts.map +0 -1
  151. package/src/conversion/node_modules/glob/dist/commonjs/glob.js +0 -247
  152. package/src/conversion/node_modules/glob/dist/commonjs/glob.js.map +0 -1
  153. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts +0 -14
  154. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts.map +0 -1
  155. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js +0 -27
  156. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js.map +0 -1
  157. package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts +0 -24
  158. package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts.map +0 -1
  159. package/src/conversion/node_modules/glob/dist/commonjs/ignore.js +0 -119
  160. package/src/conversion/node_modules/glob/dist/commonjs/ignore.js.map +0 -1
  161. package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts +0 -97
  162. package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts.map +0 -1
  163. package/src/conversion/node_modules/glob/dist/commonjs/index.js +0 -68
  164. package/src/conversion/node_modules/glob/dist/commonjs/index.js.map +0 -1
  165. package/src/conversion/node_modules/glob/dist/commonjs/package.json +0 -3
  166. package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts +0 -76
  167. package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts.map +0 -1
  168. package/src/conversion/node_modules/glob/dist/commonjs/pattern.js +0 -219
  169. package/src/conversion/node_modules/glob/dist/commonjs/pattern.js.map +0 -1
  170. package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts +0 -59
  171. package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts.map +0 -1
  172. package/src/conversion/node_modules/glob/dist/commonjs/processor.js +0 -301
  173. package/src/conversion/node_modules/glob/dist/commonjs/processor.js.map +0 -1
  174. package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts +0 -97
  175. package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts.map +0 -1
  176. package/src/conversion/node_modules/glob/dist/commonjs/walker.js +0 -387
  177. package/src/conversion/node_modules/glob/dist/commonjs/walker.js.map +0 -1
  178. package/src/conversion/node_modules/glob/dist/esm/glob.d.ts +0 -388
  179. package/src/conversion/node_modules/glob/dist/esm/glob.d.ts.map +0 -1
  180. package/src/conversion/node_modules/glob/dist/esm/glob.js +0 -243
  181. package/src/conversion/node_modules/glob/dist/esm/glob.js.map +0 -1
  182. package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts +0 -14
  183. package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts.map +0 -1
  184. package/src/conversion/node_modules/glob/dist/esm/has-magic.js +0 -23
  185. package/src/conversion/node_modules/glob/dist/esm/has-magic.js.map +0 -1
  186. package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts +0 -24
  187. package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts.map +0 -1
  188. package/src/conversion/node_modules/glob/dist/esm/ignore.js +0 -115
  189. package/src/conversion/node_modules/glob/dist/esm/ignore.js.map +0 -1
  190. package/src/conversion/node_modules/glob/dist/esm/index.d.ts +0 -97
  191. package/src/conversion/node_modules/glob/dist/esm/index.d.ts.map +0 -1
  192. package/src/conversion/node_modules/glob/dist/esm/index.js +0 -55
  193. package/src/conversion/node_modules/glob/dist/esm/index.js.map +0 -1
  194. package/src/conversion/node_modules/glob/dist/esm/package.json +0 -3
  195. package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts +0 -76
  196. package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts.map +0 -1
  197. package/src/conversion/node_modules/glob/dist/esm/pattern.js +0 -215
  198. package/src/conversion/node_modules/glob/dist/esm/pattern.js.map +0 -1
  199. package/src/conversion/node_modules/glob/dist/esm/processor.d.ts +0 -59
  200. package/src/conversion/node_modules/glob/dist/esm/processor.d.ts.map +0 -1
  201. package/src/conversion/node_modules/glob/dist/esm/processor.js +0 -294
  202. package/src/conversion/node_modules/glob/dist/esm/processor.js.map +0 -1
  203. package/src/conversion/node_modules/glob/dist/esm/walker.d.ts +0 -97
  204. package/src/conversion/node_modules/glob/dist/esm/walker.d.ts.map +0 -1
  205. package/src/conversion/node_modules/glob/dist/esm/walker.js +0 -381
  206. package/src/conversion/node_modules/glob/dist/esm/walker.js.map +0 -1
  207. package/src/conversion/node_modules/glob/package.json +0 -93
  208. package/src/conversion/node_modules/minimatch/LICENSE.md +0 -55
  209. package/src/conversion/node_modules/minimatch/README.md +0 -453
  210. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +0 -2
  211. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +0 -1
  212. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  213. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +0 -1
  214. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts +0 -20
  215. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts.map +0 -1
  216. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js +0 -591
  217. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js.map +0 -1
  218. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +0 -8
  219. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +0 -1
  220. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -152
  221. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +0 -1
  222. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts +0 -15
  223. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts.map +0 -1
  224. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  225. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js.map +0 -1
  226. package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts +0 -94
  227. package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts.map +0 -1
  228. package/src/conversion/node_modules/minimatch/dist/commonjs/index.js +0 -1029
  229. package/src/conversion/node_modules/minimatch/dist/commonjs/index.js.map +0 -1
  230. package/src/conversion/node_modules/minimatch/dist/commonjs/package.json +0 -3
  231. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts +0 -22
  232. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +0 -1
  233. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  234. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js.map +0 -1
  235. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +0 -2
  236. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +0 -1
  237. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  238. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +0 -1
  239. package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts +0 -20
  240. package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts.map +0 -1
  241. package/src/conversion/node_modules/minimatch/dist/esm/ast.js +0 -587
  242. package/src/conversion/node_modules/minimatch/dist/esm/ast.js.map +0 -1
  243. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts +0 -8
  244. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +0 -1
  245. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js +0 -148
  246. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js.map +0 -1
  247. package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts +0 -15
  248. package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts.map +0 -1
  249. package/src/conversion/node_modules/minimatch/dist/esm/escape.js +0 -26
  250. package/src/conversion/node_modules/minimatch/dist/esm/escape.js.map +0 -1
  251. package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts +0 -94
  252. package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts.map +0 -1
  253. package/src/conversion/node_modules/minimatch/dist/esm/index.js +0 -1016
  254. package/src/conversion/node_modules/minimatch/dist/esm/index.js.map +0 -1
  255. package/src/conversion/node_modules/minimatch/dist/esm/package.json +0 -3
  256. package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts +0 -22
  257. package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts.map +0 -1
  258. package/src/conversion/node_modules/minimatch/dist/esm/unescape.js +0 -34
  259. package/src/conversion/node_modules/minimatch/dist/esm/unescape.js.map +0 -1
  260. package/src/conversion/node_modules/minimatch/package.json +0 -78
  261. package/src/conversion/node_modules/rimraf/LICENSE.md +0 -55
  262. package/src/conversion/node_modules/rimraf/README.md +0 -226
  263. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts +0 -3
  264. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts.map +0 -1
  265. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js +0 -58
  266. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js.map +0 -1
  267. package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts +0 -6
  268. package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts.map +0 -1
  269. package/src/conversion/node_modules/rimraf/dist/commonjs/error.js +0 -10
  270. package/src/conversion/node_modules/rimraf/dist/commonjs/error.js.map +0 -1
  271. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts +0 -3
  272. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts.map +0 -1
  273. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js +0 -38
  274. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js.map +0 -1
  275. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts +0 -15
  276. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts.map +0 -1
  277. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js +0 -33
  278. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js.map +0 -1
  279. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts +0 -3
  280. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts.map +0 -1
  281. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js +0 -24
  282. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js.map +0 -1
  283. package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts +0 -50
  284. package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts.map +0 -1
  285. package/src/conversion/node_modules/rimraf/dist/commonjs/index.js +0 -78
  286. package/src/conversion/node_modules/rimraf/dist/commonjs/index.js.map +0 -1
  287. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts +0 -34
  288. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts.map +0 -1
  289. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js +0 -53
  290. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js.map +0 -1
  291. package/src/conversion/node_modules/rimraf/dist/commonjs/package.json +0 -3
  292. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts +0 -4
  293. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts.map +0 -1
  294. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js +0 -48
  295. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js.map +0 -1
  296. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts +0 -3
  297. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts.map +0 -1
  298. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js +0 -19
  299. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js.map +0 -1
  300. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts +0 -8
  301. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts.map +0 -1
  302. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js +0 -65
  303. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js.map +0 -1
  304. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts +0 -3
  305. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts.map +0 -1
  306. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js +0 -8
  307. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js.map +0 -1
  308. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts +0 -4
  309. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts.map +0 -1
  310. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js +0 -138
  311. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js.map +0 -1
  312. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts +0 -4
  313. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts.map +0 -1
  314. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js +0 -24
  315. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js.map +0 -1
  316. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts +0 -4
  317. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts.map +0 -1
  318. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js +0 -103
  319. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js.map +0 -1
  320. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts +0 -4
  321. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts.map +0 -1
  322. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js +0 -159
  323. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js.map +0 -1
  324. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts +0 -4
  325. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts.map +0 -1
  326. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js +0 -18
  327. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js.map +0 -1
  328. package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts +0 -3
  329. package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts.map +0 -1
  330. package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs +0 -250
  331. package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs.map +0 -1
  332. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts +0 -3
  333. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts.map +0 -1
  334. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js +0 -55
  335. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js.map +0 -1
  336. package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts +0 -6
  337. package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts.map +0 -1
  338. package/src/conversion/node_modules/rimraf/dist/esm/error.js +0 -5
  339. package/src/conversion/node_modules/rimraf/dist/esm/error.js.map +0 -1
  340. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts +0 -3
  341. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts.map +0 -1
  342. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js +0 -33
  343. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js.map +0 -1
  344. package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts +0 -15
  345. package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts.map +0 -1
  346. package/src/conversion/node_modules/rimraf/dist/esm/fs.js +0 -18
  347. package/src/conversion/node_modules/rimraf/dist/esm/fs.js.map +0 -1
  348. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts +0 -3
  349. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts.map +0 -1
  350. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js +0 -19
  351. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js.map +0 -1
  352. package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts +0 -50
  353. package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts.map +0 -1
  354. package/src/conversion/node_modules/rimraf/dist/esm/index.js +0 -70
  355. package/src/conversion/node_modules/rimraf/dist/esm/index.js.map +0 -1
  356. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts +0 -34
  357. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts.map +0 -1
  358. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js +0 -46
  359. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js.map +0 -1
  360. package/src/conversion/node_modules/rimraf/dist/esm/package.json +0 -3
  361. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts +0 -4
  362. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts.map +0 -1
  363. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js +0 -46
  364. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js.map +0 -1
  365. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts +0 -3
  366. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts.map +0 -1
  367. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js +0 -14
  368. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js.map +0 -1
  369. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts +0 -8
  370. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts.map +0 -1
  371. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js +0 -60
  372. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js.map +0 -1
  373. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts +0 -3
  374. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts.map +0 -1
  375. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js +0 -5
  376. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js.map +0 -1
  377. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts +0 -4
  378. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts.map +0 -1
  379. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js +0 -133
  380. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js.map +0 -1
  381. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts +0 -4
  382. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts.map +0 -1
  383. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js +0 -19
  384. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js.map +0 -1
  385. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts +0 -4
  386. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts.map +0 -1
  387. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js +0 -98
  388. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js.map +0 -1
  389. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts +0 -4
  390. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts.map +0 -1
  391. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js +0 -154
  392. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js.map +0 -1
  393. package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts +0 -4
  394. package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts.map +0 -1
  395. package/src/conversion/node_modules/rimraf/dist/esm/use-native.js +0 -15
  396. package/src/conversion/node_modules/rimraf/dist/esm/use-native.js.map +0 -1
  397. package/src/conversion/node_modules/rimraf/package.json +0 -92
  398. package/src/conversion/package.json +0 -154
  399. package/src/conversion/src/docs/index.md +0 -52
  400. package/src/conversion/src/ts/converter.ts +0 -85
  401. package/src/conversion/src/ts/fixedPoint/index.ts +0 -87
  402. package/src/conversion/src/ts/index.ts +0 -500
  403. package/src/conversion/test/bigintToBase64.test.ts +0 -37
  404. package/src/conversion/test/bigintToBuf.test.ts +0 -43
  405. package/src/conversion/test/bigintToHex.test.ts +0 -52
  406. package/src/conversion/test/bigintToText.test.ts +0 -30
  407. package/src/conversion/test/bufToBigint.test.ts +0 -20
  408. package/src/conversion/test/hexToBigint.test.ts +0 -22
  409. package/src/conversion/test/hexToBuf.test.ts +0 -39
  410. package/src/conversion/test/parseHex.test.ts +0 -35
  411. package/src/conversion/test/setup.test.ts +0 -9
  412. package/src/conversion/test/textToBuf.test.ts +0 -26
  413. package/src/conversion/tsconfig.json +0 -57
  414. package/src/conversion/typedoc.json +0 -5
  415. package/src/conversion/vite.config.ts +0 -47
  416. package/src/conversion/vitest.config.ts +0 -15
  417. package/src/index.bench.ts +0 -206
  418. package/src/index.spec.ts +0 -318
  419. package/src/index.ts +0 -343
  420. /package/dist/{types/dist/dist/conversion/conversion → conversion}/index.d.ts +0 -0
@@ -1,500 +0,0 @@
1
- import { ConverterInterface, findModuleRoot, IS_BROWSER } from "./converter";
2
-
3
- export {
4
- toFixedPoint,
5
- fromFixedPoint,
6
- addFixedPoint,
7
- subtractFixedPoint,
8
- averageFixedPoint,
9
- compareFixedPoint,
10
- type FixedPoint,
11
- FIXED_POINT_DECIMALS,
12
- ZERO_FIXED_POINT,
13
- fixedPointToBigInt,
14
- toBigIntValue,
15
- } from "./fixedPoint";
16
-
17
- let converter: ConverterInterface | undefined;
18
- let nativeLoadError: unknown;
19
-
20
- function loadNative(): ConverterInterface | undefined {
21
- try {
22
- // eslint-disable-next-line @typescript-eslint/no-require-imports
23
- const bindings = require("bindings");
24
- const moduleRoot = findModuleRoot();
25
- return bindings({
26
- bindings: "bigint_buffer",
27
- module_root: moduleRoot,
28
- }) as ConverterInterface;
29
- } catch (err) {
30
- nativeLoadError = err;
31
- return undefined;
32
- }
33
- }
34
-
35
- let localIsNative = false;
36
- if (!IS_BROWSER) {
37
- converter = loadNative();
38
- localIsNative = converter !== undefined;
39
- if (
40
- !localIsNative &&
41
- nativeLoadError !== undefined &&
42
- process.env?.BIGINT_BUFFER_SILENT_NATIVE_FAIL !== "1"
43
- ) {
44
- console.warn(
45
- "bigint-buffer: Failed to load native bindings; using pure JS fallback. Run npm run rebuild to restore native.",
46
- nativeLoadError
47
- );
48
- }
49
- }
50
-
51
- if (converter === undefined) {
52
- // fallback to pure JS if needed (browser or when native load fails)
53
- converter = {
54
- toBigInt: (buf: Buffer, bigEndian = true) => {
55
- const copy = Buffer.from(buf);
56
- if (!bigEndian) copy.reverse();
57
- const hex = copy.toString("hex");
58
- return hex.length === 0 ? 0n : BigInt(`0x${hex}`);
59
- },
60
- fromBigInt: (num: bigint, buf: Buffer, bigEndian = true) => {
61
- const hex = num.toString(16);
62
- const width = buf.length;
63
- const filled = hex.padStart(width * 2, "0").slice(0, width * 2);
64
- const tmp = Buffer.from(filled, "hex");
65
- if (!bigEndian) tmp.reverse();
66
- tmp.copy(buf);
67
- return buf;
68
- },
69
- };
70
- }
71
-
72
- /**
73
- * Convert a little-endian buffer into a BigInt.
74
- * @param buf The little-endian buffer to convert
75
- * @returns A BigInt with the little-endian representation of buf.
76
- */
77
- export function toBigIntLE(buf: Buffer): bigint {
78
- if (IS_BROWSER || converter === undefined) {
79
- const reversed = Buffer.from(buf);
80
- reversed.reverse();
81
- const hex = reversed.toString("hex");
82
- if (hex.length === 0) {
83
- return BigInt(0);
84
- }
85
- return BigInt(`0x${hex}`);
86
- }
87
- return converter.toBigInt(buf, false);
88
- }
89
-
90
- export function validateBigIntBuffer(): boolean {
91
- try {
92
- const test = toBigIntLE(Buffer.from([0x01, 0x00]));
93
- return test === BigInt(1);
94
- } catch {
95
- return false;
96
- }
97
- }
98
-
99
- /**
100
- * Convert a big-endian buffer into a BigInt
101
- * @param buf The big-endian buffer to convert.
102
- * @returns A BigInt with the big-endian representation of buf.
103
- */
104
- export function toBigIntBE(buf: Buffer): bigint {
105
- if (IS_BROWSER || converter === undefined) {
106
- const hex = buf.toString("hex");
107
- if (hex.length === 0) {
108
- return BigInt(0);
109
- }
110
- return BigInt(`0x${hex}`);
111
- }
112
- return converter.toBigInt(buf, true);
113
- }
114
-
115
- /**
116
- * Convert a BigInt to a little-endian buffer.
117
- * @param num The BigInt to convert.
118
- * @param width The number of bytes that the resulting buffer should be.
119
- * @returns A little-endian buffer representation of num.
120
- */
121
- export function toBufferLE(num: bigint, width: number): Buffer {
122
- if (IS_BROWSER || converter === undefined) {
123
- const hex = num.toString(16);
124
- const buffer = Buffer.from(
125
- hex.padStart(width * 2, "0").slice(0, width * 2),
126
- "hex"
127
- );
128
- buffer.reverse();
129
- return buffer;
130
- }
131
- // Allocation is done here, since it is slower using napi in C
132
- return converter.fromBigInt(num, Buffer.allocUnsafe(width), false);
133
- }
134
-
135
- /**
136
- * Convert a BigInt to a big-endian buffer.
137
- * @param num The BigInt to convert.
138
- * @param width The number of bytes that the resulting buffer should be.
139
- * @returns A big-endian buffer representation of num.
140
- */
141
- export function toBufferBE(num: bigint, width: number): Buffer {
142
- if (IS_BROWSER || converter === undefined) {
143
- const hex = num.toString(16);
144
- return Buffer.from(hex.padStart(width * 2, "0").slice(0, width * 2), "hex");
145
- }
146
- return converter.fromBigInt(num, Buffer.allocUnsafe(width), true);
147
- }
148
-
149
- export type TypedArray =
150
- | Int8Array
151
- | Uint8Array
152
- | Uint8ClampedArray
153
- | Int16Array
154
- | Uint16Array
155
- | Int32Array
156
- | Uint32Array
157
- | Float32Array
158
- | Float64Array
159
- | BigInt64Array
160
- | BigUint64Array;
161
-
162
- /**
163
- * Parses a hexadecimal string for correctness and returns it with or without
164
- * '0x' prefix, and/or with the specified byte length
165
- * @param a - the string with an hexadecimal number to be parsed
166
- * @param prefix0x - set to true to prefix the output with '0x'
167
- * @param byteLength - pad the output to have the desired byte length. Notice
168
- * that the hex length is double the byte length.
169
- *
170
- * @returns
171
- *
172
- * @throws {@link RangeError} if input string does not hold an hexadecimal number
173
- * @throws {@link RangeError} if requested byte length is less than the input byte length
174
- */
175
- export function parseHex(
176
- a: string,
177
- prefix0x = false,
178
- byteLength?: number
179
- ): string {
180
- const hexMatch = a.match(/^(0x)?([\da-fA-F]+)$/);
181
- if (hexMatch == null) {
182
- throw new RangeError(
183
- "input must be a hexadecimal string, e.g. '0x124fe3a' or '0214f1b2'"
184
- );
185
- }
186
- let hex = hexMatch[2];
187
- if (byteLength !== undefined) {
188
- if (byteLength < hex.length / 2) {
189
- throw new RangeError(
190
- `expected byte length ${byteLength} < input hex byte length ${Math.ceil(
191
- hex.length / 2
192
- )}`
193
- );
194
- }
195
- hex = hex.padStart(byteLength * 2, "0");
196
- }
197
- return prefix0x ? "0x" + hex : hex;
198
- }
199
-
200
- /**
201
- * Converts an arbitrary-size non-negative bigint to an ArrayBuffer or a Buffer
202
- * (default for Node.js)
203
- *
204
- * @param a
205
- * @param returnArrayBuffer - In Node.js, it forces the output to be an
206
- * ArrayBuffer instead of a Buffer.
207
- *
208
- * @returns an ArrayBuffer or a Buffer with a binary representation of the input
209
- * bigint
210
- *
211
- * @throws {@link RangeError} if a < 0.
212
- */
213
- export function bigintToBuf(
214
- a: bigint,
215
- returnArrayBuffer = false
216
- ): ArrayBuffer | Buffer {
217
- if (a < 0) {
218
- throw RangeError(
219
- "a should be a non-negative integer. Negative values are not supported"
220
- );
221
- }
222
- return hexToBuf(bigintToHex(a), returnArrayBuffer);
223
- }
224
-
225
- /**
226
- * Converts an ArrayBuffer, TypedArray or Buffer (node.js) to a bigint
227
- * @param buf
228
- * @returns a bigint
229
- */
230
- export function bufToBigint(buf: ArrayBuffer | TypedArray | Buffer): bigint {
231
- let bits = 8n;
232
- if (ArrayBuffer.isView(buf)) {
233
- bits = BigInt(buf.BYTES_PER_ELEMENT * 8);
234
- } else {
235
- buf = new Uint8Array(buf);
236
- }
237
-
238
- let ret = 0n;
239
- for (const i of buf.values()) {
240
- const bi = BigInt(i);
241
- ret = (ret << bits) + bi;
242
- }
243
- return ret;
244
- }
245
-
246
- /**
247
- * Converts a non-negative bigint to a hexadecimal string
248
- * @param a - a non negative bigint
249
- * @param prefix0x - set to true to prefix the output with '0x'
250
- * @param byteLength - pad the output to have the desired byte length. Notice
251
- * that the hex length is double the byte length.
252
- *
253
- * @returns hexadecimal representation of the input bigint
254
- *
255
- * @throws {@link RangeError} if a < 0
256
- */
257
- export function bigintToHex(
258
- a: bigint,
259
- prefix0x = false,
260
- byteLength?: number
261
- ): string {
262
- if (a < 0) {
263
- throw RangeError(
264
- "a should be a non-negative integer. Negative values are not supported"
265
- );
266
- }
267
- return parseHex(a.toString(16), prefix0x, byteLength);
268
- }
269
-
270
- /**
271
- * Converts a hexadecimal string to a bigint
272
- *
273
- * @param hexStr
274
- *
275
- * @returns a bigint
276
- *
277
- * @throws {@link RangeError} if input string does not hold an hexadecimal number
278
- */
279
- export function hexToBigint(hexStr: string): bigint {
280
- return BigInt(parseHex(hexStr, true));
281
- }
282
-
283
- /**
284
- * Converts a non-negative bigint representing a binary array of utf-8 encoded
285
- * text to a string of utf-8 text
286
- *
287
- * @param a - A non-negative bigint representing a binary array of utf-8 encoded
288
- * text.
289
- *
290
- * @returns a string text with utf-8 encoding
291
- *
292
- * @throws {@link RangeError} if a < 0.
293
- */
294
- export function bigintToText(a: bigint): string {
295
- if (a < 0) {
296
- throw RangeError(
297
- "a should be a non-negative integer. Negative values are not supported"
298
- );
299
- }
300
- return bufToText(hexToBuf(a.toString(16)));
301
- }
302
-
303
- /**
304
- * Converts a utf-8 string to a bigint (from its binary representaion)
305
- *
306
- * @param text - A string text with utf-8 encoding
307
- *
308
- * @returns a bigint representing a binary array of the input utf-8 encoded text
309
- */
310
- export function textToBigint(text: string): bigint {
311
- return hexToBigint(bufToHex(textToBuf(text)));
312
- }
313
- function toBuffer(input: ArrayBuffer | TypedArray | Buffer): Buffer {
314
- if (Buffer.isBuffer(input)) {
315
- return input;
316
- }
317
-
318
- if (ArrayBuffer.isView(input)) {
319
- return Buffer.from(input.buffer, input.byteOffset, input.byteLength);
320
- }
321
-
322
- if (input instanceof ArrayBuffer) {
323
- return Buffer.from(new Uint8Array(input));
324
- }
325
-
326
- throw new TypeError("Unsupported input type for Buffer.from");
327
- }
328
- /**
329
- * Converts an ArrayBuffer, TypedArray or Buffer (in Node.js) containing utf-8
330
- * encoded text to a string of utf-8 text
331
- *
332
- * @param buf - A buffer containing utf-8 encoded text
333
- *
334
- * @returns a string text with utf-8 encoding
335
- */
336
- export function bufToText(buf: ArrayBuffer | TypedArray | Buffer): string {
337
- const input = toBuffer(buf);
338
- if (IS_BROWSER) {
339
- return new TextDecoder().decode(new Uint8Array(input));
340
- } else {
341
- return Buffer.from(input).toString();
342
- }
343
- }
344
-
345
- /**
346
- * Converts a string of utf-8 encoded text to an ArrayBuffer or a Buffer
347
- * (default in Node.js)
348
- *
349
- * @param str - A string of text (with utf-8 encoding)
350
- * @param returnArrayBuffer - When invoked in Node.js, it can force the output
351
- * to be an ArrayBuffer instead of a Buffer.
352
- *
353
- * @returns an ArrayBuffer or a Buffer containing the utf-8 encoded text
354
- */
355
- export function textToBuf(
356
- str: string,
357
- returnArrayBuffer = false
358
- ): ArrayBuffer | Buffer {
359
- if (!IS_BROWSER && !returnArrayBuffer) {
360
- return Buffer.from(new TextEncoder().encode(str).buffer);
361
- }
362
- return new TextEncoder().encode(str).buffer;
363
- }
364
-
365
- /**
366
- * Returns the hexadecimal representation of a buffer.
367
- *
368
- * @param buf
369
- * @param prefix0x - set to true to prefix the output with '0x'
370
- * @param byteLength - pad the output to have the desired byte length. Notice
371
- * that the hex length is double the byte length.
372
- *
373
- * @returns a string with a hexadecimal representation of the input buffer
374
- */
375
- export function bufToHex(
376
- buf: ArrayBuffer | TypedArray | Buffer,
377
- prefix0x = false,
378
- byteLength?: number
379
- ): string {
380
- if (IS_BROWSER) {
381
- let s = "";
382
- const h = "0123456789abcdef";
383
- if (ArrayBuffer.isView(buf)) {
384
- buf = new Uint8Array(
385
- buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)
386
- );
387
- } else {
388
- buf = new Uint8Array(buf);
389
- }
390
-
391
- (buf as Uint8Array).forEach((v) => {
392
- s += h[v >> 4] + h[v & 15];
393
- });
394
-
395
- return parseHex(s, prefix0x, byteLength);
396
- } else {
397
- const input = toBuffer(buf);
398
- if (ArrayBuffer.isView(input)) {
399
- buf = new Uint8Array(
400
- input.buffer.slice(
401
- input.byteOffset,
402
- input.byteOffset + input.byteLength
403
- )
404
- );
405
- }
406
- return parseHex(
407
- Buffer.from(toBuffer(buf)).toString("hex"),
408
- prefix0x,
409
- byteLength
410
- );
411
- }
412
- }
413
-
414
- /**
415
- * Converts a hexadecimal string to a buffer
416
- *
417
- * @param hexStr - A string representing a number with hexadecimal notation
418
- * @param returnArrayBuffer - In Node.js, it forces the output to be an
419
- * ArrayBuffer instead of a Buffer.
420
- *
421
- * @returns An ArrayBuffer or a Buffer
422
- *
423
- * @throws {@link RangeError} if input string does not hold an hexadecimal number
424
- */
425
- export function hexToBuf(
426
- hexStr: string,
427
- returnArrayBuffer = false
428
- ): ArrayBuffer | Buffer {
429
- let hex = parseHex(hexStr);
430
- hex = parseHex(hexStr, false, Math.ceil(hex.length / 2)); // pad to have a length in bytes
431
- if (IS_BROWSER) {
432
- return Uint8Array.from(
433
- hex.match(/[\da-fA-F]{2}/g)!.map((h) => {
434
- // ...existing code...
435
- return Number("0x" + h);
436
- })
437
- ).buffer;
438
- } else {
439
- const b = Buffer.from(hex, "hex");
440
- return returnArrayBuffer
441
- ? b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength)
442
- : b;
443
- }
444
- }
445
-
446
- /**
447
- * Converts an arbitrary-size non-negative bigint to a base64 string
448
- * @param a - a non negative bigint
449
- * @param urlsafe - if true Base64 URL encoding is used ('+' and '/' are
450
- * replaced by '-', '_')
451
- * @param padding - if false, padding (trailing '=') is removed
452
- * @returns a base64 representation of the input bigint
453
- *
454
- * @throws {RangeError}
455
- * Thrown if a < 0
456
- */
457
- export function bigintToBase64(
458
- a: bigint,
459
- urlsafe = false,
460
- padding = true
461
- ): string {
462
- if (a < 0n) {
463
- throw new RangeError("negative bigint");
464
- }
465
- const buf = bigintToBuf(a);
466
- let base64 = Buffer.isBuffer(buf)
467
- ? buf.toString("base64")
468
- : Buffer.from(buf as ArrayBuffer).toString("base64");
469
- if (urlsafe) {
470
- base64 = base64.replace(/\+/g, "-").replace(/\//g, "_");
471
- }
472
- if (!padding) {
473
- base64 = base64.replace(/=+$/, "");
474
- }
475
- return base64;
476
- }
477
-
478
- /**
479
- * Converts a base64 string to bigint.
480
- * @param a base64 string. It accepts standard and URL-safe base64 with and
481
- * without padding
482
- * @returns a bigint
483
- */
484
- export function base64ToBigint(a: string): bigint {
485
- if (!a || a.trim() === "") {
486
- return 0n;
487
- }
488
- const cleaned = a.trim();
489
- if (!/^[A-Za-z0-9+/=_-]*$/.test(cleaned)) {
490
- throw new RangeError("invalid base64");
491
- }
492
- // Implementation now uses Buffer, see above
493
- let base64 = cleaned.replace(/-/g, "+").replace(/_/g, "/");
494
- // Pad base64 string if necessary
495
- while (base64.length % 4 !== 0) {
496
- base64 += "=";
497
- }
498
- const buf = Buffer.from(base64, "base64");
499
- return bufToBigint(buf);
500
- }
@@ -1,37 +0,0 @@
1
- import * as bc from '#pkg';
2
- import {describe, expect, it} from 'vitest';
3
-
4
- describe('bigintToBase64', () => {
5
- const inputs = [
6
- {bi: BigInt(1), base64: 'AQ', urlsafe: true, padding: false},
7
- {bi: BigInt(31), base64: 'Hw==', urlsafe: true, padding: undefined},
8
- {bi: BigInt(3855), base64: 'Dw8', urlsafe: undefined, padding: false}, {
9
- bi: BigInt('12485413541784539569456874935679853424678352483761'),
10
- base64: 'CIr5Tmsemfi/OwHtthnKqmVqXHWx',
11
- urlsafe: false,
12
- padding: true
13
- },
14
- {bi: BigInt('-4'), base64: '', urlsafe: true, padding: false}
15
- ];
16
-
17
- for (const input of inputs) {
18
- if (input.bi >= 0) {
19
- describe(`bigintToBase64(${input.bi})`, () => {
20
- it(`should return ${input.base64}`, () => {
21
- const ret = bc.bigintToBase64(input.bi, input.urlsafe, input.padding);
22
- expect(ret).to.equal(input.base64);
23
- });
24
- });
25
- describe(`base64ToBigint(${input.base64})`, () => {
26
- it(`should return ${input.bi}`, () => {
27
- const ret = bc.base64ToBigint(input.base64);
28
- expect(ret).to.equal(input.bi);
29
- });
30
- });
31
- } else {
32
- it('should throw RangeError', () => {
33
- expect(() => bc.bigintToHex(input.bi)).to.throw(RangeError);
34
- });
35
- }
36
- }
37
- });
@@ -1,43 +0,0 @@
1
- import * as bc from '#pkg';
2
- import {describe, expect, it} from 'vitest';
3
-
4
- describe('bigintToBuf', () => {
5
- const inputs = [
6
- BigInt(0), BigInt(3855), BigInt(19),
7
- BigInt(
8
- '987597451974567914535761247965237569172456791242479651917245614514261463156346357315735752714364354354647135713476134634753735714534636'),
9
- BigInt(-5)
10
- ];
11
-
12
- for (const input of inputs) {
13
- describe(`bufToBigint(bigintToBuf(${input}))`, () => {
14
- if (input < 0) {
15
- it('should throw RangeError', () => {
16
- expect(() => bc.bufToBigint(bc.bigintToBuf(input)))
17
- .to.throw(RangeError);
18
- });
19
- it('should throw RangeError', () => {
20
- expect(() => bc.bufToBigint(bc.bigintToBuf(input, true)))
21
- .to.throw(RangeError);
22
- });
23
- it('should throw RangeError', () => {
24
- expect(() => bc.bufToBigint(bc.bigintToBuf(input, false)))
25
- .to.throw(RangeError);
26
- });
27
- } else {
28
- it(`should return ${input}`, () => {
29
- const ret = bc.bufToBigint(bc.bigintToBuf(input));
30
- expect(ret).to.equal(input);
31
- });
32
- it(`should return ${input}`, () => {
33
- const ret = bc.bufToBigint(bc.bigintToBuf(input, true));
34
- expect(ret).to.equal(input);
35
- });
36
- it(`should return ${input}`, () => {
37
- const ret = bc.bufToBigint(bc.bigintToBuf(input, false));
38
- expect(ret).to.equal(input);
39
- });
40
- }
41
- });
42
- }
43
- });
@@ -1,52 +0,0 @@
1
- import * as bc from '#pkg';
2
- import {describe, expect, it} from 'vitest';
3
-
4
- describe('bigintToHex', () => {
5
- const inputs = [
6
- {bi: BigInt(1), hex: '1'}, {bi: BigInt(31), hex: '1f'},
7
- {bi: BigInt(3855), hex: 'f0f'}, {
8
- bi: BigInt('12485413541784539569456874935679853424678352483761'),
9
- hex: '88af94e6b1e99f8bf3b01edb619caaa656a5c75b1'
10
- },
11
- {bi: BigInt('-4'), hex: ''}
12
- ];
13
-
14
- describe('bigintToHex', () => {
15
- for (const input of inputs) {
16
- if (input.bi >= 0) {
17
- describe(`bigintToHex(${input.bi})`, () => {
18
- it(`should return ${input.hex}`, () => {
19
- const ret = bc.bigintToHex(input.bi);
20
- expect(ret).to.equal(input.hex);
21
- });
22
- });
23
- } else {
24
- it('should throw RangeError', () => {
25
- expect(() => bc.bigintToHex(input.bi)).to.throw(RangeError);
26
- });
27
- }
28
- }
29
- it('bigintToHex(1214371n, undefined, 4) should return \'001287a3\'', () => {
30
- const ret = bc.bigintToHex(1214371n, undefined, 4);
31
- expect(ret).to.equal('001287a3');
32
- });
33
- it('bigintToHex(1214371n, true) should return \'0x1287a3\'', () => {
34
- const ret = bc.bigintToHex(1214371n, true);
35
- expect(ret).to.equal('0x1287a3');
36
- });
37
- it('bigintToHex(1214371n, true, 5) should return \'0x00001287a3\'', () => {
38
- const ret = bc.bigintToHex(1214371n, true, 5);
39
- expect(ret).to.equal('0x00001287a3');
40
- });
41
- it('bigintToHex(hexToBigint(\'1287542fe21\'), true, 4) should throw error',
42
- () => {
43
- expect(() => {
44
- bc.bigintToHex(bc.hexToBigint('1287542fe21'), true, 4);
45
- }).to.throw(RangeError);
46
- });
47
- it('bigintToHex(1132n, true) should return \'0x46c\'', () => {
48
- const ret = bc.bigintToHex(1132n, true);
49
- expect(ret).to.equal('0x46c');
50
- });
51
- });
52
- });
@@ -1,30 +0,0 @@
1
- import * as bc from '#pkg';
2
- import {describe, expect, it} from 'vitest';
3
-
4
- describe('bigintToText', () => {
5
- const inputs = [
6
- 'Hello World', 'Apañarse por qué?',
7
- `Lorem ipsum dolor sit amet, consectetur adipisci tempor incidunt ut labore et dolore magna aliqua veniam, quis nostrud exercitation ullamcorpor s commodo consequat. Duis autem vel eum irrure esse molestiae consequat, vel illum dolore eu fugi et iusto odio dignissim qui blandit praesent luptat exceptur sint occaecat cupiditat non provident, deserunt mollit anim id est laborum et dolor fuga distinct. Nam liber tempor cum soluta nobis elige quod maxim placeat facer possim omnis volupt
8
-
9
- Lorem ipsum dolor si amet, consectetur adipiscing incidunt ut labore et dolore magna aliquam erat nostrud exercitation ullamcorper suscipit laboris nis duis autem vel eum irure dolor in reprehenderit i, dolore eu fugiat nulla pariatur. At vero eos et accusa praesant luptatum delenit aigue duos dolor et mole provident, simil tempor sunt in culpa qui officia de fuga. Et harumd dereud facilis est er expedit disti eligend optio congue nihil impedit doming id quod assumenda est, omnis dolor repellend. Temporibud
10
-
11
- Lorem ipsum dolor si amet, consectetur adipiscing incidunt ut labore et dolore magna aliquam erat nostrud exercitation ullamcorper suscipit laboris nis duis autem vel eum irure dolor in reprehenderit i dolore eu fugiat nulla pariatur. At vero eos et accus praesant luptatum delenit aigue duos dolor et mol provident, simil tempor sunt in culpa qui officia de fuga. Et harumd dereud facilis est er expedit disti eligend oprio congue nihil impedit doming id quod assumenda est, omnis dolor repellend. Temporibud`
12
- ];
13
-
14
- describe('bigintToText((textToBigint(str))) === str ', () => {
15
- for (const input of inputs) {
16
- describe(`bigintToText((textToBigint(${input})))`, () => {
17
- it(`should return ${input}`, () => {
18
- const ret = bc.bigintToText(bc.textToBigint(input));
19
- expect(ret).to.equal(input);
20
- });
21
- });
22
- }
23
- });
24
-
25
- describe('bigintToText(-6n)', () => {
26
- it('should throw RangeError', () => {
27
- expect(() => bc.bigintToText(BigInt('-6'))).to.throw(RangeError);
28
- });
29
- });
30
- });
@@ -1,20 +0,0 @@
1
- import * as bc from '#pkg';
2
- import {describe, expect, it} from 'vitest';
3
-
4
- describe('bufToBigint', () => {
5
- const tests = [
6
- {input: new Uint32Array(2), output: BigInt(0)},
7
- {input: bc.hexToBuf('ffffffff'), output: BigInt('4294967295')}, {
8
- input: new Uint16Array(bc.hexToBuf('ffffffff', true)),
9
- output: BigInt('4294967295')
10
- }
11
- ];
12
- for (const test of tests) {
13
- describe(`bufToBigint(${String(bc.bufToHex(test.input))})`, () => {
14
- it(`should return ${String(test.output.toString())}`, () => {
15
- const ret = bc.bufToBigint(test.input);
16
- expect(ret.toString()).to.equal(test.output.toString());
17
- });
18
- });
19
- }
20
- });
@@ -1,22 +0,0 @@
1
- import * as bc from '#pkg';
2
- import {describe, expect, it} from 'vitest';
3
-
4
- describe('hexToBigint', () => {
5
- const inputs = [
6
- {bi: BigInt(1), hex: '1'}, {bi: BigInt(31), hex: '1F'}, {
7
- bi: BigInt('12485413541784539569456874935679853424678352483761'),
8
- hex: '88af94e6b1e99f8bf3b01edb619caaa656A5c75b1'
9
- }
10
- ];
11
-
12
- describe('hexToBigint', () => {
13
- for (const input of inputs) {
14
- describe(`hexToBigint(${input.hex})`, () => {
15
- it(`should return ${input.bi}`, () => {
16
- const ret = bc.hexToBigint(input.hex);
17
- expect(ret).to.equal(input.bi);
18
- });
19
- });
20
- }
21
- });
22
- });