@aztec/foundation 0.70.0 → 0.71.0

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.
@@ -1,2 +1,2 @@
1
- export type EnvVar = 'ACVM_BINARY_PATH' | 'ACVM_WORKING_DIRECTORY' | 'GOVERNANCE_CONTRACT_ADDRESS' | 'API_KEY' | 'API_PREFIX' | 'ARCHIVER_MAX_LOGS' | 'ARCHIVER_POLLING_INTERVAL_MS' | 'ARCHIVER_URL' | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS' | 'ARCHIVER_BATCH_SIZE' | 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER' | 'AZTEC_NODE_URL' | 'AZTEC_PORT' | 'BB_BINARY_PATH' | 'BB_SKIP_CLEANUP' | 'BB_WORKING_DIRECTORY' | 'BOOTSTRAP_NODES' | 'BOT_DA_GAS_LIMIT' | 'BOT_FEE_PAYMENT_METHOD' | 'BOT_FLUSH_SETUP_TRANSACTIONS' | 'BOT_FOLLOW_CHAIN' | 'BOT_L2_GAS_LIMIT' | 'BOT_MAX_PENDING_TXS' | 'BOT_NO_START' | 'BOT_NO_WAIT_FOR_TRANSFERS' | 'BOT_PRIVATE_KEY' | 'BOT_PRIVATE_TRANSFERS_PER_TX' | 'BOT_PUBLIC_TRANSFERS_PER_TX' | 'BOT_PXE_URL' | 'BOT_RECIPIENT_ENCRYPTION_SECRET' | 'BOT_SKIP_PUBLIC_SIMULATION' | 'BOT_TOKEN_CONTRACT' | 'BOT_TOKEN_SALT' | 'BOT_TX_INTERVAL_SECONDS' | 'BOT_TX_MINED_WAIT_SECONDS' | 'BOT_MAX_CONSECUTIVE_ERRORS' | 'BOT_STOP_WHEN_UNHEALTHY' | 'COINBASE' | 'DATA_DIRECTORY' | 'DATA_STORE_MAP_SIZE_KB' | 'DEBUG' | 'DEPLOY_AZTEC_CONTRACTS_SALT' | 'DEPLOY_AZTEC_CONTRACTS' | 'ENABLE_GAS' | 'ENFORCE_FEES' | 'ETHEREUM_HOST' | 'FEE_JUICE_CONTRACT_ADDRESS' | 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS' | 'FEE_RECIPIENT' | 'GOVERNANCE_PROPOSER_CONTRACT_ADDRESS' | 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS' | 'INBOX_CONTRACT_ADDRESS' | 'L1_CHAIN_ID' | 'L1_CONSENSUS_CLIENT_URL' | 'L1_PRIVATE_KEY' | 'L2_QUEUE_SIZE' | 'LOG_ELAPSED_TIME' | 'LOG_JSON' | 'LOG_MULTILINE' | 'LOG_LEVEL' | 'MNEMONIC' | 'NETWORK_NAME' | 'NETWORK' | 'NO_PXE' | 'COIN_ISSUER_CONTRACT_ADDRESS' | 'USE_GCLOUD_OBSERVABILITY' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' | 'OTEL_SERVICE_NAME' | 'OTEL_COLLECT_INTERVAL_MS' | 'OTEL_EXPORT_TIMEOUT_MS' | 'OUTBOX_CONTRACT_ADDRESS' | 'P2P_BLOCK_CHECK_INTERVAL_MS' | 'P2P_BLOCK_REQUEST_BATCH_SIZE' | 'P2P_ENABLED' | 'P2P_GOSSIPSUB_D' | 'P2P_GOSSIPSUB_DHI' | 'P2P_GOSSIPSUB_DLO' | 'P2P_GOSSIPSUB_INTERVAL_MS' | 'P2P_GOSSIPSUB_MCACHE_GOSSIP' | 'P2P_GOSSIPSUB_MCACHE_LENGTH' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT' | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT' | 'P2P_L2_QUEUE_SIZE' | 'P2P_MAX_PEERS' | 'P2P_MIN_PEERS' | 'P2P_PEER_CHECK_INTERVAL_MS' | 'P2P_PEER_PENALTY_VALUES' | 'P2P_QUERY_FOR_IP' | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS' | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS' | 'P2P_SEVERE_PEER_PENALTY_BLOCK_LENGTH' | 'P2P_TCP_LISTEN_ADDR' | 'P2P_TCP_ANNOUNCE_ADDR' | 'P2P_TX_POOL_KEEP_PROVEN_FOR' | 'P2P_ATTESTATION_POOL_KEEP_FOR' | 'P2P_TX_PROTOCOL' | 'P2P_UDP_ANNOUNCE_ADDR' | 'P2P_UDP_LISTEN_ADDR' | 'PEER_ID_PRIVATE_KEY' | 'PROVER_BLOB_SINK_URL' | 'PROOF_VERIFIER_L1_START_BLOCK' | 'PROOF_VERIFIER_POLL_INTERVAL_MS' | 'PROVER_AGENT_ENABLED' | 'PROVER_AGENT_CONCURRENCY' | 'PROVER_AGENT_COUNT' | 'PROVER_AGENT_PROOF_TYPES' | 'PROVER_AGENT_POLL_INTERVAL_MS' | 'PROVER_BROKER_HOST' | 'PROVER_BROKER_ENABLED' | 'PROVER_BROKER_JOB_TIMEOUT_MS' | 'PROVER_BROKER_POLL_INTERVAL_MS' | 'PROVER_BROKER_JOB_MAX_RETRIES' | 'PROVER_COORDINATION_NODE_URL' | 'PROVER_DISABLED' | 'PROVER_ID' | 'PROVER_JOB_POLL_INTERVAL_MS' | 'PROVER_JOB_TIMEOUT_MS' | 'PROVER_NODE_POLLING_INTERVAL_MS' | 'PROVER_NODE_MAX_PENDING_JOBS' | 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH' | 'PROVER_NODE_TX_GATHERING_TIMEOUT_MS' | 'PROVER_NODE_TX_GATHERING_INTERVAL_MS' | 'PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS' | 'PROVER_PUBLISH_RETRY_INTERVAL_MS' | 'PROVER_PUBLISHER_PRIVATE_KEY' | 'PROVER_REAL_PROOFS' | 'PROVER_REQUIRED_CONFIRMATIONS' | 'PROVER_TEST_DELAY_MS' | 'PXE_L2_STARTING_BLOCK' | 'PXE_PROVER_ENABLED' | 'QUOTE_PROVIDER_BASIS_POINT_FEE' | 'QUOTE_PROVIDER_BOND_AMOUNT' | 'QUOTE_PROVIDER_URL' | 'PROVER_TARGET_ESCROW_AMOUNT' | 'PROVER_MINIMUM_ESCROW_AMOUNT' | 'REGISTRY_CONTRACT_ADDRESS' | 'ROLLUP_CONTRACT_ADDRESS' | 'SEQ_ALLOWED_SETUP_FN' | 'SEQ_BLOB_SINK_URL' | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES' | 'SEQ_MAX_TX_PER_BLOCK' | 'SEQ_MIN_TX_PER_BLOCK' | 'SEQ_MAX_DA_BLOCK_GAS' | 'SEQ_MAX_L2_BLOCK_GAS' | 'SEQ_PUBLISH_RETRY_INTERVAL_MS' | 'SEQ_PUBLISHER_PRIVATE_KEY' | 'SEQ_REQUIRED_CONFIRMATIONS' | 'SEQ_TX_POLLING_INTERVAL_MS' | 'SEQ_ENFORCE_TIME_TABLE' | 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT' | 'SLASH_FACTORY_CONTRACT_ADDRESS' | 'STAKING_ASSET_CONTRACT_ADDRESS' | 'REWARD_DISTRIBUTOR_CONTRACT_ADDRESS' | 'TELEMETRY' | 'TEST_ACCOUNTS' | 'TX_GOSSIP_VERSION' | 'TXE_PORT' | 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS' | 'VALIDATOR_ATTESTATIONS_WAIT_TIMEOUT_MS' | 'VALIDATOR_DISABLED' | 'VALIDATOR_PRIVATE_KEY' | 'VALIDATOR_REEXECUTE' | 'VERSION' | 'WS_BLOCK_CHECK_INTERVAL_MS' | 'WS_PROVEN_BLOCKS_ONLY' | 'WS_BLOCK_REQUEST_BATCH_SIZE' | 'VERIFIER_VIEM_POLLING_INTERVAL_MS' | 'L1_READER_VIEM_POLLING_INTERVAL_MS' | 'PROVER_VIEM_POLLING_INTERVAL_MS' | 'SEQ_VIEM_POLLING_INTERVAL_MS' | 'WS_DB_MAP_SIZE_KB' | 'WS_DATA_DIRECTORY' | 'WS_NUM_HISTORIC_BLOCKS' | 'ETHEREUM_SLOT_DURATION' | 'AZTEC_SLOT_DURATION' | 'AZTEC_EPOCH_DURATION' | 'AZTEC_TARGET_COMMITTEE_SIZE' | 'AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS' | 'AZTEC_MINIMUM_STAKE' | 'AZTEC_SLASHING_QUORUM' | 'AZTEC_SLASHING_ROUND_SIZE' | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM' | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE' | 'L1_GAS_LIMIT_BUFFER_PERCENTAGE' | 'L1_GAS_LIMIT_BUFFER_FIXED' | 'L1_GAS_PRICE_MIN' | 'L1_GAS_PRICE_MAX' | 'L1_BLOB_FEE_PER_GAS_MAX' | 'L1_PRIORITY_FEE_BUMP_PERCENTAGE' | 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE' | 'L1_FIXED_PRIORITY_FEE_PER_GAS' | 'L1_TX_MONITOR_MAX_ATTEMPTS' | 'L1_TX_MONITOR_CHECK_INTERVAL_MS' | 'L1_TX_MONITOR_STALL_TIME_MS' | 'L1_TX_MONITOR_TX_TIMEOUT_MS' | 'L1_TX_PROPAGATION_MAX_QUERY_ATTEMPTS' | 'FAUCET_MNEMONIC_ACCOUNT_INDEX' | 'FAUCET_ETH_AMOUNT' | 'FAUCET_INTERVAL_MS' | 'FAUCET_L1_ASSETS' | 'K8S_POD_NAME' | 'K8S_POD_UID' | 'K8S_NAMESPACE_NAME';
1
+ export type EnvVar = 'ACVM_BINARY_PATH' | 'ACVM_WORKING_DIRECTORY' | 'GOVERNANCE_CONTRACT_ADDRESS' | 'API_KEY' | 'API_PREFIX' | 'ARCHIVER_MAX_LOGS' | 'ARCHIVER_POLLING_INTERVAL_MS' | 'ARCHIVER_URL' | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS' | 'ARCHIVER_BATCH_SIZE' | 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER' | 'AZTEC_NODE_URL' | 'AZTEC_PORT' | 'BB_BINARY_PATH' | 'BB_SKIP_CLEANUP' | 'BB_WORKING_DIRECTORY' | 'BOOTSTRAP_NODES' | 'BOT_DA_GAS_LIMIT' | 'BOT_FEE_PAYMENT_METHOD' | 'BOT_FLUSH_SETUP_TRANSACTIONS' | 'BOT_FOLLOW_CHAIN' | 'BOT_L2_GAS_LIMIT' | 'BOT_MAX_PENDING_TXS' | 'BOT_NO_START' | 'BOT_NO_WAIT_FOR_TRANSFERS' | 'BOT_PRIVATE_KEY' | 'BOT_PRIVATE_TRANSFERS_PER_TX' | 'BOT_PUBLIC_TRANSFERS_PER_TX' | 'BOT_PXE_URL' | 'BOT_RECIPIENT_ENCRYPTION_SECRET' | 'BOT_SKIP_PUBLIC_SIMULATION' | 'BOT_TOKEN_CONTRACT' | 'BOT_TOKEN_SALT' | 'BOT_TX_INTERVAL_SECONDS' | 'BOT_TX_MINED_WAIT_SECONDS' | 'BOT_MAX_CONSECUTIVE_ERRORS' | 'BOT_STOP_WHEN_UNHEALTHY' | 'COINBASE' | 'DATA_DIRECTORY' | 'DATA_STORE_MAP_SIZE_KB' | 'DEBUG' | 'DEPLOY_AZTEC_CONTRACTS_SALT' | 'DEPLOY_AZTEC_CONTRACTS' | 'ENABLE_GAS' | 'ENFORCE_FEES' | 'ETHEREUM_HOST' | 'FEE_JUICE_CONTRACT_ADDRESS' | 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS' | 'FEE_RECIPIENT' | 'GOVERNANCE_PROPOSER_CONTRACT_ADDRESS' | 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS' | 'INBOX_CONTRACT_ADDRESS' | 'L1_CHAIN_ID' | 'L1_CONSENSUS_CLIENT_URL' | 'L1_PRIVATE_KEY' | 'L2_QUEUE_SIZE' | 'LOG_ELAPSED_TIME' | 'LOG_JSON' | 'LOG_MULTILINE' | 'LOG_LEVEL' | 'MNEMONIC' | 'NETWORK_NAME' | 'NETWORK' | 'NO_PXE' | 'COIN_ISSUER_CONTRACT_ADDRESS' | 'USE_GCLOUD_OBSERVABILITY' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' | 'OTEL_SERVICE_NAME' | 'OTEL_COLLECT_INTERVAL_MS' | 'OTEL_EXPORT_TIMEOUT_MS' | 'OUTBOX_CONTRACT_ADDRESS' | 'P2P_BLOCK_CHECK_INTERVAL_MS' | 'P2P_BLOCK_REQUEST_BATCH_SIZE' | 'P2P_ENABLED' | 'P2P_GOSSIPSUB_D' | 'P2P_GOSSIPSUB_DHI' | 'P2P_GOSSIPSUB_DLO' | 'P2P_GOSSIPSUB_INTERVAL_MS' | 'P2P_GOSSIPSUB_MCACHE_GOSSIP' | 'P2P_GOSSIPSUB_MCACHE_LENGTH' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY' | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT' | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT' | 'P2P_L2_QUEUE_SIZE' | 'P2P_MAX_PEERS' | 'P2P_MIN_PEERS' | 'P2P_PEER_CHECK_INTERVAL_MS' | 'P2P_PEER_PENALTY_VALUES' | 'P2P_QUERY_FOR_IP' | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS' | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS' | 'P2P_SEVERE_PEER_PENALTY_BLOCK_LENGTH' | 'P2P_TCP_LISTEN_ADDR' | 'P2P_TCP_ANNOUNCE_ADDR' | 'P2P_TX_POOL_KEEP_PROVEN_FOR' | 'P2P_ATTESTATION_POOL_KEEP_FOR' | 'P2P_TX_PROTOCOL' | 'P2P_UDP_ANNOUNCE_ADDR' | 'P2P_UDP_LISTEN_ADDR' | 'P2P_ARCHIVED_TX_LIMIT' | 'PEER_ID_PRIVATE_KEY' | 'PROVER_BLOB_SINK_URL' | 'PROOF_VERIFIER_L1_START_BLOCK' | 'PROOF_VERIFIER_POLL_INTERVAL_MS' | 'PROVER_AGENT_ENABLED' | 'PROVER_AGENT_CONCURRENCY' | 'PROVER_AGENT_COUNT' | 'PROVER_AGENT_PROOF_TYPES' | 'PROVER_AGENT_POLL_INTERVAL_MS' | 'PROVER_BROKER_HOST' | 'PROVER_BROKER_ENABLED' | 'PROVER_BROKER_JOB_TIMEOUT_MS' | 'PROVER_BROKER_POLL_INTERVAL_MS' | 'PROVER_BROKER_JOB_MAX_RETRIES' | 'PROVER_COORDINATION_NODE_URL' | 'PROVER_DISABLED' | 'PROVER_FAILED_PROOF_STORE' | 'PROVER_ID' | 'PROVER_JOB_POLL_INTERVAL_MS' | 'PROVER_JOB_TIMEOUT_MS' | 'PROVER_NODE_POLLING_INTERVAL_MS' | 'PROVER_NODE_MAX_PENDING_JOBS' | 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH' | 'PROVER_NODE_TX_GATHERING_TIMEOUT_MS' | 'PROVER_NODE_TX_GATHERING_INTERVAL_MS' | 'PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS' | 'PROVER_PUBLISH_RETRY_INTERVAL_MS' | 'PROVER_PUBLISHER_PRIVATE_KEY' | 'PROVER_REAL_PROOFS' | 'PROVER_REQUIRED_CONFIRMATIONS' | 'PROVER_TEST_DELAY_MS' | 'PXE_L2_STARTING_BLOCK' | 'PXE_PROVER_ENABLED' | 'QUOTE_PROVIDER_BASIS_POINT_FEE' | 'QUOTE_PROVIDER_BOND_AMOUNT' | 'QUOTE_PROVIDER_URL' | 'PROVER_TARGET_ESCROW_AMOUNT' | 'PROVER_MINIMUM_ESCROW_AMOUNT' | 'REGISTRY_CONTRACT_ADDRESS' | 'ROLLUP_CONTRACT_ADDRESS' | 'SEQ_ALLOWED_SETUP_FN' | 'SEQ_BLOB_SINK_URL' | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES' | 'SEQ_MAX_TX_PER_BLOCK' | 'SEQ_MIN_TX_PER_BLOCK' | 'SEQ_MAX_DA_BLOCK_GAS' | 'SEQ_MAX_L2_BLOCK_GAS' | 'SEQ_PUBLISH_RETRY_INTERVAL_MS' | 'SEQ_PUBLISHER_PRIVATE_KEY' | 'SEQ_REQUIRED_CONFIRMATIONS' | 'SEQ_TX_POLLING_INTERVAL_MS' | 'SEQ_ENFORCE_TIME_TABLE' | 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT' | 'SLASH_FACTORY_CONTRACT_ADDRESS' | 'STAKING_ASSET_CONTRACT_ADDRESS' | 'REWARD_DISTRIBUTOR_CONTRACT_ADDRESS' | 'TELEMETRY' | 'TEST_ACCOUNTS' | 'TX_GOSSIP_VERSION' | 'TXE_PORT' | 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS' | 'VALIDATOR_DISABLED' | 'VALIDATOR_PRIVATE_KEY' | 'VALIDATOR_REEXECUTE' | 'VERSION' | 'WS_BLOCK_CHECK_INTERVAL_MS' | 'WS_PROVEN_BLOCKS_ONLY' | 'WS_BLOCK_REQUEST_BATCH_SIZE' | 'VERIFIER_VIEM_POLLING_INTERVAL_MS' | 'L1_READER_VIEM_POLLING_INTERVAL_MS' | 'PROVER_VIEM_POLLING_INTERVAL_MS' | 'SEQ_VIEM_POLLING_INTERVAL_MS' | 'WS_DB_MAP_SIZE_KB' | 'WS_DATA_DIRECTORY' | 'WS_NUM_HISTORIC_BLOCKS' | 'ETHEREUM_SLOT_DURATION' | 'AZTEC_SLOT_DURATION' | 'AZTEC_EPOCH_DURATION' | 'AZTEC_TARGET_COMMITTEE_SIZE' | 'AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS' | 'AZTEC_MINIMUM_STAKE' | 'AZTEC_SLASHING_QUORUM' | 'AZTEC_SLASHING_ROUND_SIZE' | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM' | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE' | 'L1_GAS_LIMIT_BUFFER_PERCENTAGE' | 'L1_GAS_LIMIT_BUFFER_FIXED' | 'L1_GAS_PRICE_MIN' | 'L1_GAS_PRICE_MAX' | 'L1_BLOB_FEE_PER_GAS_MAX' | 'L1_PRIORITY_FEE_BUMP_PERCENTAGE' | 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE' | 'L1_FIXED_PRIORITY_FEE_PER_GAS' | 'L1_TX_MONITOR_MAX_ATTEMPTS' | 'L1_TX_MONITOR_CHECK_INTERVAL_MS' | 'L1_TX_MONITOR_STALL_TIME_MS' | 'L1_TX_MONITOR_TX_TIMEOUT_MS' | 'L1_TX_PROPAGATION_MAX_QUERY_ATTEMPTS' | 'FAUCET_MNEMONIC_ACCOUNT_INDEX' | 'FAUCET_ETH_AMOUNT' | 'FAUCET_INTERVAL_MS' | 'FAUCET_L1_ASSETS' | 'K8S_POD_NAME' | 'K8S_POD_UID' | 'K8S_NAMESPACE_NAME';
2
2
  //# sourceMappingURL=env_var.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env_var.d.ts","sourceRoot":"","sources":["../../src/config/env_var.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env_var.d.ts","sourceRoot":"","sources":["../../src/config/env_var.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type EnvVar } from './env_var.js';
