@aztec/bb.js 0.0.1-commit.24de95ac → 0.0.1-commit.2e2504e2

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 (637) hide show
  1. package/build/amd64-linux/bb +0 -0
  2. package/build/amd64-linux/nodejs_module.node +0 -0
  3. package/build/amd64-macos/bb +0 -0
  4. package/build/amd64-macos/nodejs_module.node +0 -0
  5. package/build/arm64-linux/bb +0 -0
  6. package/build/arm64-linux/nodejs_module.node +0 -0
  7. package/build/arm64-macos/bb +0 -0
  8. package/build/arm64-macos/nodejs_module.node +0 -0
  9. package/dest/browser/async_map/index.d.ts +1 -1
  10. package/dest/browser/async_map/index.js +1 -1
  11. package/dest/browser/barretenberg/backend.d.ts +58 -40
  12. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  13. package/dest/browser/barretenberg/backend.js +143 -94
  14. package/dest/browser/barretenberg/index.d.ts +3 -5
  15. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  16. package/dest/browser/barretenberg/index.js +19 -28
  17. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
  18. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  19. package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
  20. package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
  21. package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
  22. package/dest/browser/barretenberg/testing/fields.js +47 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  31. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  32. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  33. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  34. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  35. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  36. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  37. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  38. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  39. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  40. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  41. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  42. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  43. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  44. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  45. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  46. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  47. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  48. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  49. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  50. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  51. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  52. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  53. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  54. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
  55. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
  56. package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
  57. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
  58. package/dest/browser/barretenberg_wasm/index.js +2 -3
  59. package/dest/browser/bb_backends/browser/index.d.ts +1 -1
  60. package/dest/browser/bb_backends/browser/index.js +1 -1
  61. package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
  62. package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
  63. package/dest/browser/bb_backends/browser/platform.js +10 -0
  64. package/dest/browser/bb_backends/index.d.ts +12 -7
  65. package/dest/browser/bb_backends/index.d.ts.map +1 -1
  66. package/dest/browser/bb_backends/index.js +8 -7
  67. package/dest/browser/bb_backends/interface.d.ts +1 -1
  68. package/dest/browser/bb_backends/wasm.d.ts +1 -1
  69. package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
  70. package/dest/browser/bb_backends/wasm.js +5 -3
  71. package/dest/browser/bbapi_exception.d.ts +1 -1
  72. package/dest/browser/bbapi_exception.d.ts.map +1 -1
  73. package/dest/browser/bbapi_exception.js +1 -1
  74. package/dest/browser/bin/index.d.ts +3 -0
  75. package/dest/browser/bin/index.d.ts.map +1 -0
  76. package/dest/browser/bin/index.js +11 -0
  77. package/dest/browser/cbind/generate.d.ts +5 -2
  78. package/dest/browser/cbind/generate.d.ts.map +1 -1
  79. package/dest/browser/cbind/generate.js +47 -25
  80. package/dest/browser/cbind/generated/api_types.d.ts +766 -1687
  81. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  82. package/dest/browser/cbind/generated/api_types.js +1465 -1555
  83. package/dest/browser/cbind/generated/async.d.ts +3 -5
  84. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  85. package/dest/browser/cbind/generated/async.js +14 -33
  86. package/dest/browser/cbind/generated/curve_constants.d.ts +1 -1
  87. package/dest/browser/cbind/generated/sync.d.ts +3 -5
  88. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  89. package/dest/browser/cbind/generated/sync.js +14 -31
  90. package/dest/browser/cbind/naming.d.ts +16 -0
  91. package/dest/browser/cbind/naming.d.ts.map +1 -0
  92. package/dest/browser/cbind/naming.js +24 -0
  93. package/dest/browser/cbind/rust_codegen.d.ts +26 -0
  94. package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
  95. package/dest/browser/cbind/rust_codegen.js +461 -0
  96. package/dest/browser/cbind/schema_visitor.d.ts +47 -0
  97. package/dest/browser/cbind/schema_visitor.d.ts.map +1 -0
  98. package/dest/browser/cbind/schema_visitor.js +158 -0
  99. package/dest/browser/cbind/typescript_codegen.d.ts +30 -0
  100. package/dest/browser/cbind/typescript_codegen.d.ts.map +1 -0
  101. package/dest/browser/cbind/typescript_codegen.js +365 -0
  102. package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
  103. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
  104. package/dest/browser/crs/browser/cached_net_crs.js +6 -1
  105. package/dest/browser/crs/browser/index.d.ts +1 -1
  106. package/dest/browser/crs/index.d.ts +1 -1
  107. package/dest/browser/crs/net_crs.d.ts +6 -16
  108. package/dest/browser/crs/net_crs.d.ts.map +1 -1
  109. package/dest/browser/crs/net_crs.js +35 -7
  110. package/dest/browser/index.d.ts +3 -2
  111. package/dest/browser/index.d.ts.map +1 -1
  112. package/dest/browser/index.js +3 -2
  113. package/dest/browser/proof/index.d.ts +1 -1
  114. package/dest/browser/proof/index.js +1 -1
  115. package/dest/browser/random/browser/index.d.ts +1 -1
  116. package/dest/browser/random/browser/index.d.ts.map +1 -1
  117. package/dest/browser/random/browser/index.js +1 -1
  118. package/dest/browser/random/index.d.ts +1 -1
  119. package/dest/browser/retry/index.d.ts +1 -1
  120. package/dest/browser/retry/index.js +1 -1
  121. package/dest/node/async_map/index.d.ts +1 -1
  122. package/dest/node/async_map/index.js +1 -1
  123. package/dest/node/barretenberg/backend.d.ts +58 -40
  124. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  125. package/dest/node/barretenberg/backend.js +143 -94
  126. package/dest/node/barretenberg/backend.test.d.ts +2 -0
  127. package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
  128. package/dest/node/barretenberg/backend.test.js +103 -0
  129. package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
  130. package/dest/node/barretenberg/blake2s.test.js +2 -2
  131. package/dest/node/barretenberg/index.d.ts +3 -5
  132. package/dest/node/barretenberg/index.d.ts.map +1 -1
  133. package/dest/node/barretenberg/index.js +19 -28
  134. package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
  135. package/dest/node/barretenberg/pedersen.test.js +2 -2
  136. package/dest/node/barretenberg/poseidon.bench.test.d.ts +1 -1
  137. package/dest/node/barretenberg/poseidon.bench.test.js +80 -79
  138. package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
  139. package/dest/node/barretenberg/poseidon.test.js +2 -2
  140. package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
  141. package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  142. package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
  143. package/dest/node/barretenberg/testing/fields.d.ts +16 -0
  144. package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
  145. package/dest/node/barretenberg/testing/fields.js +47 -0
  146. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  149. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
  150. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  151. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  152. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  153. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  154. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  155. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  156. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  157. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  158. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  159. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  160. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  161. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  162. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  163. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  164. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  165. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  166. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  167. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  168. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  169. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  170. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  171. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  172. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  173. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  174. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  175. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  176. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  177. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  178. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  179. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  180. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  181. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  182. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  183. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  184. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  185. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
  186. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  187. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  188. package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
  189. package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
  190. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  191. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  192. package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
  193. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  194. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  195. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  196. package/dest/node/barretenberg_wasm/index.d.ts +1 -1
  197. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
  198. package/dest/node/barretenberg_wasm/index.js +2 -3
  199. package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
  200. package/dest/node/barretenberg_wasm/index.test.js +1 -1
  201. package/dest/node/bb_backends/browser/index.d.ts +1 -1
  202. package/dest/node/bb_backends/browser/index.js +1 -1
  203. package/dest/node/bb_backends/browser/platform.d.ts +4 -0
  204. package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
  205. package/dest/node/bb_backends/browser/platform.js +10 -0
  206. package/dest/node/bb_backends/index.d.ts +12 -7
  207. package/dest/node/bb_backends/index.d.ts.map +1 -1
  208. package/dest/node/bb_backends/index.js +8 -7
  209. package/dest/node/bb_backends/interface.d.ts +1 -1
  210. package/dest/node/bb_backends/node/index.d.ts +1 -1
  211. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  212. package/dest/node/bb_backends/node/index.js +17 -11
  213. package/dest/node/bb_backends/node/native_pipe.d.ts +1 -1
  214. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -1
  215. package/dest/node/bb_backends/node/native_pipe.js +11 -10
  216. package/dest/node/bb_backends/node/native_shm.d.ts +4 -3
  217. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  218. package/dest/node/bb_backends/node/native_shm.js +85 -39
  219. package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
  220. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
  221. package/dest/node/bb_backends/node/native_shm_async.js +233 -0
  222. package/dest/node/bb_backends/node/native_socket.d.ts +2 -2
  223. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  224. package/dest/node/bb_backends/node/native_socket.js +46 -32
  225. package/dest/node/bb_backends/node/platform.d.ts +1 -1
  226. package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
  227. package/dest/node/bb_backends/node/platform.js +7 -2
  228. package/dest/node/bb_backends/wasm.d.ts +1 -1
  229. package/dest/node/bb_backends/wasm.d.ts.map +1 -1
  230. package/dest/node/bb_backends/wasm.js +5 -3
  231. package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
  232. package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
  233. package/dest/node/bbapi/exception_handling.test.js +48 -0
  234. package/dest/node/bbapi_exception.d.ts +1 -1
  235. package/dest/node/bbapi_exception.d.ts.map +1 -1
  236. package/dest/node/bbapi_exception.js +1 -1
  237. package/dest/node/benchmark/index.d.ts +1 -1
  238. package/dest/node/benchmark/index.js +1 -1
  239. package/dest/node/benchmark/timer.d.ts +1 -1
  240. package/dest/node/benchmark/timer.d.ts.map +1 -1
  241. package/dest/node/benchmark/timer.js +2 -1
  242. package/dest/node/bin/index.d.ts +3 -0
  243. package/dest/node/bin/index.d.ts.map +1 -0
  244. package/dest/node/bin/index.js +11 -0
  245. package/dest/node/cbind/generate.d.ts +5 -2
  246. package/dest/node/cbind/generate.d.ts.map +1 -1
  247. package/dest/node/cbind/generate.js +47 -25
  248. package/dest/node/cbind/generated/api_types.d.ts +766 -1687
  249. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  250. package/dest/node/cbind/generated/api_types.js +1465 -1555
  251. package/dest/node/cbind/generated/async.d.ts +3 -5
  252. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  253. package/dest/node/cbind/generated/async.js +14 -33
  254. package/dest/node/cbind/generated/curve_constants.d.ts +1 -1
  255. package/dest/node/cbind/generated/sync.d.ts +3 -5
  256. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  257. package/dest/node/cbind/generated/sync.js +14 -31
  258. package/dest/node/cbind/naming.d.ts +16 -0
  259. package/dest/node/cbind/naming.d.ts.map +1 -0
  260. package/dest/node/cbind/naming.js +24 -0
  261. package/dest/node/cbind/rust_codegen.d.ts +26 -0
  262. package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
  263. package/dest/node/cbind/rust_codegen.js +461 -0
  264. package/dest/node/cbind/schema_visitor.d.ts +47 -0
  265. package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
  266. package/dest/node/cbind/schema_visitor.js +158 -0
  267. package/dest/node/cbind/typescript_codegen.d.ts +30 -0
  268. package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
  269. package/dest/node/cbind/typescript_codegen.js +365 -0
  270. package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
  271. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
  272. package/dest/node/crs/browser/cached_net_crs.js +6 -1
  273. package/dest/node/crs/browser/index.d.ts +1 -1
  274. package/dest/node/crs/index.d.ts +1 -1
  275. package/dest/node/crs/net_crs.d.ts +6 -16
  276. package/dest/node/crs/net_crs.d.ts.map +1 -1
  277. package/dest/node/crs/net_crs.js +35 -7
  278. package/dest/node/crs/net_crs.test.d.ts +2 -0
  279. package/dest/node/crs/net_crs.test.d.ts.map +1 -0
  280. package/dest/node/crs/net_crs.test.js +39 -0
  281. package/dest/node/crs/node/index.d.ts +1 -1
  282. package/dest/node/crs/node/index.d.ts.map +1 -1
  283. package/dest/node/crs/node/index.js +11 -6
  284. package/dest/node/index.d.ts +3 -2
  285. package/dest/node/index.d.ts.map +1 -1
  286. package/dest/node/index.js +3 -2
  287. package/dest/node/proof/index.d.ts +1 -1
  288. package/dest/node/proof/index.js +1 -1
  289. package/dest/node/random/browser/index.d.ts +1 -1
  290. package/dest/node/random/browser/index.d.ts.map +1 -1
  291. package/dest/node/random/browser/index.js +1 -1
  292. package/dest/node/random/index.d.ts +1 -1
  293. package/dest/node/random/node/index.d.ts +1 -1
  294. package/dest/node/random/node/index.js +1 -1
  295. package/dest/node/retry/index.d.ts +1 -1
  296. package/dest/node/retry/index.js +1 -1
  297. package/dest/node-cjs/async_map/index.d.ts +1 -1
  298. package/dest/node-cjs/async_map/index.js +1 -1
  299. package/dest/node-cjs/barretenberg/backend.d.ts +58 -40
  300. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  301. package/dest/node-cjs/barretenberg/backend.js +151 -100
  302. package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
  303. package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
  304. package/dest/node-cjs/barretenberg/backend.test.js +105 -0
  305. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
  306. package/dest/node-cjs/barretenberg/blake2s.test.js +6 -6
  307. package/dest/node-cjs/barretenberg/index.d.ts +3 -5
  308. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  309. package/dest/node-cjs/barretenberg/index.js +27 -34
  310. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
  311. package/dest/node-cjs/barretenberg/pedersen.test.js +9 -9
  312. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +1 -1
  313. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +89 -88
  314. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
  315. package/dest/node-cjs/barretenberg/poseidon.test.js +4 -4
  316. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
  317. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  318. package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
  319. package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
  320. package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
  321. package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
  322. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  323. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  324. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  325. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +7 -8
  326. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  327. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  328. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
  329. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  330. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  331. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  332. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  333. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  334. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  335. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  336. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  337. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  338. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  339. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  340. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  341. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  342. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  343. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  344. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
  345. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  346. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  347. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  348. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  349. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  350. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  351. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  352. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  353. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  354. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  355. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  356. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  357. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  358. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  359. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  360. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
  361. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  362. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  363. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
  364. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  365. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  366. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
  367. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
  368. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  369. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  370. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
  371. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  372. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  373. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  374. package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
  375. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
  376. package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
  377. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
  378. package/dest/node-cjs/barretenberg_wasm/index.test.js +1 -1
  379. package/dest/node-cjs/bb_backends/browser/index.d.ts +1 -1
  380. package/dest/node-cjs/bb_backends/browser/index.js +1 -1
  381. package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
  382. package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
  383. package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
  384. package/dest/node-cjs/bb_backends/index.d.ts +12 -7
  385. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  386. package/dest/node-cjs/bb_backends/index.js +6 -6
  387. package/dest/node-cjs/bb_backends/interface.d.ts +1 -1
  388. package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
  389. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  390. package/dest/node-cjs/bb_backends/node/index.js +17 -11
  391. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +1 -1
  392. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -1
  393. package/dest/node-cjs/bb_backends/node/native_pipe.js +11 -10
  394. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +4 -3
  395. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  396. package/dest/node-cjs/bb_backends/node/native_shm.js +85 -39
  397. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
  398. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
  399. package/dest/node-cjs/bb_backends/node/native_shm_async.js +237 -0
  400. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +2 -2
  401. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  402. package/dest/node-cjs/bb_backends/node/native_socket.js +46 -32
  403. package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
  404. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
  405. package/dest/node-cjs/bb_backends/node/platform.js +8 -3
  406. package/dest/node-cjs/bb_backends/wasm.d.ts +1 -1
  407. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
  408. package/dest/node-cjs/bb_backends/wasm.js +5 -3
  409. package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
  410. package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
  411. package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
  412. package/dest/node-cjs/bbapi_exception.d.ts +1 -1
  413. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -1
  414. package/dest/node-cjs/bbapi_exception.js +1 -1
  415. package/dest/node-cjs/benchmark/index.d.ts +1 -1
  416. package/dest/node-cjs/benchmark/index.js +2 -2
  417. package/dest/node-cjs/benchmark/timer.d.ts +1 -1
  418. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
  419. package/dest/node-cjs/benchmark/timer.js +2 -1
  420. package/dest/node-cjs/bin/index.d.ts +3 -0
  421. package/dest/node-cjs/bin/index.d.ts.map +1 -0
  422. package/dest/node-cjs/bin/index.js +13 -0
  423. package/dest/node-cjs/cbind/generate.d.ts +5 -2
  424. package/dest/node-cjs/cbind/generate.d.ts.map +1 -1
  425. package/dest/node-cjs/cbind/generate.js +47 -25
  426. package/dest/node-cjs/cbind/generated/api_types.d.ts +766 -1687
  427. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  428. package/dest/node-cjs/cbind/generated/api_types.js +1671 -1771
  429. package/dest/node-cjs/cbind/generated/async.d.ts +3 -5
  430. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  431. package/dest/node-cjs/cbind/generated/async.js +13 -32
  432. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +1 -1
  433. package/dest/node-cjs/cbind/generated/sync.d.ts +3 -5
  434. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  435. package/dest/node-cjs/cbind/generated/sync.js +13 -30
  436. package/dest/node-cjs/cbind/naming.d.ts +16 -0
  437. package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
  438. package/dest/node-cjs/cbind/naming.js +28 -0
  439. package/dest/node-cjs/cbind/rust_codegen.d.ts +26 -0
  440. package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
  441. package/dest/node-cjs/cbind/rust_codegen.js +465 -0
  442. package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
  443. package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
  444. package/dest/node-cjs/cbind/schema_visitor.js +162 -0
  445. package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
  446. package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
  447. package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
  448. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
  449. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
  450. package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
  451. package/dest/node-cjs/crs/browser/index.d.ts +1 -1
  452. package/dest/node-cjs/crs/browser/index.js +2 -2
  453. package/dest/node-cjs/crs/index.d.ts +1 -1
  454. package/dest/node-cjs/crs/index.js +2 -2
  455. package/dest/node-cjs/crs/net_crs.d.ts +6 -16
  456. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  457. package/dest/node-cjs/crs/net_crs.js +36 -7
  458. package/dest/node-cjs/crs/net_crs.test.d.ts +2 -0
  459. package/dest/node-cjs/crs/net_crs.test.d.ts.map +1 -0
  460. package/dest/node-cjs/crs/net_crs.test.js +41 -0
  461. package/dest/node-cjs/crs/node/index.d.ts +1 -1
  462. package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
  463. package/dest/node-cjs/crs/node/index.js +11 -6
  464. package/dest/node-cjs/index.d.ts +3 -2
  465. package/dest/node-cjs/index.d.ts.map +1 -1
  466. package/dest/node-cjs/index.js +12 -8
  467. package/dest/node-cjs/proof/index.d.ts +1 -1
  468. package/dest/node-cjs/proof/index.js +1 -1
  469. package/dest/node-cjs/random/browser/index.d.ts +1 -1
  470. package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
  471. package/dest/node-cjs/random/browser/index.js +1 -1
  472. package/dest/node-cjs/random/index.d.ts +1 -1
  473. package/dest/node-cjs/random/node/index.d.ts +1 -1
  474. package/dest/node-cjs/random/node/index.js +1 -1
  475. package/dest/node-cjs/retry/index.d.ts +1 -1
  476. package/dest/node-cjs/retry/index.js +1 -1
  477. package/package.json +8 -6
  478. package/src/barretenberg/backend.test.ts +122 -0
  479. package/src/barretenberg/backend.ts +170 -122
  480. package/src/barretenberg/blake2s.test.ts +1 -1
  481. package/src/barretenberg/index.ts +25 -28
  482. package/src/barretenberg/pedersen.test.ts +1 -1
  483. package/src/barretenberg/poseidon.bench.test.ts +160 -157
  484. package/src/barretenberg/poseidon.test.ts +1 -1
  485. package/src/{types → barretenberg/testing}/fields.ts +12 -26
  486. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +1 -2
  487. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
  488. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
  489. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
  490. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
  491. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +38 -5
  492. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
  493. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
  494. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
  495. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
  496. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
  497. package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
  498. package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
  499. package/src/barretenberg_wasm/index.ts +1 -2
  500. package/src/bb_backends/browser/platform.ts +11 -0
  501. package/src/bb_backends/index.ts +12 -6
  502. package/src/bb_backends/node/index.ts +23 -10
  503. package/src/bb_backends/node/native_shm.ts +81 -38
  504. package/src/bb_backends/node/native_shm_async.ts +262 -0
  505. package/src/bb_backends/node/native_socket.ts +35 -19
  506. package/src/bb_backends/node/platform.ts +6 -1
  507. package/src/bb_backends/wasm.ts +1 -2
  508. package/src/bbapi/exception_handling.test.ts +54 -0
  509. package/src/bin/index.ts +14 -0
  510. package/src/cbind/generate.ts +51 -32
  511. package/src/cbind/generated/api_types.ts +1612 -2833
  512. package/src/cbind/generated/async.ts +13 -34
  513. package/src/cbind/generated/sync.ts +13 -32
  514. package/src/cbind/naming.ts +27 -0
  515. package/src/cbind/rust_codegen.ts +504 -0
  516. package/src/cbind/schema_visitor.ts +219 -0
  517. package/src/cbind/typescript_codegen.ts +419 -0
  518. package/src/crs/net_crs.test.ts +47 -0
  519. package/src/crs/net_crs.ts +45 -14
  520. package/src/crs/node/index.ts +4 -5
  521. package/src/index.ts +6 -0
  522. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +0 -15
  523. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  524. package/dest/browser/bb_backends/sync_to_async_adapter.js +0 -20
  525. package/dest/browser/bigint-array/index.d.ts +0 -17
  526. package/dest/browser/bigint-array/index.d.ts.map +0 -1
  527. package/dest/browser/bigint-array/index.js +0 -37
  528. package/dest/browser/cbind/schema_compiler.d.ts +0 -68
  529. package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
  530. package/dest/browser/cbind/schema_compiler.js +0 -599
  531. package/dest/browser/log/browser/index.d.ts +0 -6
  532. package/dest/browser/log/browser/index.d.ts.map +0 -1
  533. package/dest/browser/log/browser/index.js +0 -28
  534. package/dest/browser/log/index.d.ts +0 -2
  535. package/dest/browser/log/index.d.ts.map +0 -1
  536. package/dest/browser/log/index.js +0 -2
  537. package/dest/browser/log/types.d.ts +0 -6
  538. package/dest/browser/log/types.d.ts.map +0 -1
  539. package/dest/browser/log/types.js +0 -2
  540. package/dest/browser/serialize/index.d.ts +0 -2
  541. package/dest/browser/serialize/index.d.ts.map +0 -1
  542. package/dest/browser/serialize/index.js +0 -2
  543. package/dest/browser/serialize/serialize.d.ts +0 -18
  544. package/dest/browser/serialize/serialize.d.ts.map +0 -1
  545. package/dest/browser/serialize/serialize.js +0 -72
  546. package/dest/browser/types/fields.d.ts +0 -23
  547. package/dest/browser/types/fields.d.ts.map +0 -1
  548. package/dest/browser/types/fields.js +0 -61
  549. package/dest/browser/types/index.d.ts +0 -3
  550. package/dest/browser/types/index.d.ts.map +0 -1
  551. package/dest/browser/types/index.js +0 -3
  552. package/dest/browser/types/point.d.ts +0 -18
  553. package/dest/browser/types/point.d.ts.map +0 -1
  554. package/dest/browser/types/point.js +0 -28
  555. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +0 -15
  556. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  557. package/dest/node/bb_backends/sync_to_async_adapter.js +0 -20
  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/cbind/schema_compiler.d.ts +0 -68
  562. package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
  563. package/dest/node/cbind/schema_compiler.js +0 -599
  564. package/dest/node/log/browser/index.d.ts +0 -6
  565. package/dest/node/log/browser/index.d.ts.map +0 -1
  566. package/dest/node/log/browser/index.js +0 -28
  567. package/dest/node/log/index.d.ts +0 -2
  568. package/dest/node/log/index.d.ts.map +0 -1
  569. package/dest/node/log/index.js +0 -2
  570. package/dest/node/log/node/index.d.ts +0 -6
  571. package/dest/node/log/node/index.d.ts.map +0 -1
  572. package/dest/node/log/node/index.js +0 -40
  573. package/dest/node/log/types.d.ts +0 -6
  574. package/dest/node/log/types.d.ts.map +0 -1
  575. package/dest/node/log/types.js +0 -2
  576. package/dest/node/serialize/index.d.ts +0 -2
  577. package/dest/node/serialize/index.d.ts.map +0 -1
  578. package/dest/node/serialize/index.js +0 -2
  579. package/dest/node/serialize/serialize.d.ts +0 -18
  580. package/dest/node/serialize/serialize.d.ts.map +0 -1
  581. package/dest/node/serialize/serialize.js +0 -72
  582. package/dest/node/types/fields.d.ts +0 -23
  583. package/dest/node/types/fields.d.ts.map +0 -1
  584. package/dest/node/types/fields.js +0 -61
  585. package/dest/node/types/index.d.ts +0 -3
  586. package/dest/node/types/index.d.ts.map +0 -1
  587. package/dest/node/types/index.js +0 -3
  588. package/dest/node/types/point.d.ts +0 -18
  589. package/dest/node/types/point.d.ts.map +0 -1
  590. package/dest/node/types/point.js +0 -28
  591. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +0 -15
  592. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  593. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +0 -24
  594. package/dest/node-cjs/bigint-array/index.d.ts +0 -17
  595. package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
  596. package/dest/node-cjs/bigint-array/index.js +0 -43
  597. package/dest/node-cjs/cbind/schema_compiler.d.ts +0 -68
  598. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
  599. package/dest/node-cjs/cbind/schema_compiler.js +0 -606
  600. package/dest/node-cjs/log/browser/index.d.ts +0 -6
  601. package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
  602. package/dest/node-cjs/log/browser/index.js +0 -30
  603. package/dest/node-cjs/log/index.d.ts +0 -2
  604. package/dest/node-cjs/log/index.d.ts.map +0 -1
  605. package/dest/node-cjs/log/index.js +0 -8
  606. package/dest/node-cjs/log/node/index.d.ts +0 -6
  607. package/dest/node-cjs/log/node/index.d.ts.map +0 -1
  608. package/dest/node-cjs/log/node/index.js +0 -42
  609. package/dest/node-cjs/log/types.d.ts +0 -6
  610. package/dest/node-cjs/log/types.d.ts.map +0 -1
  611. package/dest/node-cjs/log/types.js +0 -3
  612. package/dest/node-cjs/serialize/index.d.ts +0 -2
  613. package/dest/node-cjs/serialize/index.d.ts.map +0 -1
  614. package/dest/node-cjs/serialize/index.js +0 -5
  615. package/dest/node-cjs/serialize/serialize.d.ts +0 -18
  616. package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
  617. package/dest/node-cjs/serialize/serialize.js +0 -82
  618. package/dest/node-cjs/types/fields.d.ts +0 -23
  619. package/dest/node-cjs/types/fields.d.ts.map +0 -1
  620. package/dest/node-cjs/types/fields.js +0 -65
  621. package/dest/node-cjs/types/index.d.ts +0 -3
  622. package/dest/node-cjs/types/index.d.ts.map +0 -1
  623. package/dest/node-cjs/types/index.js +0 -6
  624. package/dest/node-cjs/types/point.d.ts +0 -18
  625. package/dest/node-cjs/types/point.d.ts.map +0 -1
  626. package/dest/node-cjs/types/point.js +0 -32
  627. package/src/bb_backends/sync_to_async_adapter.ts +0 -21
  628. package/src/cbind/schema_compiler.ts +0 -745
  629. package/src/log/browser/index.ts +0 -35
  630. package/src/log/index.ts +0 -1
  631. package/src/log/node/index.ts +0 -52
  632. package/src/log/types.ts +0 -6
  633. package/src/serialize/index.ts +0 -1
  634. package/src/serialize/serialize.ts +0 -75
  635. package/src/types/index.ts +0 -2
  636. package/src/types/point.ts +0 -32
  637. /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
