@aztec/foundation 0.0.1-commit.fce3e4f → 0.0.1-commit.ffe5b04ea

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 (335) hide show
  1. package/dest/array/index.d.ts +2 -1
  2. package/dest/array/index.d.ts.map +1 -1
  3. package/dest/array/index.js +1 -0
  4. package/dest/array/sorted_array.d.ts +15 -0
  5. package/dest/array/sorted_array.d.ts.map +1 -0
  6. package/dest/array/sorted_array.js +109 -0
  7. package/dest/branded-types/block_number.d.ts +56 -0
  8. package/dest/branded-types/block_number.d.ts.map +1 -0
  9. package/dest/branded-types/block_number.js +78 -0
  10. package/dest/branded-types/checkpoint_number.d.ts +54 -0
  11. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  12. package/dest/branded-types/checkpoint_number.js +77 -0
  13. package/dest/branded-types/index.d.ts +4 -1
  14. package/dest/branded-types/index.d.ts.map +1 -1
  15. package/dest/branded-types/index.js +3 -0
  16. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  17. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  18. package/dest/branded-types/index_within_checkpoint.js +59 -0
  19. package/dest/buffer/buffer16.d.ts +5 -2
  20. package/dest/buffer/buffer16.d.ts.map +1 -1
  21. package/dest/buffer/buffer16.js +4 -2
  22. package/dest/buffer/buffer32.d.ts +5 -2
  23. package/dest/buffer/buffer32.d.ts.map +1 -1
  24. package/dest/buffer/buffer32.js +4 -2
  25. package/dest/collection/array.d.ts +12 -1
  26. package/dest/collection/array.d.ts.map +1 -1
  27. package/dest/collection/array.js +51 -0
  28. package/dest/config/env_var.d.ts +2 -2
  29. package/dest/config/env_var.d.ts.map +1 -1
  30. package/dest/config/index.d.ts +15 -4
  31. package/dest/config/index.d.ts.map +1 -1
  32. package/dest/config/index.js +47 -9
  33. package/dest/config/network_config.d.ts +25 -1
  34. package/dest/config/network_config.d.ts.map +1 -1
  35. package/dest/config/network_config.js +5 -1
  36. package/dest/config/network_name.d.ts +2 -2
  37. package/dest/config/network_name.d.ts.map +1 -1
  38. package/dest/config/network_name.js +2 -0
  39. package/dest/config/parse-env.d.ts +3 -0
  40. package/dest/config/parse-env.d.ts.map +1 -0
  41. package/dest/config/parse-env.js +7 -0
  42. package/dest/config/secret_value.js +3 -1
  43. package/dest/crypto/bls/bn254_keystore.js +1 -1
  44. package/dest/crypto/bls/index.js +1 -1
  45. package/dest/crypto/bn254/index.d.ts +35 -51
  46. package/dest/crypto/bn254/index.d.ts.map +1 -1
  47. package/dest/crypto/bn254/index.js +51 -140
  48. package/dest/crypto/ecdsa/signature.d.ts +11 -2
  49. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  50. package/dest/crypto/ecdsa/signature.js +2 -2
  51. package/dest/crypto/grumpkin/index.d.ts +4 -2
  52. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  53. package/dest/crypto/grumpkin/index.js +2 -1
  54. package/dest/crypto/keys/index.d.ts +2 -2
  55. package/dest/crypto/keys/index.d.ts.map +1 -1
  56. package/dest/crypto/keys/index.js +1 -1
  57. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  58. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  59. package/dest/crypto/pedersen/pedersen.wasm.js +1 -1
  60. package/dest/crypto/poseidon/index.d.ts +2 -3
  61. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  62. package/dest/crypto/poseidon/index.js +14 -23
  63. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  64. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  65. package/dest/crypto/random/randomness_singleton.js +5 -5
  66. package/dest/crypto/schnorr/index.d.ts +3 -2
  67. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  68. package/dest/crypto/schnorr/index.js +1 -1
  69. package/dest/crypto/schnorr/signature.d.ts +2 -2
  70. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  71. package/dest/crypto/schnorr/signature.js +2 -2
  72. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  73. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  74. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  75. package/dest/crypto/sha256/index.d.ts +2 -2
  76. package/dest/crypto/sha256/index.d.ts.map +1 -1
  77. package/dest/crypto/sha256/index.js +1 -1
  78. package/dest/crypto/sha512/index.d.ts +2 -2
  79. package/dest/crypto/sha512/index.d.ts.map +1 -1
  80. package/dest/crypto/sha512/index.js +1 -1
  81. package/dest/crypto/signature/index.d.ts +2 -2
  82. package/dest/crypto/signature/index.d.ts.map +1 -1
  83. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  84. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  85. package/dest/crypto/sync/pedersen/index.js +1 -1
  86. package/dest/crypto/sync/poseidon/index.d.ts +2 -3
  87. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  88. package/dest/crypto/sync/poseidon/index.js +1 -9
  89. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
  90. package/dest/curves/bls12/field.d.ts.map +1 -0
  91. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +12 -9
  92. package/dest/curves/bls12/index.d.ts +3 -0
  93. package/dest/curves/bls12/index.d.ts.map +1 -0
  94. package/dest/curves/bls12/index.js +2 -0
  95. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +13 -4
  96. package/dest/curves/bls12/point.d.ts.map +1 -0
  97. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
  98. package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +8 -15
  99. package/dest/curves/bn254/field.d.ts.map +1 -0
  100. package/dest/{fields/fields.js → curves/bn254/field.js} +38 -49
  101. package/dest/curves/bn254/index.d.ts +3 -0
  102. package/dest/curves/bn254/index.d.ts.map +1 -0
  103. package/dest/curves/bn254/index.js +2 -0
  104. package/dest/curves/bn254/point.d.ts +54 -0
  105. package/dest/curves/bn254/point.d.ts.map +1 -0
  106. package/dest/curves/bn254/point.js +143 -0
  107. package/dest/curves/grumpkin/index.d.ts +10 -0
  108. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  109. package/dest/curves/grumpkin/index.js +3 -0
  110. package/dest/{fields → curves/grumpkin}/point.d.ts +13 -4
  111. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  112. package/dest/{fields → curves/grumpkin}/point.js +7 -7
  113. package/dest/error/index.d.ts +4 -4
  114. package/dest/error/index.d.ts.map +1 -1
  115. package/dest/eth-address/index.d.ts +3 -2
  116. package/dest/eth-address/index.d.ts.map +1 -1
  117. package/dest/eth-address/index.js +10 -3
  118. package/dest/eth-signature/eth_signature.d.ts +5 -1
  119. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  120. package/dest/eth-signature/eth_signature.js +7 -2
  121. package/dest/iterator/filter.d.ts +3 -0
  122. package/dest/iterator/filter.d.ts.map +1 -0
  123. package/dest/iterator/filter.js +7 -0
  124. package/dest/iterator/index.d.ts +2 -0
  125. package/dest/iterator/index.d.ts.map +1 -0
  126. package/dest/iterator/index.js +1 -0
  127. package/dest/jest/setup.js +28 -1
  128. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  129. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  130. package/dest/json-rpc/client/safe_json_rpc_client.js +1 -1
  131. package/dest/json-rpc/client/undici.d.ts +1 -1
  132. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  133. package/dest/json-rpc/client/undici.js +21 -4
  134. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  135. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  136. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  137. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  138. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  139. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  140. package/dest/json-rpc/server/api_key_auth.js +57 -0
  141. package/dest/json-rpc/server/index.d.ts +2 -1
  142. package/dest/json-rpc/server/index.d.ts.map +1 -1
  143. package/dest/json-rpc/server/index.js +1 -0
  144. package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
  145. package/dest/log/bigint-utils.d.ts +5 -0
  146. package/dest/log/bigint-utils.d.ts.map +1 -0
  147. package/dest/log/bigint-utils.js +21 -0
  148. package/dest/log/gcloud-logger-config.d.ts +1 -1
  149. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  150. package/dest/log/gcloud-logger-config.js +3 -0
  151. package/dest/log/libp2p_logger.d.ts +5 -2
  152. package/dest/log/libp2p_logger.d.ts.map +1 -1
  153. package/dest/log/libp2p_logger.js +14 -4
  154. package/dest/log/log-filters.d.ts +17 -4
  155. package/dest/log/log-filters.d.ts.map +1 -1
  156. package/dest/log/log-filters.js +26 -12
  157. package/dest/log/pino-logger-server.d.ts +9 -0
  158. package/dest/log/pino-logger-server.d.ts.map +1 -0
  159. package/dest/log/pino-logger-server.js +18 -0
  160. package/dest/log/pino-logger.d.ts +37 -8
  161. package/dest/log/pino-logger.d.ts.map +1 -1
  162. package/dest/log/pino-logger.js +122 -29
  163. package/dest/queue/base_memory_queue.d.ts +2 -2
  164. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  165. package/dest/queue/semaphore.d.ts +5 -1
  166. package/dest/queue/semaphore.d.ts.map +1 -1
  167. package/dest/retry/index.d.ts +11 -1
  168. package/dest/retry/index.d.ts.map +1 -1
  169. package/dest/retry/index.js +11 -0
  170. package/dest/schemas/schemas.d.ts +7 -3
  171. package/dest/schemas/schemas.d.ts.map +1 -1
  172. package/dest/schemas/schemas.js +9 -3
  173. package/dest/schemas/types.d.ts +31 -1
  174. package/dest/schemas/types.d.ts.map +1 -1
  175. package/dest/schemas/types.js +25 -1
  176. package/dest/serialize/buffer_reader.d.ts +14 -4
  177. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  178. package/dest/serialize/buffer_reader.js +26 -4
  179. package/dest/serialize/field_reader.d.ts +2 -2
  180. package/dest/serialize/field_reader.d.ts.map +1 -1
  181. package/dest/serialize/field_reader.js +1 -1
  182. package/dest/serialize/free_funcs.d.ts +2 -2
  183. package/dest/serialize/free_funcs.d.ts.map +1 -1
  184. package/dest/serialize/free_funcs.js +1 -1
  185. package/dest/serialize/serialize.d.ts +20 -2
  186. package/dest/serialize/serialize.d.ts.map +1 -1
  187. package/dest/serialize/serialize.js +32 -1
  188. package/dest/sleep/index.d.ts +4 -1
  189. package/dest/sleep/index.d.ts.map +1 -1
  190. package/dest/sleep/index.js +14 -1
  191. package/dest/timer/date.d.ts +26 -1
  192. package/dest/timer/date.d.ts.map +1 -1
  193. package/dest/timer/date.js +36 -0
  194. package/dest/transport/transport_client.js +2 -2
  195. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  196. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  197. package/dest/trees/{balanced_merkle_tree.js → balanced_merkle_tree_root.js} +2 -15
  198. package/dest/trees/hasher.d.ts +3 -1
  199. package/dest/trees/hasher.d.ts.map +1 -1
  200. package/dest/trees/hasher.js +10 -5
  201. package/dest/trees/index.d.ts +4 -4
  202. package/dest/trees/index.d.ts.map +1 -1
  203. package/dest/trees/index.js +3 -3
  204. package/dest/trees/indexed_merkle_tree.js +1 -1
  205. package/dest/trees/membership_witness.d.ts +12 -2
  206. package/dest/trees/membership_witness.d.ts.map +1 -1
  207. package/dest/trees/membership_witness.js +10 -1
  208. package/dest/trees/merkle_tree_calculator.d.ts +1 -1
  209. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  210. package/dest/trees/merkle_tree_calculator.js +2 -2
  211. package/dest/trees/sibling_path.d.ts +3 -2
  212. package/dest/trees/sibling_path.d.ts.map +1 -1
  213. package/dest/trees/sibling_path.js +3 -3
  214. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +2 -3
  215. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  216. package/dest/trees/unbalanced_merkle_tree_calculator.js +1 -5
  217. package/dest/trees/{unbalanced_merkle_tree.d.ts → unbalanced_merkle_tree_root.d.ts} +3 -5
  218. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  219. package/dest/trees/{unbalanced_merkle_tree.js → unbalanced_merkle_tree_root.js} +11 -49
  220. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  221. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  222. package/dest/trees/unbalanced_tree_store.js +49 -1
  223. package/dest/types/index.d.ts +6 -2
  224. package/dest/types/index.d.ts.map +1 -1
  225. package/dest/types/index.js +6 -0
  226. package/package.json +48 -9
  227. package/src/array/index.ts +1 -0
  228. package/src/array/sorted_array.ts +138 -0
  229. package/src/branded-types/block_number.ts +117 -0
  230. package/src/branded-types/checkpoint_number.ts +115 -0
  231. package/src/branded-types/index.ts +3 -0
  232. package/src/branded-types/index_within_checkpoint.ts +88 -0
  233. package/src/buffer/buffer16.ts +2 -2
  234. package/src/buffer/buffer32.ts +2 -2
  235. package/src/collection/array.ts +52 -0
  236. package/src/config/env_var.ts +81 -17
  237. package/src/config/index.ts +54 -6
  238. package/src/config/network_config.ts +4 -0
  239. package/src/config/network_name.ts +4 -1
  240. package/src/config/parse-env.ts +4 -0
  241. package/src/crypto/bls/bn254_keystore.ts +1 -1
  242. package/src/crypto/bls/index.ts +1 -1
  243. package/src/crypto/bn254/index.ts +50 -159
  244. package/src/crypto/ecdsa/signature.ts +2 -2
  245. package/src/crypto/grumpkin/index.ts +3 -1
  246. package/src/crypto/keys/index.ts +1 -1
  247. package/src/crypto/pedersen/pedersen.wasm.ts +1 -1
  248. package/src/crypto/poseidon/index.ts +14 -24
  249. package/src/crypto/random/randomness_singleton.ts +6 -4
  250. package/src/crypto/schnorr/index.ts +2 -1
  251. package/src/crypto/schnorr/signature.ts +2 -2
  252. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  253. package/src/crypto/sha256/index.ts +1 -1
  254. package/src/crypto/sha512/index.ts +1 -1
  255. package/src/crypto/signature/index.ts +1 -1
  256. package/src/crypto/sync/pedersen/index.ts +1 -1
  257. package/src/crypto/sync/poseidon/index.ts +1 -10
  258. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
  259. package/src/curves/bls12/index.ts +2 -0
  260. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  261. package/src/{fields/fields.ts → curves/bn254/field.ts} +37 -56
  262. package/src/curves/bn254/index.ts +2 -0
  263. package/src/curves/bn254/point.ts +170 -0
  264. package/src/curves/grumpkin/index.ts +11 -0
  265. package/src/{fields → curves/grumpkin}/point.ts +7 -7
  266. package/src/eth-address/index.ts +8 -2
  267. package/src/eth-signature/eth_signature.ts +7 -1
  268. package/src/iterator/filter.ts +11 -0
  269. package/src/iterator/index.ts +1 -0
  270. package/src/jest/setup.mjs +31 -1
  271. package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
  272. package/src/json-rpc/client/undici.ts +21 -3
  273. package/src/json-rpc/server/api_key_auth.ts +63 -0
  274. package/src/json-rpc/server/index.ts +1 -0
  275. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  276. package/src/log/bigint-utils.ts +25 -0
  277. package/src/log/gcloud-logger-config.ts +5 -0
  278. package/src/log/libp2p_logger.ts +12 -5
  279. package/src/log/log-filters.ts +29 -11
  280. package/src/log/pino-logger-server.ts +25 -0
  281. package/src/log/pino-logger.ts +144 -39
  282. package/src/queue/base_memory_queue.ts +1 -1
  283. package/src/queue/semaphore.ts +5 -0
  284. package/src/retry/index.ts +18 -0
  285. package/src/schemas/schemas.ts +14 -3
  286. package/src/schemas/types.ts +33 -0
  287. package/src/serialize/buffer_reader.ts +36 -9
  288. package/src/serialize/field_reader.ts +1 -1
  289. package/src/serialize/free_funcs.ts +1 -1
  290. package/src/serialize/serialize.ts +33 -1
  291. package/src/sleep/index.ts +16 -1
  292. package/src/timer/date.ts +52 -0
  293. package/src/transport/transport_client.ts +2 -2
  294. package/src/trees/{balanced_merkle_tree.ts → balanced_merkle_tree_root.ts} +2 -16
  295. package/src/trees/hasher.ts +9 -0
  296. package/src/trees/index.ts +3 -3
  297. package/src/trees/indexed_merkle_tree.ts +1 -1
  298. package/src/trees/membership_witness.ts +9 -1
  299. package/src/trees/merkle_tree_calculator.ts +2 -2
  300. package/src/trees/sibling_path.ts +3 -3
  301. package/src/trees/unbalanced_merkle_tree_calculator.ts +1 -12
  302. package/src/trees/{unbalanced_merkle_tree.ts → unbalanced_merkle_tree_root.ts} +17 -61
  303. package/src/trees/unbalanced_tree_store.ts +57 -2
  304. package/src/types/index.ts +11 -1
  305. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  306. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  307. package/dest/crypto/bn254/bn254_utils.js +0 -56
  308. package/dest/crypto/index.d.ts +0 -17
  309. package/dest/crypto/index.d.ts.map +0 -1
  310. package/dest/crypto/index.js +0 -16
  311. package/dest/fields/bls12_fields.d.ts.map +0 -1
  312. package/dest/fields/bls12_point.d.ts.map +0 -1
  313. package/dest/fields/coordinate.d.ts +0 -63
  314. package/dest/fields/coordinate.d.ts.map +0 -1
  315. package/dest/fields/coordinate.js +0 -96
  316. package/dest/fields/fields.d.ts.map +0 -1
  317. package/dest/fields/index.d.ts +0 -6
  318. package/dest/fields/index.d.ts.map +0 -1
  319. package/dest/fields/index.js +0 -5
  320. package/dest/fields/point.d.ts.map +0 -1
  321. package/dest/index.d.ts +0 -31
  322. package/dest/index.d.ts.map +0 -1
  323. package/dest/index.js +0 -31
  324. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  325. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  326. package/dest/json-rpc/server/telemetry.js +0 -0
  327. package/dest/trees/balanced_merkle_tree.d.ts +0 -22
  328. package/dest/trees/balanced_merkle_tree.d.ts.map +0 -1
  329. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  330. package/src/crypto/bn254/bn254_utils.ts +0 -64
  331. package/src/crypto/index.ts +0 -16
  332. package/src/fields/coordinate.ts +0 -104
  333. package/src/fields/index.ts +0 -5
  334. package/src/index.ts +0 -31
  335. package/src/json-rpc/server/telemetry.ts +0 -0
