@gsknnft/bigint-buffer 1.4.4 → 1.4.6

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 (361) hide show
  1. package/README.md +107 -90
  2. package/build/Release/bigint_buffer.iobj +0 -0
  3. package/build/Release/bigint_buffer.ipdb +0 -0
  4. package/build/Release/bigint_buffer.node +0 -0
  5. package/build/Release/bigint_buffer.pdb +0 -0
  6. package/build/Release/obj/bigint_buffer/src/bigint-buffer.obj +0 -0
  7. package/build/Release/obj/bigint_buffer/win_delay_load_hook.obj +0 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.js +352 -210
  10. package/dist/index.umd.js +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/dist/types/conversion/index.d.ts +2 -1
  13. package/dist/types/conversion/src/ts/converter.d.ts +10 -0
  14. package/dist/types/conversion/src/ts/fixedPoint/index.d.ts +12 -0
  15. package/dist/types/conversion/src/ts/index.d.ts +1 -2
  16. package/dist/types/dist/dist/conversion/conversion/index.d.ts +2 -1
  17. package/package.json +141 -132
  18. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js +178 -0
  19. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-PYrzNv/src/ts/index.js.map +1 -0
  20. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js +178 -0
  21. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-h16OVM/src/ts/index.js.map +1 -0
  22. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js +178 -0
  23. package/src/conversion/.rollup.cache/C/Users/G/AppData/Local/Temp/rollup-plugin-typescript-allowjs-uUCFYt/src/ts/index.js.map +1 -0
  24. package/src/conversion/coverage/base.css +224 -0
  25. package/src/conversion/coverage/block-navigation.js +87 -0
  26. package/src/conversion/coverage/clover.xml +131 -0
  27. package/src/conversion/coverage/coverage-final.json +2 -0
  28. package/src/conversion/coverage/favicon.png +0 -0
  29. package/src/conversion/coverage/index.html +116 -0
  30. package/src/conversion/coverage/index.ts.html +1225 -0
  31. package/src/conversion/coverage/prettify.css +1 -0
  32. package/src/conversion/coverage/prettify.js +2 -0
  33. package/src/conversion/coverage/sort-arrow-sprite.png +0 -0
  34. package/src/conversion/coverage/sorter.js +210 -0
  35. package/src/conversion/docs/README.md +9 -1
  36. package/src/conversion/index.ts +2 -1
  37. package/src/conversion/node_modules/.bin/_mocha +21 -0
  38. package/src/conversion/node_modules/.bin/_mocha.CMD +12 -0
  39. package/src/conversion/node_modules/.bin/_mocha.ps1 +41 -0
  40. package/src/conversion/node_modules/.bin/c8 +21 -0
  41. package/src/conversion/node_modules/.bin/c8.CMD +12 -0
  42. package/src/conversion/node_modules/.bin/c8.ps1 +41 -0
  43. package/src/conversion/node_modules/.bin/esbuild +21 -0
  44. package/src/conversion/node_modules/.bin/esbuild.CMD +12 -0
  45. package/src/conversion/node_modules/.bin/esbuild.ps1 +41 -0
  46. package/src/conversion/node_modules/.bin/eslint +21 -0
  47. package/src/conversion/node_modules/.bin/eslint.CMD +12 -0
  48. package/src/conversion/node_modules/.bin/eslint.ps1 +41 -0
  49. package/src/conversion/node_modules/.bin/jiti +21 -0
  50. package/src/conversion/node_modules/.bin/jiti.CMD +12 -0
  51. package/src/conversion/node_modules/.bin/jiti.ps1 +41 -0
  52. package/src/conversion/node_modules/.bin/json5 +21 -0
  53. package/src/conversion/node_modules/.bin/json5.CMD +12 -0
  54. package/src/conversion/node_modules/.bin/json5.ps1 +41 -0
  55. package/src/conversion/node_modules/.bin/mocha +21 -0
  56. package/src/conversion/node_modules/.bin/mocha.CMD +12 -0
  57. package/src/conversion/node_modules/.bin/mocha.ps1 +41 -0
  58. package/src/conversion/node_modules/.bin/npm-run-all +21 -0
  59. package/src/conversion/node_modules/.bin/npm-run-all.CMD +12 -0
  60. package/src/conversion/node_modules/.bin/npm-run-all.ps1 +41 -0
  61. package/src/conversion/node_modules/.bin/puppeteer +21 -0
  62. package/src/conversion/node_modules/.bin/puppeteer.CMD +12 -0
  63. package/src/conversion/node_modules/.bin/puppeteer.ps1 +41 -0
  64. package/src/conversion/node_modules/.bin/rimraf +16 -0
  65. package/src/conversion/node_modules/.bin/rimraf.cmd +17 -0
  66. package/src/conversion/node_modules/.bin/rimraf.ps1 +28 -0
  67. package/src/conversion/node_modules/.bin/rollup +21 -0
  68. package/src/conversion/node_modules/.bin/rollup.CMD +12 -0
  69. package/src/conversion/node_modules/.bin/rollup.ps1 +41 -0
  70. package/src/conversion/node_modules/.bin/run-p +21 -0
  71. package/src/conversion/node_modules/.bin/run-p.CMD +12 -0
  72. package/src/conversion/node_modules/.bin/run-p.ps1 +41 -0
  73. package/src/conversion/node_modules/.bin/run-s +21 -0
  74. package/src/conversion/node_modules/.bin/run-s.CMD +12 -0
  75. package/src/conversion/node_modules/.bin/run-s.ps1 +41 -0
  76. package/src/conversion/node_modules/.bin/terser +21 -0
  77. package/src/conversion/node_modules/.bin/terser.CMD +12 -0
  78. package/src/conversion/node_modules/.bin/terser.ps1 +41 -0
  79. package/src/conversion/node_modules/.bin/ts-standard +21 -0
  80. package/src/conversion/node_modules/.bin/ts-standard.CMD +12 -0
  81. package/src/conversion/node_modules/.bin/ts-standard.ps1 +41 -0
  82. package/src/conversion/node_modules/.bin/tsc +21 -0
  83. package/src/conversion/node_modules/.bin/tsc.CMD +12 -0
  84. package/src/conversion/node_modules/.bin/tsc.ps1 +41 -0
  85. package/src/conversion/node_modules/.bin/tsserver +21 -0
  86. package/src/conversion/node_modules/.bin/tsserver.CMD +12 -0
  87. package/src/conversion/node_modules/.bin/tsserver.ps1 +41 -0
  88. package/src/conversion/node_modules/.bin/typedoc +21 -0
  89. package/src/conversion/node_modules/.bin/typedoc.CMD +12 -0
  90. package/src/conversion/node_modules/.bin/typedoc.ps1 +41 -0
  91. package/src/conversion/node_modules/.bin/vite +21 -0
  92. package/src/conversion/node_modules/.bin/vite.CMD +12 -0
  93. package/src/conversion/node_modules/.bin/vite.ps1 +41 -0
  94. package/src/conversion/node_modules/.bin/vitest +21 -0
  95. package/src/conversion/node_modules/.bin/vitest.CMD +12 -0
  96. package/src/conversion/node_modules/.bin/vitest.ps1 +41 -0
  97. package/src/conversion/node_modules/.bin/yaml +21 -0
  98. package/src/conversion/node_modules/.bin/yaml.CMD +12 -0
  99. package/src/conversion/node_modules/.bin/yaml.ps1 +41 -0
  100. package/src/conversion/node_modules/glob/LICENSE.md +63 -0
  101. package/src/conversion/node_modules/glob/README.md +1177 -0
  102. package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts +388 -0
  103. package/src/conversion/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -0
  104. package/src/conversion/node_modules/glob/dist/commonjs/glob.js +247 -0
  105. package/src/conversion/node_modules/glob/dist/commonjs/glob.js.map +1 -0
  106. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts +14 -0
  107. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.d.ts.map +1 -0
  108. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js +27 -0
  109. package/src/conversion/node_modules/glob/dist/commonjs/has-magic.js.map +1 -0
  110. package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts +24 -0
  111. package/src/conversion/node_modules/glob/dist/commonjs/ignore.d.ts.map +1 -0
  112. package/src/conversion/node_modules/glob/dist/commonjs/ignore.js +119 -0
  113. package/src/conversion/node_modules/glob/dist/commonjs/ignore.js.map +1 -0
  114. package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts +97 -0
  115. package/src/conversion/node_modules/glob/dist/commonjs/index.d.ts.map +1 -0
  116. package/src/conversion/node_modules/glob/dist/commonjs/index.js +68 -0
  117. package/src/conversion/node_modules/glob/dist/commonjs/index.js.map +1 -0
  118. package/src/conversion/node_modules/glob/dist/commonjs/package.json +3 -0
  119. package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts +76 -0
  120. package/src/conversion/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -0
  121. package/src/conversion/node_modules/glob/dist/commonjs/pattern.js +219 -0
  122. package/src/conversion/node_modules/glob/dist/commonjs/pattern.js.map +1 -0
  123. package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts +59 -0
  124. package/src/conversion/node_modules/glob/dist/commonjs/processor.d.ts.map +1 -0
  125. package/src/conversion/node_modules/glob/dist/commonjs/processor.js +301 -0
  126. package/src/conversion/node_modules/glob/dist/commonjs/processor.js.map +1 -0
  127. package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts +97 -0
  128. package/src/conversion/node_modules/glob/dist/commonjs/walker.d.ts.map +1 -0
  129. package/src/conversion/node_modules/glob/dist/commonjs/walker.js +387 -0
  130. package/src/conversion/node_modules/glob/dist/commonjs/walker.js.map +1 -0
  131. package/src/conversion/node_modules/glob/dist/esm/glob.d.ts +388 -0
  132. package/src/conversion/node_modules/glob/dist/esm/glob.d.ts.map +1 -0
  133. package/src/conversion/node_modules/glob/dist/esm/glob.js +243 -0
  134. package/src/conversion/node_modules/glob/dist/esm/glob.js.map +1 -0
  135. package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts +14 -0
  136. package/src/conversion/node_modules/glob/dist/esm/has-magic.d.ts.map +1 -0
  137. package/src/conversion/node_modules/glob/dist/esm/has-magic.js +23 -0
  138. package/src/conversion/node_modules/glob/dist/esm/has-magic.js.map +1 -0
  139. package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts +24 -0
  140. package/src/conversion/node_modules/glob/dist/esm/ignore.d.ts.map +1 -0
  141. package/src/conversion/node_modules/glob/dist/esm/ignore.js +115 -0
  142. package/src/conversion/node_modules/glob/dist/esm/ignore.js.map +1 -0
  143. package/src/conversion/node_modules/glob/dist/esm/index.d.ts +97 -0
  144. package/src/conversion/node_modules/glob/dist/esm/index.d.ts.map +1 -0
  145. package/src/conversion/node_modules/glob/dist/esm/index.js +55 -0
  146. package/src/conversion/node_modules/glob/dist/esm/index.js.map +1 -0
  147. package/src/conversion/node_modules/glob/dist/esm/package.json +3 -0
  148. package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts +76 -0
  149. package/src/conversion/node_modules/glob/dist/esm/pattern.d.ts.map +1 -0
  150. package/src/conversion/node_modules/glob/dist/esm/pattern.js +215 -0
  151. package/src/conversion/node_modules/glob/dist/esm/pattern.js.map +1 -0
  152. package/src/conversion/node_modules/glob/dist/esm/processor.d.ts +59 -0
  153. package/src/conversion/node_modules/glob/dist/esm/processor.d.ts.map +1 -0
  154. package/src/conversion/node_modules/glob/dist/esm/processor.js +294 -0
  155. package/src/conversion/node_modules/glob/dist/esm/processor.js.map +1 -0
  156. package/src/conversion/node_modules/glob/dist/esm/walker.d.ts +97 -0
  157. package/src/conversion/node_modules/glob/dist/esm/walker.d.ts.map +1 -0
  158. package/src/conversion/node_modules/glob/dist/esm/walker.js +381 -0
  159. package/src/conversion/node_modules/glob/dist/esm/walker.js.map +1 -0
  160. package/src/conversion/node_modules/glob/package.json +93 -0
  161. package/src/conversion/node_modules/minimatch/LICENSE.md +55 -0
  162. package/src/conversion/node_modules/minimatch/README.md +453 -0
  163. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +2 -0
  164. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +1 -0
  165. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +14 -0
  166. package/src/conversion/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -0
  167. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts +20 -0
  168. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -0
  169. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js +591 -0
  170. package/src/conversion/node_modules/minimatch/dist/commonjs/ast.js.map +1 -0
  171. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +8 -0
  172. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -0
  173. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js +152 -0
  174. package/src/conversion/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -0
  175. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts +15 -0
  176. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.d.ts.map +1 -0
  177. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js +30 -0
  178. package/src/conversion/node_modules/minimatch/dist/commonjs/escape.js.map +1 -0
  179. package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts +94 -0
  180. package/src/conversion/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -0
  181. package/src/conversion/node_modules/minimatch/dist/commonjs/index.js +1029 -0
  182. package/src/conversion/node_modules/minimatch/dist/commonjs/index.js.map +1 -0
  183. package/src/conversion/node_modules/minimatch/dist/commonjs/package.json +3 -0
  184. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts +22 -0
  185. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +1 -0
  186. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js +38 -0
  187. package/src/conversion/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -0
  188. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +2 -0
  189. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +1 -0
  190. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js +10 -0
  191. package/src/conversion/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -0
  192. package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts +20 -0
  193. package/src/conversion/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -0
  194. package/src/conversion/node_modules/minimatch/dist/esm/ast.js +587 -0
  195. package/src/conversion/node_modules/minimatch/dist/esm/ast.js.map +1 -0
  196. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts +8 -0
  197. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -0
  198. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js +148 -0
  199. package/src/conversion/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -0
  200. package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts +15 -0
  201. package/src/conversion/node_modules/minimatch/dist/esm/escape.d.ts.map +1 -0
  202. package/src/conversion/node_modules/minimatch/dist/esm/escape.js +26 -0
  203. package/src/conversion/node_modules/minimatch/dist/esm/escape.js.map +1 -0
  204. package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts +94 -0
  205. package/src/conversion/node_modules/minimatch/dist/esm/index.d.ts.map +1 -0
  206. package/src/conversion/node_modules/minimatch/dist/esm/index.js +1016 -0
  207. package/src/conversion/node_modules/minimatch/dist/esm/index.js.map +1 -0
  208. package/src/conversion/node_modules/minimatch/dist/esm/package.json +3 -0
  209. package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts +22 -0
  210. package/src/conversion/node_modules/minimatch/dist/esm/unescape.d.ts.map +1 -0
  211. package/src/conversion/node_modules/minimatch/dist/esm/unescape.js +34 -0
  212. package/src/conversion/node_modules/minimatch/dist/esm/unescape.js.map +1 -0
  213. package/src/conversion/node_modules/minimatch/package.json +78 -0
  214. package/src/conversion/node_modules/rimraf/LICENSE.md +55 -0
  215. package/src/conversion/node_modules/rimraf/README.md +226 -0
  216. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts +3 -0
  217. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.d.ts.map +1 -0
  218. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js +58 -0
  219. package/src/conversion/node_modules/rimraf/dist/commonjs/default-tmp.js.map +1 -0
  220. package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts +6 -0
  221. package/src/conversion/node_modules/rimraf/dist/commonjs/error.d.ts.map +1 -0
  222. package/src/conversion/node_modules/rimraf/dist/commonjs/error.js +10 -0
  223. package/src/conversion/node_modules/rimraf/dist/commonjs/error.js.map +1 -0
  224. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts +3 -0
  225. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts.map +1 -0
  226. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js +38 -0
  227. package/src/conversion/node_modules/rimraf/dist/commonjs/fix-eperm.js.map +1 -0
  228. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts +15 -0
  229. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.d.ts.map +1 -0
  230. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js +33 -0
  231. package/src/conversion/node_modules/rimraf/dist/commonjs/fs.js.map +1 -0
  232. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts +3 -0
  233. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts.map +1 -0
  234. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js +24 -0
  235. package/src/conversion/node_modules/rimraf/dist/commonjs/ignore-enoent.js.map +1 -0
  236. package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts +50 -0
  237. package/src/conversion/node_modules/rimraf/dist/commonjs/index.d.ts.map +1 -0
  238. package/src/conversion/node_modules/rimraf/dist/commonjs/index.js +78 -0
  239. package/src/conversion/node_modules/rimraf/dist/commonjs/index.js.map +1 -0
  240. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts +34 -0
  241. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.d.ts.map +1 -0
  242. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js +53 -0
  243. package/src/conversion/node_modules/rimraf/dist/commonjs/opt-arg.js.map +1 -0
  244. package/src/conversion/node_modules/rimraf/dist/commonjs/package.json +3 -0
  245. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts +4 -0
  246. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.d.ts.map +1 -0
  247. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js +48 -0
  248. package/src/conversion/node_modules/rimraf/dist/commonjs/path-arg.js.map +1 -0
  249. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts +3 -0
  250. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts.map +1 -0
  251. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js +19 -0
  252. package/src/conversion/node_modules/rimraf/dist/commonjs/readdir-or-error.js.map +1 -0
  253. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts +8 -0
  254. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.d.ts.map +1 -0
  255. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js +65 -0
  256. package/src/conversion/node_modules/rimraf/dist/commonjs/retry-busy.js.map +1 -0
  257. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts +3 -0
  258. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts.map +1 -0
  259. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js +8 -0
  260. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-manual.js.map +1 -0
  261. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts +4 -0
  262. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts.map +1 -0
  263. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js +138 -0
  264. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js.map +1 -0
  265. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts +4 -0
  266. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts.map +1 -0
  267. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js +24 -0
  268. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-native.js.map +1 -0
  269. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts +4 -0
  270. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts.map +1 -0
  271. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js +103 -0
  272. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-posix.js.map +1 -0
  273. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts +4 -0
  274. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts.map +1 -0
  275. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js +159 -0
  276. package/src/conversion/node_modules/rimraf/dist/commonjs/rimraf-windows.js.map +1 -0
  277. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts +4 -0
  278. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.d.ts.map +1 -0
  279. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js +18 -0
  280. package/src/conversion/node_modules/rimraf/dist/commonjs/use-native.js.map +1 -0
  281. package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts +3 -0
  282. package/src/conversion/node_modules/rimraf/dist/esm/bin.d.mts.map +1 -0
  283. package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs +250 -0
  284. package/src/conversion/node_modules/rimraf/dist/esm/bin.mjs.map +1 -0
  285. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts +3 -0
  286. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.d.ts.map +1 -0
  287. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js +55 -0
  288. package/src/conversion/node_modules/rimraf/dist/esm/default-tmp.js.map +1 -0
  289. package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts +6 -0
  290. package/src/conversion/node_modules/rimraf/dist/esm/error.d.ts.map +1 -0
  291. package/src/conversion/node_modules/rimraf/dist/esm/error.js +5 -0
  292. package/src/conversion/node_modules/rimraf/dist/esm/error.js.map +1 -0
  293. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts +3 -0
  294. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.d.ts.map +1 -0
  295. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js +33 -0
  296. package/src/conversion/node_modules/rimraf/dist/esm/fix-eperm.js.map +1 -0
  297. package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts +15 -0
  298. package/src/conversion/node_modules/rimraf/dist/esm/fs.d.ts.map +1 -0
  299. package/src/conversion/node_modules/rimraf/dist/esm/fs.js +18 -0
  300. package/src/conversion/node_modules/rimraf/dist/esm/fs.js.map +1 -0
  301. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts +3 -0
  302. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.d.ts.map +1 -0
  303. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js +19 -0
  304. package/src/conversion/node_modules/rimraf/dist/esm/ignore-enoent.js.map +1 -0
  305. package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts +50 -0
  306. package/src/conversion/node_modules/rimraf/dist/esm/index.d.ts.map +1 -0
  307. package/src/conversion/node_modules/rimraf/dist/esm/index.js +70 -0
  308. package/src/conversion/node_modules/rimraf/dist/esm/index.js.map +1 -0
  309. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts +34 -0
  310. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.d.ts.map +1 -0
  311. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js +46 -0
  312. package/src/conversion/node_modules/rimraf/dist/esm/opt-arg.js.map +1 -0
  313. package/src/conversion/node_modules/rimraf/dist/esm/package.json +3 -0
  314. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts +4 -0
  315. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.d.ts.map +1 -0
  316. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js +46 -0
  317. package/src/conversion/node_modules/rimraf/dist/esm/path-arg.js.map +1 -0
  318. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts +3 -0
  319. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.d.ts.map +1 -0
  320. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js +14 -0
  321. package/src/conversion/node_modules/rimraf/dist/esm/readdir-or-error.js.map +1 -0
  322. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts +8 -0
  323. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.d.ts.map +1 -0
  324. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js +60 -0
  325. package/src/conversion/node_modules/rimraf/dist/esm/retry-busy.js.map +1 -0
  326. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts +3 -0
  327. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.d.ts.map +1 -0
  328. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js +5 -0
  329. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-manual.js.map +1 -0
  330. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts +4 -0
  331. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts.map +1 -0
  332. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js +133 -0
  333. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-move-remove.js.map +1 -0
  334. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts +4 -0
  335. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.d.ts.map +1 -0
  336. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js +19 -0
  337. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-native.js.map +1 -0
  338. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts +4 -0
  339. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.d.ts.map +1 -0
  340. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js +98 -0
  341. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-posix.js.map +1 -0
  342. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts +4 -0
  343. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.d.ts.map +1 -0
  344. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js +154 -0
  345. package/src/conversion/node_modules/rimraf/dist/esm/rimraf-windows.js.map +1 -0
  346. package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts +4 -0
  347. package/src/conversion/node_modules/rimraf/dist/esm/use-native.d.ts.map +1 -0
  348. package/src/conversion/node_modules/rimraf/dist/esm/use-native.js +15 -0
  349. package/src/conversion/node_modules/rimraf/dist/esm/use-native.js.map +1 -0
  350. package/src/conversion/node_modules/rimraf/package.json +92 -0
  351. package/src/conversion/package.json +4 -13
  352. package/src/conversion/src/docs/index.md +6 -1
  353. package/src/conversion/src/ts/converter.ts +85 -0
  354. package/src/conversion/src/ts/fixedPoint/index.ts +87 -0
  355. package/src/conversion/src/ts/index.ts +18 -32
  356. package/src/conversion/tsconfig.json +1 -1
  357. package/src/conversion/vite.config.ts +38 -1
  358. package/src/index.ts +167 -39
  359. package/src/conversion/tsconfig.rollup.json +0 -9
  360. package/src/conversion/types/bindings.d.t.s +0 -4
  361. /package/dist/types/dist/dist/{types/index.d.ts → index.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rimraf-native.d.ts","sourceRoot":"","sources":["../../src/rimraf-native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAIlE,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,KAAK,kBAAkB,KACtB,OAAO,CAAC,OAAO,CAOjB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,KAAK,iBAAiB,KACrB,OAOF,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { promises, rmSync } from './fs.js';
2
+ const { rm } = promises;
3
+ export const rimrafNative = async (path, opt) => {
4
+ await rm(path, {
5
+ ...opt,
6
+ force: true,
7
+ recursive: true,
8
+ });
9
+ return true;
10
+ };
11
+ export const rimrafNativeSync = (path, opt) => {
12
+ rmSync(path, {
13
+ ...opt,
14
+ force: true,
15
+ recursive: true,
16
+ });
17
+ return true;
18
+ };
19
+ //# sourceMappingURL=rimraf-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rimraf-native.js","sourceRoot":"","sources":["../../src/rimraf-native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAA;AAEvB,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAY,EACZ,GAAuB,EACL,EAAE;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE;QACb,GAAG,GAAG;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,GAAsB,EACb,EAAE;IACX,MAAM,CAAC,IAAI,EAAE;QACX,GAAG,GAAG;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA","sourcesContent":["import { RimrafAsyncOptions, RimrafSyncOptions } from './index.js'\nimport { promises, rmSync } from './fs.js'\nconst { rm } = promises\n\nexport const rimrafNative = async (\n path: string,\n opt: RimrafAsyncOptions,\n): Promise<boolean> => {\n await rm(path, {\n ...opt,\n force: true,\n recursive: true,\n })\n return true\n}\n\nexport const rimrafNativeSync = (\n path: string,\n opt: RimrafSyncOptions,\n): boolean => {\n rmSync(path, {\n ...opt,\n force: true,\n recursive: true,\n })\n return true\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { RimrafAsyncOptions, RimrafSyncOptions } from './index.js';
2
+ export declare const rimrafPosix: (path: string, opt: RimrafAsyncOptions) => Promise<boolean>;
3
+ export declare const rimrafPosixSync: (path: string, opt: RimrafSyncOptions) => boolean;
4
+ //# sourceMappingURL=rimraf-posix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rimraf-posix.d.ts","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKlE,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM,EAAE,KAAK,kBAAkB,qBAOtE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,KAAK,iBAAiB,YAMnE,CAAA"}
@@ -0,0 +1,98 @@
1
+ // the simple recursive removal, where unlink and rmdir are atomic
2
+ // Note that this approach does NOT work on Windows!
3
+ // We stat first and only unlink if the Dirent isn't a directory,
4
+ // because sunos will let root unlink a directory, and some
5
+ // SUPER weird breakage happens as a result.
6
+ import { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js';
7
+ import { parse, resolve } from 'path';
8
+ import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js';
9
+ import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js';
10
+ import { errorCode } from './error.js';
11
+ const { lstat, rmdir, unlink } = promises;
12
+ export const rimrafPosix = async (path, opt) => {
13
+ opt?.signal?.throwIfAborted();
14
+ return ((await ignoreENOENT(lstat(path).then(stat => rimrafPosixDir(path, opt, stat)))) ?? true);
15
+ };
16
+ export const rimrafPosixSync = (path, opt) => {
17
+ opt?.signal?.throwIfAborted();
18
+ return (ignoreENOENTSync(() => rimrafPosixDirSync(path, opt, lstatSync(path))) ??
19
+ true);
20
+ };
21
+ const rimrafPosixDir = async (path, opt, ent) => {
22
+ opt?.signal?.throwIfAborted();
23
+ const entries = ent.isDirectory() ? await readdirOrError(path) : null;
24
+ if (!Array.isArray(entries)) {
25
+ // this can only happen if lstat/readdir lied, or if the dir was
26
+ // swapped out with a file at just the right moment.
27
+ /* c8 ignore start */
28
+ if (entries) {
29
+ if (errorCode(entries) === 'ENOENT') {
30
+ return true;
31
+ }
32
+ if (errorCode(entries) !== 'ENOTDIR') {
33
+ throw entries;
34
+ }
35
+ }
36
+ /* c8 ignore stop */
37
+ if (opt.filter && !(await opt.filter(path, ent))) {
38
+ return false;
39
+ }
40
+ await ignoreENOENT(unlink(path));
41
+ return true;
42
+ }
43
+ const removedAll = (await Promise.all(entries.map(ent => rimrafPosixDir(resolve(path, ent.name), opt, ent)))).every(v => v === true);
44
+ if (!removedAll) {
45
+ return false;
46
+ }
47
+ // we don't ever ACTUALLY try to unlink /, because that can never work
48
+ // but when preserveRoot is false, we could be operating on it.
49
+ // No need to check if preserveRoot is not false.
50
+ if (opt.preserveRoot === false && path === parse(path).root) {
51
+ return false;
52
+ }
53
+ if (opt.filter && !(await opt.filter(path, ent))) {
54
+ return false;
55
+ }
56
+ await ignoreENOENT(rmdir(path));
57
+ return true;
58
+ };
59
+ const rimrafPosixDirSync = (path, opt, ent) => {
60
+ opt?.signal?.throwIfAborted();
61
+ const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null;
62
+ if (!Array.isArray(entries)) {
63
+ // this can only happen if lstat/readdir lied, or if the dir was
64
+ // swapped out with a file at just the right moment.
65
+ /* c8 ignore start */
66
+ if (entries) {
67
+ if (errorCode(entries) === 'ENOENT') {
68
+ return true;
69
+ }
70
+ if (errorCode(entries) !== 'ENOTDIR') {
71
+ throw entries;
72
+ }
73
+ }
74
+ /* c8 ignore stop */
75
+ if (opt.filter && !opt.filter(path, ent)) {
76
+ return false;
77
+ }
78
+ ignoreENOENTSync(() => unlinkSync(path));
79
+ return true;
80
+ }
81
+ let removedAll = true;
82
+ for (const ent of entries) {
83
+ const p = resolve(path, ent.name);
84
+ removedAll = rimrafPosixDirSync(p, opt, ent) && removedAll;
85
+ }
86
+ if (opt.preserveRoot === false && path === parse(path).root) {
87
+ return false;
88
+ }
89
+ if (!removedAll) {
90
+ return false;
91
+ }
92
+ if (opt.filter && !opt.filter(path, ent)) {
93
+ return false;
94
+ }
95
+ ignoreENOENTSync(() => rmdirSync(path));
96
+ return true;
97
+ };
98
+ //# sourceMappingURL=rimraf-posix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rimraf-posix.js","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"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","sourcesContent":["// the simple recursive removal, where unlink and rmdir are atomic\n// Note that this approach does NOT work on Windows!\n// We stat first and only unlink if the Dirent isn't a directory,\n// because sunos will let root unlink a directory, and some\n// SUPER weird breakage happens as a result.\n\nimport { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js'\nimport { parse, resolve } from 'path'\nimport { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js'\nimport { Dirent, Stats } from 'fs'\nimport { RimrafAsyncOptions, RimrafSyncOptions } from './index.js'\nimport { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js'\nimport { errorCode } from './error.js'\nconst { lstat, rmdir, unlink } = promises\n\nexport const rimrafPosix = async (path: string, opt: RimrafAsyncOptions) => {\n opt?.signal?.throwIfAborted()\n return (\n (await ignoreENOENT(\n lstat(path).then(stat => rimrafPosixDir(path, opt, stat)),\n )) ?? true\n )\n}\n\nexport const rimrafPosixSync = (path: string, opt: RimrafSyncOptions) => {\n opt?.signal?.throwIfAborted()\n return (\n ignoreENOENTSync(() => rimrafPosixDirSync(path, opt, lstatSync(path))) ??\n true\n )\n}\n\nconst rimrafPosixDir = async (\n path: string,\n opt: RimrafAsyncOptions,\n ent: Dirent | Stats,\n): Promise<boolean> => {\n opt?.signal?.throwIfAborted()\n const entries = ent.isDirectory() ? await readdirOrError(path) : null\n if (!Array.isArray(entries)) {\n // this can only happen if lstat/readdir lied, or if the dir was\n // swapped out with a file at just the right moment.\n /* c8 ignore start */\n if (entries) {\n if (errorCode(entries) === 'ENOENT') {\n return true\n }\n if (errorCode(entries) !== 'ENOTDIR') {\n throw entries\n }\n }\n /* c8 ignore stop */\n if (opt.filter && !(await opt.filter(path, ent))) {\n return false\n }\n await ignoreENOENT(unlink(path))\n return true\n }\n\n const removedAll = (\n await Promise.all(\n entries.map(ent => rimrafPosixDir(resolve(path, ent.name), opt, ent)),\n )\n ).every(v => v === true)\n\n if (!removedAll) {\n return false\n }\n\n // we don't ever ACTUALLY try to unlink /, because that can never work\n // but when preserveRoot is false, we could be operating on it.\n // No need to check if preserveRoot is not false.\n if (opt.preserveRoot === false && path === parse(path).root) {\n return false\n }\n\n if (opt.filter && !(await opt.filter(path, ent))) {\n return false\n }\n\n await ignoreENOENT(rmdir(path))\n return true\n}\n\nconst rimrafPosixDirSync = (\n path: string,\n opt: RimrafSyncOptions,\n ent: Dirent | Stats,\n): boolean => {\n opt?.signal?.throwIfAborted()\n const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null\n if (!Array.isArray(entries)) {\n // this can only happen if lstat/readdir lied, or if the dir was\n // swapped out with a file at just the right moment.\n /* c8 ignore start */\n if (entries) {\n if (errorCode(entries) === 'ENOENT') {\n return true\n }\n if (errorCode(entries) !== 'ENOTDIR') {\n throw entries\n }\n }\n /* c8 ignore stop */\n if (opt.filter && !opt.filter(path, ent)) {\n return false\n }\n ignoreENOENTSync(() => unlinkSync(path))\n return true\n }\n let removedAll: boolean = true\n for (const ent of entries) {\n const p = resolve(path, ent.name)\n removedAll = rimrafPosixDirSync(p, opt, ent) && removedAll\n }\n if (opt.preserveRoot === false && path === parse(path).root) {\n return false\n }\n\n if (!removedAll) {\n return false\n }\n\n if (opt.filter && !opt.filter(path, ent)) {\n return false\n }\n\n ignoreENOENTSync(() => rmdirSync(path))\n return true\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { RimrafAsyncOptions, RimrafSyncOptions } from './index.js';
2
+ export declare const rimrafWindows: (path: string, opt: RimrafAsyncOptions) => Promise<boolean>;
3
+ export declare const rimrafWindowsSync: (path: string, opt: RimrafSyncOptions) => boolean;
4
+ //# sourceMappingURL=rimraf-windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rimraf-windows.d.ts","sourceRoot":"","sources":["../../src/rimraf-windows.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAwDlE,eAAO,MAAM,aAAa,GAAU,MAAM,MAAM,EAAE,KAAK,kBAAkB,qBAOxE,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,KAAK,iBAAiB,YAOrE,CAAA"}
@@ -0,0 +1,154 @@
1
+ // This is the same as rimrafPosix, with the following changes:
2
+ //
3
+ // 1. EBUSY, ENFILE, EMFILE trigger retries and/or exponential backoff
4
+ // 2. All non-directories are removed first and then all directories are
5
+ // removed in a second sweep.
6
+ // 3. If we hit ENOTEMPTY in the second sweep, fall back to move-remove on
7
+ // the that folder.
8
+ //
9
+ // Note: "move then remove" is 2-10 times slower, and just as unreliable.
10
+ import { parse, resolve } from 'path';
11
+ import { fixEPERM, fixEPERMSync } from './fix-eperm.js';
12
+ import { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js';
13
+ import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js';
14
+ import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js';
15
+ import { retryBusy, retryBusySync } from './retry-busy.js';
16
+ import { rimrafMoveRemove, rimrafMoveRemoveSync } from './rimraf-move-remove.js';
17
+ import { errorCode } from './error.js';
18
+ const { unlink, rmdir, lstat } = promises;
19
+ const rimrafWindowsFile = retryBusy(fixEPERM(unlink));
20
+ const rimrafWindowsFileSync = retryBusySync(fixEPERMSync(unlinkSync));
21
+ const rimrafWindowsDirRetry = retryBusy(fixEPERM(rmdir));
22
+ const rimrafWindowsDirRetrySync = retryBusySync(fixEPERMSync(rmdirSync));
23
+ const rimrafWindowsDirMoveRemoveFallback = async (path,
24
+ // already filtered, remove from options so we don't call unnecessarily
25
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
+ { filter, ...opt }) => {
27
+ /* c8 ignore next */
28
+ opt?.signal?.throwIfAborted();
29
+ try {
30
+ await rimrafWindowsDirRetry(path, opt);
31
+ return true;
32
+ }
33
+ catch (er) {
34
+ if (errorCode(er) === 'ENOTEMPTY') {
35
+ return rimrafMoveRemove(path, opt);
36
+ }
37
+ throw er;
38
+ }
39
+ };
40
+ const rimrafWindowsDirMoveRemoveFallbackSync = (path,
41
+ // already filtered, remove from options so we don't call unnecessarily
42
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
+ { filter, ...opt }) => {
44
+ opt?.signal?.throwIfAborted();
45
+ try {
46
+ rimrafWindowsDirRetrySync(path, opt);
47
+ return true;
48
+ }
49
+ catch (er) {
50
+ if (errorCode(er) === 'ENOTEMPTY') {
51
+ return rimrafMoveRemoveSync(path, opt);
52
+ }
53
+ throw er;
54
+ }
55
+ };
56
+ const START = Symbol('start');
57
+ const CHILD = Symbol('child');
58
+ const FINISH = Symbol('finish');
59
+ export const rimrafWindows = async (path, opt) => {
60
+ opt?.signal?.throwIfAborted();
61
+ return ((await ignoreENOENT(lstat(path).then(stat => rimrafWindowsDir(path, opt, stat, START)))) ?? true);
62
+ };
63
+ export const rimrafWindowsSync = (path, opt) => {
64
+ opt?.signal?.throwIfAborted();
65
+ return (ignoreENOENTSync(() => rimrafWindowsDirSync(path, opt, lstatSync(path), START)) ?? true);
66
+ };
67
+ const rimrafWindowsDir = async (path, opt, ent, state = START) => {
68
+ opt?.signal?.throwIfAborted();
69
+ const entries = ent.isDirectory() ? await readdirOrError(path) : null;
70
+ if (!Array.isArray(entries)) {
71
+ // this can only happen if lstat/readdir lied, or if the dir was
72
+ // swapped out with a file at just the right moment.
73
+ /* c8 ignore start */
74
+ if (entries) {
75
+ if (errorCode(entries) === 'ENOENT') {
76
+ return true;
77
+ }
78
+ if (errorCode(entries) !== 'ENOTDIR') {
79
+ throw entries;
80
+ }
81
+ }
82
+ /* c8 ignore stop */
83
+ if (opt.filter && !(await opt.filter(path, ent))) {
84
+ return false;
85
+ }
86
+ // is a file
87
+ await ignoreENOENT(rimrafWindowsFile(path, opt));
88
+ return true;
89
+ }
90
+ const s = state === START ? CHILD : state;
91
+ const removedAll = (await Promise.all(entries.map(ent => rimrafWindowsDir(resolve(path, ent.name), opt, ent, s)))).every(v => v === true);
92
+ if (state === START) {
93
+ return rimrafWindowsDir(path, opt, ent, FINISH);
94
+ }
95
+ else if (state === FINISH) {
96
+ if (opt.preserveRoot === false && path === parse(path).root) {
97
+ return false;
98
+ }
99
+ if (!removedAll) {
100
+ return false;
101
+ }
102
+ if (opt.filter && !(await opt.filter(path, ent))) {
103
+ return false;
104
+ }
105
+ await ignoreENOENT(rimrafWindowsDirMoveRemoveFallback(path, opt));
106
+ }
107
+ return true;
108
+ };
109
+ const rimrafWindowsDirSync = (path, opt, ent, state = START) => {
110
+ const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null;
111
+ if (!Array.isArray(entries)) {
112
+ // this can only happen if lstat/readdir lied, or if the dir was
113
+ // swapped out with a file at just the right moment.
114
+ /* c8 ignore start */
115
+ if (entries) {
116
+ if (errorCode(entries) === 'ENOENT') {
117
+ return true;
118
+ }
119
+ if (errorCode(entries) !== 'ENOTDIR') {
120
+ throw entries;
121
+ }
122
+ }
123
+ /* c8 ignore stop */
124
+ if (opt.filter && !opt.filter(path, ent)) {
125
+ return false;
126
+ }
127
+ // is a file
128
+ ignoreENOENTSync(() => rimrafWindowsFileSync(path, opt));
129
+ return true;
130
+ }
131
+ let removedAll = true;
132
+ for (const ent of entries) {
133
+ const s = state === START ? CHILD : state;
134
+ const p = resolve(path, ent.name);
135
+ removedAll = rimrafWindowsDirSync(p, opt, ent, s) && removedAll;
136
+ }
137
+ if (state === START) {
138
+ return rimrafWindowsDirSync(path, opt, ent, FINISH);
139
+ }
140
+ else if (state === FINISH) {
141
+ if (opt.preserveRoot === false && path === parse(path).root) {
142
+ return false;
143
+ }
144
+ if (!removedAll) {
145
+ return false;
146
+ }
147
+ if (opt.filter && !opt.filter(path, ent)) {
148
+ return false;
149
+ }
150
+ ignoreENOENTSync(() => rimrafWindowsDirMoveRemoveFallbackSync(path, opt));
151
+ }
152
+ return true;
153
+ };
154
+ //# sourceMappingURL=rimraf-windows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rimraf-windows.js","sourceRoot":"","sources":["../../src/rimraf-windows.ts"],"names":[],"mappings":"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","sourcesContent":["// This is the same as rimrafPosix, with the following changes:\n//\n// 1. EBUSY, ENFILE, EMFILE trigger retries and/or exponential backoff\n// 2. All non-directories are removed first and then all directories are\n// removed in a second sweep.\n// 3. If we hit ENOTEMPTY in the second sweep, fall back to move-remove on\n// the that folder.\n//\n// Note: \"move then remove\" is 2-10 times slower, and just as unreliable.\n\nimport { Dirent, Stats } from 'fs'\nimport { parse, resolve } from 'path'\nimport { RimrafAsyncOptions, RimrafSyncOptions } from './index.js'\nimport { fixEPERM, fixEPERMSync } from './fix-eperm.js'\nimport { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js'\nimport { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js'\nimport { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js'\nimport { retryBusy, retryBusySync } from './retry-busy.js'\nimport { rimrafMoveRemove, rimrafMoveRemoveSync } from './rimraf-move-remove.js'\nimport { errorCode } from './error.js'\nconst { unlink, rmdir, lstat } = promises\n\nconst rimrafWindowsFile = retryBusy(fixEPERM(unlink))\nconst rimrafWindowsFileSync = retryBusySync(fixEPERMSync(unlinkSync))\nconst rimrafWindowsDirRetry = retryBusy(fixEPERM(rmdir))\nconst rimrafWindowsDirRetrySync = retryBusySync(fixEPERMSync(rmdirSync))\n\nconst rimrafWindowsDirMoveRemoveFallback = async (\n path: string,\n // already filtered, remove from options so we don't call unnecessarily\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n { filter, ...opt }: RimrafAsyncOptions,\n): Promise<boolean> => {\n /* c8 ignore next */\n opt?.signal?.throwIfAborted()\n try {\n await rimrafWindowsDirRetry(path, opt)\n return true\n } catch (er) {\n if (errorCode(er) === 'ENOTEMPTY') {\n return rimrafMoveRemove(path, opt)\n }\n throw er\n }\n}\n\nconst rimrafWindowsDirMoveRemoveFallbackSync = (\n path: string,\n // already filtered, remove from options so we don't call unnecessarily\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n { filter, ...opt }: RimrafSyncOptions,\n): boolean => {\n opt?.signal?.throwIfAborted()\n try {\n rimrafWindowsDirRetrySync(path, opt)\n return true\n } catch (er) {\n if (errorCode(er) === 'ENOTEMPTY') {\n return rimrafMoveRemoveSync(path, opt)\n }\n throw er\n }\n}\n\nconst START = Symbol('start')\nconst CHILD = Symbol('child')\nconst FINISH = Symbol('finish')\n\nexport const rimrafWindows = async (path: string, opt: RimrafAsyncOptions) => {\n opt?.signal?.throwIfAborted()\n return (\n (await ignoreENOENT(\n lstat(path).then(stat => rimrafWindowsDir(path, opt, stat, START)),\n )) ?? true\n )\n}\n\nexport const rimrafWindowsSync = (path: string, opt: RimrafSyncOptions) => {\n opt?.signal?.throwIfAborted()\n return (\n ignoreENOENTSync(() =>\n rimrafWindowsDirSync(path, opt, lstatSync(path), START),\n ) ?? true\n )\n}\n\nconst rimrafWindowsDir = async (\n path: string,\n opt: RimrafAsyncOptions,\n ent: Dirent | Stats,\n state = START,\n): Promise<boolean> => {\n opt?.signal?.throwIfAborted()\n\n const entries = ent.isDirectory() ? await readdirOrError(path) : null\n if (!Array.isArray(entries)) {\n // this can only happen if lstat/readdir lied, or if the dir was\n // swapped out with a file at just the right moment.\n /* c8 ignore start */\n if (entries) {\n if (errorCode(entries) === 'ENOENT') {\n return true\n }\n if (errorCode(entries) !== 'ENOTDIR') {\n throw entries\n }\n }\n /* c8 ignore stop */\n if (opt.filter && !(await opt.filter(path, ent))) {\n return false\n }\n // is a file\n await ignoreENOENT(rimrafWindowsFile(path, opt))\n return true\n }\n\n const s = state === START ? CHILD : state\n const removedAll = (\n await Promise.all(\n entries.map(ent =>\n rimrafWindowsDir(resolve(path, ent.name), opt, ent, s),\n ),\n )\n ).every(v => v === true)\n\n if (state === START) {\n return rimrafWindowsDir(path, opt, ent, FINISH)\n } else if (state === FINISH) {\n if (opt.preserveRoot === false && path === parse(path).root) {\n return false\n }\n if (!removedAll) {\n return false\n }\n if (opt.filter && !(await opt.filter(path, ent))) {\n return false\n }\n await ignoreENOENT(rimrafWindowsDirMoveRemoveFallback(path, opt))\n }\n return true\n}\n\nconst rimrafWindowsDirSync = (\n path: string,\n opt: RimrafSyncOptions,\n ent: Dirent | Stats,\n state = START,\n): boolean => {\n const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null\n if (!Array.isArray(entries)) {\n // this can only happen if lstat/readdir lied, or if the dir was\n // swapped out with a file at just the right moment.\n /* c8 ignore start */\n if (entries) {\n if (errorCode(entries) === 'ENOENT') {\n return true\n }\n if (errorCode(entries) !== 'ENOTDIR') {\n throw entries\n }\n }\n /* c8 ignore stop */\n if (opt.filter && !opt.filter(path, ent)) {\n return false\n }\n // is a file\n ignoreENOENTSync(() => rimrafWindowsFileSync(path, opt))\n return true\n }\n\n let removedAll = true\n for (const ent of entries) {\n const s = state === START ? CHILD : state\n const p = resolve(path, ent.name)\n removedAll = rimrafWindowsDirSync(p, opt, ent, s) && removedAll\n }\n\n if (state === START) {\n return rimrafWindowsDirSync(path, opt, ent, FINISH)\n } else if (state === FINISH) {\n if (opt.preserveRoot === false && path === parse(path).root) {\n return false\n }\n if (!removedAll) {\n return false\n }\n if (opt.filter && !opt.filter(path, ent)) {\n return false\n }\n ignoreENOENTSync(() => rimrafWindowsDirMoveRemoveFallbackSync(path, opt))\n }\n return true\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { RimrafAsyncOptions, RimrafOptions } from './index.js';
2
+ export declare const useNative: (opt?: RimrafAsyncOptions) => boolean;
3
+ export declare const useNativeSync: (opt?: RimrafOptions) => boolean;
4
+ //# sourceMappingURL=use-native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-native.d.ts","sourceRoot":"","sources":["../../src/use-native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAW9D,eAAO,MAAM,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,kBAAkB,KAAK,OAGf,CAAA;AACvC,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,OAGd,CAAA"}
@@ -0,0 +1,15 @@
1
+ /* c8 ignore next */
2
+ const [major = 0, minor = 0] = process.version
3
+ .replace(/^v/, '')
4
+ .split('.')
5
+ .map(v => parseInt(v, 10));
6
+ const hasNative = major > 14 || (major === 14 && minor >= 14);
7
+ // we do NOT use native by default on Windows, because Node's native
8
+ // rm implementation is less advanced. Change this code if that changes.
9
+ export const useNative = !hasNative || process.platform === 'win32' ?
10
+ () => false
11
+ : opt => !opt?.signal && !opt?.filter;
12
+ export const useNativeSync = !hasNative || process.platform === 'win32' ?
13
+ () => false
14
+ : opt => !opt?.signal && !opt?.filter;
15
+ //# sourceMappingURL=use-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-native.js","sourceRoot":"","sources":["../../src/use-native.ts"],"names":[],"mappings":"AAEA,oBAAoB;AACpB,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO;KAC3C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;KACjB,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC5B,MAAM,SAAS,GAAG,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC,CAAA;AAE7D,oEAAoE;AACpE,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GACpB,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC1C,GAAG,EAAE,CAAC,KAAK;IACb,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;AACvC,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC1C,GAAG,EAAE,CAAC,KAAK;IACb,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA","sourcesContent":["import { RimrafAsyncOptions, RimrafOptions } from './index.js'\n\n/* c8 ignore next */\nconst [major = 0, minor = 0] = process.version\n .replace(/^v/, '')\n .split('.')\n .map(v => parseInt(v, 10))\nconst hasNative = major > 14 || (major === 14 && minor >= 14)\n\n// we do NOT use native by default on Windows, because Node's native\n// rm implementation is less advanced. Change this code if that changes.\nexport const useNative: (opt?: RimrafAsyncOptions) => boolean =\n !hasNative || process.platform === 'win32' ?\n () => false\n : opt => !opt?.signal && !opt?.filter\nexport const useNativeSync: (opt?: RimrafOptions) => boolean =\n !hasNative || process.platform === 'win32' ?\n () => false\n : opt => !opt?.signal && !opt?.filter\n"]}
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "rimraf",
3
+ "version": "6.1.2",
4
+ "type": "module",
5
+ "tshy": {
6
+ "main": true,
7
+ "exports": {
8
+ "./package.json": "./package.json",
9
+ ".": "./src/index.ts"
10
+ }
11
+ },
12
+ "bin": "./dist/esm/bin.mjs",
13
+ "main": "./dist/commonjs/index.js",
14
+ "types": "./dist/commonjs/index.d.ts",
15
+ "exports": {
16
+ "./package.json": "./package.json",
17
+ ".": {
18
+ "import": {
19
+ "types": "./dist/esm/index.d.ts",
20
+ "default": "./dist/esm/index.js"
21
+ },
22
+ "require": {
23
+ "types": "./dist/commonjs/index.d.ts",
24
+ "default": "./dist/commonjs/index.js"
25
+ }
26
+ }
27
+ },
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "description": "A deep deletion module for node (like `rm -rf`)",
32
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
33
+ "license": "BlueOak-1.0.0",
34
+ "repository": "git@github.com:isaacs/rimraf.git",
35
+ "scripts": {
36
+ "preversion": "npm test",
37
+ "postversion": "npm publish",
38
+ "prepublishOnly": "git push origin --follow-tags",
39
+ "prepare": "tshy",
40
+ "pretest": "npm run prepare",
41
+ "presnap": "npm run prepare",
42
+ "test": "tap",
43
+ "snap": "tap",
44
+ "format": "prettier --write . --log-level warn",
45
+ "benchmark": "node benchmark/index.js",
46
+ "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts"
47
+ },
48
+ "prettier": {
49
+ "experimentalTernaries": true,
50
+ "semi": false,
51
+ "printWidth": 80,
52
+ "tabWidth": 2,
53
+ "useTabs": false,
54
+ "singleQuote": true,
55
+ "jsxSingleQuote": false,
56
+ "bracketSameLine": true,
57
+ "arrowParens": "avoid",
58
+ "endOfLine": "lf"
59
+ },
60
+ "devDependencies": {
61
+ "@types/node": "^24.9.2",
62
+ "mkdirp": "^3.0.1",
63
+ "prettier": "^3.6.2",
64
+ "tap": "^21.1.1",
65
+ "tshy": "^3.0.3",
66
+ "typedoc": "^0.28.14"
67
+ },
68
+ "funding": {
69
+ "url": "https://github.com/sponsors/isaacs"
70
+ },
71
+ "engines": {
72
+ "node": "20 || >=22"
73
+ },
74
+ "dependencies": {
75
+ "glob": "^13.0.0",
76
+ "package-json-from-dist": "^1.0.1"
77
+ },
78
+ "keywords": [
79
+ "rm",
80
+ "rm -rf",
81
+ "rm -fr",
82
+ "remove",
83
+ "directory",
84
+ "cli",
85
+ "rmdir",
86
+ "recursive"
87
+ ],
88
+ "module": "./dist/esm/index.js",
89
+ "tap": {
90
+ "coverage-map": "map.js"
91
+ }
92
+ }
@@ -15,11 +15,10 @@
15
15
  ],
16
16
  "license": "MIT",
17
17
  "author": {
18
- "name": "Juan Hernández Serrano",
19
- "email": "j.hernandez@upc.edu",
20
- "url": "https://github.com/juanelas"
18
+ "name": "Gordon Skinner",
19
+ "email": "gsknnft@gmail.com",
20
+ "url": "https://github.com/gsknnft"
21
21
  },
22
- "repository": "github:juanelas/bigint-conversion",
23
22
  "main": "./dist/cjs/index.node.js",
24
23
  "browser": "./dist/esm/index.browser.js",
25
24
  "types": "./dist/index.d.ts",
@@ -93,7 +92,6 @@
93
92
  "build:js": "rollup -c build/rollup.config.ts",
94
93
  "typecheck": "tsc --noEmit",
95
94
  "postbuild:js": "run-s _build:cleantypes _build:cjsAndesmPkgJsons",
96
- "test:node": "vitest run",
97
95
  "clean": "rimraf coverage dist .types docs",
98
96
  "coverage": "vitest run --coverage",
99
97
  "docs": "typedoc --plugin typedoc-plugin-markdown --entryModule API.md --readme none --excludePrivate --out docs src/ts/index.ts",
@@ -130,14 +128,7 @@
130
128
  }
131
129
  },
132
130
  "devDependencies": {
133
- "@rollup/plugin-commonjs": "^29.0.0",
134
- "@rollup/plugin-inject": "^5.0.5",
135
- "@rollup/plugin-json": "^6.1.0",
136
- "@rollup/plugin-multi-entry": "^7.0.1",
137
- "@rollup/plugin-node-resolve": "^16.0.3",
138
- "@rollup/plugin-replace": "^6.0.2",
139
- "@rollup/plugin-terser": "^0.4.4",
140
- "@rollup/plugin-typescript": "^12.3.0",
131
+ "vite-plugin-node-polyfills": "0.24.0",
141
132
  "@types/node": "^24.10.1",
142
133
  "c8": "^10.1.3",
143
134
  "chai": "^6.2.0",
@@ -3,7 +3,7 @@
3
3
  [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
4
4
  {{GITHUB_ACTIONS_BADGES}}
5
5
 
6
- # {{PKG_NAME}}
6
+ # {{PKG_NAME}} v1.4.5
7
7
 
8
8
  Convert to/from non-negative integers represented with [ES-2020 native JS implementation of BigInt](https://tc39.es/ecma262/#sec-bigint-objects) from/to:
9
9
 
@@ -14,6 +14,11 @@ Convert to/from non-negative integers represented with [ES-2020 native JS implem
14
14
 
15
15
  It provides a common interface for the conversions that works for both **node.js** and **native javascript**.
16
16
 
17
+ **New in 1.4.5:**
18
+ - FixedPoint utilities for high-precision math and conversions
19
+ - Native bindings included in `build/Release/` out of the box
20
+ - Improved JS fallback for environments without native support
21
+
17
22
  > Note that there is not a directly visible `TypedArray()` constructor, but a set of typed array ones: `Int8Array()`, `Uint8Array()`, `Uint8ClampedArray()`, `Int16Array()`, `Uint16Array()`, `Int32Array()`, `Uint32Array()`, `Float32Array()`, `Float64Array()`, `BigInt64Array()`, `BigUint64Array()`.
18
23
 
19
24
  ## Usage
@@ -0,0 +1,85 @@
1
+ import { Buffer } from 'buffer';
2
+ import path from 'path';
3
+ import fs from 'fs';
4
+
5
+ export interface ConverterInterface {
6
+ toBigInt: (buf: Buffer, bigEndian?: boolean) => bigint;
7
+ fromBigInt: (num: bigint, buf: Buffer, bigEndian?: boolean) => Buffer;
8
+ }
9
+
10
+ export let isNative = false;
11
+
12
+ let converter: ConverterInterface | undefined;
13
+ let nativeLoadError: unknown;
14
+
15
+ export const IS_BROWSER =
16
+ typeof globalThis !== "undefined" &&
17
+ typeof (globalThis as { document?: unknown }).document !== "undefined";
18
+
19
+ export const candidateRoots = [
20
+ // when running from dist/
21
+ path.resolve(__dirname, "../.."),
22
+ // when running from build/conversion/src/ts
23
+ path.resolve(__dirname, "../../.."),
24
+ // when running from src/conversion/src/ts
25
+ path.resolve(__dirname, "../../../.."),
26
+ ];
27
+
28
+ export const findModuleRoot = (): string => {
29
+ for (const root of candidateRoots) {
30
+ const candidate = path.join(root, "build", "Release", "bigint_buffer.node");
31
+ if (fs.existsSync(candidate)) return root;
32
+ }
33
+ return candidateRoots[0];
34
+ };
35
+
36
+ export function loadNative(): ConverterInterface | undefined {
37
+ try {
38
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
39
+ const bindings = require("bindings");
40
+ const moduleRoot = findModuleRoot();
41
+ return bindings({
42
+ bindings: "bigint_buffer",
43
+ module_root: moduleRoot,
44
+ }) as ConverterInterface;
45
+ } catch (err) {
46
+ nativeLoadError = err;
47
+ return undefined;
48
+ }
49
+ }
50
+
51
+ if (!IS_BROWSER) {
52
+ converter = loadNative();
53
+ isNative = converter !== undefined;
54
+ if (
55
+ !isNative &&
56
+ nativeLoadError !== undefined &&
57
+ process.env?.BIGINT_BUFFER_SILENT_NATIVE_FAIL !== "1"
58
+ ) {
59
+ console.warn(
60
+ "bigint-buffer: Failed to load native bindings; using pure JS fallback. Run npm run rebuild to restore native.",
61
+ nativeLoadError
62
+ );
63
+ }
64
+ }
65
+
66
+ if (converter === undefined) {
67
+ // fallback to pure JS if needed (browser or when native load fails)
68
+ converter = {
69
+ toBigInt: (buf: Buffer, bigEndian = true) => {
70
+ const copy = Buffer.from(buf);
71
+ if (!bigEndian) copy.reverse();
72
+ const hex = copy.toString("hex");
73
+ return hex.length === 0 ? 0n : BigInt(`0x${hex}`);
74
+ },
75
+ fromBigInt: (num: bigint, buf: Buffer, bigEndian = true) => {
76
+ const hex = num.toString(16);
77
+ const width = buf.length;
78
+ const filled = hex.padStart(width * 2, "0").slice(0, width * 2);
79
+ const tmp = Buffer.from(filled, "hex");
80
+ if (!bigEndian) tmp.reverse();
81
+ tmp.copy(buf);
82
+ return buf;
83
+ },
84
+ };
85
+ }