@aztec/bb.js 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1

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 (723) hide show
  1. package/README.md +13 -79
  2. package/build/amd64-linux/bb +0 -0
  3. package/build/amd64-linux/nodejs_module.node +0 -0
  4. package/build/amd64-macos/bb +0 -0
  5. package/build/amd64-macos/nodejs_module.node +0 -0
  6. package/build/arm64-linux/bb +0 -0
  7. package/build/arm64-linux/nodejs_module.node +0 -0
  8. package/build/arm64-macos/bb +0 -0
  9. package/build/arm64-macos/nodejs_module.node +0 -0
  10. package/dest/browser/async_map/index.d.ts +1 -1
  11. package/dest/browser/async_map/index.js +1 -1
  12. package/dest/browser/barretenberg/backend.d.ts +32 -41
  13. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  14. package/dest/browser/barretenberg/backend.js +128 -108
  15. package/dest/browser/barretenberg/index.d.ts +47 -48
  16. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  17. package/dest/browser/barretenberg/index.js +132 -90
  18. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
  19. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  20. package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
  21. package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
  22. package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
  23. package/dest/browser/barretenberg/testing/fields.js +47 -0
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  31. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  32. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
  33. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  34. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
  35. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
  36. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  37. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
  38. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  39. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  40. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  41. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  42. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  43. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  44. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  45. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  46. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  47. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  48. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  49. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  50. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  51. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  52. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  53. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  54. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  55. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
  56. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
  57. package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
  58. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
  59. package/dest/browser/barretenberg_wasm/index.js +2 -3
  60. package/dest/browser/bb_backends/browser/index.d.ts +11 -0
  61. package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
  62. package/dest/browser/bb_backends/browser/index.js +39 -0
  63. package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
  64. package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
  65. package/dest/browser/bb_backends/browser/platform.js +10 -0
  66. package/dest/browser/bb_backends/index.d.ts +50 -0
  67. package/dest/browser/bb_backends/index.d.ts.map +1 -0
  68. package/dest/browser/bb_backends/index.js +16 -0
  69. package/dest/browser/bb_backends/interface.d.ts +33 -0
  70. package/dest/browser/bb_backends/interface.d.ts.map +1 -0
  71. package/dest/browser/bb_backends/interface.js +2 -0
  72. package/dest/browser/bb_backends/wasm.d.ts +49 -0
  73. package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
  74. package/dest/browser/bb_backends/wasm.js +85 -0
  75. package/dest/browser/bbapi_exception.d.ts +7 -0
  76. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  77. package/dest/browser/bbapi_exception.js +14 -0
  78. package/dest/browser/bin/index.d.ts +3 -0
  79. package/dest/{node/bindgen → browser/bin}/index.d.ts.map +1 -1
  80. package/dest/browser/bin/index.js +11 -0
  81. package/dest/browser/cbind/generate.d.ts +1 -1
  82. package/dest/browser/cbind/generate.js +94 -7
  83. package/dest/browser/cbind/generated/api_types.d.ts +1629 -230
  84. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  85. package/dest/browser/cbind/generated/api_types.js +2349 -479
  86. package/dest/browser/cbind/generated/async.d.ts +53 -14
  87. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  88. package/dest/browser/cbind/generated/async.js +587 -72
  89. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  90. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  91. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  92. package/dest/browser/cbind/generated/sync.d.ts +54 -15
  93. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  94. package/dest/browser/cbind/generated/sync.js +549 -72
  95. package/dest/browser/cbind/schema_compiler.d.ts +3 -5
  96. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  97. package/dest/browser/cbind/schema_compiler.js +102 -185
  98. package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
  99. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
  100. package/dest/browser/crs/browser/cached_net_crs.js +6 -1
  101. package/dest/browser/crs/browser/index.d.ts +1 -1
  102. package/dest/browser/crs/index.d.ts +1 -1
  103. package/dest/browser/crs/net_crs.d.ts +1 -16
  104. package/dest/browser/crs/net_crs.d.ts.map +1 -1
  105. package/dest/browser/crs/net_crs.js +6 -1
  106. package/dest/browser/index.d.ts +6 -3
  107. package/dest/browser/index.d.ts.map +1 -1
  108. package/dest/browser/index.js +6 -3
  109. package/dest/browser/proof/index.d.ts +1 -1
  110. package/dest/browser/proof/index.js +1 -1
  111. package/dest/browser/random/browser/index.d.ts +1 -1
  112. package/dest/browser/random/browser/index.d.ts.map +1 -1
  113. package/dest/browser/random/browser/index.js +1 -1
  114. package/dest/browser/random/index.d.ts +1 -1
  115. package/dest/browser/retry/index.d.ts +1 -1
  116. package/dest/browser/retry/index.js +1 -1
  117. package/dest/node/async_map/index.d.ts +1 -1
  118. package/dest/node/async_map/index.js +1 -1
  119. package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
  120. package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
  121. package/dest/node/barretenberg/backend.d.ts +32 -41
  122. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  123. package/dest/node/barretenberg/backend.js +128 -108
  124. package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
  125. package/dest/node/barretenberg/blake2s.test.js +21 -18
  126. package/dest/node/barretenberg/index.d.ts +47 -48
  127. package/dest/node/barretenberg/index.d.ts.map +1 -1
  128. package/dest/node/barretenberg/index.js +132 -90
  129. package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
  130. package/dest/node/barretenberg/pedersen.test.js +25 -18
  131. package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
  132. package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  133. package/dest/node/barretenberg/poseidon.bench.test.js +218 -0
  134. package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
  135. package/dest/node/barretenberg/poseidon.test.js +16 -16
  136. package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
  137. package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  138. package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
  139. package/dest/node/barretenberg/testing/fields.d.ts +16 -0
  140. package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
  141. package/dest/node/barretenberg/testing/fields.js +47 -0
  142. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  143. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
  144. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  145. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
  146. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  149. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  150. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  151. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  152. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  153. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  154. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  155. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  156. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
  157. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  158. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
  159. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
  160. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  161. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
  162. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  163. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  164. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  165. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  166. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  167. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  168. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  169. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  170. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  171. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  172. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  173. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  174. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  175. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  176. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  177. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  178. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  179. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  180. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  181. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
  182. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  183. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  184. package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
  185. package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
  186. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  187. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  188. package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
  189. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  190. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  191. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  192. package/dest/node/barretenberg_wasm/index.d.ts +1 -1
  193. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
  194. package/dest/node/barretenberg_wasm/index.js +2 -3
  195. package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
  196. package/dest/node/barretenberg_wasm/index.test.js +11 -10
  197. package/dest/node/bb_backends/browser/index.d.ts +11 -0
  198. package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
  199. package/dest/node/bb_backends/browser/index.js +39 -0
  200. package/dest/node/bb_backends/browser/platform.d.ts +4 -0
  201. package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
  202. package/dest/node/bb_backends/browser/platform.js +10 -0
  203. package/dest/node/bb_backends/index.d.ts +50 -0
  204. package/dest/node/bb_backends/index.d.ts.map +1 -0
  205. package/dest/node/bb_backends/index.js +16 -0
  206. package/dest/node/bb_backends/interface.d.ts +33 -0
  207. package/dest/node/bb_backends/interface.d.ts.map +1 -0
  208. package/dest/node/bb_backends/interface.js +2 -0
  209. package/dest/node/bb_backends/node/index.d.ts +11 -0
  210. package/dest/node/bb_backends/node/index.d.ts.map +1 -0
  211. package/dest/node/bb_backends/node/index.js +86 -0
  212. package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
  213. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
  214. package/dest/node/bb_backends/node/native_pipe.js +114 -0
  215. package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
  216. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
  217. package/dest/node/bb_backends/node/native_shm.js +172 -0
  218. package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
  219. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
  220. package/dest/node/bb_backends/node/native_shm_async.js +232 -0
  221. package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
  222. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
  223. package/dest/node/bb_backends/node/native_socket.js +281 -0
  224. package/dest/node/bb_backends/node/platform.d.ts +27 -0
  225. package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
  226. package/dest/node/bb_backends/node/platform.js +129 -0
  227. package/dest/node/bb_backends/wasm.d.ts +49 -0
  228. package/dest/node/bb_backends/wasm.d.ts.map +1 -0
  229. package/dest/node/bb_backends/wasm.js +85 -0
  230. package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
  231. package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
  232. package/dest/node/bbapi/exception_handling.test.js +48 -0
  233. package/dest/node/bbapi_exception.d.ts +7 -0
  234. package/dest/node/bbapi_exception.d.ts.map +1 -0
  235. package/dest/node/bbapi_exception.js +14 -0
  236. package/dest/node/benchmark/index.d.ts +1 -1
  237. package/dest/node/benchmark/index.js +1 -1
  238. package/dest/node/benchmark/timer.d.ts +1 -1
  239. package/dest/node/benchmark/timer.d.ts.map +1 -1
  240. package/dest/node/benchmark/timer.js +2 -1
  241. package/dest/node/bin/index.d.ts +3 -0
  242. package/dest/node/bin/index.d.ts.map +1 -0
  243. package/dest/node/bin/index.js +11 -0
  244. package/dest/node/cbind/generate.d.ts +1 -1
  245. package/dest/node/cbind/generate.js +94 -7
  246. package/dest/node/cbind/generated/api_types.d.ts +1629 -230
  247. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  248. package/dest/node/cbind/generated/api_types.js +2349 -479
  249. package/dest/node/cbind/generated/async.d.ts +53 -14
  250. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  251. package/dest/node/cbind/generated/async.js +587 -72
  252. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  253. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  254. package/dest/node/cbind/generated/curve_constants.js +45 -0
  255. package/dest/node/cbind/generated/sync.d.ts +54 -15
  256. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  257. package/dest/node/cbind/generated/sync.js +549 -72
  258. package/dest/node/cbind/schema_compiler.d.ts +3 -5
  259. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  260. package/dest/node/cbind/schema_compiler.js +102 -185
  261. package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
  262. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
  263. package/dest/node/crs/browser/cached_net_crs.js +6 -1
  264. package/dest/node/crs/browser/index.d.ts +1 -1
  265. package/dest/node/crs/index.d.ts +1 -1
  266. package/dest/node/crs/net_crs.d.ts +1 -16
  267. package/dest/node/crs/net_crs.d.ts.map +1 -1
  268. package/dest/node/crs/net_crs.js +6 -1
  269. package/dest/node/crs/node/index.d.ts +1 -1
  270. package/dest/node/crs/node/index.d.ts.map +1 -1
  271. package/dest/node/crs/node/index.js +11 -6
  272. package/dest/node/index.d.ts +6 -3
  273. package/dest/node/index.d.ts.map +1 -1
  274. package/dest/node/index.js +6 -3
  275. package/dest/node/proof/index.d.ts +1 -1
  276. package/dest/node/proof/index.js +1 -1
  277. package/dest/node/random/browser/index.d.ts +1 -1
  278. package/dest/node/random/browser/index.d.ts.map +1 -1
  279. package/dest/node/random/browser/index.js +1 -1
  280. package/dest/node/random/index.d.ts +1 -1
  281. package/dest/node/random/node/index.d.ts +1 -1
  282. package/dest/node/random/node/index.js +1 -1
  283. package/dest/node/retry/index.d.ts +1 -1
  284. package/dest/node/retry/index.js +1 -1
  285. package/dest/node-cjs/async_map/index.d.ts +1 -1
  286. package/dest/node-cjs/async_map/index.js +1 -1
  287. package/dest/node-cjs/barretenberg/backend.d.ts +32 -41
  288. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  289. package/dest/node-cjs/barretenberg/backend.js +131 -111
  290. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
  291. package/dest/node-cjs/barretenberg/blake2s.test.js +22 -19
  292. package/dest/node-cjs/barretenberg/index.d.ts +47 -48
  293. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  294. package/dest/node-cjs/barretenberg/index.js +136 -93
  295. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
  296. package/dest/node-cjs/barretenberg/pedersen.test.js +27 -20
  297. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
  298. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  299. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +220 -0
  300. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
  301. package/dest/node-cjs/barretenberg/poseidon.test.js +16 -16
  302. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
  303. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  304. package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
  305. package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
  306. package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
  307. package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
  308. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  309. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
  310. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  311. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +8 -9
  312. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  313. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  314. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
  315. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  316. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  317. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  318. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  319. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  320. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  321. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  322. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
  323. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  324. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
  325. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
  326. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  327. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
  328. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  329. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  330. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
  331. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  332. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  333. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  334. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  335. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  336. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  337. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  338. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  339. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  340. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  341. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  342. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  343. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  344. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  345. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  346. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
  347. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  348. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  349. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
  350. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  351. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  352. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
  353. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
  354. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  355. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  356. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
  357. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  358. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  359. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  360. package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
  361. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
  362. package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
  363. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
  364. package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
  365. package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
  366. package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
  367. package/dest/node-cjs/bb_backends/browser/index.js +43 -0
  368. package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
  369. package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
  370. package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
  371. package/dest/node-cjs/bb_backends/index.d.ts +50 -0
  372. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
  373. package/dest/node-cjs/bb_backends/index.js +18 -0
  374. package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
  375. package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
  376. package/dest/node-cjs/bb_backends/interface.js +3 -0
  377. package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
  378. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
  379. package/dest/node-cjs/bb_backends/node/index.js +90 -0
  380. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
  381. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
  382. package/dest/node-cjs/bb_backends/node/native_pipe.js +118 -0
  383. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
  384. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
  385. package/dest/node-cjs/bb_backends/node/native_shm.js +176 -0
  386. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
  387. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
  388. package/dest/node-cjs/bb_backends/node/native_shm_async.js +236 -0
  389. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
  390. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
  391. package/dest/node-cjs/bb_backends/node/native_socket.js +286 -0
  392. package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
  393. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
  394. package/dest/node-cjs/bb_backends/node/platform.js +136 -0
  395. package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
  396. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
  397. package/dest/node-cjs/bb_backends/wasm.js +90 -0
  398. package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
  399. package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
  400. package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
  401. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  402. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  403. package/dest/node-cjs/bbapi_exception.js +18 -0
  404. package/dest/node-cjs/benchmark/index.d.ts +1 -1
  405. package/dest/node-cjs/benchmark/index.js +2 -2
  406. package/dest/node-cjs/benchmark/timer.d.ts +1 -1
  407. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
  408. package/dest/node-cjs/benchmark/timer.js +2 -1
  409. package/dest/node-cjs/bin/index.d.ts +3 -0
  410. package/dest/node-cjs/{bindgen → bin}/index.d.ts.map +1 -1
  411. package/dest/node-cjs/bin/index.js +13 -0
  412. package/dest/node-cjs/cbind/generate.d.ts +1 -1
  413. package/dest/node-cjs/cbind/generate.js +93 -6
  414. package/dest/node-cjs/cbind/generated/api_types.d.ts +1629 -230
  415. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  416. package/dest/node-cjs/cbind/generated/api_types.js +2555 -519
  417. package/dest/node-cjs/cbind/generated/async.d.ts +53 -14
  418. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  419. package/dest/node-cjs/cbind/generated/async.js +586 -71
  420. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  421. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  422. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  423. package/dest/node-cjs/cbind/generated/sync.d.ts +54 -15
  424. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  425. package/dest/node-cjs/cbind/generated/sync.js +548 -71
  426. package/dest/node-cjs/cbind/schema_compiler.d.ts +3 -5
  427. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  428. package/dest/node-cjs/cbind/schema_compiler.js +102 -186
  429. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
  430. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
  431. package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
  432. package/dest/node-cjs/crs/browser/index.d.ts +1 -1
  433. package/dest/node-cjs/crs/browser/index.js +2 -2
  434. package/dest/node-cjs/crs/index.d.ts +1 -1
  435. package/dest/node-cjs/crs/index.js +2 -2
  436. package/dest/node-cjs/crs/net_crs.d.ts +1 -16
  437. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  438. package/dest/node-cjs/crs/net_crs.js +6 -1
  439. package/dest/node-cjs/crs/node/index.d.ts +1 -1
  440. package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
  441. package/dest/node-cjs/crs/node/index.js +11 -6
  442. package/dest/node-cjs/index.d.ts +6 -3
  443. package/dest/node-cjs/index.d.ts.map +1 -1
  444. package/dest/node-cjs/index.js +29 -12
  445. package/dest/node-cjs/proof/index.d.ts +1 -1
  446. package/dest/node-cjs/proof/index.js +1 -1
  447. package/dest/node-cjs/random/browser/index.d.ts +1 -1
  448. package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
  449. package/dest/node-cjs/random/browser/index.js +1 -1
  450. package/dest/node-cjs/random/index.d.ts +1 -1
  451. package/dest/node-cjs/random/node/index.d.ts +1 -1
  452. package/dest/node-cjs/random/node/index.js +1 -1
  453. package/dest/node-cjs/retry/index.d.ts +1 -1
  454. package/dest/node-cjs/retry/index.js +1 -1
  455. package/package.json +12 -10
  456. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
  457. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
  458. package/src/barretenberg/backend.ts +165 -154
  459. package/src/barretenberg/blake2s.test.ts +20 -21
  460. package/src/barretenberg/index.ts +144 -130
  461. package/src/barretenberg/pedersen.test.ts +24 -17
  462. package/src/barretenberg/poseidon.bench.test.ts +271 -0
  463. package/src/barretenberg/poseidon.test.ts +15 -15
  464. package/src/barretenberg/testing/fields.ts +63 -0
  465. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +4 -5
  466. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
  467. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
  468. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
  469. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
  470. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
  471. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +104 -20
  472. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
  473. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
  474. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
  475. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
  476. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
  477. package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
  478. package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
  479. package/src/barretenberg_wasm/index.test.ts +12 -11
  480. package/src/barretenberg_wasm/index.ts +1 -2
  481. package/src/bb_backends/browser/index.ts +50 -0
  482. package/src/bb_backends/browser/platform.ts +11 -0
  483. package/src/bb_backends/index.ts +55 -0
  484. package/src/bb_backends/interface.ts +35 -0
  485. package/src/bb_backends/node/index.ts +107 -0
  486. package/src/bb_backends/node/native_pipe.ts +127 -0
  487. package/src/bb_backends/node/native_shm.ts +190 -0
  488. package/src/bb_backends/node/native_shm_async.ts +261 -0
  489. package/src/bb_backends/node/native_socket.ts +325 -0
  490. package/src/bb_backends/node/platform.ts +156 -0
  491. package/src/bb_backends/wasm.ts +102 -0
  492. package/src/bbapi/exception_handling.test.ts +54 -0
  493. package/src/bbapi_exception.ts +13 -0
  494. package/src/bin/index.ts +14 -0
  495. package/src/cbind/README.md +1 -1
  496. package/src/cbind/generate.ts +99 -6
  497. package/src/cbind/generated/api_types.ts +4241 -0
  498. package/src/cbind/generated/async.ts +717 -0
  499. package/src/cbind/generated/curve_constants.ts +53 -0
  500. package/src/cbind/generated/sync.ts +663 -0
  501. package/src/cbind/schema_compiler.ts +156 -244
  502. package/src/crs/node/index.ts +4 -5
  503. package/src/index.ts +33 -1
  504. package/dest/browser/barretenberg_api/index.d.ts +0 -109
  505. package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
  506. package/dest/browser/barretenberg_api/index.js +0 -699
  507. package/dest/browser/bigint-array/index.d.ts +0 -17
  508. package/dest/browser/bigint-array/index.d.ts.map +0 -1
  509. package/dest/browser/bigint-array/index.js +0 -37
  510. package/dest/browser/cbind/generated/native.d.ts +0 -31
  511. package/dest/browser/cbind/generated/native.d.ts.map +0 -1
  512. package/dest/browser/cbind/generated/native.js +0 -234
  513. package/dest/browser/log/browser/index.d.ts +0 -6
  514. package/dest/browser/log/browser/index.d.ts.map +0 -1
  515. package/dest/browser/log/browser/index.js +0 -28
  516. package/dest/browser/log/index.d.ts +0 -2
  517. package/dest/browser/log/index.d.ts.map +0 -1
  518. package/dest/browser/log/index.js +0 -2
  519. package/dest/browser/log/types.d.ts +0 -6
  520. package/dest/browser/log/types.d.ts.map +0 -1
  521. package/dest/browser/log/types.js +0 -2
  522. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  523. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  524. package/dest/browser/serialize/buffer_reader.js +0 -66
  525. package/dest/browser/serialize/index.d.ts +0 -4
  526. package/dest/browser/serialize/index.d.ts.map +0 -1
  527. package/dest/browser/serialize/index.js +0 -4
  528. package/dest/browser/serialize/output_type.d.ts +0 -11
  529. package/dest/browser/serialize/output_type.d.ts.map +0 -1
  530. package/dest/browser/serialize/output_type.js +0 -44
  531. package/dest/browser/serialize/serialize.d.ts +0 -53
  532. package/dest/browser/serialize/serialize.d.ts.map +0 -1
  533. package/dest/browser/serialize/serialize.js +0 -139
  534. package/dest/browser/types/fields.d.ts +0 -43
  535. package/dest/browser/types/fields.d.ts.map +0 -1
  536. package/dest/browser/types/fields.js +0 -102
  537. package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
  538. package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
  539. package/dest/browser/types/fixed_size_buffer.js +0 -51
  540. package/dest/browser/types/index.d.ts +0 -6
  541. package/dest/browser/types/index.d.ts.map +0 -1
  542. package/dest/browser/types/index.js +0 -6
  543. package/dest/browser/types/point.d.ts +0 -16
  544. package/dest/browser/types/point.d.ts.map +0 -1
  545. package/dest/browser/types/point.js +0 -31
  546. package/dest/browser/types/ptr.d.ts +0 -13
  547. package/dest/browser/types/ptr.d.ts.map +0 -1
  548. package/dest/browser/types/ptr.js +0 -19
  549. package/dest/browser/types/raw_buffer.d.ts +0 -3
  550. package/dest/browser/types/raw_buffer.d.ts.map +0 -1
  551. package/dest/browser/types/raw_buffer.js +0 -5
  552. package/dest/node/barretenberg/common.test.d.ts +0 -2
  553. package/dest/node/barretenberg/common.test.d.ts.map +0 -1
  554. package/dest/node/barretenberg/common.test.js +0 -20
  555. package/dest/node/barretenberg_api/index.d.ts +0 -109
  556. package/dest/node/barretenberg_api/index.d.ts.map +0 -1
  557. package/dest/node/barretenberg_api/index.js +0 -699
  558. package/dest/node/bigint-array/index.d.ts +0 -17
  559. package/dest/node/bigint-array/index.d.ts.map +0 -1
  560. package/dest/node/bigint-array/index.js +0 -37
  561. package/dest/node/bindgen/function_declaration.d.ts +0 -11
  562. package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
  563. package/dest/node/bindgen/function_declaration.js +0 -2
  564. package/dest/node/bindgen/index.d.ts +0 -2
  565. package/dest/node/bindgen/index.js +0 -15
  566. package/dest/node/bindgen/mappings.d.ts +0 -4
  567. package/dest/node/bindgen/mappings.d.ts.map +0 -1
  568. package/dest/node/bindgen/mappings.js +0 -64
  569. package/dest/node/bindgen/rust.d.ts +0 -2
  570. package/dest/node/bindgen/rust.d.ts.map +0 -1
  571. package/dest/node/bindgen/rust.js +0 -43
  572. package/dest/node/bindgen/to_camel_case.d.ts +0 -2
  573. package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
  574. package/dest/node/bindgen/to_camel_case.js +0 -11
  575. package/dest/node/bindgen/typescript.d.ts +0 -2
  576. package/dest/node/bindgen/typescript.d.ts.map +0 -1
  577. package/dest/node/bindgen/typescript.js +0 -100
  578. package/dest/node/cbind/generated/native.d.ts +0 -31
  579. package/dest/node/cbind/generated/native.d.ts.map +0 -1
  580. package/dest/node/cbind/generated/native.js +0 -234
  581. package/dest/node/log/browser/index.d.ts +0 -6
  582. package/dest/node/log/browser/index.d.ts.map +0 -1
  583. package/dest/node/log/browser/index.js +0 -28
  584. package/dest/node/log/index.d.ts +0 -2
  585. package/dest/node/log/index.d.ts.map +0 -1
  586. package/dest/node/log/index.js +0 -2
  587. package/dest/node/log/node/index.d.ts +0 -6
  588. package/dest/node/log/node/index.d.ts.map +0 -1
  589. package/dest/node/log/node/index.js +0 -40
  590. package/dest/node/log/types.d.ts +0 -6
  591. package/dest/node/log/types.d.ts.map +0 -1
  592. package/dest/node/log/types.js +0 -2
  593. package/dest/node/main.d.ts +0 -13
  594. package/dest/node/main.d.ts.map +0 -1
  595. package/dest/node/main.js +0 -459
  596. package/dest/node/serialize/buffer_reader.d.ts +0 -28
  597. package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
  598. package/dest/node/serialize/buffer_reader.js +0 -66
  599. package/dest/node/serialize/index.d.ts +0 -4
  600. package/dest/node/serialize/index.d.ts.map +0 -1
  601. package/dest/node/serialize/index.js +0 -4
  602. package/dest/node/serialize/output_type.d.ts +0 -11
  603. package/dest/node/serialize/output_type.d.ts.map +0 -1
  604. package/dest/node/serialize/output_type.js +0 -44
  605. package/dest/node/serialize/serialize.d.ts +0 -53
  606. package/dest/node/serialize/serialize.d.ts.map +0 -1
  607. package/dest/node/serialize/serialize.js +0 -139
  608. package/dest/node/types/fields.d.ts +0 -43
  609. package/dest/node/types/fields.d.ts.map +0 -1
  610. package/dest/node/types/fields.js +0 -102
  611. package/dest/node/types/fixed_size_buffer.d.ts +0 -26
  612. package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
  613. package/dest/node/types/fixed_size_buffer.js +0 -51
  614. package/dest/node/types/index.d.ts +0 -6
  615. package/dest/node/types/index.d.ts.map +0 -1
  616. package/dest/node/types/index.js +0 -6
  617. package/dest/node/types/point.d.ts +0 -16
  618. package/dest/node/types/point.d.ts.map +0 -1
  619. package/dest/node/types/point.js +0 -31
  620. package/dest/node/types/ptr.d.ts +0 -13
  621. package/dest/node/types/ptr.d.ts.map +0 -1
  622. package/dest/node/types/ptr.js +0 -19
  623. package/dest/node/types/raw_buffer.d.ts +0 -3
  624. package/dest/node/types/raw_buffer.d.ts.map +0 -1
  625. package/dest/node/types/raw_buffer.js +0 -5
  626. package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
  627. package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
  628. package/dest/node-cjs/barretenberg/common.test.js +0 -22
  629. package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
  630. package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
  631. package/dest/node-cjs/barretenberg_api/index.js +0 -704
  632. package/dest/node-cjs/bigint-array/index.d.ts +0 -17
  633. package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
  634. package/dest/node-cjs/bigint-array/index.js +0 -43
  635. package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
  636. package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
  637. package/dest/node-cjs/bindgen/function_declaration.js +0 -3
  638. package/dest/node-cjs/bindgen/index.d.ts +0 -2
  639. package/dest/node-cjs/bindgen/index.js +0 -17
  640. package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
  641. package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
  642. package/dest/node-cjs/bindgen/mappings.js +0 -69
  643. package/dest/node-cjs/bindgen/rust.d.ts +0 -2
  644. package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
  645. package/dest/node-cjs/bindgen/rust.js +0 -47
  646. package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
  647. package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
  648. package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
  649. package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
  650. package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
  651. package/dest/node-cjs/bindgen/typescript.js +0 -104
  652. package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
  653. package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
  654. package/dest/node-cjs/cbind/generated/native.js +0 -238
  655. package/dest/node-cjs/log/browser/index.d.ts +0 -6
  656. package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
  657. package/dest/node-cjs/log/browser/index.js +0 -30
  658. package/dest/node-cjs/log/index.d.ts +0 -2
  659. package/dest/node-cjs/log/index.d.ts.map +0 -1
  660. package/dest/node-cjs/log/index.js +0 -8
  661. package/dest/node-cjs/log/node/index.d.ts +0 -6
  662. package/dest/node-cjs/log/node/index.d.ts.map +0 -1
  663. package/dest/node-cjs/log/node/index.js +0 -42
  664. package/dest/node-cjs/log/types.d.ts +0 -6
  665. package/dest/node-cjs/log/types.d.ts.map +0 -1
  666. package/dest/node-cjs/log/types.js +0 -3
  667. package/dest/node-cjs/main.d.ts +0 -13
  668. package/dest/node-cjs/main.d.ts.map +0 -1
  669. package/dest/node-cjs/main.js +0 -470
  670. package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
  671. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
  672. package/dest/node-cjs/serialize/buffer_reader.js +0 -70
  673. package/dest/node-cjs/serialize/index.d.ts +0 -4
  674. package/dest/node-cjs/serialize/index.d.ts.map +0 -1
  675. package/dest/node-cjs/serialize/index.js +0 -7
  676. package/dest/node-cjs/serialize/output_type.d.ts +0 -11
  677. package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
  678. package/dest/node-cjs/serialize/output_type.js +0 -51
  679. package/dest/node-cjs/serialize/serialize.d.ts +0 -53
  680. package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
  681. package/dest/node-cjs/serialize/serialize.js +0 -160
  682. package/dest/node-cjs/types/fields.d.ts +0 -43
  683. package/dest/node-cjs/types/fields.d.ts.map +0 -1
  684. package/dest/node-cjs/types/fields.js +0 -107
  685. package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
  686. package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
  687. package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
  688. package/dest/node-cjs/types/index.d.ts +0 -6
  689. package/dest/node-cjs/types/index.d.ts.map +0 -1
  690. package/dest/node-cjs/types/index.js +0 -9
  691. package/dest/node-cjs/types/point.d.ts +0 -16
  692. package/dest/node-cjs/types/point.d.ts.map +0 -1
  693. package/dest/node-cjs/types/point.js +0 -35
  694. package/dest/node-cjs/types/ptr.d.ts +0 -13
  695. package/dest/node-cjs/types/ptr.d.ts.map +0 -1
  696. package/dest/node-cjs/types/ptr.js +0 -23
  697. package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
  698. package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
  699. package/dest/node-cjs/types/raw_buffer.js +0 -9
  700. package/src/barretenberg/common.test.ts +0 -23
  701. package/src/barretenberg_api/index.ts +0 -1216
  702. package/src/bindgen/function_declaration.ts +0 -11
  703. package/src/bindgen/index.ts +0 -17
  704. package/src/bindgen/mappings.ts +0 -67
  705. package/src/bindgen/rust.ts +0 -52
  706. package/src/bindgen/to_camel_case.ts +0 -10
  707. package/src/bindgen/typescript.ts +0 -116
  708. package/src/log/browser/index.ts +0 -35
  709. package/src/log/index.ts +0 -1
  710. package/src/log/node/index.ts +0 -52
  711. package/src/log/types.ts +0 -6
  712. package/src/main.ts +0 -534
  713. package/src/serialize/buffer_reader.ts +0 -85
  714. package/src/serialize/index.ts +0 -3
  715. package/src/serialize/output_type.ts +0 -53
  716. package/src/serialize/serialize.ts +0 -157
  717. package/src/types/fields.ts +0 -126
  718. package/src/types/fixed_size_buffer.ts +0 -59
  719. package/src/types/index.ts +0 -5
  720. package/src/types/point.ts +0 -38
  721. package/src/types/ptr.ts +0 -20
  722. package/src/types/raw_buffer.ts +0 -3
  723. /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BarretenbergNativeShmAsyncBackend = void 0;