@@ -0,0 +1,262 @@
1
+ import { createRequire } from 'module';
2
+ import { spawn, ChildProcess } from 'child_process';
3
+ import { openSync, closeSync } from 'fs';
4
+ import { IMsgpackBackendAsync } from '../interface.js';
5
+ import { findNapiBinary, findPackageRoot } from './platform.js';
6
+ import { threadId } from 'worker_threads';
7
+
8
+ let instanceCounter = 0;
9
+
10
+ /**
11
+ * Asynchronous shared memory backend that communicates with bb binary via shared memory.
12
+ * Uses NAPI module with background thread polling for async operations.
13
+ * Supports request pipelining - multiple requests can be in flight simultaneously.
14
+ *
15
+ * Architecture (matches socket backend pattern):
16
+ * - bb acts as the SERVER, TypeScript is the CLIENT
17
+ * - bb creates the shared memory region
18
+ * - TypeScript connects via NAPI wrapper (MsgpackClientAsync)
19
+ * - TypeScript manages promise queue (single-threaded, no mutex needed)
20
+ * - C++ background thread polls for responses, calls JavaScript callback
21
+ * - JavaScript callback pops queue and resolves promises in FIFO order
22
+ */
23
+ export class BarretenbergNativeShmAsyncBackend implements IMsgpackBackendAsync {
24
+ private process: ChildProcess;
25
+ private client: any; // NAPI MsgpackClientAsync instance
26
+ private logFd?: number; // File descriptor for logs
27
+
28
+ // Queue of pending callbacks for pipelined requests
29
+ // Responses come back in FIFO order, so we match them with queued callbacks
30
+ private pendingCallbacks: Array<{
31
+ resolve: (data: Uint8Array) => void;
32
+ reject: (error: Error) => void;
33
+ }> = [];
34
+
35
+ private constructor(process: ChildProcess, client: any, logFd?: number) {
36
+ this.process = process;
37
+ this.client = client;
38
+ this.logFd = logFd;
39
+
40
+ // Register our response handler with the C++ client
41
+ // This callback will be invoked from the background thread via ThreadSafeFunction
42
+ this.client.setResponseCallback((responseBuffer: Buffer) => {
43
+ this.handleResponse(responseBuffer);
44
+ });
45
+ }
46
+
47
+ /**
48
+ * Handle response from C++ background thread
49
+ * Dequeues the next pending callback and resolves it (FIFO order)
50
+ */
51
+ private handleResponse(responseBuffer: Buffer): void {
52
+ // Response is complete - dequeue the next pending callback (FIFO)
53
+ const callback = this.pendingCallbacks.shift();
54
+ if (callback) {
55
+ callback.resolve(new Uint8Array(responseBuffer));
56
+ } else {
57
+ // This shouldn't happen - response without a pending request
58
+ console.warn('Received response but no pending callback');
59
+ }
60
+
61
+ // If no more pending callbacks, release ref to allow process to exit
62
+ if (this.pendingCallbacks.length === 0) {
63
+ this.client.release();
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Create and initialize an async shared memory backend.
69
+ * @param bbBinaryPath Path to bb binary
70
+ * @param threads Optional number of threads (defaults to min(32, num_cpus))
71
+ * @param logger Optional logger function for bb output
72
+ */
73
+ static async new(
74
+ bbBinaryPath: string,
75
+ napiPath: string,
76
+ threads?: number,
77
+ logger?: (msg: string) => void,
78
+ ): Promise<BarretenbergNativeShmAsyncBackend> {
79
+ // Import the NAPI module
80
+ // The addon is built to the nodejs_module directory
81
+ const addonPath = findNapiBinary(napiPath);
82
+ // Try loading
83
+ let addon: any = null;
84
+ try {
85
+ const require = createRequire(findPackageRoot()!);
86
+ addon = require(addonPath!);
87
+ } catch (err) {
88
+ // Addon not built yet or not available
89
+ throw new Error('Shared memory async NAPI not available.');
90
+ }
91
+
92
+ // Create a unique shared memory name
93
+ const shmName = `bb-async-${process.pid}-${threadId}-${instanceCounter++}`;
94
+
95
+ // If threads not set use num cpu cores, max 16 (same as socket backend)
96
+ const hwc = threads ? threads.toString() : '16';
97
+ const env = { ...process.env, HARDWARE_CONCURRENCY: hwc };
98
+
99
+ // Set up file logging if logger is provided
100
+ // Direct file redirection bypasses Node event loop - logs are written even if process hangs
101
+ let logFd: number | undefined;
102
+ let logPath: string | undefined;
103
+ if (logger) {
104
+ logPath = `/tmp/${shmName}.log`;
105
+ logFd = openSync(logPath, 'w');
106
+ logger(`BB process logs redirected to: ${logPath}`);
107
+ }
108
+
109
+ // Spawn bb process with shared memory mode
110
+ // Use larger ring buffers for async mode to support pipelining
111
+ const args = [
112
+ 'msgpack',
113
+ 'run',
114
+ '--input',
115
+ `${shmName}.shm`,
116
+ '--request-ring-size',
117
+ `${1024 * 1024 * 4}`,
118
+ '--response-ring-size',
119
+ `${1024 * 1024 * 4}`,
120
+ ];
121
+ const bbProcess = spawn(bbBinaryPath, args, {
122
+ stdio: ['ignore', logFd ?? 'ignore', logFd ?? 'ignore'],
123
+ env,
124
+ });
125
+
126
+ // Disconnect from event loop so process can exit without waiting for bb
127
+ // The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
128
+ // so it will automatically exit when Node.js exits
129
+ bbProcess.unref();
130
+
131
+ // Track if process has exited
132
+ let processExited = false;
133
+ let exitError: Error | null = null;
134
+
135
+ bbProcess.on('error', err => {
136
+ processExited = true;
137
+ exitError = new Error(`Native backend process error: ${err.message}`);
138
+ });
139
+
140
+ bbProcess.on('exit', (code, signal) => {
141
+ processExited = true;
142
+ if (code !== null && code !== 0) {
143
+ exitError = new Error(`Native backend process exited with code ${code}`);
144
+ } else if (signal && signal !== 'SIGTERM') {
145
+ exitError = new Error(`Native backend process killed with signal ${signal}`);
146
+ }
147
+ });
148
+
149
+ // Wait for bb to create shared memory
150
+ // Retry connection every 100ms for up to 5 seconds (longer than sync for thread startup)
151
+ const retryInterval = 100; // ms
152
+ const timeout = 5000; // ms
153
+ const maxAttempts = Math.floor(timeout / retryInterval);
154
+ let client: any = null;
155
+
156
+ try {
157
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
158
+ // Check if bb process has exited before attempting connection
159
+ if (processExited) {
160
+ throw exitError || new Error('Native backend process exited unexpectedly during startup');
161
+ }
162
+
163
+ // Wait before attempting connection (except first attempt)
164
+ if (attempt > 0) {
165
+ await new Promise(resolve => setTimeout(resolve, retryInterval));
166
+ }
167
+
168
+ try {
169
+ // Create NAPI async client
170
+ client = new addon.MsgpackClientAsync(shmName);
171
+ break; // Success!
172
+ } catch (err: any) {
173
+ // Connection failed, will retry
174
+ if (attempt === maxAttempts - 1) {
175
+ // Last attempt failed - check one more time if process exited
176
+ if (processExited && exitError) {
177
+ throw exitError;
178
+ }
179
+ throw new Error(`Failed to connect to shared memory after ${timeout}ms: ${err.message}`);
180
+ }
181
+ }
182
+ }
183
+
184
+ if (!client) {
185
+ throw new Error('Failed to create client connection');
186
+ }
187
+
188
+ return new BarretenbergNativeShmAsyncBackend(bbProcess, client, logFd);
189
+ } finally {
190
+ // If we failed to connect, ensure the process is killed and log file closed
191
+ if (!client) {
192
+ bbProcess.kill('SIGKILL');
193
+ if (logFd !== undefined) {
194
+ try {
195
+ closeSync(logFd);
196
+ } catch (e) {
197
+ // Ignore errors during cleanup
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+
204
+ /**
205
+ * Send a msgpack request asynchronously.
206
+ * Supports pipelining - can be called multiple times before awaiting responses.
207
+ * Use Promise.all() to send multiple requests concurrently.
208
+ *
209
+ * Example:
210
+ * const results = await Promise.all([
211
+ * backend.call(buf1),
212
+ * backend.call(buf2),
213
+ * backend.call(buf3)
214
+ * ]);
215
+ *
216
+ * @param inputBuffer The msgpack-encoded request
217
+ * @returns Promise resolving to msgpack-encoded response
218
+ */
219
+ async call(inputBuffer: Uint8Array): Promise<Uint8Array> {
220
+ return new Promise((resolve, reject) => {
221
+ // If this is the first pending callback, acquire ref to keep event loop alive
222
+ if (this.pendingCallbacks.length === 0) {
223
+ this.client.acquire();
224
+ }
225
+
226
+ // Enqueue this promise's callbacks (FIFO order)
227
+ this.pendingCallbacks.push({ resolve, reject });
228
+
229
+ try {
230
+ // Send request to shared memory (synchronous write)
231
+ // C++ call() no longer returns a promise - we manage them here
232
+ this.client.call(Buffer.from(inputBuffer));
233
+ } catch (err: any) {
234
+ // Send failed - dequeue the callback we just added and reject
235
+ this.pendingCallbacks.pop();
236
+
237
+ // If queue is now empty, release ref to allow exit
238
+ if (this.pendingCallbacks.length === 0) {
239
+ this.client.release();
240
+ }
241
+
242
+ reject(new Error(`Shared memory async call failed: ${err.message}`));
243
+ }
244
+ });
245
+ }
246
+
247
+ async destroy(): Promise<void> {
248
+ // Kill the bb process
249
+ // Background thread and callbacks will be cleaned up by OS on process exit
250
+ this.process.kill('SIGTERM');
251
+ this.process.removeAllListeners();
252
+
253
+ // Close log file if open
254
+ if (this.logFd !== undefined) {
255
+ try {
256
+ closeSync(this.logFd);
257
+ } catch (e) {
258
+ // Ignore errors during cleanup
259
+ }
260
+ }
261
+ }
262
+ }
@@ -4,7 +4,10 @@ import * as fs from 'fs';
4
4
  import * as os from 'os';
5
5
  import * as path from 'path';
6
6
  import { IMsgpackBackendAsync } from '../interface.js';
7
- import { findPackageRoot } from './platform.js';
7
+ import readline from 'readline';
8
+ import { threadId } from 'worker_threads';
9
+
10
+ let instanceCounter = 0;
8
11
 
9
12
  /**
10
13
  * Asynchronous native backend that communicates with bb binary via Unix Domain Socket.
@@ -40,9 +43,9 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
40
43
  private responseBuffer: Buffer | null = null;
41
44
  private responseBytesRead: number = 0;
42
45
 
43
- constructor(bbBinaryPath: string, threads?: number) {
46
+ constructor(bbBinaryPath: string, threads?: number, logger?: (msg: string) => void) {
44
47
  // Create a unique socket path in temp directory
45
- this.socketPath = path.join(os.tmpdir(), `bb-${process.pid}-${Date.now()}.sock`);
48
+ this.socketPath = path.join(os.tmpdir(), `bb-${process.pid}-${threadId}-${instanceCounter++}.sock`);
46
49
 
47
50
  // Ensure socket path doesn't already exist (cleanup from previous crashes)
48
51
  if (fs.existsSync(this.socketPath)) {
@@ -57,18 +60,28 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
57
60
  connectionReject = reject;
58
61
  });
59
62
 
60
- // Set HARDWARE_CONCURRENCY if threads specified
61
- const env = threads !== undefined ? { ...process.env, HARDWARE_CONCURRENCY: threads.toString() } : process.env;
63
+ // If threads not set use num cpu cores, max 16.
64
+ const hwc = threads ? threads.toString() : Math.min(16, os.cpus().length).toString();
65
+ const env = { ...process.env, HARDWARE_CONCURRENCY: hwc };
62
66
 
63
67
  // Spawn bb process - it will create the socket server
64
- const args = [bbBinaryPath, 'msgpack', 'run', '--input', this.socketPath];
65
- this.process = spawn(findPackageRoot() + '/scripts/kill_wrapper.sh', args, {
66
- stdio: ['ignore', 'ignore', 'ignore'],
68
+ const args = ['msgpack', 'run', '--input', this.socketPath];
69
+ this.process = spawn(bbBinaryPath, args, {
70
+ stdio: ['ignore', logger ? 'pipe' : 'ignore', logger ? 'pipe' : 'ignore'],
67
71
  env,
68
72
  });
69
- // Disconnect from event loop so process can exit. The kill wrapper will reap bb once parent (node) dies.
73
+
74
+ // Disconnect from event loop so process can exit without waiting for bb
75
+ // The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
76
+ // so it will automatically exit when Node.js exits
70
77
  this.process.unref();
71
78
 
79
+ if (logger) {
80
+ logger("Logger attached to bb process. DON'T FORGET TO DESTROY THE BACKEND to allow Node.js to exit.");
81
+ readline.createInterface({ input: this.process.stdout! }).on('line', logger);
82
+ readline.createInterface({ input: this.process.stderr! }).on('line', logger);
83
+ }
84
+
72
85
  this.process.on('error', err => {
73
86
  if (connectionReject) {
74
87
  connectionReject(new Error(`Native backend process error: ${err.message}`));
@@ -157,7 +170,7 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
157
170
 
158
171
  // Set up event handlers
159
172
  this.socket.once('connect', () => {
160
- this.socket!.unref();
173
+ // Socket starts referenced - will be unreferenced when no callbacks pending
161
174
 
162
175
  // Clear connection timeout on successful connection
163
176
  if (this.connectionTimeout) {
@@ -232,6 +245,11 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
232
245
  console.warn('Received response but no pending callback');
233
246
  }
234
247
 
248
+ // If no more pending callbacks, unref socket to allow process to exit
249
+ if (this.pendingCallbacks.length === 0 && this.socket) {
250
+ this.socket.unref();
251
+ }
252
+
235
253
  // Reset state for next message
236
254
  this.readingLength = true;
237
255
  this.lengthBytesRead = 0;
@@ -252,6 +270,11 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
252
270
  }
253
271
 
254
272
  return new Promise((resolve, reject) => {
273
+ // If this is the first pending callback, ref the socket to keep event loop alive
274
+ if (this.pendingCallbacks.length === 0) {
275
+ this.socket!.ref();
276
+ }
277
+
255
278
  // Enqueue this promise's callbacks (FIFO order)
256
279
  this.pendingCallbacks.push({ resolve, reject });
257
280
 
@@ -298,15 +321,8 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
298
321
  }
299
322
 
300
323
  async destroy(): Promise<void> {
301
- // Cleanup first (closes socket, unrefs everything)
302
324
  this.cleanup();
303
-
304
- // Send SIGTERM for graceful shutdown
305
- // Process is unref'd so won't block event loop - just kill and return
306
- try {
307
- this.process.kill('SIGTERM');
308
- } catch (e) {
309
- // Already dead
310
- }
325
+ this.process.kill('SIGTERM');
326
+ this.process.removeAllListeners();
311
327
  }
312
328
  }
@@ -24,7 +24,12 @@ export function findPackageRoot(): string | null {
24
24
  while (currentDir !== root) {
25
25
  const packageJsonPath = path.join(currentDir, 'package.json');
26
26
  if (fs.existsSync(packageJsonPath)) {
27
- return currentDir;
27
+ // Check if this is the actual package root by verifying it has a 'build' directory
28
+ // This ensures we skip intermediate package.json files (e.g., in dest/node-cjs/)
29
+ const buildDir = path.join(currentDir, 'build');
30
+ if (fs.existsSync(buildDir)) {
31
+ return currentDir;
32
+ }
28
33
  }
29
34
  currentDir = path.dirname(currentDir);
30
35
  }
@@ -3,7 +3,6 @@ import { fetchModuleAndThreads } from '../barretenberg_wasm/index.js';
3
3
  import { IMsgpackBackendSync, IMsgpackBackendAsync } from './interface.js';
4
4
  import { createMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js';
5
5
  import { getRemoteBarretenbergWasm } from '../barretenberg_wasm/helpers/index.js';
6
- import { createDebugLogger } from '../log/index.js';
7
6
  import { proxy } from 'comlink';
8
7
 
9
8
  /**
@@ -76,7 +75,7 @@ export class BarretenbergWasmAsyncBackend implements IMsgpackBackendAsync {
76
75
  await wasm.init(
77
76
  module,
78
77
  threads,
79
- proxy(options.logger ?? createDebugLogger('bb_wasm_async')),
78
+ proxy(options.logger ?? (() => {})),
80
79
  options.memory?.initial,
81
80
  options.memory?.maximum,
82
81
  );
@@ -0,0 +1,54 @@
1
+ import { BarretenbergWasmSyncBackend } from '../bb_backends/wasm.js';
2
+ import { SyncApi } from '../cbind/generated/sync.js';
3
+ import { BBApiException } from '../bbapi_exception.js';
4
+
5
+ describe('BBApi Exception Handling from bb.js', () => {
6
+ let backend: BarretenbergWasmSyncBackend;
7
+ let api: SyncApi;
8
+
9
+ beforeAll(async () => {
10
+ backend = await BarretenbergWasmSyncBackend.new();
11
+ api = new SyncApi(backend);
12
+ }, 60000);
13
+
14
+ afterAll(() => {
15
+ backend.destroy();
16
+ });
17
+
18
+ it('should catch CRS initialization exceptions from WASM', () => {
19
+ // Create an SrsInitSrs command with invalid data that will cause an exception in C++
20
+ // We pass buffers that are too small, which will cause validation to fail
21
+ const invalidCommand = {
22
+ numPoints: 100, // Request 100 points (requires 6400 bytes)
23
+ pointsBuf: new Uint8Array(10), // Only 10 bytes - will cause exception
24
+ g2Point: new Uint8Array(10), // Only 10 bytes (needs 128) - will cause exception
25
+ };
26
+
27
+ // In WASM builds, throw_or_abort calls abort directly which throws a generic Error
28
+ // In native builds with exceptions, our try-catch in bbapi converts it to ErrorResponse
29
+ // This test verifies that errors are catchable from bb.js (even if as generic Error in WASM)
30
+ expect(() => {
31
+ api.srsInitSrs(invalidCommand);
32
+ }).toThrow();
33
+ });
34
+
35
+ it('should return error message from caught exception', () => {
36
+ const invalidCommand = {
37
+ numPoints: 100,
38
+ pointsBuf: new Uint8Array(10),
39
+ g2Point: new Uint8Array(10),
40
+ };
41
+
42
+ try {
43
+ api.srsInitSrs(invalidCommand);
44
+ fail('Expected exception to be thrown');
45
+ } catch (error) {
46
+ // Error is catchable and contains a useful message
47
+ expect(error).toBeInstanceOf(Error);
48
+ expect((error as Error).message).toBeTruthy();
49
+ expect((error as Error).message.length).toBeGreaterThan(0);
50
+ expect((error as Error).message).toContain('g1_identity');
51
+ console.log('Successfully caught exception from bb.js with message:', (error as Error).message);
52
+ }
53
+ });
54
+ });
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ import { findBbBinary } from '../bb_backends/node/platform.js';
3
+ import { spawnSync } from 'node:child_process';
4
+
5
+ const bin = findBbBinary();
6
+
7
+ if (!bin) {
8
+ console.error('Could not find bb binary. Please ensure it is built and accessible.');
9
+ process.exit(1);
10
+ }
11
+
12
+ const result = spawnSync(bin, process.argv.slice(2), { stdio: 'inherit' });
13
+
14
+ process.exit(result.status ?? 1);
@@ -1,5 +1,8 @@
1
1
  /**
2
- * Generate TypeScript bindings from msgpack schema
2
+ * Multi-language code generation from BB msgpack schema
3
+ *
4
+ * Architecture:
5
+ * Raw Schema → SchemaVisitor → CompiledSchema IR → Language Codegens → Files
3
6
  */
4
7
 
5
8
  import { writeFileSync, mkdirSync } from 'fs';
@@ -8,36 +11,42 @@ import { exec } from 'child_process';
8
11
  import { promisify } from 'util';
9
12
  import { fileURLToPath } from 'url';
10
13
  import { unpack } from 'msgpackr';
11
- import {
12
- createSharedTypesCompiler,
13
- createSyncApiCompiler,
14
- createAsyncApiCompiler,
15
- type SchemaCompiler,
16
- } from './schema_compiler.js';
14
+ import { SchemaVisitor, type CompiledSchema } from './schema_visitor.js';
15
+ import { TypeScriptCodegen } from './typescript_codegen.js';
16
+ import { RustCodegen } from './rust_codegen.js';
17
17
 
18
18
  const execAsync = promisify(exec);
19
19
 
20
- interface GeneratorConfig {
20
+ // Language generators - all use the same CompiledSchema IR
21
+ interface LanguageGenerator {
21
22
  name: string;
22
- outputFile: string;
23
- createCompiler: () => SchemaCompiler;
23
+ enabled: boolean;
24
+ generate: (compiled: CompiledSchema) => Array<{ path: string; content: string }>;
24
25
  }
25
26
 
26
- const GENERATORS: GeneratorConfig[] = [
27
+ const LANGUAGE_GENERATORS: LanguageGenerator[] = [
27
28
  {
28
- name: 'Shared types',
29
- outputFile: 'generated/api_types.ts',
30
- createCompiler: createSharedTypesCompiler,
29
+ name: 'TypeScript',
30
+ enabled: true,
31
+ generate: (compiled) => {
32
+ const tsGen = new TypeScriptCodegen();
33
+ return [
34
+ { path: 'generated/api_types.ts', content: tsGen.generateTypes(compiled) },
35
+ { path: 'generated/sync.ts', content: tsGen.generateSyncApi(compiled) },
36
+ { path: 'generated/async.ts', content: tsGen.generateAsyncApi(compiled) },
37
+ ];
38
+ },
31
39
  },
32
40
  {
33
- name: 'Sync API',
34
- outputFile: 'generated/sync.ts',
35
- createCompiler: createSyncApiCompiler,
36
- },
37
- {
38
- name: 'Async API',
39
- outputFile: 'generated/async.ts',
40
- createCompiler: createAsyncApiCompiler,
41
+ name: 'Rust',
42
+ enabled: true,
43
+ generate: (compiled) => {
44
+ const rustGen = new RustCodegen();
45
+ return [
46
+ { path: '../../../rust/barretenberg-rs/src/generated_types.rs', content: rustGen.generateTypes(compiled) },
47
+ { path: '../../../rust/barretenberg-rs/src/api.rs', content: rustGen.generateApi(compiled) },
48
+ ];
49
+ },
41
50
  },
42
51
  ];
43
52
 
@@ -56,29 +65,39 @@ async function generate() {
56
65
  throw new Error('Invalid schema: missing commands or responses');
57
66
  }
58
67
 
59
- console.log('Generating TypeScript bindings...\n');
68
+ // Compile schema once using visitor pattern
69
+ console.log('Compiling schema...');
70
+ const visitor = new SchemaVisitor();
71
+ const compiled = visitor.visit(schema.commands, schema.responses);
72
+
73
+ console.log(`Found ${compiled.commands.length} commands, ${compiled.structs.size} structs\n`);
60
74
 
61
75
  // Ensure output directory exists
62
76
  const outputDir = join(__dirname, 'generated');
63
77
  mkdirSync(outputDir, { recursive: true });
64
78
 
65
- // Generate each output file
66
- for (const config of GENERATORS) {
67
- const compiler = config.createCompiler();
68
- compiler.processApiSchema(schema.commands, schema.responses);
79
+ // Generate all language bindings from compiled IR
80
+ for (const generator of LANGUAGE_GENERATORS) {
81
+ if (!generator.enabled) {
82
+ console.log(`⊘ ${generator.name}: disabled`);
83
+ continue;
84
+ }
69
85
 
70
- const outputPath = join(__dirname, config.outputFile);
71
- const content = compiler.compile();
72
- writeFileSync(outputPath, content);
86
+ const files = generator.generate(compiled);
73
87
 
74
- console.log(`✓ ${config.name}: ${outputPath}`);
88
+ for (const file of files) {
89
+ const outputPath = join(__dirname, file.path);
90
+ mkdirSync(dirname(outputPath), { recursive: true });
91
+ writeFileSync(outputPath, file.content);
92
+ console.log(`✓ ${generator.name}: ${outputPath}`);
93
+ }
75
94
  }
76
95
 
77
96
  // Generate curve constants
78
97
  console.log('\nGenerating curve constants...');
79
98
  await generateCurveConstants(bbBuildPath, outputDir);
80
99
 
81
- console.log('\nGeneration complete!');
100
+ console.log('\n✨ Generation complete! Clean, maintainable, multi-language architecture.');
82
101
  }
83
102
 
84
103
  async function generateCurveConstants(bbBuildPath: string, outputDir: string) {