2
- export { EnvVar } from './env_var.js';
2
+ export { type EnvVar } from './env_var.js';
3
3
  export interface ConfigMapping {
4
4
  env?: EnvVar;
5
5
  parseEnv?: (val: string) => any;
@@ -42,6 +42,8 @@ export declare function optionalNumberConfigHelper(): Pick<ConfigMapping, 'parse
42
42
  export declare function booleanConfigHelper(defaultVal?: boolean): Required<Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
43
43
  parseVal: (val: string) => boolean;
44
44
  }>;
45
+ /** Parses an env var as boolean. Returns true only if value is 1, true, or TRUE. */
46
+ export declare function parseBooleanEnv(val: string | undefined): boolean;
45
47
  /**
46
48
  * Picks specific keys from the given configuration mappings.
47
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAChC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,OAAO,CAErE;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;AAEnE,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAqBjF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACrD,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACrC,YAAY,EAAE,CAAC,EAAE,GAChB,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAIhC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAAC,CAKvG;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAAC,CAKxG;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAU5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,UAAQ,GACjB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC,GAAG;IAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CAAC,CAQnH;AAcD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACrD,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACrC,IAAI,EAAE,CAAC,EAAE,GACR,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEhC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAU5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAChC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,OAAO,CAErE;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;AAEnE,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAqBjF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACrD,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACrC,YAAY,EAAE,CAAC,EAAE,GAChB,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAIhC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAAC,CAKvG;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,CAAC,CAKxG;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAU5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,UAAQ,GACjB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC,GAAG;IAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CAAC,CAQnH;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAcD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACrD,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACrC,IAAI,EAAE,CAAC,EAAE,GACR,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEhC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAU5E"}
@@ -74,7 +74,7 @@ export function optionalNumberConfigHelper() {
74
74
  * @returns Object with parseEnv and default values for a boolean config value
75
75
  */