@@ -1,14 +1,25 @@
1
+ import { type Color } from 'colorette';
1
2
  import type { Writable } from 'stream';
2
3
  import type { LogLevel } from './log-levels.js';
3
4
  import type { LogData, LogFn } from './log_fn.js';
4
- export declare function createLogger(module: string): Logger;
5
+ /** Optional bindings to pass to createLogger for additional context. */
6
+ export type LoggerBindings = {
7
+ /** Actor label shown in logs (e.g., 'MAIN', 'prover-node'). */
8
+ actor?: string;
9
+ /** Instance identifier for distinguishing multiple instances of the same component. */
10
+ instanceId?: string;
11
+ };
12
+ type LogBindingsHandler = () => LoggerBindings | undefined;
13
+ export declare function addLogBindingsHandler(handler: LogBindingsHandler): void;
14
+ export declare function removeLogBindingsHandler(handler: LogBindingsHandler): void;
15
+ export declare function createLogger(module: string, bindings?: LoggerBindings): Logger;
16
+ /**
17
+ * Returns a logger for the given module. If loggerOrBindings is already a Logger, returns it directly.
18
+ * Otherwise, creates a new logger with the given module name and bindings.
19
+ */
20
+ export declare function resolveLogger(module: string, loggerOrBindings?: Logger | LoggerBindings): Logger;
5
21
  type LogDataHandler = (data: LogData) => LogData;
