@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.
- package/dest/config/env_var.d.ts +1 -1
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +3 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +6 -2
- package/dest/log/gcloud-logger-config.d.ts +14 -0
- package/dest/log/gcloud-logger-config.d.ts.map +1 -0
- package/dest/log/gcloud-logger-config.js +64 -0
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +14 -40
- package/dest/noir/noir_package_config.d.ts +2 -2
- package/package.json +2 -2
- package/src/config/env_var.ts +2 -1
- package/src/config/index.ts +7 -2
- package/src/log/gcloud-logger-config.ts +71 -0
- package/src/log/pino-logger.ts +13 -42
package/dest/config/env_var.d.ts
CHANGED
|
@@ -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' | '
|
|
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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"}
|
package/dest/config/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dest/config/index.js
CHANGED
|
@@ -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 :
|
|
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,
|
|
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;
|
|
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"}
|
package/dest/log/pino-logger.js
CHANGED
|
@@ -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
|
-
//
|
|
66
|
-
const
|
|
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:
|
|
71
|
+
messageKey: 'msg',
|
|
97
72
|
useOnlyCustomLevels: false,
|
|
98
73
|
level: logLevel,
|
|
99
|
-
|
|
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: !
|
|
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
|
|
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
|
|
132
|
+
// is not set, and an optional OTLP transport if the OTLP endpoint is set.
|
|
159
133
|
const targets = compactArray([
|
|
160
|
-
|
|
161
|
-
|
|
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}` + (
|
|
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,
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nL3Bpbm8tbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJcEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFjO0lBQ3pDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0csTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFbkcsc0ZBQXNGO0lBQ3RGLHdFQUF3RTtJQUN4RSxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQWUsRUFBRSxHQUFXLEVBQUUsSUFBYyxFQUFFLEVBQUUsQ0FDN0QsY0FBYyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFFLElBQWdCLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFdkcsT0FBTztRQUNMLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO1FBQ2hCLDJFQUEyRTtRQUMzRSxtRUFBbUU7UUFDbkUsS0FBSyxFQUFFLENBQUMsR0FBVyxFQUFFLEdBQWEsRUFBRSxJQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUM7UUFDaEcsK0NBQStDO1FBQy9DLEtBQUssRUFBRSxDQUFDLEdBQVcsRUFBRSxHQUFhLEVBQUUsSUFBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDO1FBQ2hHLDhEQUE4RDtRQUM5RCxJQUFJLEVBQUUsQ0FBQyxHQUFXLEVBQUUsSUFBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDL0Qsd0ZBQXdGO1FBQ3hGLElBQUksRUFBRSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztRQUMvRCw0RkFBNEY7UUFDNUYsT0FBTyxFQUFFLENBQUMsR0FBVyxFQUFFLElBQWMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ3JFLDBHQUEwRztRQUMxRyxLQUFLLEVBQUUsQ0FBQyxHQUFXLEVBQUUsSUFBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDakUseUZBQXlGO1FBQ3pGLEtBQUssRUFBRSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztRQUNqRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQWlCO1FBQ25DLDBEQUEwRDtRQUMxRCxjQUFjLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO1FBQ3RFLGtDQUFrQztRQUNsQyxNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUM7QUFLRCxNQUFNLGVBQWUsR0FBcUIsRUFBRSxDQUFDO0FBRTdDLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUF1QjtJQUN2RCxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFhO0lBQ25DLE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBS0QsTUFBTSxlQUFlLEdBQXFCLEVBQUUsQ0FBQztBQUU3QyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBdUI7SUFDdkQsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQXVCO0lBQzFELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqQixlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQztBQUVELGtEQUFrRDtBQUNsRCxTQUFTLGNBQWMsQ0FBQyxNQUF1QyxFQUFFLEtBQWU7SUFDOUUsT0FBTyxPQUFPLE1BQU0sQ0FBQyxjQUFjLEtBQUssVUFBVTtRQUNoRCxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsOENBQThDO0FBQzlDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDNUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFFaEYseUNBQXlDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBRXJDLGtFQUFrRTtBQUNsRSxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEyQyxDQUFDLENBQUMsQ0FBQztBQUN6RyxNQUFNLFFBQVEsR0FBa0Q7SUFDOUQsWUFBWTtJQUNaLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsS0FBSyxFQUFFLFFBQVE7SUFDZixHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDM0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNwQixNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDNUcsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLFlBQVksRUFBRTtDQUNuRCxDQUFDO0FBRUYsa0VBQWtFO0FBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztBQUN0QixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsSUFBSSxFQUFFLElBQUk7SUFDVixRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsMkRBQTJEO0lBQ25FLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7SUFDdEQsWUFBWSxFQUFFLGdFQUFnRTtJQUM5RSxZQUFZLEVBQUUsb0ZBQW9GO0lBQ2xHLFlBQVksRUFBRSxPQUFnQjtJQUM5QixVQUFVLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFnQyxDQUFDLENBQUM7Q0FDNUUsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFnQztJQUNuRCxNQUFNLEVBQUUsYUFBYTtJQUNyQixPQUFPLEVBQUUsY0FBYztJQUN2QixLQUFLLEVBQUUsT0FBTztDQUNmLENBQUM7QUFFRiwrQ0FBK0M7QUFDL0MsTUFBTSxjQUFjLEdBQWdDO0lBQ2xELE1BQU0sRUFBRSxXQUFXO0lBQ25CLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUU7SUFDM0IsS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDO0FBRUYscUdBQXFHO0FBQ3JHLHFHQUFxRztBQUNyRyw0R0FBNEc7QUFDNUcsc0dBQXNHO0FBQ3RHLG9HQUFvRztBQUNwRyw4R0FBOEc7QUFDOUcsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBbUQsQ0FBQyxDQUFDO0FBQ3RGLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztBQUM5RCxNQUFNLFFBQVEsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzVCLE1BQU0sYUFBYSxHQUFnQztJQUNqRCxNQUFNLEVBQUUsMENBQTBDO0lBQ2xELE9BQU8sRUFBRSxRQUFRO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQztBQUNGLFNBQVMsVUFBVTtJQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWix5QkFBeUI7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsZ0VBQWdFO1FBQ2hFLGdGQUFnRjtRQUNoRixtRkFBbUY7UUFDbkYsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO1NBQU0sQ0FBQztRQUNOLHFHQUFxRztRQUNyRywwRUFBMEU7UUFDMUUsTUFBTSxPQUFPLEdBQWtDLFlBQVksQ0FBQztZQUMxRCxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxlQUFlO1lBQ3hFLFdBQVcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3hDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFFNUIsZ0NBQWdDO0FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQ1o7SUFDRSxNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLE9BQU8sTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztDQUMvRixFQUNELE1BQU07SUFDSixDQUFDLENBQUMsaUNBQWlDLFFBQVEsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM3RyxDQUFDLENBQUMsaURBQWlELFFBQVEsRUFBRSxDQUNoRSxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE1BQWdCO0lBQ3BELE1BQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQzlDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBZ0I7SUFDcEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sUUFBUSxHQUFJLE1BQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsTUFBTSxXQUFXLEdBQUcsUUFBUTtRQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FDZDtZQUNFLHlGQUF5RjtZQUN6RiwyRUFBMkU7WUFDM0UsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtTQUMzQixFQUNELEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FDMUI7UUFDSCxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ1YsTUFBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxXQUFXLENBQUM7QUFDbkQsQ0FBQztBQWNEOzs7OztHQUtHO0FBQ0gsU0FBUyxTQUFTLENBQUMsR0FBVyxFQUFFLEdBQXFCO0lBQ25ELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQy9DLENBQUMifQ==
|
|
@@ -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.
|
|
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.
|
|
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",
|
package/src/config/env_var.ts
CHANGED
|
@@ -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'
|
package/src/config/index.ts
CHANGED
|
@@ -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 :
|
|
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 };
|
package/src/log/pino-logger.ts
CHANGED
|
@@ -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
|
-
//
|
|
90
|
-
const
|
|
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:
|
|
95
|
+
messageKey: 'msg',
|
|
124
96
|
useOnlyCustomLevels: false,
|
|
125
97
|
level: logLevel,
|
|
126
|
-
|
|
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: !
|
|
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
|
|
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
|
|
159
|
+
// is not set, and an optional OTLP transport if the OTLP endpoint is set.
|
|
189
160
|
const targets: pino.TransportSingleOptions[] = compactArray([
|
|
190
|
-
|
|
191
|
-
|
|
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}` + (
|
|
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
|
|