@aztec/foundation 0.0.0-test.1 → 0.0.1-commit.017a351
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.
- package/dest/array/array.d.ts +6 -9
- package/dest/array/array.d.ts.map +1 -1
- package/dest/array/array.js +11 -11
- package/dest/array/index.d.ts +2 -1
- package/dest/array/index.d.ts.map +1 -1
- package/dest/array/index.js +1 -0
- package/dest/array/sorted_array.d.ts +15 -0
- package/dest/array/sorted_array.d.ts.map +1 -0
- package/dest/array/sorted_array.js +109 -0
- package/dest/async-map/index.d.ts +1 -1
- package/dest/async-pool/index.d.ts +1 -1
- package/dest/async-pool/index.d.ts.map +1 -1
- package/dest/async-pool/index.js +1 -0
- package/dest/bigint/index.d.ts +7 -0
- package/dest/bigint/index.d.ts.map +1 -0
- package/dest/bigint/index.js +15 -0
- package/dest/bigint-buffer/index.d.ts +1 -3
- package/dest/bigint-buffer/index.d.ts.map +1 -1
- package/dest/bigint-buffer/index.js +6 -1
- package/dest/branded-types/block_number.d.ts +56 -0
- package/dest/branded-types/block_number.d.ts.map +1 -0
- package/dest/branded-types/block_number.js +89 -0
- package/dest/branded-types/buffer32_hash.d.ts +27 -0
- package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
- package/dest/branded-types/buffer32_hash.js +12 -0
- package/dest/branded-types/checkpoint_number.d.ts +60 -0
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
- package/dest/branded-types/checkpoint_number.js +88 -0
- package/dest/branded-types/epoch.d.ts +42 -0
- package/dest/branded-types/epoch.d.ts.map +1 -0
- package/dest/branded-types/epoch.js +59 -0
- package/dest/branded-types/index.d.ts +8 -0
- package/dest/branded-types/index.d.ts.map +1 -0
- package/dest/branded-types/index.js +6 -0
- package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
- package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
- package/dest/branded-types/index_within_checkpoint.js +59 -0
- package/dest/branded-types/slot.d.ts +45 -0
- package/dest/branded-types/slot.d.ts.map +1 -0
- package/dest/branded-types/slot.js +62 -0
- package/dest/branded-types/types.d.ts +5 -0
- package/dest/branded-types/types.d.ts.map +1 -0
- package/dest/branded-types/types.js +1 -0
- package/dest/buffer/buffer16.d.ts +82 -0
- package/dest/buffer/buffer16.d.ts.map +1 -0
- package/dest/buffer/buffer16.js +102 -0
- package/dest/buffer/buffer32.d.ts +32 -69
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +36 -68
- package/dest/buffer/index.d.ts +3 -1
- package/dest/buffer/index.d.ts.map +1 -1
- package/dest/buffer/index.js +2 -0
- package/dest/buffer/utils.d.ts +3 -0
- package/dest/buffer/utils.d.ts.map +1 -0
- package/dest/buffer/utils.js +7 -0
- package/dest/collection/array.d.ts +38 -4
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +141 -3
- package/dest/collection/index.d.ts +3 -1
- package/dest/collection/index.d.ts.map +1 -1
- package/dest/collection/index.js +2 -0
- package/dest/collection/lru_map.d.ts +41 -0
- package/dest/collection/lru_map.d.ts.map +1 -0
- package/dest/collection/lru_map.js +119 -0
- package/dest/collection/lru_set.d.ts +35 -0
- package/dest/collection/lru_set.d.ts.map +1 -0
- package/dest/collection/lru_set.js +95 -0
- package/dest/collection/object.d.ts +17 -1
- package/dest/collection/object.d.ts.map +1 -1
- package/dest/collection/object.js +25 -0
- package/dest/committable/committable.d.ts +1 -1
- package/dest/committable/committable.d.ts.map +1 -1
- package/dest/committable/committable.js +1 -1
- package/dest/committable/index.d.ts +1 -1
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +88 -13
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +153 -22
- package/dest/config/network_config.d.ts +28 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +14 -0
- package/dest/config/network_name.d.ts +3 -0
- package/dest/config/network_name.d.ts.map +1 -0
- package/dest/config/network_name.js +19 -0
- package/dest/config/parse-env.d.ts +3 -0
- package/dest/config/parse-env.d.ts.map +1 -0
- package/dest/config/parse-env.js +7 -0
- package/dest/config/secret_value.d.ts +28 -0
- package/dest/config/secret_value.d.ts.map +1 -0
- package/dest/config/secret_value.js +36 -0
- package/dest/crypto/aes128/index.d.ts +4 -5
- package/dest/crypto/aes128/index.d.ts.map +1 -1
- package/dest/crypto/aes128/index.js +30 -8
- package/dest/crypto/bls/bn254_keystore.d.ts +129 -0
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
- package/dest/crypto/bls/bn254_keystore.js +201 -0
- package/dest/crypto/bls/index.d.ts +13 -0
- package/dest/crypto/bls/index.d.ts.map +1 -0
- package/dest/crypto/bls/index.js +87 -0
- package/dest/crypto/bn254/index.d.ts +39 -0
- package/dest/crypto/bn254/index.d.ts.map +1 -0
- package/dest/crypto/bn254/index.js +56 -0
- package/dest/crypto/ecdsa/index.d.ts +3 -3
- package/dest/crypto/ecdsa/index.d.ts.map +1 -1
- package/dest/crypto/ecdsa/index.js +62 -48
- package/dest/crypto/ecdsa/signature.d.ts +3 -5
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/ecdsa/signature.js +2 -2
- package/dest/crypto/grumpkin/index.d.ts +10 -15
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +61 -55
- package/dest/crypto/keccak/index.d.ts +3 -5
- package/dest/crypto/keccak/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.d.ts +2 -4
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +8 -5
- package/dest/crypto/pedersen/index.d.ts +1 -1
- package/dest/crypto/pedersen/pedersen.noble.d.ts +3 -5
- package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +4 -6
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
- package/dest/crypto/poseidon/index.d.ts +2 -5
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +41 -28
- package/dest/crypto/random/index.d.ts +2 -4
- package/dest/crypto/random/index.d.ts.map +1 -1
- package/dest/crypto/random/index.js +2 -34
- package/dest/crypto/random/randomness_singleton.d.ts +4 -5
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.js +5 -5
- package/dest/crypto/schnorr/index.d.ts +10 -8
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +34 -42
- package/dest/crypto/schnorr/signature.d.ts +13 -35
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +21 -37
- package/dest/crypto/secp256k1/index.d.ts +5 -7
- package/dest/crypto/secp256k1/index.d.ts.map +1 -1
- package/dest/crypto/secp256k1/index.js +23 -18
- package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts +67 -5
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +118 -6
- package/dest/crypto/sha256/index.d.ts +23 -6
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +43 -1
- package/dest/crypto/sha512/index.d.ts +3 -5
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/sha512/index.js +1 -1
- package/dest/crypto/signature/index.d.ts +2 -4
- package/dest/crypto/signature/index.d.ts.map +1 -1
- package/dest/crypto/sync/index.d.ts +1 -1
- package/dest/crypto/sync/index.js +1 -1
- package/dest/crypto/sync/pedersen/index.d.ts +4 -6
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +18 -11
- package/dest/crypto/sync/poseidon/index.d.ts +2 -5
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +23 -16
- package/dest/curves/bls12/field.d.ts +148 -0
- package/dest/curves/bls12/field.d.ts.map +1 -0
- package/dest/curves/bls12/field.js +357 -0
- package/dest/curves/bls12/index.d.ts +3 -0
- package/dest/curves/bls12/index.d.ts.map +1 -0
- package/dest/curves/bls12/index.js +2 -0
- package/dest/curves/bls12/point.d.ts +229 -0
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/curves/bls12/point.js +400 -0
- package/dest/curves/bn254/field.d.ts +185 -0
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/{fields/fields.js → curves/bn254/field.js} +111 -74
- package/dest/curves/bn254/index.d.ts +3 -0
- package/dest/curves/bn254/index.d.ts.map +1 -0
- package/dest/curves/bn254/index.js +2 -0
- package/dest/curves/bn254/point.d.ts +54 -0
- package/dest/curves/bn254/point.d.ts.map +1 -0
- package/dest/curves/bn254/point.js +143 -0
- package/dest/curves/grumpkin/index.d.ts +10 -0
- package/dest/curves/grumpkin/index.d.ts.map +1 -0
- package/dest/curves/grumpkin/index.js +3 -0
- package/dest/{fields → curves/grumpkin}/point.d.ts +26 -33
- package/dest/curves/grumpkin/point.d.ts.map +1 -0
- package/dest/{fields → curves/grumpkin}/point.js +53 -50
- package/dest/decorators/index.d.ts +1 -1
- package/dest/decorators/memoize.d.ts +1 -1
- package/dest/decorators/memoize.d.ts.map +1 -1
- package/dest/error/index.d.ts +1 -1
- package/dest/eth-address/index.d.ts +19 -10
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +31 -5
- package/dest/eth-signature/eth_signature.d.ts +19 -16
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +37 -18
- package/dest/eth-signature/index.d.ts +1 -1
- package/dest/fifo/fifo_frame_reader.d.ts +41 -0
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
- package/dest/fifo/fifo_frame_reader.js +91 -0
- package/dest/fifo/index.d.ts +2 -0
- package/dest/fifo/index.d.ts.map +1 -0
- package/dest/fifo/index.js +1 -0
- package/dest/fifo_set/fifo_set.d.ts +15 -0
- package/dest/fifo_set/fifo_set.d.ts.map +1 -0
- package/dest/fifo_set/fifo_set.js +39 -0
- package/dest/fifo_set/index.d.ts +2 -0
- package/dest/fifo_set/index.d.ts.map +1 -0
- package/dest/fifo_set/index.js +1 -0
- package/dest/fs/index.d.ts +2 -1
- package/dest/fs/index.d.ts.map +1 -1
- package/dest/fs/index.js +1 -0
- package/dest/fs/run_in_dir.d.ts +1 -1
- package/dest/fs/try_rm_dir.d.ts +3 -0
- package/dest/fs/try_rm_dir.d.ts.map +1 -0
- package/dest/fs/try_rm_dir.js +16 -0
- package/dest/iterable/all.d.ts +1 -1
- package/dest/iterable/filter.d.ts +1 -1
- package/dest/iterable/filter.js +1 -1
- package/dest/iterable/index.d.ts +1 -1
- package/dest/iterable/isAsyncIt.d.ts +1 -1
- package/dest/iterable/map.d.ts +1 -1
- package/dest/iterable/map.js +1 -1
- package/dest/iterable/peek.d.ts +1 -1
- package/dest/iterable/sort.d.ts +1 -1
- package/dest/iterable/take.d.ts +1 -1
- package/dest/iterable/toArray.d.ts +1 -1
- package/dest/iterator/filter.d.ts +3 -0
- package/dest/iterator/filter.d.ts.map +1 -0
- package/dest/iterator/filter.js +7 -0
- package/dest/iterator/index.d.ts +2 -0
- package/dest/iterator/index.d.ts.map +1 -0
- package/dest/iterator/index.js +1 -0
- package/dest/jest/env.js +48 -0
- package/dest/jest/setup.js +28 -1
- package/dest/jest/setupAfterEnv.js +3 -0
- package/dest/json-rpc/client/fetch.d.ts +3 -3
- package/dest/json-rpc/client/fetch.d.ts.map +1 -1
- package/dest/json-rpc/client/fetch.js +18 -31
- package/dest/json-rpc/client/index.d.ts +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +11 -4
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +175 -15
- package/dest/json-rpc/client/undici.d.ts +1 -1
- package/dest/json-rpc/client/undici.d.ts.map +1 -1
- package/dest/json-rpc/client/undici.js +29 -11
- package/dest/json-rpc/convert.d.ts +3 -10
- package/dest/json-rpc/convert.d.ts.map +1 -1
- package/dest/json-rpc/convert.js +1 -9
- package/dest/json-rpc/errors.d.ts +4 -0
- package/dest/json-rpc/errors.d.ts.map +1 -0
- package/dest/json-rpc/errors.js +6 -0
- package/dest/json-rpc/fixtures/class_a.d.ts +6 -4
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +6 -4
- package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/test_state.js +57 -17
- package/dest/json-rpc/index.d.ts +3 -2
- package/dest/json-rpc/index.d.ts.map +1 -1
- package/dest/json-rpc/index.js +2 -1
- package/dest/json-rpc/js_utils.d.ts +1 -1
- package/dest/json-rpc/js_utils.d.ts.map +1 -1
- package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
- package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
- package/dest/json-rpc/server/api_key_auth.js +57 -0
- package/dest/json-rpc/server/index.d.ts +2 -1
- package/dest/json-rpc/server/index.d.ts.map +1 -1
- package/dest/json-rpc/server/index.js +1 -0
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +29 -25
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +178 -59
- package/dest/json-rpc/test/index.d.ts +1 -1
- package/dest/json-rpc/test/integration.d.ts +2 -3
- package/dest/json-rpc/test/integration.d.ts.map +1 -1
- package/dest/log/bigint-utils.d.ts +5 -0
- package/dest/log/bigint-utils.d.ts.map +1 -0
- package/dest/log/bigint-utils.js +21 -0
- package/dest/log/console.d.ts +1 -1
- package/dest/log/console.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.d.ts +1 -2
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.js +4 -9
- package/dest/log/index.d.ts +5 -5
- package/dest/log/index.d.ts.map +1 -1
- package/dest/log/index.js +4 -4
- package/dest/log/libp2p_logger.d.ts +5 -2
- package/dest/log/libp2p_logger.d.ts.map +1 -1
- package/dest/log/libp2p_logger.js +27 -6
- package/dest/log/log-filters.d.ts +17 -4
- package/dest/log/log-filters.d.ts.map +1 -1
- package/dest/log/log-filters.js +26 -12
- package/dest/log/log-levels.d.ts +1 -1
- package/dest/log/log_fn.d.ts +2 -2
- package/dest/log/log_fn.d.ts.map +1 -1
- package/dest/log/noir_debug_log_util.d.ts +14 -0
- package/dest/log/noir_debug_log_util.d.ts.map +1 -0
- package/dest/log/noir_debug_log_util.js +14 -0
- package/dest/log/pino-logger-server.d.ts +9 -0
- package/dest/log/pino-logger-server.d.ts.map +1 -0
- package/dest/log/pino-logger-server.js +18 -0
- package/dest/log/pino-logger.d.ts +40 -11
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +165 -31
- package/dest/message/index.d.ts +1 -1
- package/dest/message/index.d.ts.map +1 -1
- package/dest/mutex/index.d.ts +1 -1
- package/dest/mutex/index.d.ts.map +1 -1
- package/dest/mutex/mutex_database.d.ts +1 -1
- package/dest/mutex/mutex_database.d.ts.map +1 -1
- package/dest/noir/index.d.ts +1 -1
- package/dest/noir/noir_package_config.d.ts +19 -104
- package/dest/noir/noir_package_config.d.ts.map +1 -1
- package/dest/noir/noir_package_config.js +1 -1
- package/dest/number/index.d.ts +3 -0
- package/dest/number/index.d.ts.map +1 -0
- package/dest/number/index.js +12 -0
- package/dest/profiler/index.d.ts +2 -0
- package/dest/profiler/index.d.ts.map +1 -0
- package/dest/profiler/index.js +1 -0
- package/dest/profiler/profiler.d.ts +8 -0
- package/dest/profiler/profiler.d.ts.map +1 -0
- package/dest/profiler/profiler.js +97 -0
- package/dest/promise/index.d.ts +1 -1
- package/dest/promise/running-promise.d.ts +2 -2
- package/dest/promise/running-promise.d.ts.map +1 -1
- package/dest/promise/running-promise.js +2 -2
- package/dest/promise/utils.d.ts +1 -1
- package/dest/queue/base_memory_queue.d.ts +2 -2
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.d.ts +2 -2
- package/dest/queue/batch_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.js +2 -1
- package/dest/queue/bounded_serial_queue.d.ts +1 -1
- package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
- package/dest/queue/fifo_memory_queue.d.ts +1 -1
- package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
- package/dest/queue/index.d.ts +1 -1
- package/dest/queue/priority_memory_queue.d.ts +1 -1
- package/dest/queue/priority_memory_queue.d.ts.map +1 -1
- package/dest/queue/priority_queue.d.ts +1 -1
- package/dest/queue/priority_queue.d.ts.map +1 -1
- package/dest/queue/semaphore.d.ts +5 -1
- package/dest/queue/semaphore.d.ts.map +1 -1
- package/dest/queue/serial_queue.d.ts +3 -3
- package/dest/queue/serial_queue.d.ts.map +1 -1
- package/dest/queue/serial_queue.js +7 -5
- package/dest/retry/index.d.ts +25 -3
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +34 -2
- package/dest/running-promise/index.d.ts +1 -1
- package/dest/schemas/api.d.ts +12 -10
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/api.js +7 -1
- package/dest/schemas/index.d.ts +1 -1
- package/dest/schemas/parse.d.ts +4 -4
- package/dest/schemas/parse.d.ts.map +1 -1
- package/dest/schemas/parse.js +7 -6
- package/dest/schemas/schemas.d.ts +30 -29
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +29 -11
- package/dest/schemas/types.d.ts +32 -2
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/types.js +25 -1
- package/dest/schemas/utils.d.ts +10 -16
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +17 -23
- package/dest/serialize/buffer_reader.d.ts +41 -6
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +70 -6
- package/dest/serialize/buffer_sink.d.ts +134 -0
- package/dest/serialize/buffer_sink.d.ts.map +1 -0
- package/dest/serialize/buffer_sink.js +297 -0
- package/dest/serialize/field_reader.d.ts +12 -3
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +19 -2
- package/dest/serialize/free_funcs.d.ts +25 -23
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +22 -28
- package/dest/serialize/index.d.ts +2 -1
- package/dest/serialize/index.d.ts.map +1 -1
- package/dest/serialize/index.js +1 -0
- package/dest/serialize/serialize.d.ts +24 -7
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +32 -1
- package/dest/serialize/type_registry.d.ts +1 -1
- package/dest/serialize/type_registry.d.ts.map +1 -1
- package/dest/serialize/types.d.ts +1 -1
- package/dest/sleep/index.d.ts +4 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +14 -1
- package/dest/string/index.d.ts +8 -3
- package/dest/string/index.d.ts.map +1 -1
- package/dest/string/index.js +27 -1
- package/dest/testing/files/index.d.ts +2 -3
- package/dest/testing/files/index.d.ts.map +1 -1
- package/dest/testing/files/index.js +3 -3
- package/dest/testing/formatting.d.ts +4 -0
- package/dest/testing/formatting.d.ts.map +1 -0
- package/dest/testing/formatting.js +3 -0
- package/dest/testing/index.d.ts +2 -1
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +1 -0
- package/dest/testing/port_allocator.d.ts +1 -1
- package/dest/testing/snapshot_serializer.d.ts +1 -1
- package/dest/testing/test_data.d.ts +1 -1
- package/dest/timer/date.d.ts +28 -2
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +41 -3
- package/dest/timer/elapsed.d.ts +1 -1
- package/dest/timer/index.d.ts +2 -2
- package/dest/timer/index.d.ts.map +1 -1
- package/dest/timer/index.js +1 -1
- package/dest/timer/timeout.d.ts +21 -6
- package/dest/timer/timeout.d.ts.map +1 -1
- package/dest/timer/timeout.js +69 -22
- package/dest/timer/timer.d.ts +1 -1
- package/dest/timer/timer.d.ts.map +1 -1
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
- package/dest/transport/dispatch/messages.d.ts +1 -1
- package/dest/transport/index.d.ts +1 -3
- package/dest/transport/index.d.ts.map +1 -1
- package/dest/transport/index.js +0 -2
- package/dest/transport/interface/connector.d.ts +1 -1
- package/dest/transport/interface/connector.d.ts.map +1 -1
- package/dest/transport/interface/listener.d.ts +1 -2
- package/dest/transport/interface/listener.d.ts.map +1 -1
- package/dest/transport/interface/socket.d.ts +1 -1
- package/dest/transport/interface/socket.d.ts.map +1 -1
- package/dest/transport/interface/transferable.d.ts +1 -1
- package/dest/transport/node/index.d.ts +1 -1
- package/dest/transport/node/node_connector.d.ts +1 -2
- package/dest/transport/node/node_connector.d.ts.map +1 -1
- package/dest/transport/node/node_connector_socket.d.ts +1 -2
- package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
- package/dest/transport/node/node_listener.d.ts +1 -2
- package/dest/transport/node/node_listener.d.ts.map +1 -1
- package/dest/transport/node/node_listener_socket.d.ts +1 -2
- package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
- package/dest/transport/transport_client.d.ts +1 -2
- package/dest/transport/transport_client.d.ts.map +1 -1
- package/dest/transport/transport_client.js +2 -2
- package/dest/transport/transport_server.d.ts +1 -10
- package/dest/transport/transport_server.d.ts.map +1 -1
- package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/balanced_merkle_tree_root.js +50 -0
- package/dest/trees/hasher.d.ts +8 -7
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/hasher.js +10 -5
- package/dest/trees/index.d.ts +5 -3
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +4 -2
- package/dest/trees/indexed_merkle_tree.d.ts +1 -3
- package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree.js +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +2 -4
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
- package/dest/trees/indexed_tree_leaf.d.ts +1 -3
- package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
- package/dest/trees/membership_witness.d.ts +10 -5
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +23 -1
- package/dest/trees/merkle_tree.d.ts +1 -3
- package/dest/trees/merkle_tree.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.d.ts +4 -4
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +1 -5
- package/dest/trees/sibling_path.d.ts +7 -41
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +11 -9
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
- package/dest/trees/unbalanced_merkle_tree_root.d.ts +27 -0
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_root.js +83 -0
- package/dest/trees/unbalanced_tree_store.d.ts +6 -1
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
- package/dest/trees/unbalanced_tree_store.js +55 -1
- package/dest/types/index.d.ts +52 -3
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +21 -0
- package/dest/url/index.d.ts +1 -1
- package/dest/url/index.d.ts.map +1 -1
- package/dest/url/index.js +1 -1
- package/dest/validation/index.d.ts +1 -1
- package/package.json +84 -47
- package/src/array/array.ts +13 -16
- package/src/array/index.ts +1 -0
- package/src/array/sorted_array.ts +138 -0
- package/src/async-pool/index.ts +1 -0
- package/src/bigint/index.ts +20 -0
- package/src/bigint-buffer/index.ts +6 -1
- package/src/branded-types/block_number.ts +135 -0
- package/src/branded-types/buffer32_hash.ts +38 -0
- package/src/branded-types/checkpoint_number.ts +130 -0
- package/src/branded-types/epoch.ts +88 -0
- package/src/branded-types/index.ts +8 -0
- package/src/branded-types/index_within_checkpoint.ts +88 -0
- package/src/branded-types/slot.ts +93 -0
- package/src/branded-types/types.ts +2 -0
- package/src/buffer/buffer16.ts +136 -0
- package/src/buffer/buffer32.ts +47 -74
- package/src/buffer/index.ts +2 -0
- package/src/buffer/utils.ts +8 -0
- package/src/collection/array.ts +152 -4
- package/src/collection/index.ts +2 -0
- package/src/collection/lru_map.ts +143 -0
- package/src/collection/lru_set.ts +115 -0
- package/src/collection/object.ts +37 -0
- package/src/committable/committable.ts +1 -1
- package/src/config/env_var.ts +237 -63
- package/src/config/index.ts +265 -29
- package/src/config/network_config.ts +21 -0
- package/src/config/network_name.ts +28 -0
- package/src/config/parse-env.ts +4 -0
- package/src/config/secret_value.ts +49 -0
- package/src/crypto/aes128/index.ts +30 -12
- package/src/crypto/bls/bn254_keystore.ts +264 -0
- package/src/crypto/bls/index.ts +77 -0
- package/src/crypto/bn254/index.ts +64 -0
- package/src/crypto/ecdsa/index.ts +41 -23
- package/src/crypto/ecdsa/signature.ts +2 -2
- package/src/crypto/grumpkin/index.ts +38 -46
- package/src/crypto/keys/index.ts +6 -6
- package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
- package/src/crypto/poseidon/index.ts +43 -37
- package/src/crypto/random/index.ts +2 -40
- package/src/crypto/random/randomness_singleton.ts +6 -4
- package/src/crypto/schnorr/index.ts +29 -24
- package/src/crypto/schnorr/signature.ts +18 -47
- package/src/crypto/secp256k1/index.ts +15 -11
- package/src/crypto/secp256k1-signer/utils.ts +152 -7
- package/src/crypto/sha256/index.ts +48 -1
- package/src/crypto/sha512/index.ts +1 -1
- package/src/crypto/signature/index.ts +1 -1
- package/src/crypto/sync/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +17 -16
- package/src/crypto/sync/poseidon/index.ts +23 -27
- package/src/curves/bls12/field.ts +456 -0
- package/src/curves/bls12/index.ts +2 -0
- package/src/curves/bls12/point.ts +450 -0
- package/src/{fields/fields.ts → curves/bn254/field.ts} +117 -91
- package/src/curves/bn254/index.ts +2 -0
- package/src/curves/bn254/point.ts +170 -0
- package/src/curves/grumpkin/index.ts +11 -0
- package/src/{fields → curves/grumpkin}/point.ts +47 -47
- package/src/eth-address/index.ts +35 -7
- package/src/eth-signature/eth_signature.ts +50 -22
- package/src/fifo/fifo_frame_reader.ts +113 -0
- package/src/fifo/index.ts +1 -0
- package/src/fifo_set/fifo_set.ts +52 -0
- package/src/fifo_set/index.ts +1 -0
- package/src/fs/index.ts +1 -0
- package/src/fs/try_rm_dir.ts +15 -0
- package/src/iterable/filter.ts +1 -1
- package/src/iterable/map.ts +1 -1
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- package/src/jest/env.mjs +52 -0
- package/src/jest/setup.mjs +31 -1
- package/src/jest/setupAfterEnv.mjs +3 -0
- package/src/json-rpc/client/fetch.ts +16 -34
- package/src/json-rpc/client/safe_json_rpc_client.ts +230 -15
- package/src/json-rpc/client/undici.ts +31 -18
- package/src/json-rpc/convert.ts +3 -12
- package/src/json-rpc/errors.ts +6 -0
- package/src/json-rpc/fixtures/class_a.ts +4 -1
- package/src/json-rpc/fixtures/class_b.ts +4 -1
- package/src/json-rpc/fixtures/test_state.ts +10 -10
- package/src/json-rpc/index.ts +2 -1
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/json-rpc/server/safe_json_rpc_server.ts +162 -51
- package/src/json-rpc/test/integration.ts +1 -1
- package/src/log/bigint-utils.ts +25 -0
- package/src/log/console.ts +4 -1
- package/src/log/gcloud-logger-config.ts +8 -7
- package/src/log/index.ts +4 -4
- package/src/log/libp2p_logger.ts +33 -7
- package/src/log/log-filters.ts +29 -11
- package/src/log/log_fn.ts +1 -1
- package/src/log/noir_debug_log_util.ts +21 -0
- package/src/log/pino-logger-server.ts +25 -0
- package/src/log/pino-logger.ts +193 -40
- package/src/message/index.ts +5 -1
- package/src/mutex/mutex_database.ts +2 -3
- package/src/noir/noir_package_config.ts +32 -20
- package/src/number/index.ts +14 -0
- package/src/profiler/index.ts +1 -0
- package/src/profiler/profiler.ts +125 -0
- package/src/promise/running-promise.ts +2 -2
- package/src/queue/base_memory_queue.ts +1 -1
- package/src/queue/batch_queue.ts +2 -1
- package/src/queue/bounded_serial_queue.ts +4 -1
- package/src/queue/semaphore.ts +5 -0
- package/src/queue/serial_queue.ts +5 -5
- package/src/retry/index.ts +58 -5
- package/src/schemas/api.ts +25 -25
- package/src/schemas/parse.ts +10 -7
- package/src/schemas/schemas.ts +45 -16
- package/src/schemas/types.ts +34 -1
- package/src/schemas/utils.ts +25 -46
- package/src/serialize/buffer_reader.ts +96 -12
- package/src/serialize/buffer_sink.ts +350 -0
- package/src/serialize/field_reader.ts +28 -4
- package/src/serialize/free_funcs.ts +26 -32
- package/src/serialize/index.ts +1 -0
- package/src/serialize/serialize.ts +35 -1
- package/src/sleep/index.ts +16 -1
- package/src/string/index.ts +36 -1
- package/src/testing/files/index.ts +7 -3
- package/src/testing/formatting.ts +3 -0
- package/src/testing/index.ts +1 -0
- package/src/timer/date.ts +61 -3
- package/src/timer/index.ts +1 -1
- package/src/timer/timeout.ts +85 -19
- package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
- package/src/transport/index.ts +0 -2
- package/src/transport/interface/connector.ts +0 -1
- package/src/transport/interface/listener.ts +2 -3
- package/src/transport/interface/socket.ts +2 -3
- package/src/transport/transport_client.ts +5 -6
- package/src/transport/transport_server.ts +4 -1
- package/src/trees/balanced_merkle_tree_root.ts +65 -0
- package/src/trees/hasher.ts +16 -4
- package/src/trees/index.ts +4 -2
- package/src/trees/indexed_merkle_tree.ts +6 -2
- package/src/trees/indexed_merkle_tree_calculator.ts +7 -3
- package/src/trees/membership_witness.ts +22 -1
- package/src/trees/merkle_tree.ts +4 -1
- package/src/trees/merkle_tree_calculator.ts +9 -10
- package/src/trees/sibling_path.ts +12 -7
- package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
- package/src/trees/unbalanced_merkle_tree_root.ts +112 -0
- package/src/trees/unbalanced_tree_store.ts +62 -3
- package/src/types/index.ts +82 -4
- package/src/url/index.ts +0 -1
- package/dest/crypto/index.d.ts +0 -15
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/index.js +0 -14
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
- package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
- package/dest/crypto/serialize.d.ts +0 -53
- package/dest/crypto/serialize.d.ts.map +0 -1
- package/dest/crypto/serialize.js +0 -68
- package/dest/fields/coordinate.d.ts +0 -68
- package/dest/fields/coordinate.d.ts.map +0 -1
- package/dest/fields/coordinate.js +0 -96
- package/dest/fields/fields.d.ts +0 -176
- package/dest/fields/fields.d.ts.map +0 -1
- package/dest/fields/index.d.ts +0 -4
- package/dest/fields/index.d.ts.map +0 -1
- package/dest/fields/index.js +0 -3
- package/dest/fields/point.d.ts.map +0 -1
- package/dest/index.d.ts +0 -31
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -31
- package/dest/json-rpc/server/telemetry.d.ts +0 -2
- package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
- package/dest/json-rpc/server/telemetry.js +0 -0
- package/dest/log/debug.d.ts +0 -56
- package/dest/log/debug.d.ts.map +0 -1
- package/dest/log/debug.js +0 -75
- package/dest/log/log_history.d.ts +0 -31
- package/dest/log/log_history.d.ts.map +0 -1
- package/dest/log/log_history.js +0 -38
- package/dest/transport/browser/index.d.ts +0 -5
- package/dest/transport/browser/index.d.ts.map +0 -1
- package/dest/transport/browser/index.js +0 -4
- package/dest/transport/browser/message_port_socket.d.ts +0 -37
- package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
- package/dest/transport/browser/message_port_socket.js +0 -42
- package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
- package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_connector.js +0 -19
- package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
- package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_listener.js +0 -33
- package/dest/transport/browser/worker_connector.d.ts +0 -26
- package/dest/transport/browser/worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/worker_connector.js +0 -30
- package/dest/transport/browser/worker_listener.d.ts +0 -39
- package/dest/transport/browser/worker_listener.d.ts.map +0 -1
- package/dest/transport/browser/worker_listener.js +0 -35
- package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
- package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
- package/dest/trees/unbalanced_merkle_tree.d.ts +0 -17
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
- package/dest/trees/unbalanced_merkle_tree.js +0 -100
- package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
- package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
- package/dest/wasm/empty_wasi_sdk.js +0 -148
- package/dest/wasm/index.d.ts +0 -2
- package/dest/wasm/index.d.ts.map +0 -1
- package/dest/wasm/index.js +0 -1
- package/dest/wasm/wasm_module.d.ts +0 -136
- package/dest/wasm/wasm_module.d.ts.map +0 -1
- package/dest/wasm/wasm_module.js +0 -196
- package/dest/worker/browser/index.d.ts +0 -3
- package/dest/worker/browser/index.d.ts.map +0 -1
- package/dest/worker/browser/index.js +0 -2
- package/dest/worker/browser/start_web_module.d.ts +0 -7
- package/dest/worker/browser/start_web_module.d.ts.map +0 -1
- package/dest/worker/browser/start_web_module.js +0 -27
- package/dest/worker/browser/web_data_store.d.ts +0 -24
- package/dest/worker/browser/web_data_store.d.ts.map +0 -1
- package/dest/worker/browser/web_data_store.js +0 -29
- package/dest/worker/browser/web_worker.d.ts +0 -10
- package/dest/worker/browser/web_worker.d.ts.map +0 -1
- package/dest/worker/browser/web_worker.js +0 -25
- package/dest/worker/data_store.d.ts +0 -21
- package/dest/worker/data_store.d.ts.map +0 -1
- package/dest/worker/data_store.js +0 -3
- package/dest/worker/index.d.ts +0 -3
- package/dest/worker/index.d.ts.map +0 -1
- package/dest/worker/index.js +0 -1
- package/dest/worker/node/index.d.ts +0 -3
- package/dest/worker/node/index.d.ts.map +0 -1
- package/dest/worker/node/index.js +0 -2
- package/dest/worker/node/node_data_store.d.ts +0 -13
- package/dest/worker/node/node_data_store.d.ts.map +0 -1
- package/dest/worker/node/node_data_store.js +0 -20
- package/dest/worker/node/node_worker.d.ts +0 -6
- package/dest/worker/node/node_worker.d.ts.map +0 -1
- package/dest/worker/node/node_worker.js +0 -22
- package/dest/worker/node/start_node_module.d.ts +0 -7
- package/dest/worker/node/start_node_module.d.ts.map +0 -1
- package/dest/worker/node/start_node_module.js +0 -31
- package/dest/worker/wasm_worker.d.ts +0 -9
- package/dest/worker/wasm_worker.d.ts.map +0 -1
- package/dest/worker/wasm_worker.js +0 -3
- package/dest/worker/worker_pool.d.ts +0 -40
- package/dest/worker/worker_pool.d.ts.map +0 -1
- package/dest/worker/worker_pool.js +0 -51
- package/src/crypto/index.ts +0 -14
- package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
- package/src/crypto/serialize.ts +0 -85
- package/src/fields/coordinate.ts +0 -104
- package/src/fields/index.ts +0 -3
- package/src/index.ts +0 -31
- package/src/json-rpc/server/telemetry.ts +0 -0
- package/src/log/debug.ts +0 -104
- package/src/log/log_history.ts +0 -44
- package/src/transport/browser/index.ts +0 -4
- package/src/transport/browser/message_port_socket.ts +0 -48
- package/src/transport/browser/shared_worker_connector.ts +0 -21
- package/src/transport/browser/shared_worker_listener.ts +0 -53
- package/src/transport/browser/worker_connector.ts +0 -30
- package/src/transport/browser/worker_listener.ts +0 -54
- package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
- package/src/trees/unbalanced_merkle_tree.ts +0 -103
- package/src/wasm/README.md +0 -6
- package/src/wasm/empty_wasi_sdk.ts +0 -166
- package/src/wasm/fixtures/gcd.wasm +0 -0
- package/src/wasm/fixtures/gcd.wat +0 -27
- package/src/wasm/index.ts +0 -1
- package/src/wasm/wasm_module.ts +0 -260
- package/src/worker/browser/index.ts +0 -2
- package/src/worker/browser/start_web_module.ts +0 -24
- package/src/worker/browser/web_data_store.ts +0 -38
- package/src/worker/browser/web_worker.ts +0 -25
- package/src/worker/data_store.ts +0 -19
- package/src/worker/index.ts +0 -2
- package/src/worker/node/index.ts +0 -2
- package/src/worker/node/node_data_store.ts +0 -27
- package/src/worker/node/node_worker.ts +0 -23
- package/src/worker/node/start_node_module.ts +0 -30
- package/src/worker/wasm_worker.ts +0 -7
- package/src/worker/worker_pool.ts +0 -73
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
|
|
3
|
+
import { type LoggerBindings, addLogBindingsHandler, removeLogBindingsHandler } from './pino-logger.js';
|
|
4
|
+
|
|
5
|
+
/** AsyncLocalStorage for logger bindings context propagation (Node.js only). */
|
|
6
|
+
const bindingsStorage = new AsyncLocalStorage<LoggerBindings>();
|
|
7
|
+
|
|
8
|
+
/** Returns the current bindings from AsyncLocalStorage, if any. */
|
|
9
|
+
export function getBindings(): LoggerBindings | undefined {
|
|
10
|
+
return bindingsStorage.getStore();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Runs a callback within a bindings context. All loggers created within the callback
|
|
15
|
+
* will automatically inherit the bindings (actor, instanceId) via the log bindings handler.
|
|
16
|
+
*/
|
|
17
|
+
export async function withLoggerBindings<T>(bindings: LoggerBindings, callback: () => Promise<T>): Promise<T> {
|
|
18
|
+
const handler = () => bindingsStorage.getStore();
|
|
19
|
+
addLogBindingsHandler(handler);
|
|
20
|
+
try {
|
|
21
|
+
return await bindingsStorage.run(bindings, callback);
|
|
22
|
+
} finally {
|
|
23
|
+
removeLogBindingsHandler(handler);
|
|
24
|
+
}
|
|
25
|
+
}
|
package/src/log/pino-logger.ts
CHANGED
|
@@ -1,19 +1,65 @@
|
|
|
1
|
-
import { createColors, isColorSupported } from 'colorette';
|
|
1
|
+
import { type Color, createColors, isColorSupported } from 'colorette';
|
|
2
2
|
import isNode from 'detect-node';
|
|
3
3
|
import { pino, symbols } from 'pino';
|
|
4
4
|
import type { Writable } from 'stream';
|
|
5
5
|
import { inspect } from 'util';
|
|
6
6
|
|
|
7
7
|
import { compactArray } from '../collection/array.js';
|
|
8
|
-
import {
|
|
8
|
+
import type { EnvVar } from '../config/index.js';
|
|
9
|
+
import { parseBooleanEnv } from '../config/parse-env.js';
|
|
10
|
+
import { convertBigintsToStrings } from './bigint-utils.js';
|
|
9
11
|
import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
|
|
10
|
-
import { getLogLevelFromFilters,
|
|
12
|
+
import { getLogLevelFromFilters, parseLogLevelEnvVar } from './log-filters.js';
|
|
11
13
|
import type { LogLevel } from './log-levels.js';
|
|
12
14
|
import type { LogData, LogFn } from './log_fn.js';
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
/** Optional bindings to pass to createLogger for additional context. */
|
|
17
|
+
export type LoggerBindings = {
|
|
18
|
+
/** Actor label shown in logs (e.g., 'MAIN', 'prover-node'). */
|
|
19
|
+
actor?: string;
|
|
20
|
+
/** Instance identifier for distinguishing multiple instances of the same component. */
|
|
21
|
+
instanceId?: string;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const MAX_MODULE_NAME_LENGTH = 256;
|
|
25
|
+
|
|
26
|
+
// Allow global hooks for providing default bindings.
|
|
27
|
+
// Used by withLoggerBindings in pino-logger-server to propagate bindings via AsyncLocalStorage.
|
|
28
|
+
type LogBindingsHandler = () => LoggerBindings | undefined;
|
|
29
|
+
const logBindingsHandlers: LogBindingsHandler[] = [];
|
|
30
|
+
|
|
31
|
+
export function addLogBindingsHandler(handler: LogBindingsHandler): void {
|
|
32
|
+
logBindingsHandlers.push(handler);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function removeLogBindingsHandler(handler: LogBindingsHandler) {
|
|
36
|
+
const index = logBindingsHandlers.indexOf(handler);
|
|
37
|
+
if (index !== -1) {
|
|
38
|
+
logBindingsHandlers.splice(index, 1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getBindingsFromHandlers(): LoggerBindings | undefined {
|
|
43
|
+
for (const handler of logBindingsHandlers) {
|
|
44
|
+
const bindings = handler();
|
|
45
|
+
if (bindings) {
|
|
46
|
+
return bindings;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function createLogger(module: string, bindings?: LoggerBindings): Logger {
|
|
53
|
+
module = module.slice(0, MAX_MODULE_NAME_LENGTH).replace(/^aztec:/, '');
|
|
54
|
+
|
|
55
|
+
const resolvedBindings = { ...getBindingsFromHandlers(), ...bindings };
|
|
56
|
+
const actor = resolvedBindings?.actor;
|
|
57
|
+
const instanceId = resolvedBindings?.instanceId;
|
|
58
|
+
|
|
59
|
+
const pinoLogger = logger.child(
|
|
60
|
+
{ module, ...(actor && { actor }), ...(instanceId && { instanceId }) },
|
|
61
|
+
{ level: getLogLevelFromFilters(logFilters, module) },
|
|
62
|
+
);
|
|
17
63
|
|
|
18
64
|
// We check manually for isLevelEnabled to avoid calling processLogData unnecessarily.
|
|
19
65
|
// Note that isLevelEnabled is missing from the browser version of pino.
|
|
@@ -37,14 +83,30 @@ export function createLogger(module: string): Logger {
|
|
|
37
83
|
debug: (msg: string, data?: unknown) => logFn('debug', msg, data),
|
|
38
84
|
/** Log as trace. Use for when we want to denial-of-service any recipient of the logs. */
|
|
39
85
|
trace: (msg: string, data?: unknown) => logFn('trace', msg, data),
|
|
86
|
+
/** Level of the logger */
|
|
40
87
|
level: pinoLogger.level as LogLevel,
|
|
41
88
|
/** Whether the given level is enabled for this logger. */
|
|
42
89
|
isLevelEnabled: (level: LogLevel) => isLevelEnabled(pinoLogger, level),
|
|
43
90
|
/** Module name for the logger. */
|
|
44
91
|
module,
|
|
92
|
+
/** Creates another logger by extending this logger module name and preserving bindings. */
|
|
93
|
+
createChild: (childModule: string) => createLogger(`${module}:${childModule}`, { actor, instanceId }),
|
|
94
|
+
/** Returns the bindings (actor, instanceId) for this logger. */
|
|
95
|
+
getBindings: () => ({ actor, instanceId }),
|
|
45
96
|
};
|
|
46
97
|
}
|
|
47
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Returns a logger for the given module. If loggerOrBindings is already a Logger, returns it directly.
|
|
101
|
+
* Otherwise, creates a new logger with the given module name and bindings.
|
|
102
|
+
*/
|
|
103
|
+
export function resolveLogger(module: string, loggerOrBindings?: Logger | LoggerBindings): Logger {
|
|
104
|
+
if (loggerOrBindings && 'info' in loggerOrBindings) {
|
|
105
|
+
return loggerOrBindings as Logger;
|
|
106
|
+
}
|
|
107
|
+
return createLogger(module, loggerOrBindings);
|
|
108
|
+
}
|
|
109
|
+
|
|
48
110
|
// Allow global hooks for processing log data.
|
|
49
111
|
// Used for injecting OTEL trace_id in telemetry client.
|
|
50
112
|
type LogDataHandler = (data: LogData) => LogData;
|
|
@@ -58,31 +120,6 @@ function processLogData(data: LogData): LogData {
|
|
|
58
120
|
return logDataHandlers.reduce((accum, handler) => handler(accum), data);
|
|
59
121
|
}
|
|
60
122
|
|
|
61
|
-
// Allow global hooks for tweaking module names.
|
|
62
|
-
// Used in tests to add a uid to modules, so we can differentiate multiple nodes in the same process.
|
|
63
|
-
type LogNameHandler = (module: string) => string;
|
|
64
|
-
const logNameHandlers: LogNameHandler[] = [];
|
|
65
|
-
|
|
66
|
-
export function addLogNameHandler(handler: LogNameHandler): void {
|
|
67
|
-
logNameHandlers.push(handler);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function removeLogNameHandler(handler: LogNameHandler) {
|
|
71
|
-
const index = logNameHandlers.indexOf(handler);
|
|
72
|
-
if (index !== -1) {
|
|
73
|
-
logNameHandlers.splice(index, 1);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** Creates all loggers within the given callback with the suffix appended to the module name. */
|
|
78
|
-
export async function withLogNameSuffix<T>(suffix: string, callback: () => Promise<T>): Promise<T> {
|
|
79
|
-
const logNameHandler = (module: string) => `${module}:${suffix}`;
|
|
80
|
-
addLogNameHandler(logNameHandler);
|
|
81
|
-
const result = await callback();
|
|
82
|
-
removeLogNameHandler(logNameHandler);
|
|
83
|
-
return result;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
123
|
// Patch isLevelEnabled missing from pino/browser.
|
|
87
124
|
function isLevelEnabled(logger: pino.Logger<'verbose', boolean>, level: LogLevel): boolean {
|
|
88
125
|
return typeof logger.isLevelEnabled === 'function'
|
|
@@ -92,18 +129,48 @@ function isLevelEnabled(logger: pino.Logger<'verbose', boolean>, level: LogLevel
|
|
|
92
129
|
|
|
93
130
|
// Load log levels from environment variables.
|
|
94
131
|
const defaultLogLevel = process.env.NODE_ENV === 'test' ? 'silent' : 'info';
|
|
95
|
-
export const [logLevel, logFilters] =
|
|
132
|
+
export const [logLevel, logFilters] = parseLogLevelEnvVar(process.env.LOG_LEVEL, defaultLogLevel);
|
|
96
133
|
|
|
97
134
|
// Define custom logging levels for pino.
|
|
98
135
|
const customLevels = { verbose: 25 };
|
|
99
136
|
|
|
100
137
|
// Global pino options, tweaked for google cloud if running there.
|
|
101
138
|
const useGcloudLogging = parseBooleanEnv(process.env['USE_GCLOUD_LOGGING' satisfies EnvVar]);
|
|
139
|
+
|
|
140
|
+
const redactedPaths = [
|
|
141
|
+
'validatorPrivateKeys',
|
|
142
|
+
// for both the validator and the prover
|
|
143
|
+
'publisherPrivateKeys',
|
|
144
|
+
'peerIdPrivateKey',
|
|
145
|
+
// bot keys
|
|
146
|
+
'l1PrivateKey',
|
|
147
|
+
'senderPrivateKey',
|
|
148
|
+
// blob sink
|
|
149
|
+
'l1ConsensusHostApiKeys',
|
|
150
|
+
// sensitive options used in the CLI
|
|
151
|
+
'privateKey',
|
|
152
|
+
'mnemonic',
|
|
153
|
+
'l1Mnemonic',
|
|
154
|
+
'l1PrivateKey',
|
|
155
|
+
];
|
|
156
|
+
|
|
102
157
|
const pinoOpts: pino.LoggerOptions<keyof typeof customLevels> = {
|
|
103
158
|
customLevels,
|
|
104
159
|
messageKey: 'msg',
|
|
105
160
|
useOnlyCustomLevels: false,
|
|
106
161
|
level: logLevel,
|
|
162
|
+
redact: {
|
|
163
|
+
paths: [
|
|
164
|
+
...redactedPaths,
|
|
165
|
+
...redactedPaths.map(p => `config.${p}`),
|
|
166
|
+
...redactedPaths.map(p => `cfg.${p}`),
|
|
167
|
+
...redactedPaths.map(p => `options.${p}`),
|
|
168
|
+
...redactedPaths.map(p => `opts.${p}`),
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
formatters: {
|
|
172
|
+
log: obj => convertBigintsToStrings(obj) as Record<string, unknown>,
|
|
173
|
+
},
|
|
107
174
|
...(useGcloudLogging ? GoogleCloudLoggerConfig : {}),
|
|
108
175
|
};
|
|
109
176
|
|
|
@@ -115,22 +182,90 @@ export const levels = {
|
|
|
115
182
|
// Transport options for pretty logging to stderr via pino-pretty.
|
|
116
183
|
const colorEnv = process.env['FORCE_COLOR' satisfies EnvVar];
|
|
117
184
|
const useColor = colorEnv === undefined ? isColorSupported : parseBooleanEnv(colorEnv);
|
|
118
|
-
const { bold, reset
|
|
119
|
-
|
|
185
|
+
const { bold, reset, cyan, magenta, yellow, blue, green, magentaBright, yellowBright, blueBright, greenBright } =
|
|
186
|
+
createColors({ useColor });
|
|
187
|
+
|
|
188
|
+
// Per-actor coloring: each unique actor gets a different color for easier visual distinction.
|
|
189
|
+
// Disabled when LOG_NO_COLOR_PER_ACTOR is set to a truthy value.
|
|
190
|
+
const useColorPerActor = useColor && !parseBooleanEnv(process.env['LOG_NO_COLOR_PER_ACTOR' satisfies EnvVar]);
|
|
191
|
+
const actorColors: Color[] = [yellow, magenta, blue, green, magentaBright, yellowBright, blueBright, greenBright];
|
|
192
|
+
const actorColorMap = new Map<string, Color>();
|
|
193
|
+
let nextColorIndex = 0;
|
|
194
|
+
|
|
195
|
+
/** Returns the color function assigned to a given actor, assigning a new one if needed. */
|
|
196
|
+
export function getActorColor(actor: string): Color {
|
|
197
|
+
let color = actorColorMap.get(actor);
|
|
198
|
+
if (!color) {
|
|
199
|
+
color = actorColors[nextColorIndex % actorColors.length];
|
|
200
|
+
actorColorMap.set(actor, color);
|
|
201
|
+
nextColorIndex++;
|
|
202
|
+
}
|
|
203
|
+
return color;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** Resets the actor-to-color mapping. Useful for testing. */
|
|
207
|
+
export function resetActorColors(): void {
|
|
208
|
+
actorColorMap.clear();
|
|
209
|
+
nextColorIndex = 0;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// String template for messageFormat (used in worker threads and when per-actor coloring is disabled).
|
|
213
|
+
const messageFormatString = `${bold('{module}')}{if actor} ${cyan('{actor}')}{end}{if instanceId} ${reset(cyan('{instanceId}'))}{end} ${reset('{msg}')}`;
|
|
214
|
+
|
|
215
|
+
// Function for messageFormat when per-actor coloring is enabled (can only be used in-process, not worker threads).
|
|
216
|
+
type LogObject = { actor?: string; module?: string; instanceId?: string; msg?: string };
|
|
217
|
+
|
|
218
|
+
/** Formats a log message with per-actor coloring. Actor, module, and instanceId share the same color. */
|
|
219
|
+
export function formatLogMessage(log: LogObject, messageKey: string): string {
|
|
220
|
+
const actor = log.actor;
|
|
221
|
+
const module = log.module ?? '';
|
|
222
|
+
const instanceId = log.instanceId;
|
|
223
|
+
const msg = log[messageKey as keyof LogObject] ?? '';
|
|
224
|
+
|
|
225
|
+
// Use actor color for actor, module, and instanceId when actor is present
|
|
226
|
+
const color = actor ? getActorColor(actor) : cyan;
|
|
227
|
+
|
|
228
|
+
let result = bold(color(module));
|
|
229
|
+
if (actor) {
|
|
230
|
+
result += ' ' + color(actor);
|
|
231
|
+
}
|
|
232
|
+
if (instanceId) {
|
|
233
|
+
result += ' ' + reset(color(instanceId));
|
|
234
|
+
}
|
|
235
|
+
result += ' ' + reset(String(msg));
|
|
236
|
+
return result;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Base options for pino-pretty (shared between transport and direct use).
|
|
240
|
+
const pinoPrettyBaseOpts = {
|
|
120
241
|
destination: 2,
|
|
121
242
|
sync: true,
|
|
122
243
|
colorize: useColor,
|
|
123
|
-
ignore: 'module,pid,hostname,trace_id,span_id,trace_flags,severity',
|
|
124
|
-
messageFormat: `${bold('{module}')} ${reset('{msg}')}`,
|
|
244
|
+
ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity',
|
|
125
245
|
customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
|
|
126
246
|
customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
|
|
127
247
|
minimumLevel: 'trace' as const,
|
|
128
248
|
singleLine: !parseBooleanEnv(process.env['LOG_MULTILINE' satisfies EnvVar]),
|
|
129
249
|
};
|
|
130
250
|
|
|
251
|
+
/**
|
|
252
|
+
* Pino-pretty options for direct use (e.g., jest/setup.mjs).
|
|
253
|
+
* Includes function-based messageFormat for per-actor coloring when enabled.
|
|
254
|
+
*/
|
|
255
|
+
export const pinoPrettyOpts = {
|
|
256
|
+
...pinoPrettyBaseOpts,
|
|
257
|
+
messageFormat: useColorPerActor ? formatLogMessage : messageFormatString,
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
// Transport options use string template only (functions can't be serialized to worker threads).
|
|
261
|
+
const prettyTransportOpts = {
|
|
262
|
+
...pinoPrettyBaseOpts,
|
|
263
|
+
messageFormat: messageFormatString,
|
|
264
|
+
};
|
|
265
|
+
|
|
131
266
|
const prettyTransport: pino.TransportTargetOptions = {
|
|
132
267
|
target: 'pino-pretty',
|
|
133
|
-
options:
|
|
268
|
+
options: prettyTransportOpts,
|
|
134
269
|
level: 'trace',
|
|
135
270
|
};
|
|
136
271
|
|
|
@@ -221,7 +356,7 @@ export function registerLoggingStream(stream: Writable): void {
|
|
|
221
356
|
}
|
|
222
357
|
|
|
223
358
|
/** Log function that accepts an exception object */
|
|
224
|
-
type ErrorLogFn = (msg: string, err?:
|
|
359
|
+
type ErrorLogFn = (msg: string, err?: unknown, data?: LogData) => void;
|
|
225
360
|
|
|
226
361
|
/**
|
|
227
362
|
* Logger that supports multiple severity levels.
|
|
@@ -230,6 +365,9 @@ export type Logger = { [K in LogLevel]: LogFn } & { /** Error log function */ er
|
|
|
230
365
|
level: LogLevel;
|
|
231
366
|
isLevelEnabled: (level: LogLevel) => boolean;
|
|
232
367
|
module: string;
|
|
368
|
+
createChild: (childModule: string) => Logger;
|
|
369
|
+
/** Returns the bindings (actor, instanceId) for this logger. */
|
|
370
|
+
getBindings: () => LoggerBindings;
|
|
233
371
|
};
|
|
234
372
|
|
|
235
373
|
/**
|
|
@@ -238,6 +376,21 @@ export type Logger = { [K in LogLevel]: LogFn } & { /** Error log function */ er
|
|
|
238
376
|
* @param err - Error to log
|
|
239
377
|
* @returns A string with both the log message and the error message.
|
|
240
378
|
*/
|
|
241
|
-
function formatErr(msg: string, err?:
|
|
242
|
-
|
|
379
|
+
function formatErr(msg: string, err?: unknown): string {
|
|
380
|
+
if (!err) {
|
|
381
|
+
return msg;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
try {
|
|
385
|
+
return `${msg}: ${inspect(err)}`;
|
|
386
|
+
} catch {
|
|
387
|
+
// inspect can crash on error objects with broken property descriptors
|
|
388
|
+
try {
|
|
389
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
390
|
+
return `${msg}: ${err instanceof Error ? `${err.name}: ${err.message}` : String(err)}`;
|
|
391
|
+
} catch {
|
|
392
|
+
// if even String(err) fails, return the original message with a note about the error
|
|
393
|
+
return `${msg}: [unserializable error]`;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
243
396
|
}
|
package/src/message/index.ts
CHANGED
|
@@ -31,7 +31,11 @@ interface TypedMessageLike {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export class TypedMessage<T, B> {
|
|
34
|
-
public constructor(
|
|
34
|
+
public constructor(
|
|
35
|
+
public readonly msgType: T,
|
|
36
|
+
public readonly header: MessageHeader,
|
|
37
|
+
public readonly value: B,
|
|
38
|
+
) {}
|
|
35
39
|
|
|
36
40
|
static fromMessagePack<T, B>(data: TypedMessageLike): TypedMessage<T, B> {
|
|
37
41
|
return new TypedMessage<T, B>(data['msgType'] as T, MessageHeader.fromMessagePack(data['header']), data['value']);
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
* Provides functionality for acquiring, extending, and releasing locks on resources to ensure exclusive access and prevent conflicts in concurrent applications.
|
|
4
4
|
*/
|
|
5
5
|
export interface MutexDatabase {
|
|
6
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
7
6
|
acquireLock(name: string, timeout: number): Promise<boolean>;
|
|
8
|
-
|
|
7
|
+
|
|
9
8
|
extendLock(name: string, timeout: number): Promise<void>;
|
|
10
|
-
|
|
9
|
+
|
|
11
10
|
releaseLock(name: string): Promise<void>;
|
|
12
11
|
}
|
|
@@ -10,26 +10,6 @@ const noirLocalDependencySchema = z.object({
|
|
|
10
10
|
path: z.string(),
|
|
11
11
|
});
|
|
12
12
|
|
|
13
|
-
const noirPackageConfigSchema = z.object({
|
|
14
|
-
package: z.object({
|
|
15
|
-
name: z.string().default(''),
|
|
16
|
-
type: z.enum(['lib', 'contract', 'bin']).default('bin'),
|
|
17
|
-
entry: z.string().optional(),
|
|
18
|
-
description: z.string().optional(),
|
|
19
|
-
authors: z.array(z.string()).optional(),
|
|
20
|
-
// eslint-disable-next-line camelcase
|
|
21
|
-
compiler_version: z.string().optional(),
|
|
22
|
-
backend: z.string().optional(),
|
|
23
|
-
license: z.string().optional(),
|
|
24
|
-
}),
|
|
25
|
-
dependencies: z.record(z.union([noirGitDependencySchema, noirLocalDependencySchema])).default({}),
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Noir package configuration.
|
|
30
|
-
*/
|
|
31
|
-
export type NoirPackageConfig = z.infer<typeof noirPackageConfigSchema>;
|
|
32
|
-
|
|
33
13
|
/**
|
|
34
14
|
* A remote package dependency.
|
|
35
15
|
*/
|
|
@@ -45,6 +25,38 @@ export type NoirLocalDependencyConfig = z.infer<typeof noirLocalDependencySchema
|
|
|
45
25
|
*/
|
|
46
26
|
export type NoirDependencyConfig = NoirGitDependencyConfig | NoirLocalDependencyConfig;
|
|
47
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Noir package configuration.
|
|
30
|
+
*/
|
|
31
|
+
export type NoirPackageConfig = {
|
|
32
|
+
package: {
|
|
33
|
+
name: string;
|
|
34
|
+
type: 'lib' | 'contract' | 'bin';
|
|
35
|
+
entry?: string | undefined;
|
|
36
|
+
description?: string | undefined;
|
|
37
|
+
authors?: string[] | undefined;
|
|
38
|
+
compiler_version?: string | undefined;
|
|
39
|
+
backend?: string | undefined;
|
|
40
|
+
license?: string | undefined;
|
|
41
|
+
};
|
|
42
|
+
dependencies: Record<string, NoirDependencyConfig>;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const noirPackageConfigSchema: z.ZodType<NoirPackageConfig> = z.object({
|
|
46
|
+
package: z.object({
|
|
47
|
+
name: z.string().default(''),
|
|
48
|
+
type: z.enum(['lib', 'contract', 'bin']).default('bin'),
|
|
49
|
+
entry: z.string().optional(),
|
|
50
|
+
description: z.string().optional(),
|
|
51
|
+
authors: z.array(z.string()).optional(),
|
|
52
|
+
// eslint-disable-next-line camelcase
|
|
53
|
+
compiler_version: z.string().optional(),
|
|
54
|
+
backend: z.string().optional(),
|
|
55
|
+
license: z.string().optional(),
|
|
56
|
+
}),
|
|
57
|
+
dependencies: z.record(z.string(), z.union([noirGitDependencySchema, noirLocalDependencySchema])).default({}),
|
|
58
|
+
});
|
|
59
|
+
|
|
48
60
|
/**
|
|
49
61
|
* Checks that an object is a package configuration.
|
|
50
62
|
* @param config - Config to check
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Bounds the given value between the min and max provided (both inclusive) */
|
|
2
|
+
export function boundInclusive(value: number, min: number, max: number): number {
|
|
3
|
+
if (min > max) {
|
|
4
|
+
throw new Error('Minimum bound cannot be greater than maximum bound');
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
if (value < min) {
|
|
8
|
+
return min;
|
|
9
|
+
} else if (value > max) {
|
|
10
|
+
return max;
|
|
11
|
+
} else {
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './profiler.js';
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { performance } from 'node:perf_hooks';
|
|
5
|
+
|
|
6
|
+
interface Span {
|
|
7
|
+
label: string;
|
|
8
|
+
start: number;
|
|
9
|
+
dur: number;
|
|
10
|
+
count: number;
|
|
11
|
+
children: Span[];
|
|
12
|
+
parent: Span | undefined;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface ProfileData {
|
|
16
|
+
spans: SerializedSpan[];
|
|
17
|
+
timestamp: string;
|
|
18
|
+
totalTime: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface SerializedSpan {
|
|
22
|
+
label: string;
|
|
23
|
+
dur: number;
|
|
24
|
+
count: number;
|
|
25
|
+
children: SerializedSpan[];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const als = new AsyncLocalStorage<Span>();
|
|
29
|
+
const roots: Span[] = [];
|
|
30
|
+
|
|
31
|
+
function reset(): void {
|
|
32
|
+
roots.length = 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Strip out circular references (parent) and unused fields (start) for JSON serialization
|
|
36
|
+
function serializeSpans(spans: Span[]): SerializedSpan[] {
|
|
37
|
+
return spans.map(span => ({
|
|
38
|
+
label: span.label,
|
|
39
|
+
dur: span.dur,
|
|
40
|
+
count: span.count,
|
|
41
|
+
children: serializeSpans(span.children),
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
let i = 0;
|
|
46
|
+
function save(): void {
|
|
47
|
+
if (roots.length === 0) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Find max single execution time across all spans (dur/count since dur is accumulated)
|
|
52
|
+
const findMaxSingleDuration = (spans: Span[]): number => {
|
|
53
|
+
let max = 0;
|
|
54
|
+
for (const span of spans) {
|
|
55
|
+
const singleDur = span.dur / span.count;
|
|
56
|
+
max = Math.max(max, singleDur);
|
|
57
|
+
if (span.children.length > 0) {
|
|
58
|
+
max = Math.max(max, findMaxSingleDuration(span.children));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return max;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const profileData: ProfileData = {
|
|
65
|
+
spans: serializeSpans(roots),
|
|
66
|
+
timestamp: new Date().toISOString(),
|
|
67
|
+
totalTime: findMaxSingleDuration(roots),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const profilePath = path.join(process.cwd(), `profile-${i++}.json`);
|
|
71
|
+
process.stdout.write(`Writing profile data to ${profilePath}\n`);
|
|
72
|
+
fs.writeFileSync(profilePath, JSON.stringify(profileData, null, 2));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Hook into Jest to save after each test
|
|
76
|
+
if (typeof afterEach === 'function') {
|
|
77
|
+
afterEach(() => {
|
|
78
|
+
save();
|
|
79
|
+
reset();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Also save on process exit for non-Jest environments
|
|
84
|
+
process.on('exit', () => {
|
|
85
|
+
save();
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// Wrapper for async functions to maintain context properly
|
|
89
|
+
async function runAsync<ReturnType>(label: string, fn: () => Promise<ReturnType>): Promise<ReturnType> {
|
|
90
|
+
const parent = als.getStore();
|
|
91
|
+
|
|
92
|
+
// Check if we already have a span with this label in the current context
|
|
93
|
+
let existingSpan: Span | undefined;
|
|
94
|
+
if (parent) {
|
|
95
|
+
existingSpan = parent.children.find(c => c.label === label);
|
|
96
|
+
} else {
|
|
97
|
+
existingSpan = roots.find(r => r.label === label);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
let span: Span;
|
|
101
|
+
if (existingSpan) {
|
|
102
|
+
// Reuse existing span and increment count
|
|
103
|
+
span = existingSpan;
|
|
104
|
+
span.count++;
|
|
105
|
+
} else {
|
|
106
|
+
// Create new span
|
|
107
|
+
span = { label, start: performance.now(), dur: 0, count: 1, children: [], parent };
|
|
108
|
+
if (parent) {
|
|
109
|
+
parent.children.push(span);
|
|
110
|
+
} else {
|
|
111
|
+
roots.push(span);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const startTime = performance.now();
|
|
116
|
+
const result: ReturnType = await als.run(span, fn);
|
|
117
|
+
const elapsed = performance.now() - startTime;
|
|
118
|
+
|
|
119
|
+
// Add to total duration (for averaging)
|
|
120
|
+
span.dur += elapsed;
|
|
121
|
+
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export const profiler = { reset, runAsync };
|
|
@@ -43,7 +43,7 @@ export class RunningPromise {
|
|
|
43
43
|
public start() {
|
|
44
44
|
if (this.running) {
|
|
45
45
|
this.logger.warn(`Attempted to start running promise that was already started`);
|
|
46
|
-
return;
|
|
46
|
+
return this;
|
|
47
47
|
}
|
|
48
48
|
this.running = true;
|
|
49
49
|
|
|
@@ -73,6 +73,7 @@ export class RunningPromise {
|
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
75
|
this.runningPromise = poll();
|
|
76
|
+
return this;
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
/**
|
|
@@ -81,7 +82,6 @@ export class RunningPromise {
|
|
|
81
82
|
*/
|
|
82
83
|
async stop(): Promise<void> {
|
|
83
84
|
if (!this.running) {
|
|
84
|
-
this.logger.warn(`Running promise was not started`);
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
87
|
this.running = false;
|
|
@@ -122,7 +122,7 @@ export abstract class BaseMemoryQueue<T> {
|
|
|
122
122
|
* @param handler - A function that takes an item of type T and returns a Promise<void> after processing the item.
|
|
123
123
|
* @returns A Promise<void> that resolves when the queue is finished processing.
|
|
124
124
|
*/
|
|
125
|
-
public async process(handler: (item: T) => Promise<void>) {
|
|
125
|
+
public async process(handler: (item: T) => Promise<void> | void) {
|
|
126
126
|
try {
|
|
127
127
|
while (true) {
|
|
128
128
|
const item = await this.get();
|
package/src/queue/batch_queue.ts
CHANGED
|
@@ -13,7 +13,7 @@ type Batch<T, K> = {
|
|
|
13
13
|
* A queue that groups items into batches based on a group key.
|
|
14
14
|
*
|
|
15
15
|
* The batching algorithm is greedy, meaning that as long as consecutive items have the same group key then they will
|
|
16
|
-
* be
|
|
16
|
+
* be batched together. As soon as an item with a different group key is encountered, the old batch is flushed to the
|
|
17
17
|
* queue and a new batch is started.
|
|
18
18
|
*
|
|
19
19
|
* A batch can also be flushed to the queue if:
|
|
@@ -105,6 +105,7 @@ export class BatchQueue<T, K extends string | number> {
|
|
|
105
105
|
return Promise.resolve();
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
this.flushCurrentBatch();
|
|
108
109
|
this.container.end();
|
|
109
110
|
return runningPromise;
|
|
110
111
|
}
|
|
@@ -10,7 +10,10 @@ export class BoundedSerialQueue {
|
|
|
10
10
|
private readonly queue = new SerialQueue();
|
|
11
11
|
private semaphore: Semaphore;
|
|
12
12
|
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(
|
|
14
|
+
maxQueueSize: number,
|
|
15
|
+
private log = createLogger('foundation:bounded_serial_queue'),
|
|
16
|
+
) {
|
|
14
17
|
this.semaphore = new Semaphore(maxQueueSize);
|
|
15
18
|
}
|
|
16
19
|
|
package/src/queue/semaphore.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { FifoMemoryQueue } from './fifo_memory_queue.js';
|
|
2
2
|
|
|
3
|
+
export interface ISemaphore {
|
|
4
|
+
acquire(): Promise<void>;
|
|
5
|
+
release(): void;
|
|
6
|
+
}
|
|
7
|
+
|
|
3
8
|
/**
|
|
4
9
|
* Allows the acquiring of up to `size` tokens before calls to acquire block, waiting for a call to release().
|
|
5
10
|
*/
|