6
22
  export declare function addLogDataHandler(handler: LogDataHandler): void;
7
- type LogNameHandler = (module: string) => string;
8
- export declare function addLogNameHandler(handler: LogNameHandler): void;
9
- export declare function removeLogNameHandler(handler: LogNameHandler): void;
10
- /** Creates all loggers within the given callback with the suffix appended to the module name. */
11
- export declare function withLogNameSuffix<T>(suffix: string, callback: () => Promise<T>): Promise<T>;
12
23
  export declare const logLevel: "debug" | "error" | "fatal" | "info" | "silent" | "trace" | "verbose" | "warn", logFilters: import("./log-filters.js").LogFilters;
13
24
  export declare const levels: {
14
25
  labels: any;
@@ -16,16 +27,32 @@ export declare const levels: {
16
27
  verbose: number;
17
28
  };
18
29
  };
30
+ /** Returns the color function assigned to a given actor, assigning a new one if needed. */
31
+ export declare function getActorColor(actor: string): Color;
32
+ /** Resets the actor-to-color mapping. Useful for testing. */
33
+ export declare function resetActorColors(): void;
34
+ type LogObject = {
35
+ actor?: string;
36
+ module?: string;
37
+ instanceId?: string;
38
+ msg?: string;
39
+ };
40
+ /** Formats a log message with per-actor coloring. Actor, module, and instanceId share the same color. */
41
+ export declare function formatLogMessage(log: LogObject, messageKey: string): string;
42
+ /**
43
+ * Pino-pretty options for direct use (e.g., jest/setup.mjs).
44
+ * Includes function-based messageFormat for per-actor coloring when enabled.
45
+ */
19
46
  export declare const pinoPrettyOpts: {
20
47
  destination: number;
21
48
  sync: boolean;
22
49
  colorize: boolean;
23
50
  ignore: string;
24
- messageFormat: string;
25
51
  customLevels: string;
26
52
  customColors: string;
27
53
  minimumLevel: "trace";
28
54
  singleLine: boolean;
55
+ messageFormat: string | typeof formatLogMessage;
29
56
  };
30
57
  export declare const logger: import("pino").Logger<"verbose", boolean>;
31
58
  /**
@@ -52,6 +79,8 @@ export type Logger = {
52
79
  isLevelEnabled: (level: LogLevel) => boolean;
53
80
  module: string;
54
81
  createChild: (childModule: string) => Logger;
82
+ /** Returns the bindings (actor, instanceId) for this logger. */
83
+ getBindings: () => LoggerBindings;
55
84
  };