4
+ const module_1 = require("module");
5
+ const child_process_1 = require("child_process");
6
+ const fs_1 = require("fs");
7
+ const platform_js_1 = require("./platform.js");
8
+ let instanceCounter = 0;
9
+ /**
10
+ * Asynchronous shared memory backend that communicates with bb binary via shared memory.
11
+ * Uses NAPI module with background thread polling for async operations.
12
+ * Supports request pipelining - multiple requests can be in flight simultaneously.
13
+ *
14
+ * Architecture (matches socket backend pattern):
15
+ * - bb acts as the SERVER, TypeScript is the CLIENT
16
+ * - bb creates the shared memory region
17
+ * - TypeScript connects via NAPI wrapper (MsgpackClientAsync)
18
+ * - TypeScript manages promise queue (single-threaded, no mutex needed)
19
+ * - C++ background thread polls for responses, calls JavaScript callback
20
+ * - JavaScript callback pops queue and resolves promises in FIFO order
21
+ */
22
+ class BarretenbergNativeShmAsyncBackend {
23
+ process;
24
+ client; // NAPI MsgpackClientAsync instance
25
+ logFd; // File descriptor for logs
26
+ // Queue of pending callbacks for pipelined requests
27
+ // Responses come back in FIFO order, so we match them with queued callbacks
28
+ pendingCallbacks = [];
29
+ constructor(process, client, logFd) {
30
+ this.process = process;
31
+ this.client = client;
32
+ this.logFd = logFd;
33
+ // Register our response handler with the C++ client
34
+ // This callback will be invoked from the background thread via ThreadSafeFunction
35
+ this.client.setResponseCallback((responseBuffer) => {
36
+ this.handleResponse(responseBuffer);
37
+ });
38
+ }
39
+ /**
40
+ * Handle response from C++ background thread
41
+ * Dequeues the next pending callback and resolves it (FIFO order)
42
+ */
43
+ handleResponse(responseBuffer) {
44
+ // Response is complete - dequeue the next pending callback (FIFO)
45
+ const callback = this.pendingCallbacks.shift();
46
+ if (callback) {
47
+ callback.resolve(new Uint8Array(responseBuffer));
48
+ }
49
+ else {
50
+ // This shouldn't happen - response without a pending request
51
+ console.warn('Received response but no pending callback');
52
+ }
53
+ // If no more pending callbacks, release ref to allow process to exit
54
+ if (this.pendingCallbacks.length === 0) {
55
+ this.client.release();
56
+ }
57
+ }
58
+ /**
59
+ * Create and initialize an async shared memory backend.
60
+ * @param bbBinaryPath Path to bb binary
61
+ * @param threads Optional number of threads (defaults to min(32, num_cpus))
62
+ * @param logger Optional logger function for bb output
63
+ */
64
+ static async new(bbBinaryPath, napiPath, threads, logger) {
65
+ // Import the NAPI module
66
+ // The addon is built to the nodejs_module directory
67
+ const addonPath = (0, platform_js_1.findNapiBinary)(napiPath);
68
+ // Try loading
69
+ let addon = null;
70
+ try {
71
+ const require = (0, module_1.createRequire)((0, platform_js_1.findPackageRoot)());
72
+ addon = require(addonPath);
73
+ }
74
+ catch (err) {
75
+ // Addon not built yet or not available
76
+ throw new Error('Shared memory async NAPI not available.');
77
+ }
78
+ // Create a unique shared memory name
79
+ const shmName = `bb-async-${process.pid}-${instanceCounter++}`;
80
+ // If threads not set use num cpu cores, max 16 (same as socket backend)
81
+ const hwc = threads ? threads.toString() : '16';
82
+ const env = { ...process.env, HARDWARE_CONCURRENCY: hwc };
83
+ // Set up file logging if logger is provided
84
+ // Direct file redirection bypasses Node event loop - logs are written even if process hangs
85
+ let logFd;
86
+ let logPath;
87
+ if (logger) {
88
+ logPath = `/tmp/${shmName}.log`;
89
+ logFd = (0, fs_1.openSync)(logPath, 'w');
90
+ logger(`BB process logs redirected to: ${logPath}`);
91
+ }
92
+ // Spawn bb process with shared memory mode
93
+ // Use larger ring buffers for async mode to support pipelining
94
+ const args = [
95
+ 'msgpack',
96
+ 'run',
97
+ '--input',
98
+ `${shmName}.shm`,
99
+ '--request-ring-size',
100
+ `${1024 * 1024 * 4}`,
101
+ '--response-ring-size',
102
+ `${1024 * 1024 * 4}`,
103
+ ];
104
+ const bbProcess = (0, child_process_1.spawn)(bbBinaryPath, args, {
105
+ stdio: ['ignore', logFd ?? 'ignore', logFd ?? 'ignore'],
106
+ env,
107
+ });
108
+ // Disconnect from event loop so process can exit without waiting for bb
109
+ // The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
110
+ // so it will automatically exit when Node.js exits
111
+ bbProcess.unref();
112
+ // Track if process has exited
113
+ let processExited = false;
114
+ let exitError = null;
115
+ bbProcess.on('error', err => {
116
+ processExited = true;
117
+ exitError = new Error(`Native backend process error: ${err.message}`);
118
+ });
119
+ bbProcess.on('exit', (code, signal) => {
120
+ processExited = true;
121
+ if (code !== null && code !== 0) {
122
+ exitError = new Error(`Native backend process exited with code ${code}`);
123
+ }
124
+ else if (signal && signal !== 'SIGTERM') {
125
+ exitError = new Error(`Native backend process killed with signal ${signal}`);
126
+ }
127
+ });
128
+ // Wait for bb to create shared memory
129
+ // Retry connection every 100ms for up to 5 seconds (longer than sync for thread startup)
130
+ const retryInterval = 100; // ms
131
+ const timeout = 5000; // ms
132
+ const maxAttempts = Math.floor(timeout / retryInterval);
133
+ let client = null;
134
+ try {
135
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
136
+ // Check if bb process has exited before attempting connection
137
+ if (processExited) {
138
+ throw exitError || new Error('Native backend process exited unexpectedly during startup');
139
+ }
140
+ // Wait before attempting connection (except first attempt)
141
+ if (attempt > 0) {
142
+ await new Promise(resolve => setTimeout(resolve, retryInterval));
143
+ }
144
+ try {
145
+ // Create NAPI async client
146
+ client = new addon.MsgpackClientAsync(shmName);
147
+ break; // Success!
148
+ }
149
+ catch (err) {
150
+ // Connection failed, will retry
151
+ if (attempt === maxAttempts - 1) {
152
+ // Last attempt failed - check one more time if process exited
153
+ if (processExited && exitError) {
154
+ throw exitError;
155
+ }
156
+ throw new Error(`Failed to connect to shared memory after ${timeout}ms: ${err.message}`);
157
+ }
158
+ }
159
+ }
160
+ if (!client) {
161
+ throw new Error('Failed to create client connection');
162
+ }
163
+ return new BarretenbergNativeShmAsyncBackend(bbProcess, client, logFd);
164
+ }
165
+ finally {
166
+ // If we failed to connect, ensure the process is killed and log file closed
167
+ if (!client) {
168
+ bbProcess.kill('SIGKILL');
169
+ if (logFd !== undefined) {
170
+ try {
171
+ (0, fs_1.closeSync)(logFd);
172
+ }
173
+ catch (e) {
174
+ // Ignore errors during cleanup
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+ /**
181
+ * Send a msgpack request asynchronously.
182
+ * Supports pipelining - can be called multiple times before awaiting responses.
183
+ * Use Promise.all() to send multiple requests concurrently.
184
+ *
185
+ * Example:
186
+ * const results = await Promise.all([
187
+ * backend.call(buf1),
188
+ * backend.call(buf2),
189
+ * backend.call(buf3)
190
+ * ]);
191
+ *
192
+ * @param inputBuffer The msgpack-encoded request
193
+ * @returns Promise resolving to msgpack-encoded response
194
+ */
195
+ async call(inputBuffer) {
196
+ return new Promise((resolve, reject) => {
197
+ // If this is the first pending callback, acquire ref to keep event loop alive
198
+ if (this.pendingCallbacks.length === 0) {
199
+ this.client.acquire();
200
+ }
201
+ // Enqueue this promise's callbacks (FIFO order)
202
+ this.pendingCallbacks.push({ resolve, reject });
203
+ try {
204
+ // Send request to shared memory (synchronous write)
205
+ // C++ call() no longer returns a promise - we manage them here
206
+ this.client.call(Buffer.from(inputBuffer));
207
+ }
208
+ catch (err) {
209
+ // Send failed - dequeue the callback we just added and reject
210
+ this.pendingCallbacks.pop();
211
+ // If queue is now empty, release ref to allow exit
212
+ if (this.pendingCallbacks.length === 0) {
213
+ this.client.release();
214
+ }
215
+ reject(new Error(`Shared memory async call failed: ${err.message}`));
216
+ }
217
+ });
218
+ }
219
+ async destroy() {
220
+ // Kill the bb process
221
+ // Background thread and callbacks will be cleaned up by OS on process exit
222
+ this.process.kill('SIGTERM');
223
+ this.process.removeAllListeners();
224
+ // Close log file if open
225
+ if (this.logFd !== undefined) {
226
+ try {
227
+ (0, fs_1.closeSync)(this.logFd);
228
+ }
229
+ catch (e) {
230
+ // Ignore errors during cleanup
231
+ }
232
+ }
233
+ }
234
+ }
235
+ exports.BarretenbergNativeShmAsyncBackend = BarretenbergNativeShmAsyncBackend;
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3NobV9hc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iYl9iYWNrZW5kcy9ub2RlL25hdGl2ZV9zaG1fYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXVDO0FBQ3ZDLGlEQUFvRDtBQUNwRCwyQkFBeUM7QUFFekMsK0NBQWdFO0FBRWhFLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztBQUV4Qjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSDtJQUNVLE9BQU8sQ0FBZTtJQUN0QixNQUFNLENBQU0sQ0FBQyxtQ0FBbUM7SUFDaEQsS0FBSyxDQUFVLENBQUMsMkJBQTJCO0lBRW5ELG9EQUFvRDtJQUNwRCw0RUFBNEU7SUFDcEUsZ0JBQWdCLEdBR25CLEVBQUUsQ0FBQztJQUVSLFlBQW9CLE9BQXFCLEVBQUUsTUFBVyxFQUFFLEtBQWMsRUFBRTtRQUN0RSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixvREFBb0Q7UUFDcEQsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxjQUFzQixFQUFFLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQUEsQ0FDckMsQ0FBQyxDQUFDO0lBQUEsQ0FDSjtJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxjQUFzQixFQUFRO1FBQ25ELGtFQUFrRTtRQUNsRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNuRCxD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
@@ -0,0 +1,34 @@
1
+ import { IMsgpackBackendAsync } from '../interface.js';
2
+ /**
3
+ * Asynchronous native backend that communicates with bb binary via Unix Domain Socket.
4
+ * Uses event-based I/O with a state machine to handle partial reads.
5
+ *
6
+ * Architecture: bb acts as the SERVER, TypeScript is the CLIENT
7
+ * - bb creates the socket and listens for connections
8
+ * - TypeScript waits for socket file to exist, then connects
9
+ *
10
+ * Protocol:
11
+ * - Request: 4-byte little-endian length + msgpack buffer
12
+ * - Response: 4-byte little-endian length + msgpack buffer
13
+ */
14
+ export declare class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsync {
15
+ private process;
16
+ private socket;
17
+ private socketPath;
18
+ private connectionPromise;
19
+ private connectionTimeout;
20
+ private pendingCallbacks;
21
+ private readingLength;
22
+ private lengthBuffer;
23
+ private lengthBytesRead;
24
+ private responseLength;
25
+ private responseBuffer;
26
+ private responseBytesRead;
27
+ constructor(bbBinaryPath: string, threads?: number, logger?: (msg: string) => void);
28
+ private waitForSocketAndConnect;
29
+ private handleData;
30
+ call(inputBuffer: Uint8Array): Promise<Uint8Array>;
31
+ private cleanup;
32
+ destroy(): Promise<void>;
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3NvY2tldC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JiX2JhY2tlbmRzL25vZGUvbmF0aXZlX3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd2RDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHFCQUFhLG9DQUFxQyxZQUFXLG9CQUFvQjtJQUMvRSxPQUFPLENBQUMsT0FBTyxDQUFlO0lBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQTJCO0lBQ3pDLE9BQU8sQ0FBQyxVQUFVLENBQVM7SUFDM0IsT0FBTyxDQUFDLGlCQUFpQixDQUFnQjtJQUN6QyxPQUFPLENBQUMsaUJBQWlCLENBQStCO0lBSXhELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FHaEI7SUFHUixPQUFPLENBQUMsYUFBYSxDQUFpQjtJQUN0QyxPQUFPLENBQUMsWUFBWSxDQUEyQjtJQUMvQyxPQUFPLENBQUMsZUFBZSxDQUFhO0lBQ3BDLE9BQU8sQ0FBQyxjQUFjLENBQWE7SUFDbkMsT0FBTyxDQUFDLGNBQWMsQ0FBdUI7SUFDN0MsT0FBTyxDQUFDLGlCQUFpQixDQUFhO0lBRXRDLFlBQVksWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLElBQUksRUFvR2pGO1lBRWEsdUJBQXVCO0lBaUVyQyxPQUFPLENBQUMsVUFBVTtJQW1EWixJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBd0J2RDtJQUVELE9BQU8sQ0FBQyxPQUFPO0lBaUNULE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBSTdCO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native_socket.d.ts","sourceRoot":"","sources":["../../../../src/bb_backends/node/native_socket.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD;;;;;;;;;;;GAWG;AACH,qBAAa,oCAAqC,YAAW,oBAAoB;IAC/E,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,iBAAiB,CAA+B;IAIxD,OAAO,CAAC,gBAAgB,CAGhB;IAGR,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAAa;IAEtC,YAAY,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAoGjF;YAEa,uBAAuB;IAiErC,OAAO,CAAC,UAAU;IAmDZ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAwBvD;IAED,OAAO,CAAC,OAAO;IAiCT,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7B;CACF"}
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BarretenbergNativeSocketAsyncBackend = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const child_process_1 = require("child_process");
6
+ const net = tslib_1.__importStar(require("net"));
7
+ const fs = tslib_1.__importStar(require("fs"));
8
+ const os = tslib_1.__importStar(require("os"));
9
+ const path = tslib_1.__importStar(require("path"));
10
+ const readline_1 = tslib_1.__importDefault(require("readline"));
11
+ /**
12
+ * Asynchronous native backend that communicates with bb binary via Unix Domain Socket.
13
+ * Uses event-based I/O with a state machine to handle partial reads.
14
+ *
15
+ * Architecture: bb acts as the SERVER, TypeScript is the CLIENT
16
+ * - bb creates the socket and listens for connections
17
+ * - TypeScript waits for socket file to exist, then connects
18
+ *
19
+ * Protocol:
20
+ * - Request: 4-byte little-endian length + msgpack buffer
21
+ * - Response: 4-byte little-endian length + msgpack buffer
22
+ */
23
+ class BarretenbergNativeSocketAsyncBackend {
24
+ process;
25
+ socket = null;
26
+ socketPath;
27
+ connectionPromise;
28
+ connectionTimeout = null;
29
+ // Queue of pending callbacks for pipelined requests
30
+ // Responses come back in FIFO order, so we match them with queued callbacks
31
+ pendingCallbacks = [];
32
+ // State machine for reading responses
33
+ readingLength = true;
34
+ lengthBuffer = Buffer.alloc(4);
35
+ lengthBytesRead = 0;
36
+ responseLength = 0;
37
+ responseBuffer = null;
38
+ responseBytesRead = 0;
39
+ constructor(bbBinaryPath, threads, logger) {
40
+ // Create a unique socket path in temp directory
41
+ this.socketPath = path.join(os.tmpdir(), `bb-${process.pid}-${Date.now()}.sock`);
42
+ // Ensure socket path doesn't already exist (cleanup from previous crashes)
43
+ if (fs.existsSync(this.socketPath)) {
44
+ fs.unlinkSync(this.socketPath);
45
+ }
46
+ let connectionResolve = null;
47
+ let connectionReject = null;
48
+ this.connectionPromise = new Promise((resolve, reject) => {
49
+ connectionResolve = resolve;
50
+ connectionReject = reject;
51
+ });
52
+ // If threads not set use num cpu cores, max 16.
53
+ const hwc = threads ? threads.toString() : Math.min(16, os.cpus().length).toString();
54
+ const env = { ...process.env, HARDWARE_CONCURRENCY: hwc };
55
+ // Spawn bb process - it will create the socket server
56
+ const args = ['msgpack', 'run', '--input', this.socketPath];
57
+ this.process = (0, child_process_1.spawn)(bbBinaryPath, args, {
58
+ stdio: ['ignore', logger ? 'pipe' : 'ignore', logger ? 'pipe' : 'ignore'],
59
+ env,
60
+ });
61
+ // Disconnect from event loop so process can exit without waiting for bb
62
+ // The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
63
+ // so it will automatically exit when Node.js exits
64
+ this.process.unref();
65
+ if (logger) {
66
+ logger("Logger attached to bb process. DON'T FORGET TO DESTROY THE BACKEND to allow Node.js to exit.");
67
+ readline_1.default.createInterface({ input: this.process.stdout }).on('line', logger);
68
+ readline_1.default.createInterface({ input: this.process.stderr }).on('line', logger);
69
+ }
70
+ this.process.on('error', err => {
71
+ if (connectionReject) {
72
+ connectionReject(new Error(`Native backend process error: ${err.message}`));
73
+ connectionReject = null;
74
+ connectionResolve = null;
75
+ }
76
+ // Reject all pending callbacks
77
+ const error = new Error(`Native backend process error: ${err.message}`);
78
+ for (const callback of this.pendingCallbacks) {
79
+ callback.reject(error);
80
+ }
81
+ this.pendingCallbacks = [];
82
+ });
83
+ this.process.on('exit', (code, signal) => {
84
+ const errorMsg = code !== null && code !== 0
85
+ ? `Native backend process exited with code ${code}`
86
+ : signal && signal !== 'SIGTERM'
87
+ ? `Native backend process killed with signal ${signal}`
88
+ : 'Native backend process exited unexpectedly';
89
+ if (connectionReject) {
90
+ connectionReject(new Error(errorMsg));
91
+ connectionReject = null;
92
+ connectionResolve = null;
93
+ }
94
+ // Reject all pending callbacks
95
+ const error = new Error(errorMsg);
96
+ for (const callback of this.pendingCallbacks) {
97
+ callback.reject(error);
98
+ }
99
+ this.pendingCallbacks = [];
100
+ });
101
+ // Wait for bb to create socket file, then connect
102
+ this.waitForSocketAndConnect()
103
+ .then(() => {
104
+ if (connectionResolve) {
105
+ connectionResolve();
106
+ connectionResolve = null;
107
+ connectionReject = null;
108
+ }
109
+ })
110
+ .catch(err => {
111
+ if (connectionReject) {
112
+ connectionReject(err);
113
+ connectionReject = null;
114
+ connectionResolve = null;
115
+ }
116
+ });
117
+ // Set a timeout for connection
118
+ this.connectionTimeout = setTimeout(() => {
119
+ if (connectionReject) {
120
+ connectionReject(new Error('Timeout waiting for bb socket connection'));
121
+ connectionReject = null;
122
+ connectionResolve = null;
123
+ this.cleanup();
124
+ }
125
+ }, 5000);
126
+ }
127
+ async waitForSocketAndConnect() {
128
+ // Poll for socket file to exist (bb is creating it)
129
+ const startTime = Date.now();
130
+ while (!fs.existsSync(this.socketPath)) {
131
+ if (Date.now() - startTime > 5000) {
132
+ throw new Error('Timeout waiting for bb to create socket file');
133
+ }
134
+ await new Promise(resolve => setTimeout(resolve, 50));
135
+ }
136
+ // Additional check: ensure it's actually a socket
137
+ const stats = fs.statSync(this.socketPath);
138
+ if (!stats.isSocket()) {
139
+ throw new Error(`Path exists but is not a socket: ${this.socketPath}`);
140
+ }
141
+ // Connect to bb's socket server as a client
142
+ return new Promise((resolve, reject) => {
143
+ this.socket = net.connect(this.socketPath);
144
+ // Disable Nagle's algorithm for lower latency
145
+ this.socket.setNoDelay(true);
146
+ // Set up event handlers
147
+ this.socket.once('connect', () => {
148
+ // Socket starts referenced - will be unreferenced when no callbacks pending
149
+ // Clear connection timeout on successful connection
150
+ if (this.connectionTimeout) {
151
+ clearTimeout(this.connectionTimeout);
152
+ this.connectionTimeout = null;
153
+ }
154
+ resolve();
155
+ });
156
+ this.socket.once('error', err => {
157
+ reject(new Error(`Failed to connect to bb socket: ${err.message}`));
158
+ });
159
+ // Set up data handler after connection is established
160
+ this.socket.on('data', (chunk) => {
161
+ this.handleData(chunk);
162
+ });
163
+ // Handle ongoing errors after initial connection
164
+ this.socket.on('error', err => {
165
+ // Reject all pending callbacks
166
+ const error = new Error(`Socket error: ${err.message}`);
167
+ for (const callback of this.pendingCallbacks) {
168
+ callback.reject(error);
169
+ }
170
+ this.pendingCallbacks = [];
171
+ });
172
+ this.socket.on('end', () => {
173
+ // Reject all pending callbacks
174
+ const error = new Error('Socket connection ended unexpectedly');
175
+ for (const callback of this.pendingCallbacks) {
176
+ callback.reject(error);
177
+ }
178
+ this.pendingCallbacks = [];
179
+ });
180
+ });
181
+ }
182
+ handleData(chunk) {
183
+ let offset = 0;
184
+ while (offset < chunk.length) {
185
+ if (this.readingLength) {
186
+ // Reading 4-byte length prefix
187
+ const bytesToCopy = Math.min(4 - this.lengthBytesRead, chunk.length - offset);
188
+ chunk.copy(this.lengthBuffer, this.lengthBytesRead, offset, offset + bytesToCopy);
189
+ this.lengthBytesRead += bytesToCopy;
190
+ offset += bytesToCopy;
191
+ if (this.lengthBytesRead === 4) {
192
+ // Length is complete, switch to reading data
193
+ this.responseLength = this.lengthBuffer.readUInt32LE(0);
194
+ this.responseBuffer = Buffer.alloc(this.responseLength);
195
+ this.responseBytesRead = 0;
196
+ this.readingLength = false;
197
+ }
198
+ }
199
+ else {
200
+ // Reading response data
201
+ const bytesToCopy = Math.min(this.responseLength - this.responseBytesRead, chunk.length - offset);
202
+ chunk.copy(this.responseBuffer, this.responseBytesRead, offset, offset + bytesToCopy);
203
+ this.responseBytesRead += bytesToCopy;
204
+ offset += bytesToCopy;
205
+ if (this.responseBytesRead === this.responseLength) {
206
+ // Response is complete - dequeue the next pending callback (FIFO)
207
+ const callback = this.pendingCallbacks.shift();
208
+ if (callback) {
209
+ callback.resolve(new Uint8Array(this.responseBuffer));
210
+ }
211
+ else {
212
+ // This shouldn't happen - response without a pending request
213
+ console.warn('Received response but no pending callback');
214
+ }
215
+ // If no more pending callbacks, unref socket to allow process to exit
216
+ if (this.pendingCallbacks.length === 0 && this.socket) {
217
+ this.socket.unref();
218
+ }
219
+ // Reset state for next message
220
+ this.readingLength = true;
221
+ this.lengthBytesRead = 0;
222
+ this.responseLength = 0;
223
+ this.responseBuffer = null;
224
+ this.responseBytesRead = 0;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ async call(inputBuffer) {
230
+ // Wait for connection to be established
231
+ await this.connectionPromise;
232
+ if (!this.socket) {
233
+ throw new Error('Socket not connected');
234
+ }
235
+ return new Promise((resolve, reject) => {
236
+ // If this is the first pending callback, ref the socket to keep event loop alive
237
+ if (this.pendingCallbacks.length === 0) {
238
+ this.socket.ref();
239
+ }
240
+ // Enqueue this promise's callbacks (FIFO order)
241
+ this.pendingCallbacks.push({ resolve, reject });
242
+ // Write request: 4-byte little-endian length + msgpack data
243
+ // Socket will buffer these if needed, maintaining order
244
+ const lengthBuf = Buffer.alloc(4);
245
+ lengthBuf.writeUInt32LE(inputBuffer.length, 0);
246
+ this.socket.write(lengthBuf);
247
+ this.socket.write(inputBuffer);
248
+ });
249
+ }
250
+ cleanup() {
251
+ // Reject any remaining pending callbacks
252
+ const error = new Error('Backend connection closed');
253
+ for (const callback of this.pendingCallbacks) {
254
+ callback.reject(error);
255
+ }
256
+ this.pendingCallbacks = [];
257
+ try {
258
+ // Remove all event listeners to prevent hanging
259
+ if (this.socket) {
260
+ this.socket.removeAllListeners();
261
+ // Unref so socket doesn't keep event loop alive
262
+ // this.socket.unref();
263
+ this.socket.destroy();
264
+ }
265
+ }
266
+ catch (e) {
267
+ // Ignore errors during cleanup
268
+ }
269
+ // Clear connection timeout if still pending
270
+ if (this.connectionTimeout) {
271
+ clearTimeout(this.connectionTimeout);
272
+ this.connectionTimeout = null;
273
+ }
274
+ // Remove process event listeners and unref to not block event loop
275
+ this.process.removeAllListeners();
276
+ // this.process.unref();
277
+ // Don't try to unlink socket - bb owns it and will clean it up
278
+ }
279
+ async destroy() {
280
+ this.cleanup();
281
+ this.process.kill('SIGTERM');
282
+ this.process.removeAllListeners();
283
+ }
284
+ }
285
+ exports.BarretenbergNativeSocketAsyncBackend = BarretenbergNativeSocketAsyncBackend;
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3NvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iYl9iYWNrZW5kcy9ub2RlL25hdGl2ZV9zb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlEQUFvRDtBQUNwRCxNQUFZLEdBQUcsd0NBQVk7QUFDM0IsTUFBWSxFQUFFLHVDQUFXO0FBQ3pCLE1BQVksRUFBRSx1Q0FBVztBQUN6QixNQUFZLElBQUkseUNBQWE7QUFFN0IsZ0VBQWdDO0FBRWhDOzs7Ozs7Ozs7OztHQVdHO0FBQ0g7SUFDVSxPQUFPLENBQWU7SUFDdEIsTUFBTSxHQUFzQixJQUFJLENBQUM7SUFDakMsVUFBVSxDQUFTO0lBQ25CLGlCQUFpQixDQUFnQjtJQUNqQyxpQkFBaUIsR0FBMEIsSUFBSSxDQUFDO0lBRXhELG9EQUFvRDtJQUNwRCw0RUFBNEU7SUFDcEUsZ0JBQWdCLEdBR25CLEVBQUUsQ0FBQztJQUVSLHNDQUFzQztJQUM5QixhQUFhLEdBQVksSUFBSSxDQUFDO0lBQzlCLFlBQVksR0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLGVBQWUsR0FBVyxDQUFDLENBQUM7SUFDNUIsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUMzQixjQUFjLEdBQWtCLElBQUksQ0FBQztJQUNyQyxpQkFBaUIsR0FBVyxDQUFDLENBQUM7SUFFdEMsWUFBWSxZQUFvQixFQUFFLE9BQWdCLEVBQUUsTUFBOEIsRUFBRTtRQUNsRixnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqRiwyRUFBMkU7UUFDM0UsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxD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
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Find package root by climbing directory tree until package.json is found.
3
+ * @param startDir Starting directory to search from
4
+ * @returns Absolute path to package root, or null if not found
5
+ */
6
+ export declare function findPackageRoot(): string | null;
7
+ /**
8
+ * Supported platform/architecture combinations.
9
+ */
10
+ export type Platform = 'x86_64-linux' | 'x86_64-darwin' | 'aarch64-linux' | 'aarch64-darwin';
11
+ /**
12
+ * Detect the current platform and architecture.
13
+ * @returns Platform identifier or null if unsupported
14
+ */
15
+ export declare function detectPlatform(): Platform | null;
16
+ /**
17
+ * Find the bb binary for the native backend.
18
+ * @param customPath Optional custom path to bb binary (overrides automatic detection)
19
+ * @returns Absolute path to bb binary, or null if not found
20
+ *
21
+ * Search order:
22
+ * 1. If customPath is provided and exists, return it
23
+ * 2. Otherwise search in <package-root>/build/<platform>/bb
24
+ */
25
+ export declare function findBbBinary(customPath?: string): string | null;
26
+ export declare function findNapiBinary(customPath?: string): string | null;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iYl9iYWNrZW5kcy9ub2RlL3BsYXRmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBa0IvQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLFFBQVEsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztBQVk3Rjs7O0dBR0c7QUFDSCx3QkFBZ0IsY0FBYyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBa0JoRDtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FpQy9EO0FBRUQsd0JBQWdCLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FpQ2pFIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/bb_backends/node/platform.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAkB/C;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAY7F;;;GAGG;AACH,wBAAgB,cAAc,IAAI,QAAQ,GAAG,IAAI,CAkBhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiC/D;AAED,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiCjE"}