@aztec/foundation 0.76.4 → 0.77.0-testnet-ignition.21

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 (459) hide show
  1. package/dest/array/array.d.ts +1 -1
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +19 -26
  4. package/dest/array/index.js +0 -1
  5. package/dest/async-map/index.js +2 -4
  6. package/dest/async-pool/index.js +6 -9
  7. package/dest/bigint-buffer/index.js +6 -13
  8. package/dest/buffer/buffer32.d.ts +1 -1
  9. package/dest/buffer/buffer32.d.ts.map +1 -1
  10. package/dest/buffer/buffer32.js +53 -66
  11. package/dest/buffer/index.js +0 -1
  12. package/dest/collection/array.d.ts +1 -1
  13. package/dest/collection/array.d.ts.map +1 -1
  14. package/dest/collection/array.js +47 -59
  15. package/dest/collection/index.js +0 -1
  16. package/dest/collection/object.js +9 -9
  17. package/dest/committable/committable.js +15 -20
  18. package/dest/committable/index.js +0 -1
  19. package/dest/config/env_var.d.ts +1 -1
  20. package/dest/config/env_var.d.ts.map +1 -1
  21. package/dest/config/env_var.js +1 -2
  22. package/dest/config/index.d.ts +1 -1
  23. package/dest/config/index.d.ts.map +1 -1
  24. package/dest/config/index.js +31 -36
  25. package/dest/crypto/aes128/index.d.ts +34 -0
  26. package/dest/crypto/aes128/index.d.ts.map +1 -0
  27. package/dest/crypto/aes128/index.js +49 -0
  28. package/dest/crypto/ecdsa/index.d.ts +39 -0
  29. package/dest/crypto/ecdsa/index.d.ts.map +1 -0
  30. package/dest/crypto/ecdsa/index.js +88 -0
  31. package/dest/crypto/ecdsa/signature.d.ts +71 -0
  32. package/dest/crypto/ecdsa/signature.d.ts.map +1 -0
  33. package/dest/crypto/ecdsa/signature.js +92 -0
  34. package/dest/crypto/grumpkin/index.d.ts +47 -0
  35. package/dest/crypto/grumpkin/index.d.ts.map +1 -0
  36. package/dest/crypto/grumpkin/index.js +154 -0
  37. package/dest/crypto/index.d.ts +6 -0
  38. package/dest/crypto/index.d.ts.map +1 -1
  39. package/dest/crypto/index.js +6 -1
  40. package/dest/crypto/keccak/index.js +60 -69
  41. package/dest/crypto/keys/index.js +2 -3
  42. package/dest/crypto/pedersen/index.js +0 -1
  43. package/dest/crypto/pedersen/pedersen.elliptic.js +153 -146
  44. package/dest/crypto/pedersen/pedersen.noble.js +140 -142
  45. package/dest/crypto/pedersen/pedersen.wasm.js +17 -16
  46. package/dest/crypto/poseidon/index.js +15 -19
  47. package/dest/crypto/random/index.js +7 -12
  48. package/dest/crypto/random/randomness_singleton.js +12 -12
  49. package/dest/crypto/schnorr/index.d.ts +30 -0
  50. package/dest/crypto/schnorr/index.d.ts.map +1 -0
  51. package/dest/crypto/schnorr/index.js +68 -0
  52. package/dest/crypto/schnorr/signature.d.ts +70 -0
  53. package/dest/crypto/schnorr/signature.d.ts.map +1 -0
  54. package/dest/crypto/schnorr/signature.js +93 -0
  55. package/dest/crypto/secp256k1/index.d.ts +32 -0
  56. package/dest/crypto/secp256k1/index.d.ts.map +1 -0
  57. package/dest/crypto/secp256k1/index.js +116 -0
  58. package/dest/crypto/secp256k1-signer/index.js +0 -1
  59. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +2 -2
  60. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  61. package/dest/crypto/secp256k1-signer/secp256k1_signer.js +8 -9
  62. package/dest/crypto/secp256k1-signer/utils.js +11 -16
  63. package/dest/crypto/serialize.d.ts +53 -0
  64. package/dest/crypto/serialize.d.ts.map +1 -0
  65. package/dest/crypto/serialize.js +68 -0
  66. package/dest/crypto/sha256/index.js +80 -30
  67. package/dest/crypto/sha512/index.js +2 -4
  68. package/dest/crypto/signature/index.d.ts +19 -0
  69. package/dest/crypto/signature/index.d.ts.map +1 -0
  70. package/dest/crypto/signature/index.js +3 -0
  71. package/dest/crypto/sync/index.js +1 -2
  72. package/dest/crypto/sync/pedersen/index.js +14 -13
  73. package/dest/crypto/sync/poseidon/index.js +10 -14
  74. package/dest/decorators/index.js +0 -1
  75. package/dest/decorators/memoize.js +1 -2
  76. package/dest/error/index.js +6 -19
  77. package/dest/eth-address/index.js +92 -113
  78. package/dest/eth-signature/eth_signature.js +21 -27
  79. package/dest/eth-signature/index.js +0 -1
  80. package/dest/fields/coordinate.d.ts +1 -1
  81. package/dest/fields/coordinate.d.ts.map +1 -1
  82. package/dest/fields/coordinate.js +47 -46
  83. package/dest/fields/fields.d.ts.map +1 -1
  84. package/dest/fields/fields.js +112 -126
  85. package/dest/fields/index.js +0 -1
  86. package/dest/fields/point.js +119 -129
  87. package/dest/fs/index.js +0 -1
  88. package/dest/fs/run_in_dir.d.ts +1 -1
  89. package/dest/fs/run_in_dir.d.ts.map +1 -1
  90. package/dest/fs/run_in_dir.js +16 -7
  91. package/dest/index.d.ts +0 -2
  92. package/dest/index.d.ts.map +1 -1
  93. package/dest/index.js +0 -3
  94. package/dest/iterable/all.js +3 -4
  95. package/dest/iterable/filter.js +10 -11
  96. package/dest/iterable/index.js +0 -1
  97. package/dest/iterable/isAsyncIt.js +1 -3
  98. package/dest/iterable/map.js +10 -11
  99. package/dest/iterable/peek.js +14 -14
  100. package/dest/iterable/sort.js +4 -5
  101. package/dest/iterable/take.js +6 -7
  102. package/dest/iterable/toArray.js +1 -2
  103. package/dest/jest/setup.js +7 -0
  104. package/dest/json-rpc/client/fetch.js +25 -20
  105. package/dest/json-rpc/client/index.js +0 -1
  106. package/dest/json-rpc/client/safe_json_rpc_client.js +20 -9
  107. package/dest/json-rpc/client/undici.d.ts +1 -1
  108. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  109. package/dest/json-rpc/client/undici.js +16 -17
  110. package/dest/json-rpc/convert.d.ts +1 -1
  111. package/dest/json-rpc/convert.d.ts.map +1 -1
  112. package/dest/json-rpc/convert.js +10 -20
  113. package/dest/json-rpc/fixtures/class_a.js +8 -5
  114. package/dest/json-rpc/fixtures/class_b.js +8 -5
  115. package/dest/json-rpc/fixtures/test_state.js +53 -40
  116. package/dest/json-rpc/index.js +0 -1
  117. package/dest/json-rpc/js_utils.js +2 -5
  118. package/dest/json-rpc/server/index.js +0 -1
  119. package/dest/json-rpc/server/safe_json_rpc_server.js +145 -101
  120. package/dest/json-rpc/server/telemetry.js +0 -2
  121. package/dest/json-rpc/test/index.js +0 -1
  122. package/dest/json-rpc/test/integration.d.ts +1 -1
  123. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  124. package/dest/json-rpc/test/integration.js +11 -5
  125. package/dest/log/console.d.ts +1 -1
  126. package/dest/log/console.d.ts.map +1 -1
  127. package/dest/log/console.js +14 -16
  128. package/dest/log/debug.d.ts +1 -1
  129. package/dest/log/debug.d.ts.map +1 -1
  130. package/dest/log/debug.js +9 -18
  131. package/dest/log/gcloud-logger-config.js +17 -15
  132. package/dest/log/index.d.ts +1 -0
  133. package/dest/log/index.d.ts.map +1 -1
  134. package/dest/log/index.js +1 -1
  135. package/dest/log/libp2p_logger.d.ts +7 -0
  136. package/dest/log/libp2p_logger.d.ts.map +1 -0
  137. package/dest/log/libp2p_logger.js +55 -0
  138. package/dest/log/log-filters.js +14 -13
  139. package/dest/log/log-levels.js +10 -2
  140. package/dest/log/log_fn.js +1 -2
  141. package/dest/log/log_history.js +21 -25
  142. package/dest/log/pino-logger.d.ts +8 -4
  143. package/dest/log/pino-logger.d.ts.map +1 -1
  144. package/dest/log/pino-logger.js +92 -74
  145. package/dest/message/index.js +7 -3
  146. package/dest/mutex/index.d.ts +1 -1
  147. package/dest/mutex/index.d.ts.map +1 -1
  148. package/dest/mutex/index.js +34 -32
  149. package/dest/mutex/mutex_database.js +4 -2
  150. package/dest/noir/index.js +0 -1
  151. package/dest/noir/noir_package_config.js +13 -8
  152. package/dest/promise/index.js +0 -1
  153. package/dest/promise/running-promise.d.ts +8 -2
  154. package/dest/promise/running-promise.d.ts.map +1 -1
  155. package/dest/promise/running-promise.js +44 -31
  156. package/dest/promise/utils.js +3 -5
  157. package/dest/queue/base_memory_queue.js +51 -59
  158. package/dest/queue/batch_queue.js +34 -27
  159. package/dest/queue/bounded_serial_queue.js +41 -51
  160. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  161. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  162. package/dest/queue/fifo_memory_queue.js +4 -8
  163. package/dest/queue/index.js +0 -1
  164. package/dest/queue/priority_memory_queue.js +3 -4
  165. package/dest/queue/priority_queue.js +5 -5
  166. package/dest/queue/semaphore.js +15 -19
  167. package/dest/queue/serial_queue.js +37 -47
  168. package/dest/retry/index.js +21 -18
  169. package/dest/running-promise/index.js +0 -1
  170. package/dest/schemas/api.d.ts +2 -2
  171. package/dest/schemas/api.d.ts.map +1 -1
  172. package/dest/schemas/api.js +2 -7
  173. package/dest/schemas/index.d.ts +1 -1
  174. package/dest/schemas/index.d.ts.map +1 -1
  175. package/dest/schemas/index.js +1 -2
  176. package/dest/schemas/parse.js +4 -8
  177. package/dest/schemas/schemas.d.ts +1 -16
  178. package/dest/schemas/schemas.d.ts.map +1 -1
  179. package/dest/schemas/schemas.js +28 -56
  180. package/dest/schemas/types.d.ts +1 -1
  181. package/dest/schemas/types.d.ts.map +1 -1
  182. package/dest/schemas/types.js +1 -2
  183. package/dest/schemas/utils.d.ts +1 -1
  184. package/dest/schemas/utils.d.ts.map +1 -1
  185. package/dest/schemas/utils.js +18 -31
  186. package/dest/serialize/buffer_reader.d.ts +1 -1
  187. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  188. package/dest/serialize/buffer_reader.js +164 -188
  189. package/dest/serialize/field_reader.d.ts +1 -1
  190. package/dest/serialize/field_reader.d.ts.map +1 -1
  191. package/dest/serialize/field_reader.js +70 -79
  192. package/dest/serialize/free_funcs.d.ts +1 -1
  193. package/dest/serialize/free_funcs.d.ts.map +1 -1
  194. package/dest/serialize/free_funcs.js +40 -37
  195. package/dest/serialize/index.js +0 -1
  196. package/dest/serialize/serialize.js +72 -83
  197. package/dest/serialize/type_registry.js +10 -14
  198. package/dest/serialize/types.js +4 -5
  199. package/dest/sleep/index.js +25 -29
  200. package/dest/string/index.js +0 -1
  201. package/dest/testing/files/index.js +3 -7
  202. package/dest/testing/index.js +0 -1
  203. package/dest/testing/port_allocator.js +7 -10
  204. package/dest/testing/snapshot_serializer.d.ts +1 -1
  205. package/dest/testing/snapshot_serializer.d.ts.map +1 -1
  206. package/dest/testing/snapshot_serializer.js +14 -9
  207. package/dest/testing/test_data.js +7 -8
  208. package/dest/timer/date.js +9 -7
  209. package/dest/timer/elapsed.js +10 -7
  210. package/dest/timer/index.js +0 -1
  211. package/dest/timer/timeout.js +34 -34
  212. package/dest/timer/timer.js +17 -21
  213. package/dest/transport/browser/index.js +0 -1
  214. package/dest/transport/browser/message_port_socket.d.ts +1 -1
  215. package/dest/transport/browser/message_port_socket.d.ts.map +1 -1
  216. package/dest/transport/browser/message_port_socket.js +26 -30
  217. package/dest/transport/browser/shared_worker_connector.d.ts +1 -1
  218. package/dest/transport/browser/shared_worker_connector.d.ts.map +1 -1
  219. package/dest/transport/browser/shared_worker_connector.js +8 -10
  220. package/dest/transport/browser/shared_worker_listener.d.ts +1 -1
  221. package/dest/transport/browser/shared_worker_listener.d.ts.map +1 -1
  222. package/dest/transport/browser/shared_worker_listener.js +13 -17
  223. package/dest/transport/browser/worker_connector.d.ts +1 -1
  224. package/dest/transport/browser/worker_connector.d.ts.map +1 -1
  225. package/dest/transport/browser/worker_connector.js +12 -12
  226. package/dest/transport/browser/worker_listener.d.ts +1 -1
  227. package/dest/transport/browser/worker_listener.d.ts.map +1 -1
  228. package/dest/transport/browser/worker_listener.js +13 -17
  229. package/dest/transport/dispatch/create_dispatch_fn.js +2 -4
  230. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +2 -2
  231. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  232. package/dest/transport/dispatch/create_dispatch_proxy.js +16 -13
  233. package/dest/transport/dispatch/messages.js +4 -3
  234. package/dest/transport/index.js +0 -1
  235. package/dest/transport/interface/connector.d.ts +1 -1
  236. package/dest/transport/interface/connector.d.ts.map +1 -1
  237. package/dest/transport/interface/connector.js +3 -2
  238. package/dest/transport/interface/listener.d.ts +1 -1
  239. package/dest/transport/interface/listener.d.ts.map +1 -1
  240. package/dest/transport/interface/listener.js +4 -2
  241. package/dest/transport/interface/socket.js +7 -2
  242. package/dest/transport/interface/transferable.js +7 -9
  243. package/dest/transport/node/index.js +0 -1
  244. package/dest/transport/node/node_connector.d.ts +2 -2
  245. package/dest/transport/node/node_connector.d.ts.map +1 -1
  246. package/dest/transport/node/node_connector.js +9 -11
  247. package/dest/transport/node/node_connector_socket.d.ts +2 -2
  248. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  249. package/dest/transport/node/node_connector_socket.js +21 -25
  250. package/dest/transport/node/node_listener.d.ts +1 -1
  251. package/dest/transport/node/node_listener.d.ts.map +1 -1
  252. package/dest/transport/node/node_listener.js +11 -15
  253. package/dest/transport/node/node_listener_socket.d.ts +2 -2
  254. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  255. package/dest/transport/node/node_listener_socket.js +23 -27
  256. package/dest/transport/transport_client.d.ts +1 -1
  257. package/dest/transport/transport_client.d.ts.map +1 -1
  258. package/dest/transport/transport_client.js +47 -46
  259. package/dest/transport/transport_server.d.ts +1 -1
  260. package/dest/transport/transport_server.d.ts.map +1 -1
  261. package/dest/transport/transport_server.js +68 -55
  262. package/dest/trees/hasher.d.ts +39 -0
  263. package/dest/trees/hasher.d.ts.map +1 -0
  264. package/dest/trees/hasher.js +5 -0
  265. package/dest/trees/index.d.ts +8 -56
  266. package/dest/trees/index.d.ts.map +1 -1
  267. package/dest/trees/index.js +8 -1
  268. package/dest/trees/indexed_merkle_tree.d.ts +13 -0
  269. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -0
  270. package/dest/trees/indexed_merkle_tree.js +27 -0
  271. package/dest/trees/indexed_merkle_tree_calculator.d.ts +23 -0
  272. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -0
  273. package/dest/trees/indexed_merkle_tree_calculator.js +83 -0
  274. package/dest/trees/indexed_tree_leaf.d.ts +57 -0
  275. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -0
  276. package/dest/trees/indexed_tree_leaf.js +5 -0
  277. package/dest/trees/membership_witness.d.ts +62 -0
  278. package/dest/trees/membership_witness.d.ts.map +1 -0
  279. package/dest/trees/membership_witness.js +70 -0
  280. package/dest/trees/merkle_tree.d.ts +18 -0
  281. package/dest/trees/merkle_tree.d.ts.map +1 -0
  282. package/dest/trees/merkle_tree.js +58 -0
  283. package/dest/trees/merkle_tree_calculator.d.ts +16 -0
  284. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -0
  285. package/dest/trees/merkle_tree_calculator.js +61 -0
  286. package/dest/trees/sibling_path.d.ts +132 -0
  287. package/dest/trees/sibling_path.d.ts.map +1 -0
  288. package/dest/trees/sibling_path.js +144 -0
  289. package/dest/trees/unbalanced_merkle_tree.d.ts +1 -1
  290. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  291. package/dest/trees/unbalanced_merkle_tree.js +28 -18
  292. package/dest/trees/unbalanced_tree_store.js +43 -29
  293. package/dest/types/index.js +1 -3
  294. package/dest/url/index.js +4 -8
  295. package/dest/validation/index.js +2 -5
  296. package/dest/wasm/empty_wasi_sdk.js +142 -160
  297. package/dest/wasm/index.d.ts +1 -1
  298. package/dest/wasm/index.d.ts.map +1 -1
  299. package/dest/wasm/index.js +0 -1
  300. package/dest/wasm/wasm_module.js +80 -90
  301. package/dest/worker/browser/index.js +0 -1
  302. package/dest/worker/browser/start_web_module.d.ts +1 -1
  303. package/dest/worker/browser/start_web_module.d.ts.map +1 -1
  304. package/dest/worker/browser/start_web_module.js +9 -5
  305. package/dest/worker/browser/web_data_store.d.ts +1 -1
  306. package/dest/worker/browser/web_data_store.d.ts.map +1 -1
  307. package/dest/worker/browser/web_data_store.js +12 -15
  308. package/dest/worker/browser/web_worker.d.ts +1 -1
  309. package/dest/worker/browser/web_worker.d.ts.map +1 -1
  310. package/dest/worker/browser/web_worker.js +6 -5
  311. package/dest/worker/data_store.js +3 -2
  312. package/dest/worker/index.d.ts +1 -1
  313. package/dest/worker/index.d.ts.map +1 -1
  314. package/dest/worker/index.js +0 -1
  315. package/dest/worker/node/index.js +0 -1
  316. package/dest/worker/node/node_data_store.d.ts +1 -1
  317. package/dest/worker/node/node_data_store.d.ts.map +1 -1
  318. package/dest/worker/node/node_data_store.js +4 -5
  319. package/dest/worker/node/node_worker.d.ts +1 -1
  320. package/dest/worker/node/node_worker.d.ts.map +1 -1
  321. package/dest/worker/node/node_worker.js +6 -5
  322. package/dest/worker/node/start_node_module.d.ts +1 -1
  323. package/dest/worker/node/start_node_module.d.ts.map +1 -1
  324. package/dest/worker/node/start_node_module.js +9 -5
  325. package/dest/worker/wasm_worker.d.ts +2 -2
  326. package/dest/worker/wasm_worker.d.ts.map +1 -1
  327. package/dest/worker/wasm_worker.js +3 -2
  328. package/dest/worker/worker_pool.d.ts +1 -1
  329. package/dest/worker/worker_pool.d.ts.map +1 -1
  330. package/dest/worker/worker_pool.js +32 -43
  331. package/package.json +5 -5
  332. package/src/array/array.ts +1 -1
  333. package/src/buffer/buffer32.ts +1 -1
  334. package/src/collection/array.ts +1 -1
  335. package/src/config/env_var.ts +7 -5
  336. package/src/config/index.ts +1 -1
  337. package/src/crypto/aes128/index.ts +59 -0
  338. package/src/crypto/ecdsa/index.ts +70 -0
  339. package/src/crypto/ecdsa/signature.ts +100 -0
  340. package/src/crypto/grumpkin/index.ts +97 -0
  341. package/src/crypto/index.ts +6 -0
  342. package/src/crypto/keys/index.ts +1 -1
  343. package/src/crypto/pedersen/pedersen.wasm.ts +3 -3
  344. package/src/crypto/poseidon/index.ts +5 -5
  345. package/src/crypto/schnorr/index.ts +55 -0
  346. package/src/crypto/schnorr/signature.ts +116 -0
  347. package/src/crypto/secp256k1/index.ts +57 -0
  348. package/src/crypto/secp256k1-signer/secp256k1_signer.ts +2 -2
  349. package/src/crypto/serialize.ts +85 -0
  350. package/src/crypto/signature/index.ts +17 -0
  351. package/src/crypto/sync/index.ts +1 -1
  352. package/src/fields/coordinate.ts +1 -1
  353. package/src/fields/fields.ts +2 -1
  354. package/src/fs/run_in_dir.ts +8 -1
  355. package/src/index.ts +0 -2
  356. package/src/json-rpc/client/undici.ts +1 -1
  357. package/src/json-rpc/convert.ts +1 -1
  358. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  359. package/src/json-rpc/test/integration.ts +1 -1
  360. package/src/log/console.ts +1 -1
  361. package/src/log/debug.ts +1 -1
  362. package/src/log/gcloud-logger-config.ts +1 -1
  363. package/src/log/index.ts +1 -0
  364. package/src/log/libp2p_logger.ts +67 -0
  365. package/src/log/pino-logger.ts +16 -16
  366. package/src/mutex/index.ts +1 -1
  367. package/src/promise/running-promise.ts +24 -5
  368. package/src/queue/fifo_memory_queue.ts +1 -1
  369. package/src/schemas/api.ts +2 -2
  370. package/src/schemas/index.ts +1 -1
  371. package/src/schemas/schemas.ts +2 -26
  372. package/src/schemas/types.ts +1 -1
  373. package/src/schemas/utils.ts +1 -1
  374. package/src/serialize/buffer_reader.ts +1 -1
  375. package/src/serialize/field_reader.ts +1 -1
  376. package/src/serialize/free_funcs.ts +1 -1
  377. package/src/testing/snapshot_serializer.ts +1 -1
  378. package/src/transport/browser/message_port_socket.ts +1 -1
  379. package/src/transport/browser/shared_worker_connector.ts +1 -1
  380. package/src/transport/browser/shared_worker_listener.ts +1 -1
  381. package/src/transport/browser/worker_connector.ts +1 -1
  382. package/src/transport/browser/worker_listener.ts +1 -1
  383. package/src/transport/dispatch/create_dispatch_proxy.ts +2 -2
  384. package/src/transport/interface/connector.ts +1 -1
  385. package/src/transport/interface/listener.ts +1 -1
  386. package/src/transport/node/node_connector.ts +2 -2
  387. package/src/transport/node/node_connector_socket.ts +2 -2
  388. package/src/transport/node/node_listener.ts +1 -1
  389. package/src/transport/node/node_listener_socket.ts +2 -2
  390. package/src/transport/transport_client.ts +2 -2
  391. package/src/transport/transport_server.ts +3 -3
  392. package/src/trees/hasher.ts +39 -0
  393. package/src/trees/index.ts +8 -57
  394. package/src/trees/indexed_merkle_tree.ts +36 -0
  395. package/src/trees/indexed_merkle_tree_calculator.ts +94 -0
  396. package/src/trees/indexed_tree_leaf.ts +56 -0
  397. package/src/trees/membership_witness.ts +99 -0
  398. package/src/trees/merkle_tree.ts +72 -0
  399. package/src/trees/merkle_tree_calculator.ts +67 -0
  400. package/src/trees/sibling_path.ts +183 -0
  401. package/src/trees/unbalanced_merkle_tree.ts +2 -2
  402. package/src/wasm/index.ts +1 -1
  403. package/src/worker/browser/start_web_module.ts +1 -1
  404. package/src/worker/browser/web_data_store.ts +1 -1
  405. package/src/worker/browser/web_worker.ts +1 -1
  406. package/src/worker/index.ts +1 -1
  407. package/src/worker/node/node_data_store.ts +1 -1
  408. package/src/worker/node/node_worker.ts +1 -1
  409. package/src/worker/node/start_node_module.ts +1 -1
  410. package/src/worker/wasm_worker.ts +2 -2
  411. package/src/worker/worker_pool.ts +1 -1
  412. package/dest/abi/abi.d.ts +0 -853
  413. package/dest/abi/abi.d.ts.map +0 -1
  414. package/dest/abi/abi.js +0 -214
  415. package/dest/abi/buffer.d.ts +0 -18
  416. package/dest/abi/buffer.d.ts.map +0 -1
  417. package/dest/abi/buffer.js +0 -34
  418. package/dest/abi/decoder.d.ts +0 -58
  419. package/dest/abi/decoder.d.ts.map +0 -1
  420. package/dest/abi/decoder.js +0 -180
  421. package/dest/abi/encoder.d.ts +0 -16
  422. package/dest/abi/encoder.d.ts.map +0 -1
  423. package/dest/abi/encoder.js +0 -174
  424. package/dest/abi/event_selector.d.ts +0 -52
  425. package/dest/abi/event_selector.d.ts.map +0 -1
  426. package/dest/abi/event_selector.js +0 -76
  427. package/dest/abi/function_selector.d.ts +0 -65
  428. package/dest/abi/function_selector.d.ts.map +0 -1
  429. package/dest/abi/function_selector.js +0 -92
  430. package/dest/abi/index.d.ts +0 -10
  431. package/dest/abi/index.d.ts.map +0 -1
  432. package/dest/abi/index.js +0 -10
  433. package/dest/abi/note_selector.d.ts +0 -42
  434. package/dest/abi/note_selector.d.ts.map +0 -1
  435. package/dest/abi/note_selector.js +0 -63
  436. package/dest/abi/selector.d.ts +0 -42
  437. package/dest/abi/selector.d.ts.map +0 -1
  438. package/dest/abi/selector.js +0 -57
  439. package/dest/abi/u128.d.ts +0 -13
  440. package/dest/abi/u128.d.ts.map +0 -1
  441. package/dest/abi/u128.js +0 -58
  442. package/dest/abi/utils.d.ts +0 -44
  443. package/dest/abi/utils.d.ts.map +0 -1
  444. package/dest/abi/utils.js +0 -72
  445. package/dest/aztec-address/index.d.ts +0 -57
  446. package/dest/aztec-address/index.d.ts.map +0 -1
  447. package/dest/aztec-address/index.js +0 -114
  448. package/src/abi/abi.ts +0 -504
  449. package/src/abi/buffer.ts +0 -36
  450. package/src/abi/decoder.ts +0 -195
  451. package/src/abi/encoder.ts +0 -170
  452. package/src/abi/event_selector.ts +0 -92
  453. package/src/abi/function_selector.ts +0 -124
  454. package/src/abi/index.ts +0 -9
  455. package/src/abi/note_selector.ts +0 -78
  456. package/src/abi/selector.ts +0 -64
  457. package/src/abi/u128.ts +0 -71
  458. package/src/abi/utils.ts +0 -86
  459. package/src/aztec-address/index.ts +0 -146