56
85
  export {};
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBT3ZDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQsd0JBQWdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FtQ25EO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBUUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxjQUFjLFFBSzNEO0FBRUQsaUdBQWlHO0FBQ2pHLHdCQUFzQixpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQU1qRztBQVdELGVBQU8sTUFBTyxRQUFRLGtGQUFFLFVBQVUsdUNBQW9ELENBQUM7QUEwQ3ZGLGVBQU8sTUFBTSxNQUFNOzs7OztDQUdsQixDQUFDO0FBTUYsZUFBTyxNQUFNLGNBQWM7Ozs7Ozs7Ozs7Q0FVMUIsQ0FBQztBQW9ERixlQUFPLE1BQU0sTUFBTSwyQ0FBZSxDQUFDO0FBYW5DOzs7R0FHRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FFN0Q7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IscUJBQXFCLENBQUMsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBZTVEO0FBRUQsb0RBQW9EO0FBQ3BELEtBQUssVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxLQUFLLElBQUksQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sTUFBTSxNQUFNLEdBQUc7S0FBRyxDQUFDLElBQUksUUFBUSxHQUFHLEtBQUs7Q0FBRSxHQUFHO0lBQTRCLEtBQUssRUFBRSxVQUFVLENBQUE7Q0FBRSxHQUFHO0lBQ2xHLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDaEIsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUM7SUFDN0MsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDO0NBQzlDLENBQUMifQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFrQyxNQUFNLFdBQVcsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFTdkMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCx3RUFBd0U7QUFDeEUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQiwrREFBK0Q7SUFDL0QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsdUZBQXVGO0lBQ3ZGLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNyQixDQUFDO0FBSUYsS0FBSyxrQkFBa0IsR0FBRyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7QUFHM0Qsd0JBQWdCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxJQUFJLENBRXZFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsUUFLbkU7QUFZRCx3QkFBZ0IsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0E2QzlFO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUFHLGNBQWMsR0FBRyxNQUFNLENBS2hHO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBZUQsZUFBTyxNQUFPLFFBQVEsa0ZBQUUsVUFBVSx1Q0FBK0QsQ0FBQztBQTZDbEcsZUFBTyxNQUFNLE1BQU07Ozs7O0NBR2xCLENBQUM7QUFlRiwyRkFBMkY7QUFDM0Ysd0JBQWdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FRbEQ7QUFFRCw2REFBNkQ7QUFDN0Qsd0JBQWdCLGdCQUFnQixJQUFJLElBQUksQ0FHdkM7QUFNRCxLQUFLLFNBQVMsR0FBRztJQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFeEYseUdBQXlHO0FBQ3pHLHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWtCM0U7QUFjRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sY0FBYzs7Ozs7Ozs7OztDQUcxQixDQUFDO0FBMERGLGVBQU8sTUFBTSxNQUFNLDJDQUFlLENBQUM7QUFhbkM7OztHQUdHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUU3RDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FlNUQ7QUFFRCxvREFBb0Q7QUFDcEQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUFDO0FBRXZFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLE1BQU0sR0FBRztLQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSztDQUFFLEdBQUc7SUFBNEIsS0FBSyxFQUFFLFVBQVUsQ0FBQTtDQUFFLEdBQUc7SUFDbEcsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUNoQixjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxLQUFLLE9BQU8sQ0FBQztJQUM3QyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUM7SUFDN0MsZ0VBQWdFO0lBQ2hFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztDQUNuQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmCnD;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAQD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,QAK3D;AAED,iGAAiG;AACjG,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMjG;AAWD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAAoD,CAAC;AA0CvF,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAMF,eAAO,MAAM,cAAc;;;;;;;;;;CAU1B,CAAC;AAoDF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C,CAAC"}
1
+ {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAkC,MAAM,WAAW,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AASvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAC3B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,KAAK,kBAAkB,GAAG,MAAM,cAAc,GAAG,SAAS,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,QAKnE;AAYD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CA6C9E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,CAKhG;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAeD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAA+D,CAAC;AA6ClG,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAeF,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAQlD;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAMD,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB3E;AAcD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAG1B,CAAC;AA0DF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,gEAAgE;IAChE,WAAW,EAAE,MAAM,cAAc,CAAC;CACnC,CAAC"}
@@ -3,13 +3,45 @@ import isNode from 'detect-node';
3
3
  import { pino, symbols } from 'pino';
4
4
  import { inspect } from 'util';
5
5
  import { compactArray } from '../collection/array.js';
6
- import { parseBooleanEnv } from '../config/index.js';
6
+ import { parseBooleanEnv } from '../config/parse-env.js';
7
+ import { convertBigintsToStrings } from './bigint-utils.js';
7
8
  import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
8
- import { getLogLevelFromFilters, parseEnv } from './log-filters.js';
9
- export function createLogger(module) {
10
- module = logNameHandlers.reduce((moduleName, handler)=>handler(moduleName), module.replace(/^aztec:/, ''));
9
+ import { getLogLevelFromFilters, parseLogLevelEnvVar } from './log-filters.js';
10
+ const logBindingsHandlers = [];
11
+ export function addLogBindingsHandler(handler) {
12
+ logBindingsHandlers.push(handler);
13
+ }
14
+ export function removeLogBindingsHandler(handler) {
15
+ const index = logBindingsHandlers.indexOf(handler);
16
+ if (index !== -1) {
17
+ logBindingsHandlers.splice(index, 1);
18
+ }
19
+ }
20
+ function getBindingsFromHandlers() {
21
+ for (const handler of logBindingsHandlers){
22
+ const bindings = handler();
23
+ if (bindings) {
24
+ return bindings;
25
+ }
26
+ }
27
+ return undefined;
28
+ }
29
+ export function createLogger(module, bindings) {
30
+ module = module.replace(/^aztec:/, '');
31
+ const resolvedBindings = {
32
+ ...getBindingsFromHandlers(),
33
+ ...bindings
34
+ };
35
+ const actor = resolvedBindings?.actor;
36
+ const instanceId = resolvedBindings?.instanceId;
11
37
  const pinoLogger = logger.child({
12
- module
38
+ module,
39
+ ...actor && {
40
+ actor
41
+ },
42
+ ...instanceId && {
43
+ instanceId
44
+ }
13
45
  }, {
14
46
  level: getLogLevelFromFilters(logFilters, module)
15
47
  });
@@ -29,9 +61,25 @@ export function createLogger(module) {
29
61
  /** Level of the logger */ level: pinoLogger.level,
30
62
  /** Whether the given level is enabled for this logger. */ isLevelEnabled: (level)=>isLevelEnabled(pinoLogger, level),
31
63
  /** Module name for the logger. */ module,
32
- /** Creates another logger by extending this logger module name. */ createChild: (childModule)=>createLogger(`${module}:${childModule}`)
64
+ /** Creates another logger by extending this logger module name and preserving bindings. */ createChild: (childModule)=>createLogger(`${module}:${childModule}`, {
65
+ actor,
66
+ instanceId
67
+ }),
68
+ /** Returns the bindings (actor, instanceId) for this logger. */ getBindings: ()=>({
69
+ actor,
70
+ instanceId
71
+ })
33
72
  };
34
73
  }
74
+ /**
75
+ * Returns a logger for the given module. If loggerOrBindings is already a Logger, returns it directly.
76
+ * Otherwise, creates a new logger with the given module name and bindings.
77
+ */ export function resolveLogger(module, loggerOrBindings) {
78
+ if (loggerOrBindings && 'info' in loggerOrBindings) {
79
+ return loggerOrBindings;
80
+ }
81
+ return createLogger(module, loggerOrBindings);
82
+ }
35
83
  const logDataHandlers = [];
36
84
  export function addLogDataHandler(handler) {
37
85
  logDataHandlers.push(handler);
@@ -39,30 +87,13 @@ export function addLogDataHandler(handler) {
39
87
  function processLogData(data) {
40
88
  return logDataHandlers.reduce((accum, handler)=>handler(accum), data);
41
89
  }
42
- const logNameHandlers = [];
43
- export function addLogNameHandler(handler) {
44
- logNameHandlers.push(handler);
45
- }
46
- export function removeLogNameHandler(handler) {
47
- const index = logNameHandlers.indexOf(handler);
48
- if (index !== -1) {
49
- logNameHandlers.splice(index, 1);
50
- }
51
- }
52
- /** Creates all loggers within the given callback with the suffix appended to the module name. */ export async function withLogNameSuffix(suffix, callback) {
53
- const logNameHandler = (module)=>`${module}:${suffix}`;
54
- addLogNameHandler(logNameHandler);
55
- const result = await callback();
56
- removeLogNameHandler(logNameHandler);
57
- return result;
58
- }
59
90
  // Patch isLevelEnabled missing from pino/browser.
60
91
  function isLevelEnabled(logger, level) {
61
92
  return typeof logger.isLevelEnabled === 'function' ? logger.isLevelEnabled(level) : logger.levels.values[level] >= logger.levels.values[logger.level];
62
93
  }
63
94
  // Load log levels from environment variables.
64
95
  const defaultLogLevel = process.env.NODE_ENV === 'test' ? 'silent' : 'info';
65
- export const [logLevel, logFilters] = parseEnv(process.env.LOG_LEVEL, defaultLogLevel);
96
+ export const [logLevel, logFilters] = parseLogLevelEnvVar(process.env.LOG_LEVEL, defaultLogLevel);
66
97
  // Define custom logging levels for pino.
67
98
  const customLevels = {
68
99
  verbose: 25
@@ -99,6 +130,9 @@ const pinoOpts = {
99
130
  ...redactedPaths.map((p)=>`opts.${p}`)
100
131
  ]
101
132
  },
133
+ formatters: {
134
+ log: (obj)=>convertBigintsToStrings(obj)
135
+ },
102
136
  ...useGcloudLogging ? GoogleCloudLoggerConfig : {}
103
137
  };
104
138
  export const levels = {
@@ -114,23 +148,82 @@ export const levels = {
114
148
  // Transport options for pretty logging to stderr via pino-pretty.
115
149
  const colorEnv = process.env['FORCE_COLOR'];
116
150
  const useColor = colorEnv === undefined ? isColorSupported : parseBooleanEnv(colorEnv);
117
- const { bold, reset } = createColors({
151
+ const { bold, reset, cyan, magenta, yellow, blue, green, magentaBright, yellowBright, blueBright, greenBright } = createColors({
118
152
  useColor
119
153
  });
120
- export const pinoPrettyOpts = {
154
+ // Per-actor coloring: each unique actor gets a different color for easier visual distinction.
155
+ // Disabled when LOG_NO_COLOR_PER_ACTOR is set to a truthy value.
156
+ const useColorPerActor = useColor && !parseBooleanEnv(process.env['LOG_NO_COLOR_PER_ACTOR']);
157
+ const actorColors = [
158
+ yellow,
159
+ magenta,
160
+ blue,
161
+ green,
162
+ magentaBright,
163
+ yellowBright,
164
+ blueBright,
165
+ greenBright
166
+ ];
167
+ const actorColorMap = new Map();
168
+ let nextColorIndex = 0;
169
+ /** Returns the color function assigned to a given actor, assigning a new one if needed. */ export function getActorColor(actor) {
170
+ let color = actorColorMap.get(actor);
171
+ if (!color) {
172
+ color = actorColors[nextColorIndex % actorColors.length];
173
+ actorColorMap.set(actor, color);
174
+ nextColorIndex++;
175
+ }
176
+ return color;
177
+ }
178
+ /** Resets the actor-to-color mapping. Useful for testing. */ export function resetActorColors() {
179
+ actorColorMap.clear();
180
+ nextColorIndex = 0;
181
+ }
182
+ // String template for messageFormat (used in worker threads and when per-actor coloring is disabled).
183
+ const messageFormatString = `${bold('{module}')}{if actor} ${cyan('{actor}')}{end}{if instanceId} ${reset(cyan('{instanceId}'))}{end} ${reset('{msg}')}`;
184
+ /** Formats a log message with per-actor coloring. Actor, module, and instanceId share the same color. */ export function formatLogMessage(log, messageKey) {
185
+ const actor = log.actor;
186
+ const module = log.module ?? '';
187
+ const instanceId = log.instanceId;
188
+ const msg = log[messageKey] ?? '';
189
+ // Use actor color for actor, module, and instanceId when actor is present
190
+ const color = actor ? getActorColor(actor) : cyan;
191
+ let result = bold(color(module));
192
+ if (actor) {
193
+ result += ' ' + color(actor);
194
+ }
195
+ if (instanceId) {
196
+ result += ' ' + reset(color(instanceId));
197
+ }
198
+ result += ' ' + reset(String(msg));
199
+ return result;
200
+ }
201
+ // Base options for pino-pretty (shared between transport and direct use).
202
+ const pinoPrettyBaseOpts = {
121
203
  destination: 2,
122
204
  sync: true,
123
205
  colorize: useColor,
124
- ignore: 'module,pid,hostname,trace_id,span_id,trace_flags,severity',
125
- messageFormat: `${bold('{module}')} ${reset('{msg}')}`,
206
+ ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity',
126
207
  customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
127
208
  customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
128
209
  minimumLevel: 'trace',
129
210
  singleLine: !parseBooleanEnv(process.env['LOG_MULTILINE'])
130
211
  };
212
+ /**
213
+ * Pino-pretty options for direct use (e.g., jest/setup.mjs).
214
+ * Includes function-based messageFormat for per-actor coloring when enabled.
215
+ */ export const pinoPrettyOpts = {
216
+ ...pinoPrettyBaseOpts,
217
+ messageFormat: useColorPerActor ? formatLogMessage : messageFormatString
218
+ };
219
+ // Transport options use string template only (functions can't be serialized to worker threads).
220
+ const prettyTransportOpts = {
221
+ ...pinoPrettyBaseOpts,
222
+ messageFormat: messageFormatString
223
+ };
131
224
  const prettyTransport = {
132
225
  target: 'pino-pretty',
133
- options: pinoPrettyOpts,
226
+ options: prettyTransportOpts,
134
227
  level: 'trace'
135
228
  };
136
229
  // Transport for vanilla stdio logging as JSON.
@@ -60,6 +60,6 @@ export declare abstract class BaseMemoryQueue<T> {
60
60
  * @param handler - A function that takes an item of type T and returns a Promise<void> after processing the item.
61
61
  * @returns A Promise<void> that resolves when the queue is finished processing.
62
62
  */
63
- process(handler: (item: T) => Promise<void>): Promise<void>;
63
+ process(handler: (item: T) => Promise<void> | void): Promise<void>;
64
64
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9tZW1vcnlfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXNlX21lbW9yeV9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBc0IsZUFBZSxDQUFDLENBQUM7SUFJekIsT0FBTyxDQUFDLEdBQUc7SUFIdkIsT0FBTyxDQUFDLE9BQU8sQ0FBb0M7SUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUV6QixZQUFvQixHQUFHLHlDQUF5QyxFQUFJO0lBRXBFLFNBQVMsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJO1FBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNyQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0tBQ25CLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLE1BQU0sV0FFWjtJQUVEOzs7T0FHRztJQUNJLFlBQVksSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUVuQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBNkJqRDtJQUVEOzs7O09BSUc7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxPQUFPLENBVzNCO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsU0FHVDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLFNBSVo7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBWXZEO0NBQ0YifQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9tZW1vcnlfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXNlX21lbW9yeV9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBc0IsZUFBZSxDQUFDLENBQUM7SUFJekIsT0FBTyxDQUFDLEdBQUc7SUFIdkIsT0FBTyxDQUFDLE9BQU8sQ0FBb0M7SUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUV6QixZQUFvQixHQUFHLHlDQUF5QyxFQUFJO0lBRXBFLFNBQVMsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJO1FBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNyQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0tBQ25CLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLE1BQU0sV0FFWjtJQUVEOzs7T0FHRztJQUNJLFlBQVksSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUVuQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBNkJqRDtJQUVEOzs7O09BSUc7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxPQUFPLENBVzNCO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsU0FHVDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLFNBSVo7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGlCQVk5RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"base_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/base_memory_queue.ts"],"names":[],"mappings":"AAGA,8BAAsB,eAAe,CAAC,CAAC;IAIzB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAoB,GAAG,yCAAyC,EAAI;IAEpE,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;QACrB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IAEF;;;;;OAKG;IACI,MAAM,WAEZ;IAED;;;OAGG;IACI,YAAY,IAAI,CAAC,GAAG,SAAS,CAEnC;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BjD;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAW3B;IAED;;;;OAIG;IACI,GAAG,SAGT;IAED;;;;OAIG;IACI,MAAM,SAIZ;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,iBAYvD;CACF"}
1
+ {"version":3,"file":"base_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/base_memory_queue.ts"],"names":[],"mappings":"AAGA,8BAAsB,eAAe,CAAC,CAAC;IAIzB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAoB,GAAG,yCAAyC,EAAI;IAEpE,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;QACrB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IAEF;;;;;OAKG;IACI,MAAM,WAEZ;IAED;;;OAGG;IACI,YAAY,IAAI,CAAC,GAAG,SAAS,CAEnC;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BjD;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAW3B;IAED;;;;OAIG;IACI,GAAG,SAGT;IAED;;;;OAIG;IACI,MAAM,SAIZ;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAY9D;CACF"}
@@ -1,3 +1,7 @@
1
+ export interface ISemaphore {
2
+ acquire(): Promise<void>;
3
+ release(): void;
4
+ }
1
5
  /**
2
6
  * Allows the acquiring of up to `size` tokens before calls to acquire block, waiting for a call to release().
3
7
  */
@@ -20,4 +24,4 @@ export declare class Semaphore {
20
24
  */
21
25
  release(): void;
22
26
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtYXBob3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvc2VtYXBob3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBa0M7SUFFeEQsWUFBWSxJQUFJLEVBQUUsTUFBTSxFQUV2QjtJQUVEOzs7Ozs7T0FNRztJQUNVLE9BQU8sa0JBRW5CO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLFNBRWI7Q0FDRiJ9
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtYXBob3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvc2VtYXBob3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sV0FBVyxVQUFVO0lBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsT0FBTyxJQUFJLElBQUksQ0FBQztDQUNqQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBa0M7SUFFeEQsWUFBWSxJQUFJLEVBQUUsTUFBTSxFQUV2QjtJQUVEOzs7Ozs7T0FNRztJQUNVLE9BQU8sa0JBRW5CO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLFNBRWI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"semaphore.d.ts","sourceRoot":"","sources":["../../src/queue/semaphore.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IAExD,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED;;;;;;OAMG;IACU,OAAO,kBAEnB;IAED;;;;;OAKG;IACI,OAAO,SAEb;CACF"}
1
+ {"version":3,"file":"semaphore.d.ts","sourceRoot":"","sources":["../../src/queue/semaphore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IAExD,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED;;;;;;OAMG;IACU,OAAO,kBAEnB;IAED;;;;;OAKG;IACI,OAAO,SAEb;CACF"}
@@ -42,4 +42,14 @@ export declare function retry<Result>(fn: () => Promise<Result>, name?: string,
42
42
  * @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if timeout is exceeded.
43
43
  */
44
44
  export declare function retryUntil<T>(fn: () => (T | undefined) | Promise<T | undefined>, name?: string, timeout?: number, interval?: number): Promise<NonNullable<Awaited<T>>>;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFJNUQsd0VBQXdFO0FBQ3hFLHFCQUFhLFlBQWEsU0FBUSxLQUFLO0NBQUc7QUFFMUM7Ozs7Ozs7R0FPRztBQUNILHdCQUFpQixnQkFBZ0IscUNBTWhDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFpQixXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxvQ0FJN0M7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFzQixLQUFLLENBQUMsTUFBTSxFQUNoQyxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3pCLElBQUksU0FBYyxFQUNsQixPQUFPLG1DQUFxQixFQUM1QixHQUFHLEdBQUUsTUFBeUMsRUFDOUMsWUFBWSxVQUFRLG1CQW9CckI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQXNCLFVBQVUsQ0FBQyxDQUFDLEVBQ2hDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSSxFQUNYLFFBQVEsU0FBSSxvQ0FlYiJ9
45
+ /**
46
+ * Convenience wrapper around retryUntil with fast polling for tests.
47
+ * Uses 10s timeout and 100ms polling interval by default.
48
+ *
49
+ * @param fn - The function to retry until it returns a truthy value.
50
+ * @param name - Description of what we're waiting for (for error messages).
51
+ * @param timeout - Optional timeout in seconds. Defaults to 10s.
52
+ * @param interval - Optional interval in seconds. Defaults to 0.1s (100ms).
53
+ */
54
+ export declare function retryFastUntil<T>(fn: () => (T | undefined) | Promise<T | undefined>, name?: string, timeout?: number, interval?: number): Promise<NonNullable<Awaited<T>>>;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFJNUQsd0VBQXdFO0FBQ3hFLHFCQUFhLFlBQWEsU0FBUSxLQUFLO0NBQUc7QUFFMUM7Ozs7Ozs7R0FPRztBQUNILHdCQUFpQixnQkFBZ0IscUNBTWhDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFpQixXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxvQ0FJN0M7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFzQixLQUFLLENBQUMsTUFBTSxFQUNoQyxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3pCLElBQUksU0FBYyxFQUNsQixPQUFPLG1DQUFxQixFQUM1QixHQUFHLEdBQUUsTUFBeUMsRUFDOUMsWUFBWSxVQUFRLG1CQW9CckI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQXNCLFVBQVUsQ0FBQyxDQUFDLEVBQ2hDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSSxFQUNYLFFBQVEsU0FBSSxvQ0FlYjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxDQUFDLEVBQzlCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSyxFQUNaLFFBQVEsU0FBTSxvQ0FHZiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAI5D,wEAAwE;AACxE,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C;;;;;;;GAOG;AACH,wBAAiB,gBAAgB,qCAMhC;AAED;;;;GAIG;AACH,wBAAiB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,oCAI7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,SAAc,EAClB,OAAO,mCAAqB,EAC5B,GAAG,GAAE,MAAyC,EAC9C,YAAY,UAAQ,mBAoBrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAI,EACX,QAAQ,SAAI,oCAeb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAI5D,wEAAwE;AACxE,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C;;;;;;;GAOG;AACH,wBAAiB,gBAAgB,qCAMhC;AAED;;;;GAIG;AACH,wBAAiB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,oCAI7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,SAAc,EAClB,OAAO,mCAAqB,EAC5B,GAAG,GAAE,MAAyC,EAC9C,YAAY,UAAQ,mBAoBrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAI,EACX,QAAQ,SAAI,oCAeb;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAK,EACZ,QAAQ,SAAM,oCAGf"}
@@ -91,3 +91,14 @@ import { Timer } from '../timer/index.js';
91
91
  }
92
92
  }
93
93
  }
94
+ /**
95
+ * Convenience wrapper around retryUntil with fast polling for tests.
96
+ * Uses 10s timeout and 100ms polling interval by default.
97
+ *
98
+ * @param fn - The function to retry until it returns a truthy value.
99
+ * @param name - Description of what we're waiting for (for error messages).
100
+ * @param timeout - Optional timeout in seconds. Defaults to 10s.
101
+ * @param interval - Optional interval in seconds. Defaults to 0.1s (100ms).
102
+ */ export function retryFastUntil(fn, name = '', timeout = 10, interval = 0.1) {
103
+ return retryUntil(fn, name, timeout, interval);
104
+ }
@@ -3,9 +3,9 @@ import { EpochNumber } from '../branded-types/epoch.js';
3
3
  import { SlotNumber } from '../branded-types/slot.js';
4
4
  import { Buffer32 } from '../buffer/buffer32.js';
5
5
  import { SecretValue } from '../config/secret_value.js';
6
+ import { Fq, Fr } from '../curves/bn254/field.js';
7
+ import { Point } from '../curves/grumpkin/point.js';
6
8
  import { EthAddress } from '../eth-address/index.js';
7
- import { Fq, Fr } from '../fields/fields.js';
8
- import { Point } from '../fields/point.js';
9
9
  export declare const schemas: {
10
10
  /** Accepts a number, bigint, or string as an EpochNumber. */
11
11
  EpochNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, EpochNumber, string | number | bigint>;
@@ -27,6 +27,8 @@ export declare const schemas: {
27
27
  Integer: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
28
28
  /** Coerces input to UInt32. */
29
29
  UInt32: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
30
+ /** Coerces input to UInt64. */
31
+ UInt64: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
30
32
  /** Accepts a hex string as a Buffer32 type. */
31
33
  Buffer32: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer32, string>;
32
34
  /** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */
@@ -35,8 +37,10 @@ export declare const schemas: {
35
37
  BufferHex: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>;
36
38
  /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
37
39
  HexString: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
40
+ /** Hex string with an optional 0x prefix which gets enforced as part of the parsing. */
41
+ HexStringWith0x: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `0x${string}`, string>;
38
42
  /** A secret config value */
39
43
  SecretValue: typeof SecretValue.schema;
40
44
  };
41
45
  export type { EpochNumber, EthAddress, Fq, Fr, Point, SlotNumber };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxXQUFXLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBb0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUkzQyxlQUFPLE1BQU0sT0FBTztJQUNsQiw2REFBNkQ7O0lBRzdELDJEQUEyRDs7SUFHM0QsNEJBQTRCOztJQUc1Qiw0QkFBNEI7O0lBRzVCLDRCQUE0Qjs7SUFHNUIseUNBQXlDOztJQUd6QyxvREFBb0Q7O0lBY3BELG1DQUFtQzs7SUFHbkMsMkNBQTJDOztJQUczQywrQkFBK0I7O0lBUy9CLCtDQUErQzs7SUFHL0Msb0dBQW9HOztJQUdwRyx3Q0FBd0M7O0lBT3hDLHVGQUF1Rjs7SUFHdkYsNEJBQTRCOztDQUU3QixDQUFDO0FBR0YsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMifQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxXQUFXLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBb0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlyRCxlQUFPLE1BQU0sT0FBTztJQUNsQiw2REFBNkQ7O0lBRzdELDJEQUEyRDs7SUFHM0QsNEJBQTRCOztJQUc1Qiw0QkFBNEI7O0lBRzVCLDRCQUE0Qjs7SUFHNUIseUNBQXlDOztJQUd6QyxvREFBb0Q7O0lBY3BELG1DQUFtQzs7SUFHbkMsMkNBQTJDOztJQUczQywrQkFBK0I7O0lBUy9CLCtCQUErQjs7SUFRL0IsK0NBQStDOztJQUcvQyxvR0FBb0c7O0lBR3BHLHdDQUF3Qzs7SUFPeEMsdUZBQXVGOztJQUd2Rix3RkFBd0Y7O0lBR3hGLDRCQUE0Qjs7Q0FFN0IsQ0FBQztBQUdGLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAqB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAoB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,eAAO,MAAM,OAAO;IAClB,6DAA6D;;IAG7D,2DAA2D;;IAG3D,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,yCAAyC;;IAGzC,oDAAoD;;IAcpD,mCAAmC;;IAGnC,2CAA2C;;IAG3C,+BAA+B;;IAS/B,+CAA+C;;IAG/C,oGAAoG;;IAGpG,wCAAwC;;IAOxC,uFAAuF;;IAGvF,4BAA4B;;CAE7B,CAAC;AAGF,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAqB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAoB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD,eAAO,MAAM,OAAO;IAClB,6DAA6D;;IAG7D,2DAA2D;;IAG3D,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,yCAAyC;;IAGzC,oDAAoD;;IAcpD,mCAAmC;;IAGnC,2CAA2C;;IAG3C,+BAA+B;;IAS/B,+BAA+B;;IAQ/B,+CAA+C;;IAG/C,oGAAoG;;IAGpG,wCAAwC;;IAOxC,uFAAuF;;IAGvF,wFAAwF;;IAGxF,4BAA4B;;CAE7B,CAAC;AAGF,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}
@@ -3,10 +3,10 @@ import { EpochNumberSchema } from '../branded-types/epoch.js';
3
3
  import { SlotNumberSchema } from '../branded-types/slot.js';
4
4
  import { Buffer32 } from '../buffer/buffer32.js';
5
5
  import { SecretValue } from '../config/secret_value.js';
6
+ import { Fq, Fr } from '../curves/bn254/field.js';
7
+ import { Point } from '../curves/grumpkin/point.js';
6
8
  import { EthAddress } from '../eth-address/index.js';
7
- import { Fq, Fr } from '../fields/fields.js';
8
- import { Point } from '../fields/point.js';
9
- import { isHex, withoutHexPrefix } from '../string/index.js';
9
+ import { isHex, withHexPrefix, withoutHexPrefix } from '../string/index.js';
10
10
  import { bufferSchema, hexSchema } from './utils.js';
11
11
  export const schemas = {
12
12
  /** Accepts a number, bigint, or string as an EpochNumber. */ EpochNumber: EpochNumberSchema,
@@ -42,9 +42,15 @@ export const schemas = {
42
42
  z.number(),
43
43
  z.string()
44
44
  ]).pipe(z.coerce.number().int().min(0).max(2 ** 32 - 1)),
45
+ /** Coerces input to UInt64. */ UInt64: z.union([
46
+ z.bigint(),
47
+ z.number(),
48
+ z.string()
49
+ ]).pipe(z.coerce.bigint().min(0n).max(2n ** 64n - 1n)),
45
50
  /** Accepts a hex string as a Buffer32 type. */ Buffer32: z.string().refine(isHex, 'Not a valid hex string').transform(Buffer32.fromString),
46
51
  /** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */ Buffer: bufferSchema,
47
52
  /** Accepts a hex string as a buffer. */ BufferHex: z.string().refine(isHex, 'Not a valid hex string').transform(withoutHexPrefix).transform((data)=>Buffer.from(data, 'hex')),
48
53
  /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */ HexString: hexSchema,
54
+ /** Hex string with an optional 0x prefix which gets enforced as part of the parsing. */ HexStringWith0x: z.string().refine(isHex, 'Not a valid hex string').transform(withHexPrefix),
49
55
  /** A secret config value */ SecretValue: SecretValue.schema
50
56
  };
@@ -1,3 +1,33 @@
1
1
  import type { ZodType } from 'zod';
2
2
  export type ZodFor<T> = ZodType<T, any, any>;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVuQyxNQUFNLE1BQU0sTUFBTSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyJ9
3
+ /**
4
+ * Creates a schema validator that enforces all properties of type T are present in the schema.
5
+ * This provides compile-time safety to ensure schemas don't miss optional properties.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * interface MyConfig {
10
+ * foo: string;
11
+ * bar?: number;
12
+ * }
13
+ *
14
+ * // ✅ This will work - all keys present
15
+ * const schema1 = zodFor<MyConfig>()(z.object({
16
+ * foo: z.string(),
17
+ * bar: z.number().optional(),
18
+ * }));
19
+ *
20
+ * // ❌ This will error - 'bar' is missing
21
+ * const schema2 = zodFor<MyConfig>()(z.object({
22
+ * foo: z.string(),
23
+ * }));
24
+ * ```
25
+ */
26
+ export declare function zodFor<T>(): <S extends ZodType<any, any, any>>(schema: keyof T extends keyof S["_output"] ? keyof S["_output"] extends keyof T ? S : S & {
27
+ __error__: "Schema has extra keys not in type";
28
+ __extra__: Exclude<keyof S["_output"], keyof T>;
29
+ } : S & {
30
+ __error__: "Schema is missing keys from type";
31
+ __missing__: Exclude<keyof T, keyof S["_output"]>;
32
+ }) => S;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVuQyxNQUFNLE1BQU0sTUFBTSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUU3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILHdCQUFnQixNQUFNLENBQUMsQ0FBQyxNQUNRLENBQUM7Ozs7OztRQU9oQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schemas/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schemas/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,CAAC,MACQ,CAAC;;;;;;QAOhC"}
@@ -1 +1,25 @@
1
- export { };
1
+ /**
2
+ * Creates a schema validator that enforces all properties of type T are present in the schema.
3
+ * This provides compile-time safety to ensure schemas don't miss optional properties.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * interface MyConfig {
8
+ * foo: string;
9
+ * bar?: number;
10
+ * }
11
+ *
12
+ * // ✅ This will work - all keys present
13
+ * const schema1 = zodFor<MyConfig>()(z.object({
14
+ * foo: z.string(),
15
+ * bar: z.number().optional(),
16
+ * }));
17
+ *
18
+ * // ❌ This will error - 'bar' is missing
19
+ * const schema2 = zodFor<MyConfig>()(z.object({
20
+ * foo: z.string(),
21
+ * }));
22
+ * ```
23
+ */ export function zodFor() {
24
+ return (schema)=>schema;
25
+ }
@@ -72,6 +72,13 @@ export declare class BufferReader {
72
72
  * @returns The read 256 bit value as a bigint.
73
73
  */
74
74
  readUInt256(): bigint;
75
+ /**
76
+ * Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
77
+ * Updates the index position by 32 bytes after reading the number.
78
+ *
79
+ * @returns The read 256 bit signed value as a bigint.
80
+ */
81
+ readInt256(): bigint;
75
82
  /** Alias for readUInt256 */
76
83
  readBigInt(): bigint;
77
84
  /**
@@ -128,6 +135,7 @@ export declare class BufferReader {
128
135
  * deserializing each one using the 'fromBuffer' method of 'itemDeserializer'.
129
136
  *
130
137
  * @param itemDeserializer - Object with 'fromBuffer' method to deserialize vector elements.
138
+ * @param maxSize - Optional maximum allowed size for the vector. If the size exceeds this, an error is thrown.
131
139
  * @returns An array of deserialized elements of type T.
132
140
  */
133
141
  readVector<T>(itemDeserializer: {
@@ -135,7 +143,7 @@ export declare class BufferReader {
135
143
  * A method to deserialize data from a buffer.
136
144
  */
137
145
  fromBuffer: (reader: BufferReader) => T;
138
- }): T[];
146
+ }, maxSize?: number): T[];
139
147
  /**
140
148
  * Reads a vector of fixed size from the buffer and deserializes its elements using the provided itemDeserializer object.
141
149
  * The 'itemDeserializer' object should have a 'fromBuffer' method that takes a BufferReader instance and returns the deserialized element.
@@ -202,18 +210,20 @@ export declare class BufferReader {
202
210
  * The method first reads the size of the string, then reads the corresponding
203
211
  * number of bytes from the buffer and converts them to a string.
204
212
  *
213
+ * @param maxSize - Optional maximum allowed size for the string buffer. If the size exceeds this, an error is thrown.
205
214
  * @returns The read string from the buffer.
206
215
  */
207
- readString(): string;
216
+ readString(maxSize?: number): string;
208
217
  /**
209
218
  * Reads a buffer from the current position of the reader and advances the index.
210
219
  * The method first reads the size (number) of bytes to be read, and then returns
211
220
  * a Buffer with that size containing the bytes. Useful for reading variable-length
212
221
  * binary data encoded as (size, data) format.
213
222
  *
223
+ * @param maxSize - Optional maximum allowed size for the buffer. If the size exceeds this, an error is thrown.
214
224
  * @returns A Buffer containing the read bytes.
215
225
  */
216
- readBuffer(): Buffer;
226
+ readBuffer(maxSize?: number): Buffer;
217
227
  /**
218
228
  * Reads a buffer from the current position of the reader and advances the index.
219
229
  * The method first reads the size (number) of bytes to be read, and then returns
@@ -261,4 +271,4 @@ export interface FromBuffer<T> {
261
271
  */
262
272
  fromBuffer(buffer: Buffer): T;
263
273
  }
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9idWZmZXJfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHFCQUFhLFlBQVk7O0lBR3JCLE9BQU8sQ0FBQyxNQUFNO0lBRmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixNQUFNLFNBQUksRUFHWDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxHQUFHLE1BQU0sR0FBRyxZQUFZLEdBQUcsWUFBWSxDQVV2RjtJQUVELDBFQUEwRTtJQUNuRSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUcvRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxVQUFVLElBQUksTUFBTSxDQU8xQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVELDRCQUE0QjtJQUNyQixVQUFVLElBQUksTUFBTSxDQUUxQjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7Ozs7T0FLRztJQUNJLFNBQVMsSUFBSSxNQUFNLENBSXpCO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxJQUFJLE9BQU8sQ0FJNUI7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUlsQztJQUVELHlDQUF5QztJQUNsQyxTQUFTLElBQUksTUFBTSxDQUl6QjtJQUVEOzs7OztPQUtHO0lBQ0ksZ0JBQWdCLElBQUksTUFBTSxFQUFFLENBSWxDO0lBRUQ7Ozs7O09BS0c7SUFDSSxpQkFBaUIsSUFBSSxNQUFNLEVBQUUsQ0FJbkM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUU7UUFDckM7O1dBRUc7UUFDSCxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQztLQUN6QyxHQUFHLENBQUMsRUFBRSxDQU9OO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUU7UUFDaEQ7O1dBRUc7UUFDSCxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQztLQUN6QyxHQUFHLENBQUMsRUFBRSxDQU9OO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxFQUNsQyxJQUFJLEVBQUUsQ0FBQyxFQUNQLGdCQUFnQixFQUFFO1FBQ2hCOztXQUVHO1FBQ0gsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUM7S0FDekMsR0FDQSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUdiO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FBQyxJQUFJLFNBQUssR0FBRyxNQUFNLEVBQUUsQ0FlMUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxVQUFVLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRTtRQUNqQzs7V0FFRztRQUNILFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDO0tBQ3pDLEdBQUcsQ0FBQyxDQUVKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBR25DO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FFMUI7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksY0FBYyxJQUFJLFVBQVUsQ0FJbEM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFO1FBQzlCOztXQUVHO1FBQ0gsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUM7S0FDekMsR0FBRztRQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUE7S0FBRSxDQVN2QjtJQUVEOzs7T0FHRztJQUNJLFNBQVMsSUFBSSxNQUFNLENBRXpCO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxJQUFJLE1BQU0sQ0FFOUI7Q0FTRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFVBQVUsQ0FBQyxDQUFDO0lBQzNCOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztDQUMvQiJ9
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9idWZmZXJfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHFCQUFhLFlBQVk7O0lBR3JCLE9BQU8sQ0FBQyxNQUFNO0lBRmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixNQUFNLFNBQUksRUFHWDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxHQUFHLE1BQU0sR0FBRyxZQUFZLEdBQUcsWUFBWSxDQVV2RjtJQUVELDBFQUEwRTtJQUNuRSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUcvRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxVQUFVLElBQUksTUFBTSxDQU8xQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FNMUI7SUFFRCw0QkFBNEI7SUFDckIsVUFBVSxJQUFJLE1BQU0sQ0FFMUI7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsSUFBSSxNQUFNLENBSTFCO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLElBQUksTUFBTSxDQUl6QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFdBQVcsSUFBSSxP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
@@ -1 +1 @@
1
- {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"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"}