76
76
  export function booleanConfigHelper(defaultVal = false) {
77
- const parse = (val) => (typeof val === 'boolean' ? val : ['1', 'true', 'TRUE'].includes(val));
77
+ const parse = (val) => (typeof val === 'boolean' ? val : parseBooleanEnv(val));
78
78
  return {
79
79
  parseEnv: parse,
80
80
  parseVal: parse,
@@ -82,6 +82,10 @@ export function booleanConfigHelper(defaultVal = false) {
82
82
  isBoolean: true,
83
83
  };
84
84
  }
85
+ /** Parses an env var as boolean. Returns true only if value is 1, true, or TRUE. */
86
+ export function parseBooleanEnv(val) {
87
+ return val !== undefined && ['1', 'true', 'TRUE'].includes(val);
88
+ }
85
89
  /**
86
90
  * Safely parses a number from a string.
87
91
  * If the value is not a number or is not a safe integer, the default value is returned.
@@ -121,4 +125,4 @@ export function getDefaultConfig(configMappings) {
121
125
  }
122
126
  return defaultConfig;
123
127
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxHQUFNLEVBQUUsR0FBWTtJQUMxRCxPQUFPLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUN2QyxDQUFDO0FBSUQsTUFBTSxVQUFVLHFCQUFxQixDQUFJLGNBQXFDO0lBQzVFLE1BQU0sTUFBTSxHQUFHLEVBQU8sQ0FBQztJQUV2QixLQUFLLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqRSw2RUFBNkU7WUFDN0UsSUFBSSxHQUFHLEtBQUssYUFBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxNQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUMvQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDckIsTUFBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3hELENBQUM7cUJBQU0sSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzVCLE1BQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFH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
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxHQUFNLEVBQUUsR0FBWTtJQUMxRCxPQUFPLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUN2QyxDQUFDO0FBSUQsTUFBTSxVQUFVLHFCQUFxQixDQUFJLGNBQXFDO0lBQzVFLE1BQU0sTUFBTSxHQUFHLEVBQU8sQ0FBQztJQUV2QixLQUFLLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqRSw2RUFBNkU7WUFDN0UsSUFBSSxHQUFHLEtBQUssYUFBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxNQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUMvQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDckIsTUFBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3hELENBQUM7cUJBQU0sSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzVCLE1BQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFH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
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Pino configuration for google cloud observability. Tweaks message and timestamp,
3
+ * adds trace context attributes, and injects severity level.
4
+ * Adapted from https://cloud.google.com/trace/docs/setup/nodejs-ot#config-structured-logging.
5
+ */
6
+ export declare const GoogleCloudLoggerConfig: {
7
+ messageKey: string;
8
+ timestamp(): string;
9
+ formatters: {
10
+ log(object: Record<string, unknown>): Record<string, unknown>;
11
+ level(label: string, level: number): object;
12
+ };
13
+ };
14
+ //# sourceMappingURL=gcloud-logger-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcloud-logger-config.d.ts","sourceRoot":"","sources":["../../src/log/gcloud-logger-config.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;iBAGrB,MAAM;;oBAIL,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,MAAM,EAAE,OAAO,CAAC;qBAgBhD,MAAM,SAAS,MAAM,GAAG,MAAM;;CA+BjB,CAAC"}
@@ -0,0 +1,64 @@
1
+ /* eslint-disable camelcase */
2
+ const GOOGLE_CLOUD_TRACE_ID = 'logging.googleapis.com/trace';
3
+ const GOOGLE_CLOUD_SPAN_ID = 'logging.googleapis.com/spanId';
4
+ const GOOGLE_CLOUD_TRACE_SAMPLED = 'logging.googleapis.com/trace_sampled';
5
+ /**
6
+ * Pino configuration for google cloud observability. Tweaks message and timestamp,
7
+ * adds trace context attributes, and injects severity level.
8
+ * Adapted from https://cloud.google.com/trace/docs/setup/nodejs-ot#config-structured-logging.
9
+ */
10
+ export const GoogleCloudLoggerConfig = {
11
+ messageKey: 'message',
12
+ // Same as pino.stdTimeFunctions.isoTime but uses "timestamp" key instead of "time"
13
+ timestamp() {
14
+ return `,"timestamp":"${new Date(Date.now()).toISOString()}"`;
15
+ },
16
+ formatters: {
17
+ log(object) {
18
+ // Add trace context attributes following Cloud Logging structured log format described
19
+ // in https://cloud.google.com/logging/docs/structured-logging#special-payload-fields
20
+ const { trace_id, span_id, trace_flags, ...rest } = object;
21
+ if (trace_id && span_id) {
22
+ return {
23
+ [GOOGLE_CLOUD_TRACE_ID]: trace_id,
24
+ [GOOGLE_CLOUD_SPAN_ID]: span_id,
25
+ [GOOGLE_CLOUD_TRACE_SAMPLED]: trace_flags ? trace_flags === '01' : undefined,
26
+ trace_flags, // Keep the original trace_flags for otel-pino-stream
27
+ ...rest,
28
+ };
29
+ }
30
+ return object;
31
+ },
32
+ level(label, level) {
33
+ // Inspired by https://github.com/pinojs/pino/issues/726#issuecomment-605814879
34
+ // Severity labels https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogSeverity
35
+ let severity;
36
+ switch (label) {
37
+ case 'trace':
38
+ case 'debug':
39
+ severity = 'DEBUG';
40
+ break;
41
+ case 'verbose':
42
+ case 'info':
43
+ severity = 'INFO';
44
+ break;
45
+ case 'warn':
46
+ severity = 'WARNING';
47
+ break;
48
+ case 'error':
49
+ severity = 'ERROR';
50
+ break;
51
+ case 'fatal':
52
+ severity = 'CRITICAL';
53
+ break;
54
+ default:
55
+ severity = 'DEFAULT';
56
+ break;
57
+ }
58
+ return { severity, level };
59
+ },
60
+ },
61
+ };
62
+ // Define custom logging levels for pino. Duplicate from pino-logger.ts.
63
+ const customLevels = { verbose: 25 };
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2Nsb3VkLWxvZ2dlci1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nL2djbG91ZC1sb2dnZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLDhCQUE4QjtBQUU5QixNQUFNLHFCQUFxQixHQUFHLDhCQUE4QixDQUFDO0FBQzdELE1BQU0sb0JBQW9CLEdBQUcsK0JBQStCLENBQUM7QUFDN0QsTUFBTSwwQkFBMEIsR0FBRyxzQ0FBc0MsQ0FBQztBQUUxRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsVUFBVSxFQUFFLFNBQVM7SUFDckIsbUZBQW1GO0lBQ25GLFNBQVM7UUFDUCxPQUFPLGlCQUFpQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxVQUFVLEVBQUU7UUFDVixHQUFHLENBQUMsTUFBK0I7WUFDakMsdUZBQXVGO1lBQ3ZGLHFGQUFxRjtZQUNyRixNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUM7WUFFM0QsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU87b0JBQ0wsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLFFBQVE7b0JBQ2pDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPO29CQUMvQixDQUFDLDBCQUEwQixDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO29CQUM1RSxXQUFXLEVBQUUscURBQXFEO29CQUNsRSxHQUFHLElBQUk7aUJBQ1IsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsS0FBSyxDQUFDLEtBQWEsRUFBRSxLQUFhO1lBQ2hDLCtFQUErRTtZQUMvRSxrR0FBa0c7WUFDbEcsSUFBSSxRQUFnQixDQUFDO1lBRXJCLFFBQVEsS0FBK0MsRUFBRSxDQUFDO2dCQUN4RCxLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLE9BQU87b0JBQ1YsUUFBUSxHQUFHLE9BQU8sQ0FBQztvQkFDbkIsTUFBTTtnQkFDUixLQUFLLFNBQVMsQ0FBQztnQkFDZixLQUFLLE1BQU07b0JBQ1QsUUFBUSxHQUFHLE1BQU0sQ0FBQztvQkFDbEIsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsUUFBUSxHQUFHLFNBQVMsQ0FBQztvQkFDckIsTUFBTTtnQkFDUixLQUFLLE9BQU87b0JBQ1YsUUFBUSxHQUFHLE9BQU8sQ0FBQztvQkFDbkIsTUFBTTtnQkFDUixLQUFLLE9BQU87b0JBQ1YsUUFBUSxHQUFHLFVBQVUsQ0FBQztvQkFDdEIsTUFBTTtnQkFDUjtvQkFDRSxRQUFRLEdBQUcsU0FBUyxDQUFDO29CQUNyQixNQUFNO1lBQ1YsQ0FBQztZQUVELE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDN0IsQ0FBQztLQUNGO0NBQzJCLENBQUM7QUFFL0Isd0VBQXdFO0FBQ3hFLE1BQU0sWUFBWSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKvC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgCnD;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;AA0DD,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAKF,eAAO,MAAM,cAAc;;;;;;;;;;CAU1B,CAAC;AA6DF;;;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,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAE/E;;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;CAChB,CAAC"}
1
+ {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOvC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgCnD;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;AA0BD,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAKF,eAAO,MAAM,cAAc;;;;;;;;;;CAU1B,CAAC;AA8DF;;;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,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAE/E;;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;CAChB,CAAC"}
@@ -3,6 +3,8 @@ 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';
7
+ import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
6
8
  import { getLogLevelFromFilters, parseEnv } from './log-filters.js';
7
9
  export function createLogger(module) {
8
10
  module = logNameHandlers.reduce((moduleName, handler) => handler(moduleName), module.replace(/^aztec:/, ''));
@@ -62,43 +64,14 @@ const defaultLogLevel = process.env.NODE_ENV === 'test' ? 'silent' : 'info';
62
64
  const [logLevel, logFilters] = parseEnv(process.env.LOG_LEVEL, defaultLogLevel);
63
65
  // Define custom logging levels for pino.
64
66
  const customLevels = { verbose: 25 };
65
- // inspired by https://github.com/pinojs/pino/issues/726#issuecomment-605814879
66
- const levelToSeverityFormatter = (label, level) => {
67
- // Severity labels https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogSeverity
68
- let severity;
69
- switch (label) {
70
- case 'trace':
71
- case 'debug':
72
- severity = 'DEBUG';
73
- break;
74
- case 'verbose':
75
- case 'info':
76
- severity = 'INFO';
77
- break;
78
- case 'warn':
79
- severity = 'WARNING';
80
- break;
81
- case 'error':
82
- severity = 'ERROR';
83
- break;
84
- case 'fatal':
85
- severity = 'CRITICAL';
86
- break;
87
- default:
88
- severity = 'DEFAULT';
89
- break;
90
- }
91
- return { severity, level };
92
- };
93
- const useGcloudObservability = process.env.USE_GCLOUD_OBSERVABILITY === 'true';
67
+ // Global pino options, tweaked for google cloud if running there.
68
+ const useGcloudObservability = parseBooleanEnv(process.env['USE_GCLOUD_OBSERVABILITY']);
94
69
  const pinoOpts = {
95
70
  customLevels,
96
- messageKey: useGcloudObservability ? 'message' : 'msg',
71
+ messageKey: 'msg',
97
72
  useOnlyCustomLevels: false,
98
73
  level: logLevel,
99
- formatters: {
100
- level: levelToSeverityFormatter,
101
- },
74
+ ...(useGcloudObservability ? GoogleCloudLoggerConfig : {}),
102
75
  };
103
76
  export const levels = {
104
77
  labels: { ...pino.levels.labels, ...Object.fromEntries(Object.entries(customLevels).map(e => e.reverse())) },
@@ -116,7 +89,7 @@ export const pinoPrettyOpts = {
116
89
  customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
117
90
  customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
118
91
  minimumLevel: 'trace',
119
- singleLine: !['1', 'true'].includes(process.env.LOG_MULTILINE ?? ''),
92
+ singleLine: !parseBooleanEnv(process.env['LOG_MULTILINE']),
120
93
  };
121
94
  const prettyTransport = {
122
95
  target: 'pino-pretty',
@@ -135,7 +108,8 @@ const stdioTransport = {
135
108
  // would mean that all child loggers created before the telemetry-client is initialized would not have
136
109
  // this transport configured. Note that the target is defined as the export in the telemetry-client,
137
110
  // since pino will load this transport separately on a worker thread, to minimize disruption to the main loop.
138
- const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT;
111
+ const otlpEndpoint = process.env['OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'];
112
+ const otlpEnabled = !!otlpEndpoint && !useGcloudObservability;
139
113
  const otelOpts = { levels };
140
114
  const otelTransport = {
141
115
  target: '@aztec/telemetry-client/otel-pino-stream',
@@ -155,10 +129,10 @@ function makeLogger() {
155
129
  }
156
130
  else {
157
131
  // Regular nodejs with transports on worker thread, using pino-pretty for console logging if LOG_JSON
158
- // is not set, and an optional OTLP transport if the OTLP endpoint is provided.
132
+ // is not set, and an optional OTLP transport if the OTLP endpoint is set.
159
133
  const targets = compactArray([
160
- ['1', 'true', 'TRUE'].includes(process.env.LOG_JSON ?? '') ? stdioTransport : prettyTransport,
161
- otlpEndpoint ? otelTransport : undefined,
134
+ parseBooleanEnv(process.env.LOG_JSON) ? stdioTransport : prettyTransport,
135
+ otlpEnabled ? otelTransport : undefined,
162
136
  ]);
163
137
  return pino(pinoOpts, pino.transport({ targets, levels: levels.values }));
164
138
  }
@@ -169,7 +143,7 @@ logger.verbose({
169
143
  module: 'logger',
170
144
  ...logFilters.reduce((accum, [module, level]) => ({ ...accum, [`log.${module}`]: level }), {}),
171
145
  }, isNode
172
- ? `Logger initialized with level ${logLevel}` + (otlpEndpoint ? ` with OTLP exporter to ${otlpEndpoint}` : '')
146
+ ? `Logger initialized with level ${logLevel}` + (otlpEnabled ? ` with OTLP exporter to ${otlpEndpoint}` : '')
173
147
  : `Browser console logger initialized with level ${logLevel}`);
174
148
  /**
175
149
  * Overwrites the logging stream with a different destination.
@@ -204,4 +178,4 @@ export function registerLoggingStream(stream) {
204
178
  function formatErr(msg, err) {
205
179
  return err ? `${msg}: ${inspect(err)}` : msg;
206
180
  }
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nL3Bpbm8tbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRSxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVuRyxzRkFBc0Y7SUFDdEYsd0VBQXdFO0lBQ3hFLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBZSxFQUFFLEdBQVcsRUFBRSxJQUFjLEVBQUUsRUFBRSxDQUM3RCxjQUFjLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUUsSUFBZ0IsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUV2RyxPQUFPO1FBQ0ws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
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nL3Bpbm8tbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJcEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFjO0lBQ3pDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0csTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFbkcsc0ZBQXNGO0lBQ3RGLHdFQUF3RTtJQUN4RSxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQWUsRUFBRSxHQUFXLEVBQUUsSUFBYyxFQUFFLEVBQUUsQ0FDN0QsY0FBYyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxVQUFV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
@@ -39,9 +39,9 @@ declare const noirPackageConfigSchema: z.ZodObject<{
39
39
  backend?: string | undefined;
40
40
  license?: string | undefined;
41
41
  }, {
42
+ description?: string | undefined;
42
43
  name?: string | undefined;
43
44
  type?: "lib" | "contract" | "bin" | undefined;
44
- description?: string | undefined;
45
45
  entry?: string | undefined;
46
46
  authors?: string[] | undefined;
47
47
  compiler_version?: string | undefined;
@@ -87,9 +87,9 @@ declare const noirPackageConfigSchema: z.ZodObject<{
87
87
  }>;
88
88
  }, {
89
89
  package: {
90
+ description?: string | undefined;
90
91
  name?: string | undefined;
91
92
  type?: "lib" | "contract" | "bin" | undefined;
92
- description?: string | undefined;
93
93
  entry?: string | undefined;
94
94
  authors?: string[] | undefined;
95
95
  compiler_version?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/foundation",
3
- "version": "0.70.0",
3
+ "version": "0.71.0",
4
4
  "type": "module",
5
5
  "main": "./dest/index.js",
6
6
  "types": "./dest/index.d.ts",
@@ -102,7 +102,7 @@
102
102
  ]
103
103
  },
104
104
  "dependencies": {
105
- "@aztec/bb.js": "0.70.0",
105
+ "@aztec/bb.js": "0.71.0",
106
106
  "@koa/cors": "^5.0.0",
107
107
  "@noble/curves": "^1.2.0",
108
108
  "bn.js": "^5.2.1",
@@ -100,6 +100,7 @@ export type EnvVar =
100
100
  | 'P2P_TX_PROTOCOL'
101
101
  | 'P2P_UDP_ANNOUNCE_ADDR'
102
102
  | 'P2P_UDP_LISTEN_ADDR'
103
+ | 'P2P_ARCHIVED_TX_LIMIT'
103
104
  | 'PEER_ID_PRIVATE_KEY'
104
105
  | 'PROVER_BLOB_SINK_URL'
105
106
  | 'PROOF_VERIFIER_L1_START_BLOCK'
@@ -116,6 +117,7 @@ export type EnvVar =
116
117
  | 'PROVER_BROKER_JOB_MAX_RETRIES'
117
118
  | 'PROVER_COORDINATION_NODE_URL'
118
119
  | 'PROVER_DISABLED'
120
+ | 'PROVER_FAILED_PROOF_STORE'
119
121
  | 'PROVER_ID'
120
122
  | 'PROVER_JOB_POLL_INTERVAL_MS'
121
123
  | 'PROVER_JOB_TIMEOUT_MS'
@@ -160,7 +162,6 @@ export type EnvVar =
160
162
  | 'TX_GOSSIP_VERSION'
161
163
  | 'TXE_PORT'
162
164
  | 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS'
163
- | 'VALIDATOR_ATTESTATIONS_WAIT_TIMEOUT_MS'
164
165
  | 'VALIDATOR_DISABLED'
165
166
  | 'VALIDATOR_PRIVATE_KEY'
166
167
  | 'VALIDATOR_REEXECUTE'
@@ -1,6 +1,6 @@
1
1
  import { type EnvVar } from './env_var.js';
2
2
 
3
- export { EnvVar } from './env_var.js';
3
+ export { type EnvVar } from './env_var.js';
4
4
 
5
5
  export interface ConfigMapping {
6
6
  env?: EnvVar;
@@ -102,7 +102,7 @@ export function optionalNumberConfigHelper(): Pick<ConfigMapping, 'parseEnv'> {
102
102
  export function booleanConfigHelper(
103
103
  defaultVal = false,
104
104
  ): Required<Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & { parseVal: (val: string) => boolean }> {
105
- const parse = (val: string | boolean) => (typeof val === 'boolean' ? val : ['1', 'true', 'TRUE'].includes(val));
105
+ const parse = (val: string | boolean) => (typeof val === 'boolean' ? val : parseBooleanEnv(val));
106
106
  return {
107
107
  parseEnv: parse,
108
108
  parseVal: parse,
@@ -111,6 +111,11 @@ export function booleanConfigHelper(
111
111
  };
112
112
  }
113
113
 
114
+ /** Parses an env var as boolean. Returns true only if value is 1, true, or TRUE. */
115
+ export function parseBooleanEnv(val: string | undefined): boolean {
116
+ return val !== undefined && ['1', 'true', 'TRUE'].includes(val);
117
+ }
118
+
114
119
  /**
115
120
  * Safely parses a number from a string.
116
121
  * If the value is not a number or is not a safe integer, the default value is returned.
@@ -0,0 +1,71 @@
1
+ import { type pino } from 'pino';
2
+
3
+ /* eslint-disable camelcase */
4
+
5
+ const GOOGLE_CLOUD_TRACE_ID = 'logging.googleapis.com/trace';
6
+ const GOOGLE_CLOUD_SPAN_ID = 'logging.googleapis.com/spanId';
7
+ const GOOGLE_CLOUD_TRACE_SAMPLED = 'logging.googleapis.com/trace_sampled';
8
+
9
+ /**
10
+ * Pino configuration for google cloud observability. Tweaks message and timestamp,
11
+ * adds trace context attributes, and injects severity level.
12
+ * Adapted from https://cloud.google.com/trace/docs/setup/nodejs-ot#config-structured-logging.
13
+ */
14
+ export const GoogleCloudLoggerConfig = {
15
+ messageKey: 'message',
16
+ // Same as pino.stdTimeFunctions.isoTime but uses "timestamp" key instead of "time"
17
+ timestamp(): string {
18
+ return `,"timestamp":"${new Date(Date.now()).toISOString()}"`;
19
+ },
20
+ formatters: {
21
+ log(object: Record<string, unknown>): Record<string, unknown> {
22
+ // Add trace context attributes following Cloud Logging structured log format described
23
+ // in https://cloud.google.com/logging/docs/structured-logging#special-payload-fields
24
+ const { trace_id, span_id, trace_flags, ...rest } = object;
25
+
26
+ if (trace_id && span_id) {
27
+ return {
28
+ [GOOGLE_CLOUD_TRACE_ID]: trace_id,
29
+ [GOOGLE_CLOUD_SPAN_ID]: span_id,
30
+ [GOOGLE_CLOUD_TRACE_SAMPLED]: trace_flags ? trace_flags === '01' : undefined,
31
+ trace_flags, // Keep the original trace_flags for otel-pino-stream
32
+ ...rest,
33
+ };
34
+ }
35
+ return object;
36
+ },
37
+ level(label: string, level: number): object {
38
+ // Inspired by https://github.com/pinojs/pino/issues/726#issuecomment-605814879
39
+ // Severity labels https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogSeverity
40
+ let severity: string;
41
+
42
+ switch (label as pino.Level | keyof typeof customLevels) {
43
+ case 'trace':
44
+ case 'debug':
45
+ severity = 'DEBUG';
46
+ break;
47
+ case 'verbose':
48
+ case 'info':
49
+ severity = 'INFO';
50
+ break;
51
+ case 'warn':
52
+ severity = 'WARNING';
53
+ break;
54
+ case 'error':
55
+ severity = 'ERROR';
56
+ break;
57
+ case 'fatal':
58
+ severity = 'CRITICAL';
59
+ break;
60
+ default:
61
+ severity = 'DEFAULT';
62
+ break;
63
+ }
64
+
65
+ return { severity, level };
66
+ },
67
+ },
68
+ } satisfies pino.LoggerOptions;
69
+
70
+ // Define custom logging levels for pino. Duplicate from pino-logger.ts.
71
+ const customLevels = { verbose: 25 };
@@ -5,6 +5,8 @@ import { type Writable } from 'stream';
5
5
  import { inspect } from 'util';
6
6
 
7
7
  import { compactArray } from '../collection/array.js';
8
+ import { type EnvVar, parseBooleanEnv } from '../config/index.js';
9
+ import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
8
10
  import { getLogLevelFromFilters, parseEnv } from './log-filters.js';
9
11
  import { type LogLevel } from './log-levels.js';
10
12
  import { type LogData, type LogFn } from './log_fn.js';
@@ -86,46 +88,14 @@ const [logLevel, logFilters] = parseEnv(process.env.LOG_LEVEL, defaultLogLevel);
86
88
  // Define custom logging levels for pino.
87
89
  const customLevels = { verbose: 25 };
88
90
 
89
- // inspired by https://github.com/pinojs/pino/issues/726#issuecomment-605814879
90
- const levelToSeverityFormatter = (label: string, level: number): object => {
91
- // Severity labels https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogSeverity
92
- let severity: string;
93
-
94
- switch (label as pino.Level | keyof typeof customLevels) {
95
- case 'trace':
96
- case 'debug':
97
- severity = 'DEBUG';
98
- break;
99
- case 'verbose':
100
- case 'info':
101
- severity = 'INFO';
102
- break;
103
- case 'warn':
104
- severity = 'WARNING';
105
- break;
106
- case 'error':
107
- severity = 'ERROR';
108
- break;
109
- case 'fatal':
110
- severity = 'CRITICAL';
111
- break;
112
- default:
113
- severity = 'DEFAULT';
114
- break;
115
- }
116
-
117
- return { severity, level };
118
- };
119
-
120
- const useGcloudObservability = process.env.USE_GCLOUD_OBSERVABILITY === 'true';
91
+ // Global pino options, tweaked for google cloud if running there.
92
+ const useGcloudObservability = parseBooleanEnv(process.env['USE_GCLOUD_OBSERVABILITY' satisfies EnvVar]);
121
93
  const pinoOpts: pino.LoggerOptions<keyof typeof customLevels> = {
122
94
  customLevels,
123
- messageKey: useGcloudObservability ? 'message' : 'msg',
95
+ messageKey: 'msg',
124
96
  useOnlyCustomLevels: false,
125
97
  level: logLevel,
126
- formatters: {
127
- level: levelToSeverityFormatter,
128
- },
98
+ ...(useGcloudObservability ? GoogleCloudLoggerConfig : {}),
129
99
  };
130
100
 
131
101
  export const levels = {
@@ -145,7 +115,7 @@ export const pinoPrettyOpts = {
145
115
  customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
146
116
  customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
147
117
  minimumLevel: 'trace' as const,
148
- singleLine: !['1', 'true'].includes(process.env.LOG_MULTILINE ?? ''),
118
+ singleLine: !parseBooleanEnv(process.env['LOG_MULTILINE' satisfies EnvVar]),
149
119
  };
150
120
 
151
121
  const prettyTransport: pino.TransportTargetOptions = {
@@ -167,7 +137,8 @@ const stdioTransport: pino.TransportTargetOptions = {
167
137
  // would mean that all child loggers created before the telemetry-client is initialized would not have
168
138
  // this transport configured. Note that the target is defined as the export in the telemetry-client,
169
139
  // since pino will load this transport separately on a worker thread, to minimize disruption to the main loop.
170
- const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT;
140
+ const otlpEndpoint = process.env['OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' satisfies EnvVar];
141
+ const otlpEnabled = !!otlpEndpoint && !useGcloudObservability;
171
142
  const otelOpts = { levels };
172
143
  const otelTransport: pino.TransportTargetOptions = {
173
144
  target: '@aztec/telemetry-client/otel-pino-stream',
@@ -185,10 +156,10 @@ function makeLogger() {
185
156
  return pino(pinoOpts, pino.destination(2));
186
157
  } else {
187
158
  // Regular nodejs with transports on worker thread, using pino-pretty for console logging if LOG_JSON
188
- // is not set, and an optional OTLP transport if the OTLP endpoint is provided.
159
+ // is not set, and an optional OTLP transport if the OTLP endpoint is set.
189
160
  const targets: pino.TransportSingleOptions[] = compactArray([
190
- ['1', 'true', 'TRUE'].includes(process.env.LOG_JSON ?? '') ? stdioTransport : prettyTransport,
191
- otlpEndpoint ? otelTransport : undefined,
161
+ parseBooleanEnv(process.env.LOG_JSON) ? stdioTransport : prettyTransport,
162
+ otlpEnabled ? otelTransport : undefined,
192
163
  ]);
193
164
  return pino(pinoOpts, pino.transport({ targets, levels: levels.values }));
194
165
  }
@@ -203,7 +174,7 @@ logger.verbose(
203
174
  ...logFilters.reduce((accum, [module, level]) => ({ ...accum, [`log.${module}`]: level }), {}),
204
175
  },
205
176
  isNode
206
- ? `Logger initialized with level ${logLevel}` + (otlpEndpoint ? ` with OTLP exporter to ${otlpEndpoint}` : '')
177
+ ? `Logger initialized with level ${logLevel}` + (otlpEnabled ? ` with OTLP exporter to ${otlpEndpoint}` : '')
207
178
  : `Browser console logger initialized with level ${logLevel}`,
208
179
  );
209
180