@@ -1,40 +1,58 @@
1
1
  import { createLogger } from '../log/pino-logger.js';
2
2
  import { InterruptibleSleep } from '../sleep/index.js';
3
3
  import { promiseWithResolvers } from './utils.js';
4
+ const EXIT = Symbol.for('RunningPromise.EXIT');
5
+ export function makeLoggingErrorHandler(logger, ...ignoredErrors) {
6
+ return (err)=>{
7
+ if (err instanceof Error && !ignoredErrors.some((ErrorType)=>err instanceof ErrorType)) {
8
+ logger.error('Error in running promise', err);
9
+ }
10
+ };
11
+ }
4
12
  /**
5
13
  * RunningPromise is a utility class that helps manage the execution of an asynchronous function
6
14
  * at a specified polling interval. It allows starting, stopping, and checking the status of the
7
15
  * internally managed promise. The class also supports interrupting the polling process when stopped.
8
- */
9
- export class RunningPromise {
10
- constructor(fn, logger = createLogger('running-promise'), pollingIntervalMS = 10000, ignoredErrors = []) {
16
+ */ export class RunningPromise {
17
+ fn;
18
+ logger;
19
+ pollingIntervalMS;
20
+ handleError;
21
+ running;
22
+ runningPromise;
23
+ interruptibleSleep;
24
+ requested;
25
+ static EXIT = EXIT;
26
+ constructor(fn, logger = createLogger('running-promise'), pollingIntervalMS = 10000, handleError = makeLoggingErrorHandler(logger)){
11
27
  this.fn = fn;
12
28
  this.logger = logger;
13
29
  this.pollingIntervalMS = pollingIntervalMS;
14
- this.ignoredErrors = ignoredErrors;
30
+ this.handleError = handleError;
15
31
  this.running = false;
16
32
  this.runningPromise = Promise.resolve();
17
33
  this.interruptibleSleep = new InterruptibleSleep();
18
34
  this.requested = undefined;
19
35
  }
20
36
  /**
21
- * Starts the running promise.
22
- */
23
- start() {
37
+ * Starts the running promise.
38
+ */ start() {
24
39
  if (this.running) {
25
40
  this.logger.warn(`Attempted to start running promise that was already started`);
26
41
  return;
27
42
  }
28
43
  this.running = true;
29
- const poll = async () => {
30
- while (this.running) {
44
+ const poll = async ()=>{
45
+ while(this.running){
31
46
  const hasRequested = this.requested !== undefined;
32
47
  try {
33
48
  await this.fn();
34
- }
35
- catch (err) {
36
- if (err instanceof Error && !this.ignoredErrors.some(ErrorType => err instanceof ErrorType)) {
37
- this.logger.error('Error in running promise', err);
49
+ } catch (err) {
50
+ const code = await this.handleError(err);
51
+ if (code === RunningPromise.EXIT) {
52
+ this.logger.warn('Error handler has requested to exit', {
53
+ err
54
+ });
55
+ this.running = false;
38
56
  }
39
57
  }
40
58
  // If an immediate run had been requested *before* the function started running, resolve the request.
@@ -43,7 +61,7 @@ export class RunningPromise {
43
61
  this.requested = undefined;
44
62
  }
45
63
  // If no immediate run was requested, sleep for the polling interval.
46
- if (this.requested === undefined) {
64
+ if (this.requested === undefined && this.running) {
47
65
  await this.interruptibleSleep.sleep(this.pollingIntervalMS);
48
66
  }
49
67
  }
@@ -51,10 +69,9 @@ export class RunningPromise {
51
69
  this.runningPromise = poll();
52
70
  }
53
71
  /**
54
- * Stops the running promise, resolves any pending interruptible sleep,
55
- * and waits for the currently executing function to complete.
56
- */
57
- async stop() {
72
+ * Stops the running promise, resolves any pending interruptible sleep,
73
+ * and waits for the currently executing function to complete.
74
+ */ async stop() {
58
75
  if (!this.running) {
59
76
  this.logger.warn(`Running promise was not started`);
60
77
  return;
@@ -64,17 +81,15 @@ export class RunningPromise {
64
81
  await this.runningPromise;
65
82
  }
66
83
  /**
67
- * Checks if the running promise is currently active.
68
- * @returns True if the promise is running.
69
- */
70
- isRunning() {
84
+ * Checks if the running promise is currently active.
85
+ * @returns True if the promise is running.
86
+ */ isRunning() {
71
87
  return this.running;
72
88
  }
73
89
  /**
74
- * Triggers an immediate run of the function, bypassing the polling interval.
75
- * If the function is currently running, it will be allowed to continue and then called again immediately.
76
- */
77
- async trigger() {
90
+ * Triggers an immediate run of the function, bypassing the polling interval.
91
+ * If the function is currently running, it will be allowed to continue and then called again immediately.
92
+ */ async trigger() {
78
93
  if (!this.running) {
79
94
  return this.fn();
80
95
  }
@@ -87,11 +102,9 @@ export class RunningPromise {
87
102
  await requested.promise;
88
103
  }
89
104
  /**
90
- * Updates the polling interval. The new interval will take effect after the next poll.
91
- * @param pollingIntervalMS The polling interval in milliseconds.
92
- */
93
- setPollingIntervalMS(pollingIntervalMS) {
105
+ * Updates the polling interval. The new interval will take effect after the next poll.
106
+ * @param pollingIntervalMS The polling interval in milliseconds.
107
+ */ setPollingIntervalMS(pollingIntervalMS) {
94
108
  this.pollingIntervalMS = pollingIntervalMS;
95
109
  }
96
110
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmluZy1wcm9taXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb21pc2UvcnVubmluZy1wcm9taXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQTZCLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdFOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQU16QixZQUNVLEVBQThCLEVBQzlCLFNBQVMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQ3hDLG9CQUFvQixLQUFLLEVBQ3pCLGdCQUFtRCxFQUFFO1FBSHJELE9BQUUsR0FBRixFQUFFLENBQTRCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBd0M7UUFUdkQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyx1QkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDOUMsY0FBUyxHQUEyQyxTQUFTLENBQUM7SUFPbkUsQ0FBQztJQUVKOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7WUFDaEYsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUM7Z0JBQ2xELElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLElBQUksR0FBRyxZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQzVGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNyRCxDQUFDO2dCQUNILENBQUM7Z0JBRUQscUdBQXFHO2dCQUNyRyxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixJQUFJLENBQUMsU0FBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDN0IsQ0FBQztnQkFFRCxxRUFBcUU7Z0JBQ3JFLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ3BELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixTQUFTLEdBQUcsb0JBQW9CLEVBQVEsQ0FBQztZQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUNELE1BQU0sU0FBVSxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUMsaUJBQXlCO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0NBQ0YifQ==
@@ -2,21 +2,19 @@
2
2
  * A polyfill for the Promise.withResolvers proposed API.
3
3
  * @see https://github.com/tc39/proposal-promise-with-resolvers
4
4
  * @returns A promise with resolvers.
5
- */
6
- export function promiseWithResolvers() {
5
+ */ export function promiseWithResolvers() {
7
6
  // use ! operator to avoid TS error
8
7
  let resolve;
9
8
  let reject;
10
9
  // the ES spec guarantees that the promise executor is called synchronously
11
10
  // so the resolve and reject functions will be defined
12
- const promise = new Promise((res, rej) => {
11
+ const promise = new Promise((res, rej)=>{
13
12
  resolve = res;
14
13
  reject = rej;
15
14
  });
16
15
  return {
17
16
  promise,
18
17
  resolve,
19
- reject,
18
+ reject
20
19
  };
21
20
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvbWlzZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxtQ0FBbUM7SUFDbkMsSUFBSSxPQUE0QixDQUFDO0lBQ2pDLElBQUksTUFBK0IsQ0FBQztJQUVwQywyRUFBMkU7SUFDM0Usc0RBQXNEO0lBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDZCxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsT0FBTztRQUNQLE9BQU87UUFDUCxNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,39 +1,39 @@
1
1
  import { TimeoutError } from '../error/index.js';
2
2
  import { createLogger } from '../log/index.js';
3
3
  export class BaseMemoryQueue {
4
- constructor(log = createLogger('foundation:memory_fifo')) {
4
+ log;
5
+ waiting;
6
+ flushing;
7
+ constructor(log = createLogger('foundation:memory_fifo')){
5
8
  this.log = log;
6
9
  this.waiting = [];
7
10
  this.flushing = false;
8
11
  }
9
12
  /**
10
- * Returns the current number of items in the queue.
11
- * The length represents the size of the queue at the time of invocation and may change as new items are added or consumed.
12
- *
13
- * @returns The number of items in the queue.
14
- */
15
- length() {
13
+ * Returns the current number of items in the queue.
14
+ * The length represents the size of the queue at the time of invocation and may change as new items are added or consumed.
15
+ *
16
+ * @returns The number of items in the queue.
17
+ */ length() {
16
18
  return this.items.length;
17
19
  }
18
20
  /**
19
- * Returns next item within the queue, or undefined if the queue is empty. Does not block.
20
- * @returns The next item in the queue.
21
- */
22
- getImmediate() {
21
+ * Returns next item within the queue, or undefined if the queue is empty. Does not block.
22
+ * @returns The next item in the queue.
23
+ */ getImmediate() {
23
24
  return this.items.get();
24
25
  }
25
26
  /**
26
- * Returns next item within the queue, or blocks until an item has been put into the queue.
27
- *
28
- * If given a timeout, the promise will reject if no item is received after `timeoutSec` seconds.
29
- * If the timeout is undefined (default), this call will block until an item is available or the queue is closed.
30
- * If the timeout is 0 and there are no items available then the queue will immediately reject with a TimeoutError.
31
- *
32
- * If the queue is flushing, `null` is returned.
33
- * @param timeoutSec - The timeout in seconds.
34
- * @returns A result promise.
35
- */
36
- get(timeoutSec) {
27
+ * Returns next item within the queue, or blocks until an item has been put into the queue.
28
+ *
29
+ * If given a timeout, the promise will reject if no item is received after `timeoutSec` seconds.
30
+ * If the timeout is undefined (default), this call will block until an item is available or the queue is closed.
31
+ * If the timeout is 0 and there are no items available then the queue will immediately reject with a TimeoutError.
32
+ *
33
+ * If the queue is flushing, `null` is returned.
34
+ * @param timeoutSec - The timeout in seconds.
35
+ * @returns A result promise.
36
+ */ get(timeoutSec) {
37
37
  if (this.items.length) {
38
38
  return Promise.resolve(this.items.get());
39
39
  }
@@ -45,11 +45,11 @@ export class BaseMemoryQueue {
45
45
  if (timeoutSec === 0) {
46
46
  return Promise.reject(new TimeoutError('Timeout getting item from queue.'));
47
47
  }
48
- return new Promise((resolve, reject) => {
48
+ return new Promise((resolve, reject)=>{
49
49
  this.waiting.push(resolve);
50
50
  if (timeoutSec) {
51
- setTimeout(() => {
52
- const index = this.waiting.findIndex(r => r === resolve);
51
+ setTimeout(()=>{
52
+ const index = this.waiting.findIndex((r)=>r === resolve);
53
53
  if (index > -1) {
54
54
  this.waiting.splice(index, 1);
55
55
  const err = new TimeoutError('Timeout getting item from queue.');
@@ -60,65 +60,57 @@ export class BaseMemoryQueue {
60
60
  });
61
61
  }
62
62
  /**
63
- * Put an item onto back of the queue.
64
- * @param item - The item to enqueue.
65
- * @returns A boolean indicating whether the item was successfully added to the queue.
66
- */
67
- put(item) {
63
+ * Put an item onto back of the queue.
64
+ * @param item - The item to enqueue.
65
+ * @returns A boolean indicating whether the item was successfully added to the queue.
66
+ */ put(item) {
68
67
  if (this.flushing) {
69
68
  this.log.warn('Discarding item because queue is flushing');
70
69
  return false;
71
- }
72
- else if (this.waiting.length) {
70
+ } else if (this.waiting.length) {
73
71
  this.waiting.shift()(item);
74
72
  return true;
75
- }
76
- else {
73
+ } else {
77
74
  this.items.put(item);
78
75
  return true;
79
76
  }
80
77
  }
81
78
  /**
82
- * Once ended, no further items are added to queue. Consumers will consume remaining items within the queue.
83
- * The queue is not reusable after calling `end()`.
84
- * Any consumers waiting for an item receive null.
85
- */
86
- end() {
79
+ * Once ended, no further items are added to queue. Consumers will consume remaining items within the queue.
80
+ * The queue is not reusable after calling `end()`.
81
+ * Any consumers waiting for an item receive null.
82
+ */ end() {
87
83
  this.flushing = true;
88
- this.waiting.forEach(resolve => resolve(null));
84
+ this.waiting.forEach((resolve)=>resolve(null));
89
85
  }
90
86
  /**
91
- * Once cancelled, all items are discarded from the queue, and no further items are added to the queue.
92
- * The queue is not reusable after calling `cancel()`.
93
- * Any consumers waiting for an item receive null.
94
- */
95
- cancel() {
87
+ * Once cancelled, all items are discarded from the queue, and no further items are added to the queue.
88
+ * The queue is not reusable after calling `cancel()`.
89
+ * Any consumers waiting for an item receive null.
90
+ */ cancel() {
96
91
  this.flushing = true;
97
92
  this.items.clear();
98
- this.waiting.forEach(resolve => resolve(null));
93
+ this.waiting.forEach((resolve)=>resolve(null));
99
94
  }
100
95
  /**
101
- * Process items from the queue using a provided handler function.
102
- * The function iterates over items in the queue, invoking the handler for each item until the queue is empty and flushing.
103
- * If the handler throws an error, it will be caught and logged as 'Queue handler exception:', but the iteration will continue.
104
- * The process function returns a promise that resolves when there are no more items in the queue and the queue is flushing.
105
- *
106
- * @param handler - A function that takes an item of type T and returns a Promise<void> after processing the item.
107
- * @returns A Promise<void> that resolves when the queue is finished processing.
108
- */
109
- async process(handler) {
96
+ * Process items from the queue using a provided handler function.
97
+ * The function iterates over items in the queue, invoking the handler for each item until the queue is empty and flushing.
98
+ * If the handler throws an error, it will be caught and logged as 'Queue handler exception:', but the iteration will continue.
99
+ * The process function returns a promise that resolves when there are no more items in the queue and the queue is flushing.
100
+ *
101
+ * @param handler - A function that takes an item of type T and returns a Promise<void> after processing the item.
102
+ * @returns A Promise<void> that resolves when the queue is finished processing.
103
+ */ async process(handler) {
110
104
  try {
111
- while (true) {
105
+ while(true){
112
106
  const item = await this.get();
113
107
  if (item === null) {
114
108
  break;
115
109
  }
116
110
  await handler(item);
117
111
  }
118
- }
119
- catch (err) {
112
+ } catch (err) {
120
113
  this.log.error('Queue handler exception', err);
121
114
  }
122
115
  }
123
116
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9tZW1vcnlfcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvYmFzZV9tZW1vcnlfcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLE9BQWdCLGVBQWU7SUFJbkMsWUFBb0IsTUFBTSxZQUFZLENBQUMsd0JBQXdCLENBQUM7UUFBNUMsUUFBRyxHQUFILEdBQUcsQ0FBeUM7UUFIeEQsWUFBTyxHQUFpQyxFQUFFLENBQUM7UUFDM0MsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUUwQyxDQUFDO0lBU3BFOzs7OztPQUtHO0lBQ0ksTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksR0FBRyxDQUFDLFVBQW1CO1FBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0MsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFFRCxpRUFBaUU7UUFDakUsMENBQTBDO1FBQzFDLElBQUksVUFBVSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sT0FB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
@@ -15,54 +15,60 @@ import { FifoMemoryQueue } from './fifo_memory_queue.js';
15
15
  * This ensures that batches don't grow too big and that they are flushed at a minimum rate of 1 batch every interval.
16
16
  *
17
17
  * The consumer side of this queue will process batches as quickly as possible.
18
- */
19
- export class BatchQueue {
20
- constructor(processBatch, maxBatchSize, maxBatchDuration, log = createLogger('foundation:batch_queue')) {
18
+ */ export class BatchQueue {
19
+ processBatch;
20
+ maxBatchSize;
21
+ maxBatchDuration;
22
+ log;
23
+ container;
24
+ currentBatch;
25
+ runningPromise;
26
+ constructor(processBatch, maxBatchSize, maxBatchDuration, log = createLogger('foundation:batch_queue')){
21
27
  this.processBatch = processBatch;
22
28
  this.maxBatchSize = maxBatchSize;
23
29
  this.maxBatchDuration = maxBatchDuration;
24
30
  this.log = log;
25
31
  this.container = new FifoMemoryQueue();
26
- /**
27
- * Immediately flushes the current batch, starting a new one
28
- */
29
- this.flushCurrentBatch = () => {
32
+ this.flushCurrentBatch = ()=>{
30
33
  if (this.currentBatch) {
31
- this.log.trace('Flushing batch', { size: this.currentBatch.items.length, key: this.currentBatch.key });
34
+ this.log.trace('Flushing batch', {
35
+ size: this.currentBatch.items.length,
36
+ key: this.currentBatch.key
37
+ });
32
38
  clearTimeout(this.currentBatch.enqueueTimeout);
33
39
  this.container.put(this.currentBatch);
34
40
  this.currentBatch = undefined;
35
41
  }
36
42
  };
37
- this.execProcessor = async (batch) => {
43
+ this.execProcessor = async (batch)=>{
38
44
  try {
39
45
  await this.processBatch(batch.items, batch.key);
40
46
  batch.deferred.resolve();
41
- }
42
- catch (err) {
47
+ } catch (err) {
43
48
  batch.deferred.reject(err);
44
49
  }
45
50
  };
46
51
  }
47
52
  /**
48
- * Put an item in the queue. It will be routed based on the given key
49
- * @param item - The item to add
50
- * @param key - The group key for this item
51
- * @returns A promise that resolves or rejects when the batch this item is part of is processed
52
- */
53
- put(item, key) {
53
+ * Put an item in the queue. It will be routed based on the given key
54
+ * @param item - The item to add
55
+ * @param key - The group key for this item
56
+ * @returns A promise that resolves or rejects when the batch this item is part of is processed
57
+ */ put(item, key) {
54
58
  if (!this.runningPromise) {
55
59
  return Promise.reject(new Error('BatchQueue is not started'));
56
60
  }
57
61
  let currentBatch = this.currentBatch;
58
62
  if (!currentBatch || currentBatch.key !== key || currentBatch.items.length >= this.maxBatchSize) {
59
63
  this.flushCurrentBatch();
60
- this.log.trace('Creating new batch', { key });
64
+ this.log.trace('Creating new batch', {
65
+ key
66
+ });
61
67
  currentBatch = {
62
68
  items: [],
63
69
  key,
64
70
  deferred: promiseWithResolvers(),
65
- enqueueTimeout: setTimeout(this.flushCurrentBatch, this.maxBatchDuration),
71
+ enqueueTimeout: setTimeout(this.flushCurrentBatch, this.maxBatchDuration)
66
72
  };
67
73
  this.currentBatch = currentBatch;
68
74
  }
@@ -73,19 +79,20 @@ export class BatchQueue {
73
79
  return currentBatch.deferred.promise;
74
80
  }
75
81
  /**
76
- * Starts the queue.
77
- */
78
- start() {
82
+ * Immediately flushes the current batch, starting a new one
83
+ */ flushCurrentBatch;
84
+ /**
85
+ * Starts the queue.
86
+ */ start() {
79
87
  if (this.runningPromise) {
80
88
  return;
81
89
  }
82
90
  this.runningPromise = this.container.process(this.execProcessor);
83
91
  }
84
92
  /**
85
- * Stops the queue. Any items in the queue will continue to be processed but new items won't be accepted anymore
86
- * @returns A promise that resolves when the queue is drained completely
87
- */
88
- stop() {
93
+ * Stops the queue. Any items in the queue will continue to be processed but new items won't be accepted anymore
94
+ * @returns A promise that resolves when the queue is drained completely
95
+ */ stop() {
89
96
  const runningPromise = this.runningPromise;
90
97
  this.runningPromise = undefined;
91
98
  if (!runningPromise) {
@@ -94,5 +101,5 @@ export class BatchQueue {
94
101
  this.container.end();
95
102
  return runningPromise;
96
103
  }
104
+ execProcessor;
97
105
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvYmF0Y2hfcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBNkIsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTekQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUNVLFlBQStELEVBQy9ELFlBQW9CLEVBQ3BCLGdCQUF3QixFQUN4QixNQUFNLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQztRQUg1QyxpQkFBWSxHQUFaLFlBQVksQ0FBbUQ7UUFDL0QsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQXlDO1FBUjlDLGNBQVMsR0FBRyxJQUFJLGVBQWUsRUFBZSxDQUFDO1FBNkN2RDs7V0FFRztRQUNJLHNCQUFpQixHQUFHLEdBQVMsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZHLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFD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
@@ -4,91 +4,81 @@ import { SerialQueue } from './serial_queue.js';
4
4
  /**
5
5
  * Leverages the unbounded SerialQueue and Semaphore to create a SerialQueue that will block when putting an item
6
6
  * if the queue size = maxQueueSize.
7
- */
8
- export class BoundedSerialQueue {
9
- constructor(maxQueueSize, log = createLogger('foundation:bounded_serial_queue')) {
7
+ */ export class BoundedSerialQueue {
8
+ log;
9
+ queue;
10
+ semaphore;
11
+ constructor(maxQueueSize, log = createLogger('foundation:bounded_serial_queue')){
10
12
  this.log = log;
11
13
  this.queue = new SerialQueue();
12
14
  this.semaphore = new Semaphore(maxQueueSize);
13
15
  }
14
16
  /**
15
- * Initializes the underlying SerialQueue instance, allowing items to be processed from the queue.
16
- * The start method should be called before using the BoundedSerialQueue to ensure proper functionality.
17
- */
18
- start() {
17
+ * Initializes the underlying SerialQueue instance, allowing items to be processed from the queue.
18
+ * The start method should be called before using the BoundedSerialQueue to ensure proper functionality.
19
+ */ start() {
19
20
  this.queue.start();
20
21
  }
21
22
  /**
22
- * Returns the current number of items in the queue.
23
- * This is useful for monitoring the size of BoundedSerialQueue and understanding its utilization.
24
- *
25
- * @returns The length of the queue as an integer value.
26
- */
27
- length() {
23
+ * Returns the current number of items in the queue.
24
+ * This is useful for monitoring the size of BoundedSerialQueue and understanding its utilization.
25
+ *
26
+ * @returns The length of the queue as an integer value.
27
+ */ length() {
28
28
  return this.queue.length();
29
29
  }
30
30
  /**
31
- * Cancels the current operation in the SerialQueue, if any, and clears the queue.
32
- * Any pending tasks in the queue will not be executed, and the queue will be emptied.
33
- * This method is useful for cleaning up resources and stopping ongoing processes when they are no longer needed.
34
- * @returns A promise, resolved once cancelled.
35
- */
36
- cancel() {
31
+ * Cancels the current operation in the SerialQueue, if any, and clears the queue.
32
+ * Any pending tasks in the queue will not be executed, and the queue will be emptied.
33
+ * This method is useful for cleaning up resources and stopping ongoing processes when they are no longer needed.
34
+ * @returns A promise, resolved once cancelled.
35
+ */ cancel() {
37
36
  return this.queue.cancel();
38
37
  }
39
38
  /**
40
- * Ends the queue processing gracefully, preventing new items from being added.
41
- * The currently executing item, if any, will complete and remaining queued items
42
- * will be processed in order. Once all items have been processed, the queue becomes
43
- * permanently unusable.
44
- *
45
- * @returns A promise that resolves when all items in the queue have been processed.
46
- */
47
- end() {
39
+ * Ends the queue processing gracefully, preventing new items from being added.
40
+ * The currently executing item, if any, will complete and remaining queued items
41
+ * will be processed in order. Once all items have been processed, the queue becomes
42
+ * permanently unusable.
43
+ *
44
+ * @returns A promise that resolves when all items in the queue have been processed.
45
+ */ end() {
48
46
  return this.queue.end();
49
47
  }
50
48
  /**
51
- * The caller will block until fn is successfully enqueued.
52
- * The fn itself is execute asynchronously and its result discarded.
53
- * TODO(AD) do we need this if we have exec()?
54
- * @param fn - The function to call once unblocked.
55
- */
56
- async put(fn) {
49
+ * The caller will block until fn is successfully enqueued.
50
+ * The fn itself is execute asynchronously and its result discarded.
51
+ * TODO(AD) do we need this if we have exec()?
52
+ * @param fn - The function to call once unblocked.
53
+ */ async put(fn) {
57
54
  await this.semaphore.acquire();
58
- this.queue
59
- .put(async () => {
55
+ this.queue.put(async ()=>{
60
56
  try {
61
57
  await fn();
62
- }
63
- finally {
58
+ } finally{
64
59
  this.semaphore.release();
65
60
  }
66
- })
67
- .catch(err => {
61
+ }).catch((err)=>{
68
62
  this.log.error('BoundedSerialQueue handler exception:', err);
69
63
  });
70
64
  }
71
65
  /**
72
- * The caller will block until fn is successfully executed, and it's result returned.
73
- * @param fn - The function.
74
- * @returns A promise that resolves with the result once executed.
75
- */
76
- async exec(fn) {
66
+ * The caller will block until fn is successfully executed, and it's result returned.
67
+ * @param fn - The function.
68
+ * @returns A promise that resolves with the result once executed.
69
+ */ async exec(fn) {
77
70
  await this.semaphore.acquire();
78
- return this.queue.put(async () => {
71
+ return this.queue.put(async ()=>{
79
72
  try {
80
73
  return await fn();
81
- }
82
- finally {
74
+ } finally{
83
75
  this.semaphore.release();
84
76
  }
85
77
  });
86
78
  }
87
79
  /**
88
- * Awaiting this ensures the queue is empty before resuming.
89
- */
90
- async syncPoint() {
80
+ * Awaiting this ensures the queue is empty before resuming.
81
+ */ async syncPoint() {
91
82
  await this.queue.syncPoint();
92
83
  }
93
84
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRlZF9zZXJpYWxfcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvYm91bmRlZF9zZXJpYWxfcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUFZLFlBQW9CLEVBQVUsTUFBTSxZQUFZLENBQUMsaUNBQWlDLENBQUM7UUFBckQsUUFBRyxHQUFILEdBQUcsQ0FBa0Q7UUFIOUUsVUFBSyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFJekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksR0FBRztRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQXVCO1FBQ3RDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSzthQUNQLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQztnQkFDSCxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2IsQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFJLEVBQW9CO1FBQ3ZDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQy9CLElBQUksQ0FBQztnQkFDSCxPQUFPLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDcEIsQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRiJ9
@@ -1,4 +1,4 @@
1
- import { type Logger } from '../log/index.js';
1
+ import type { Logger } from '../log/index.js';
2
2
  import { BaseMemoryQueue } from './base_memory_queue.js';
3
3
  /**
4
4
  * A simple fifo queue. It can grow unbounded. It can have multiple producers and consumers.
@@ -1 +1 @@
1
- {"version":3,"file":"fifo_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/fifo_memory_queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,SAAS,CAAsB;gBAE3B,GAAG,CAAC,EAAE,MAAM;IAIxB,cAAuB,KAAK,iBAE3B;CACF;AAED,cAAM,SAAS,CAAC,CAAC;IACf,OAAO,CAAC,KAAK,CAAW;IAEjB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAIlB,GAAG,IAAI,CAAC,GAAG,SAAS;IAI3B,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,KAAK;CAGb"}
1
+ {"version":3,"file":"fifo_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/fifo_memory_queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,SAAS,CAAsB;gBAE3B,GAAG,CAAC,EAAE,MAAM;IAIxB,cAAuB,KAAK,iBAE3B;CACF;AAED,cAAM,SAAS,CAAC,CAAC;IACf,OAAO,CAAC,KAAK,CAAW;IAEjB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAIlB,GAAG,IAAI,CAAC,GAAG,SAAS;IAI3B,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,KAAK;CAGb"}
@@ -3,20 +3,17 @@ import { BaseMemoryQueue } from './base_memory_queue.js';
3
3
  * A simple fifo queue. It can grow unbounded. It can have multiple producers and consumers.
4
4
  * Putting an item onto the queue always succeeds, unless either end() or cancel() has been called in which case
5
5
  * the item being pushed is simply discarded.
6
- */
7
- export class FifoMemoryQueue extends BaseMemoryQueue {
8
- constructor(log) {
6
+ */ export class FifoMemoryQueue extends BaseMemoryQueue {
7
+ container = new FifoQueue();
8
+ constructor(log){
9
9
  super(log);
10
- this.container = new FifoQueue();
11
10
  }
12
11
  get items() {
13
12
  return this.container;
14
13
  }
15
14
  }
16
15
  class FifoQueue {
17
- constructor() {
18
- this.items = [];
19
- }
16
+ items = [];
20
17
  put(item) {
21
18
  this.items.push(item);
22
19
  }
@@ -30,4 +27,3 @@ class FifoQueue {
30
27
  this.items = [];
31
28
  }
32
29
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlmb19tZW1vcnlfcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvZmlmb19tZW1vcnlfcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sZUFBbUIsU0FBUSxlQUFrQjtJQUd4RCxZQUFZLEdBQVk7UUFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBSEwsY0FBUyxHQUFHLElBQUksU0FBUyxFQUFLLENBQUM7SUFJdkMsQ0FBQztJQUVELElBQXVCLEtBQUs7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQUVELE1BQU0sU0FBUztJQUFmO1FBQ1UsVUFBSyxHQUFRLEVBQUUsQ0FBQztJQWlCMUIsQ0FBQztJQWZRLEdBQUcsQ0FBQyxJQUFPO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
@@ -4,4 +4,3 @@ export * from './serial_queue.js';
4
4
  export * from './bounded_serial_queue.js';
5
5
  export * from './semaphore.js';
6
6
  export * from './batch_queue.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUMifQ==