@aztec/foundation 0.0.1-commit.c31f2472 → 0.0.1-commit.c52d6e7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/array/sorted_array.d.ts +6 -1
- package/dest/array/sorted_array.d.ts.map +1 -1
- package/dest/array/sorted_array.js +18 -15
- package/dest/bigint-buffer/index.d.ts +1 -1
- package/dest/bigint-buffer/index.d.ts.map +1 -1
- package/dest/bigint-buffer/index.js +6 -1
- package/dest/branded-types/block_number.d.ts +3 -3
- package/dest/branded-types/block_number.d.ts.map +1 -1
- package/dest/branded-types/block_number.js +15 -4
- package/dest/branded-types/buffer32_hash.d.ts +27 -0
- package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
- package/dest/branded-types/buffer32_hash.js +12 -0
- package/dest/branded-types/checkpoint_number.d.ts +9 -3
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
- package/dest/branded-types/checkpoint_number.js +11 -0
- package/dest/branded-types/epoch.d.ts +2 -2
- package/dest/branded-types/epoch.d.ts.map +1 -1
- package/dest/branded-types/index.d.ts +2 -1
- package/dest/branded-types/index.d.ts.map +1 -1
- package/dest/branded-types/index.js +1 -0
- package/dest/branded-types/index_within_checkpoint.d.ts +2 -2
- package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
- package/dest/branded-types/slot.d.ts +5 -2
- package/dest/branded-types/slot.d.ts.map +1 -1
- package/dest/branded-types/slot.js +3 -0
- package/dest/buffer/buffer16.d.ts +3 -1
- package/dest/buffer/buffer16.d.ts.map +1 -1
- package/dest/buffer/buffer32.d.ts +28 -61
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +29 -63
- package/dest/buffer/index.d.ts +2 -1
- package/dest/buffer/index.d.ts.map +1 -1
- package/dest/buffer/index.js +1 -0
- package/dest/buffer/utils.d.ts +3 -0
- package/dest/buffer/utils.d.ts.map +1 -0
- package/dest/buffer/utils.js +7 -0
- package/dest/collection/array.d.ts +11 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +33 -0
- package/dest/collection/index.d.ts +3 -1
- package/dest/collection/index.d.ts.map +1 -1
- package/dest/collection/index.js +2 -0
- package/dest/collection/lru_map.d.ts +41 -0
- package/dest/collection/lru_map.d.ts.map +1 -0
- package/dest/collection/lru_map.js +119 -0
- package/dest/collection/lru_set.d.ts +35 -0
- package/dest/collection/lru_set.d.ts.map +1 -0
- package/dest/collection/lru_set.js +95 -0
- package/dest/committable/committable.js +1 -1
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +67 -37
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +86 -70
- package/dest/config/network_config.d.ts +15 -41
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +4 -1
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +3 -3
- package/dest/config/secret_value.d.ts +2 -2
- package/dest/config/secret_value.d.ts.map +1 -1
- package/dest/crypto/aes128/index.d.ts +2 -1
- package/dest/crypto/aes128/index.d.ts.map +1 -1
- package/dest/crypto/aes128/index.js +11 -2
- package/dest/crypto/bls/bn254_keystore.d.ts +10 -177
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
- package/dest/crypto/bls/bn254_keystore.js +22 -34
- package/dest/crypto/keys/index.d.ts +3 -2
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +30 -6
- package/dest/crypto/poseidon/index.d.ts +1 -1
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +40 -33
- package/dest/crypto/schnorr/index.d.ts +8 -7
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +6 -6
- package/dest/crypto/schnorr/signature.d.ts +9 -29
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +20 -36
- package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +26 -0
- package/dest/curves/bls12/field.d.ts +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -1
- package/dest/curves/bls12/field.js +0 -5
- package/dest/curves/bls12/point.d.ts +2 -2
- package/dest/curves/bls12/point.d.ts.map +1 -1
- package/dest/curves/bn254/field.d.ts +24 -19
- package/dest/curves/bn254/field.d.ts.map +1 -1
- package/dest/curves/bn254/field.js +28 -19
- package/dest/curves/grumpkin/point.d.ts +14 -28
- package/dest/curves/grumpkin/point.d.ts.map +1 -1
- package/dest/curves/grumpkin/point.js +29 -43
- package/dest/eth-address/index.d.ts +2 -2
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +0 -3
- package/dest/eth-signature/eth_signature.d.ts +3 -2
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +7 -2
- package/dest/fifo/fifo_frame_reader.d.ts +41 -0
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
- package/dest/fifo/fifo_frame_reader.js +91 -0
- package/dest/fifo/index.d.ts +2 -0
- package/dest/fifo/index.d.ts.map +1 -0
- package/dest/fifo/index.js +1 -0
- package/dest/fifo_set/fifo_set.d.ts +15 -0
- package/dest/fifo_set/fifo_set.d.ts.map +1 -0
- package/dest/fifo_set/fifo_set.js +39 -0
- package/dest/fifo_set/index.d.ts +2 -0
- package/dest/fifo_set/index.d.ts.map +1 -0
- package/dest/fifo_set/index.js +1 -0
- package/dest/jest/setup.js +24 -0
- package/dest/json-rpc/client/fetch.d.ts +1 -1
- package/dest/json-rpc/client/fetch.d.ts.map +1 -1
- package/dest/json-rpc/client/fetch.js +4 -3
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +6 -5
- package/dest/json-rpc/client/undici.d.ts +1 -1
- package/dest/json-rpc/client/undici.d.ts.map +1 -1
- package/dest/json-rpc/client/undici.js +5 -3
- package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/test_state.js +57 -17
- package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
- package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
- package/dest/json-rpc/server/api_key_auth.js +57 -0
- package/dest/json-rpc/server/index.d.ts +2 -1
- package/dest/json-rpc/server/index.d.ts.map +1 -1
- package/dest/json-rpc/server/index.js +1 -0
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +32 -14
- package/dest/log/aws-logger-config.d.ts +8 -0
- package/dest/log/aws-logger-config.d.ts.map +1 -0
- package/dest/log/aws-logger-config.js +55 -0
- package/dest/log/bigint-utils.d.ts +5 -0
- package/dest/log/bigint-utils.d.ts.map +1 -0
- package/dest/log/bigint-utils.js +21 -0
- package/dest/log/gcloud-logger-config.d.ts +1 -1
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.js +3 -0
- package/dest/log/log-filters.d.ts +17 -4
- package/dest/log/log-filters.d.ts.map +1 -1
- package/dest/log/log-filters.js +26 -12
- package/dest/log/pino-logger.d.ts +1 -1
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +33 -8
- package/dest/noir/noir_package_config.d.ts +19 -104
- package/dest/noir/noir_package_config.d.ts.map +1 -1
- package/dest/noir/noir_package_config.js +1 -1
- package/dest/promise/running-promise.d.ts +5 -4
- package/dest/promise/running-promise.d.ts.map +1 -1
- package/dest/promise/running-promise.js +7 -3
- package/dest/queue/base_memory_queue.d.ts +2 -2
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.d.ts +1 -1
- package/dest/queue/batch_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.js +1 -0
- package/dest/retry/index.d.ts +31 -3
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +44 -2
- package/dest/schemas/api.d.ts +12 -10
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/api.js +7 -1
- package/dest/schemas/parse.d.ts +4 -4
- package/dest/schemas/parse.d.ts.map +1 -1
- package/dest/schemas/parse.js +6 -5
- package/dest/schemas/schemas.d.ts +15 -15
- package/dest/schemas/types.d.ts +3 -3
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/utils.d.ts +7 -11
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +2 -18
- package/dest/serialize/buffer_reader.d.ts +8 -1
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +18 -0
- package/dest/serialize/buffer_sink.d.ts +134 -0
- package/dest/serialize/buffer_sink.d.ts.map +1 -0
- package/dest/serialize/buffer_sink.js +297 -0
- package/dest/serialize/index.d.ts +2 -1
- package/dest/serialize/index.d.ts.map +1 -1
- package/dest/serialize/index.js +1 -0
- package/dest/serialize/serialize.d.ts +19 -32
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +31 -21
- package/dest/sleep/index.d.ts +2 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +10 -1
- package/dest/string/index.d.ts +3 -1
- package/dest/string/index.d.ts.map +1 -1
- package/dest/string/index.js +13 -1
- package/dest/testing/files/index.d.ts +3 -4
- package/dest/testing/files/index.d.ts.map +1 -1
- package/dest/testing/files/index.js +3 -4
- package/dest/timer/date.d.ts +25 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +33 -0
- package/dest/timer/index.d.ts +2 -2
- package/dest/timer/index.d.ts.map +1 -1
- package/dest/timer/index.js +1 -1
- package/dest/timer/timeout.d.ts +3 -1
- package/dest/timer/timeout.d.ts.map +1 -1
- package/dest/timer/timeout.js +26 -0
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
- package/dest/transport/index.d.ts +1 -2
- package/dest/transport/index.d.ts.map +1 -1
- package/dest/transport/index.js +0 -1
- package/dest/transport/transport_client.js +2 -2
- package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
- package/dest/trees/balanced_merkle_tree_root.js +2 -3
- package/dest/trees/hasher.d.ts +3 -2
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/hasher.js +5 -5
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
- package/dest/trees/membership_witness.d.ts +2 -6
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +0 -9
- package/dest/trees/merkle_tree_calculator.d.ts +4 -2
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +1 -5
- package/dest/trees/sibling_path.d.ts +13 -14
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +23 -28
- package/dest/trees/unbalanced_merkle_tree_root.d.ts +2 -3
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree_root.js +2 -3
- package/dest/types/index.d.ts +25 -1
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +18 -0
- package/package.json +26 -4
- package/src/array/sorted_array.ts +22 -17
- package/src/bigint-buffer/index.ts +6 -1
- package/src/branded-types/block_number.ts +20 -2
- package/src/branded-types/buffer32_hash.ts +38 -0
- package/src/branded-types/checkpoint_number.ts +16 -1
- package/src/branded-types/epoch.ts +1 -1
- package/src/branded-types/index.ts +1 -0
- package/src/branded-types/index_within_checkpoint.ts +1 -1
- package/src/branded-types/slot.ts +6 -1
- package/src/buffer/buffer16.ts +3 -0
- package/src/buffer/buffer32.ts +39 -68
- package/src/buffer/index.ts +1 -0
- package/src/buffer/utils.ts +8 -0
- package/src/collection/array.ts +34 -0
- package/src/collection/index.ts +2 -0
- package/src/collection/lru_map.ts +143 -0
- package/src/collection/lru_set.ts +115 -0
- package/src/committable/committable.ts +1 -1
- package/src/config/env_var.ts +92 -23
- package/src/config/index.ts +157 -121
- package/src/config/network_config.ts +3 -0
- package/src/config/network_name.ts +6 -6
- package/src/config/secret_value.ts +1 -1
- package/src/crypto/aes128/index.ts +11 -2
- package/src/crypto/bls/bn254_keystore.ts +33 -43
- package/src/crypto/keys/index.ts +20 -4
- package/src/crypto/poseidon/index.ts +42 -34
- package/src/crypto/schnorr/index.ts +9 -8
- package/src/crypto/schnorr/signature.ts +17 -46
- package/src/crypto/secp256k1-signer/utils.ts +32 -0
- package/src/curves/bls12/field.ts +0 -7
- package/src/curves/bn254/field.ts +41 -36
- package/src/curves/grumpkin/point.ts +23 -40
- package/src/eth-address/index.ts +0 -4
- package/src/eth-signature/eth_signature.ts +7 -1
- package/src/fifo/fifo_frame_reader.ts +113 -0
- package/src/fifo/index.ts +1 -0
- package/src/fifo_set/fifo_set.ts +52 -0
- package/src/fifo_set/index.ts +1 -0
- package/src/jest/setup.mjs +27 -0
- package/src/json-rpc/client/fetch.ts +4 -3
- package/src/json-rpc/client/safe_json_rpc_client.ts +7 -4
- package/src/json-rpc/client/undici.ts +5 -3
- package/src/json-rpc/fixtures/test_state.ts +10 -10
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/json-rpc/server/safe_json_rpc_server.ts +36 -14
- package/src/log/aws-logger-config.ts +32 -0
- package/src/log/bigint-utils.ts +25 -0
- package/src/log/gcloud-logger-config.ts +5 -0
- package/src/log/log-filters.ts +29 -11
- package/src/log/pino-logger.ts +39 -8
- package/src/noir/noir_package_config.ts +32 -20
- package/src/promise/running-promise.ts +8 -5
- package/src/queue/base_memory_queue.ts +1 -1
- package/src/queue/batch_queue.ts +1 -0
- package/src/retry/index.ts +66 -4
- package/src/schemas/api.ts +25 -25
- package/src/schemas/parse.ts +9 -6
- package/src/schemas/schemas.ts +4 -4
- package/src/schemas/types.ts +2 -2
- package/src/schemas/utils.ts +4 -38
- package/src/serialize/buffer_reader.ts +20 -0
- package/src/serialize/buffer_sink.ts +350 -0
- package/src/serialize/index.ts +1 -0
- package/src/serialize/serialize.ts +32 -50
- package/src/sleep/index.ts +10 -1
- package/src/string/index.ts +15 -1
- package/src/testing/files/index.ts +3 -4
- package/src/timer/date.ts +48 -0
- package/src/timer/index.ts +1 -1
- package/src/timer/timeout.ts +31 -0
- package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
- package/src/transport/index.ts +0 -1
- package/src/transport/transport_client.ts +2 -2
- package/src/trees/balanced_merkle_tree_root.ts +2 -5
- package/src/trees/hasher.ts +6 -3
- package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
- package/src/trees/membership_witness.ts +0 -8
- package/src/trees/merkle_tree_calculator.ts +4 -10
- package/src/trees/sibling_path.ts +24 -30
- package/src/trees/unbalanced_merkle_tree_root.ts +2 -5
- package/src/types/index.ts +52 -0
- package/dest/crypto/serialize.d.ts +0 -51
- package/dest/crypto/serialize.d.ts.map +0 -1
- package/dest/crypto/serialize.js +0 -68
- package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
- package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
- package/src/crypto/serialize.ts +0 -85
- package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export * from './api_key_auth.js';
|
|
1
2
|
export * from './safe_json_rpc_server.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9zZXJ2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDJCQUEyQixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC"}
|
|
@@ -23,8 +23,10 @@ export declare class SafeJsonRpcServer {
|
|
|
23
23
|
private readonly proxy;
|
|
24
24
|
/** Health check function */
|
|
25
25
|
private readonly healthCheck;
|
|
26
|
-
/** Additional middlewares */
|
|
26
|
+
/** Additional Koa middlewares */
|
|
27
27
|
private extraMiddlewares;
|
|
28
|
+
/** Additional per-request diagnostics middlewares */
|
|
29
|
+
private diagnosticsMiddleware?;
|
|
28
30
|
/** Logger */
|
|
29
31
|
private log;
|
|
30
32
|
/**
|
|
@@ -38,8 +40,10 @@ export declare class SafeJsonRpcServer {
|
|
|
38
40
|
proxy: Proxy, config?: Partial<SafeJsonRpcServerConfig>,
|
|
39
41
|
/** Health check function */
|
|
40
42
|
healthCheck?: StatusCheckFn,
|
|
41
|
-
/** Additional middlewares */
|
|
43
|
+
/** Additional Koa middlewares */
|
|
42
44
|
extraMiddlewares?: Application.Middleware[],
|
|
45
|
+
/** Additional per-request diagnostics middlewares */
|
|
46
|
+
diagnosticsMiddleware?: DiagnosticsMiddleware | undefined,
|
|
43
47
|
/** Logger */
|
|
44
48
|
log?: Logger);
|
|
45
49
|
isHealthy(): boolean | Promise<boolean>;
|
|
@@ -103,6 +107,7 @@ export type ApiHandler<T extends object = any> = [T, ApiSchemaFor<T>, StatusChec
|
|
|
103
107
|
export declare function makeHandler<T extends object>(handler: T, schema: ApiSchemaFor<T>): ApiHandler<T>;
|
|
104
108
|
export type SafeJsonRpcServerOptions = Partial<SafeJsonRpcServerConfig & {
|
|
105
109
|
healthCheck: StatusCheckFn;
|
|
110
|
+
diagnostic: DiagnosticsMiddleware;
|
|
106
111
|
log: Logger;
|
|
107
112
|
middlewares: Application.Middleware[];
|
|
108
113
|
}>;
|
|
@@ -136,4 +141,4 @@ export declare function startHttpRpcServer(rpcServer: Pick<SafeJsonRpcServer, 'g
|
|
|
136
141
|
port: number;
|
|
137
142
|
}>;
|
|
138
143
|
export {};
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZV9qc29uX3JwY19zZXJ2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9zZXJ2ZXIvc2FmZV9qc29uX3JwY19zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLE9BQU8sSUFBSSxXQUFXLEVBQWtCLE1BQU0sS0FBSyxDQUFDO0FBR2xFLE9BQU8sTUFBTSxNQUFNLFlBQVksQ0FBQztBQUtoQyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFFL0QsT0FBTyxFQUVMLEtBQUssWUFBWSxFQUlsQixNQUFNLHdCQUF3QixDQUFDO0FBSWhDLE1BQU0sTUFBTSxlQUFlLEdBQUc7SUFDNUIsRUFBRSxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0NBQ25DLENBQUM7QUFFRixNQUFNLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdkcsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLGtEQUFrRDtJQUNsRCxZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLHFHQUFxRztJQUNyRyxjQUFjLEVBQUUsT0FBTyxDQUFDO0lBQ3hCLG1EQUFtRDtJQUNuRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7Q0FDMUIsQ0FBQztBQVFGLHFCQUFhLGlCQUFpQjtJQVUxQiwrQ0FBK0M7SUFDL0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBRXRCLDRCQUE0QjtJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVc7SUFDNUIsaUNBQWlDO0lBQ2pDLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIscURBQXFEO0lBQ3JELE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUM5QixhQUFhO0lBQ2IsT0FBTyxDQUFDLEdBQUc7SUFuQmI7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFjO0lBRWpDLE9BQU8sQ0FBQyxNQUFNLENBQTBCO0lBRXhDO0lBQ0UsK0NBQStDO0lBQzlCLEtBQUssRUFBRSxLQUFLLEVBQzdCLE1BQU0sR0FBRSxPQUFPLENBQUMsdUJBQXVCLENBQU07SUFDN0MsNEJBQTRCO0lBQ1gsV0FBVyxHQUFFLGFBQTBCO0lBQ3hELGlDQUFpQztJQUN6QixnQkFBZ0IsR0FBRSxXQUFXLENBQUMsVUFBVSxFQUFPO0lBQ3ZELHFEQUFxRDtJQUM3QyxxQkFBcUIsQ0FBQyxtQ0FBdUI7SUFDckQsYUFBYTtJQUNMLEdBQUcsU0FBa0MsRUFROUM7SUFFTSxTQUFTLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFN0M7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sU0FBSyxxRUF3RHhCO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxTQUFTO1lBc0NILFlBQVk7WUFlWixjQUFjO0lBbUQ1Qjs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFLLEdBQUcsSUFBSSxDQVE1QztJQUVEOztPQUVHO0lBQ0ksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjM0I7SUFFRDs7Ozs7T0FLRztJQUNVLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsR0FBRSxHQUFHLEVBQU8sZ0JBRTNEO0NBQ0Y7QUFFRCxNQUFNLE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUU3RCxVQUFVLEtBQUs7SUFDYixTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQzVEO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsYUFBYSxDQUFDLENBQUMsU0FBUyxNQUFNLEdBQUcsR0FBRyxDQUFFLFlBQVcsS0FBSztJQUsvRCxPQUFPLENBQUMsT0FBTztJQUpqQixPQUFPLENBQUMsR0FBRyxDQUFrQztJQUM3QyxPQUFPLENBQUMsTUFBTSxDQUFZO0lBRTFCLFlBQ1UsT0FBTyxFQUFFLENBQUMsRUFDbEIsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFHeEI7SUFFRDs7Ozs7T0FLRztJQUNVLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsR0FBRSxHQUFHLEVBQU8sZ0JBVzNEO0lBRU0sU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUU1QztDQUNGO0FBMEJELE1BQU0sTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRS9ELE1BQU0sTUFBTSxVQUFVLENBQUMsQ0FBQyxTQUFTLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7QUFFdEYsd0JBQWdCLFdBQVcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBRWhHO0FBd0JELE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxPQUFPLENBQzVDLHVCQUF1QixHQUFHO0lBQ3hCLFdBQVcsRUFBRSxhQUFhLENBQUM7SUFDM0IsVUFBVSxFQUFFLHFCQUFxQixDQUFDO0lBQ2xDLEdBQUcsRUFBRSxNQUFNLENBQUM7SUFDWixXQUFXLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0NBQ3ZDLENBQ0YsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBZ0IsaUNBQWlDLENBQy9DLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxHQUFFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxhQUFhLENBQU0sR0FDMUQsaUJBQWlCLENBS25CO0FBRUQsd0JBQWdCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEdBQUcsR0FBRyxFQUM1RCxPQUFPLEVBQUUsQ0FBQyxFQUNWLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ3ZCLE9BQU8sR0FBRSx3QkFBNkIscUJBS3ZDO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFNBQVMsU0FBSyxtQkFhakY7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQixrQkFBa0IsQ0FDdEMsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEdBQUcsV0FBVyxDQUFDLEVBQzFELE9BQU8sR0FBRTtJQUNQLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNkLElBQUksQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNuQixNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDYixHQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHO0lBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUMsQ0F1QnpDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe_json_rpc_server.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/safe_json_rpc_server.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,OAAO,IAAI,WAAW,EAAkB,MAAM,KAAK,CAAC;AAGlE,OAAO,MAAM,MAAM,YAAY,CAAC;AAKhC,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAE/D,OAAO,
|
|
1
|
+
{"version":3,"file":"safe_json_rpc_server.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/server/safe_json_rpc_server.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { format, inspect } from 'util';
|
|
|
8
8
|
import { ZodError } from 'zod';
|
|
9
9
|
import { createLogger } from '../../log/index.js';
|
|
10
10
|
import { promiseWithResolvers } from '../../promise/utils.js';
|
|
11
|
-
import { parseWithOptionals, schemaHasMethod } from '../../schemas/index.js';
|
|
11
|
+
import { getSchemaParameters, parseWithOptionals, schemaHasMethod } from '../../schemas/index.js';
|
|
12
12
|
import { jsonStringify } from '../convert.js';
|
|
13
13
|
import { assert } from '../js_utils.js';
|
|
14
14
|
const defaultServerConfig = {
|
|
@@ -20,16 +20,18 @@ export class SafeJsonRpcServer {
|
|
|
20
20
|
proxy;
|
|
21
21
|
healthCheck;
|
|
22
22
|
extraMiddlewares;
|
|
23
|
+
diagnosticsMiddleware;
|
|
23
24
|
log;
|
|
24
25
|
/**
|
|
25
26
|
* The HTTP server accepting remote requests.
|
|
26
27
|
* This member field is initialized when the server is started.
|
|
27
28
|
*/ httpServer;
|
|
28
29
|
config;
|
|
29
|
-
constructor(/** The proxy object to delegate requests to */ proxy, config = {}, /** Health check function */ healthCheck = ()=>true, /** Additional middlewares */ extraMiddlewares = [], /** Logger */ log = createLogger('json-rpc:server')){
|
|
30
|
+
constructor(/** The proxy object to delegate requests to */ proxy, config = {}, /** Health check function */ healthCheck = ()=>true, /** Additional Koa middlewares */ extraMiddlewares = [], /** Additional per-request diagnostics middlewares */ diagnosticsMiddleware, /** Logger */ log = createLogger('json-rpc:server')){
|
|
30
31
|
this.proxy = proxy;
|
|
31
32
|
this.healthCheck = healthCheck;
|
|
32
33
|
this.extraMiddlewares = extraMiddlewares;
|
|
34
|
+
this.diagnosticsMiddleware = diagnosticsMiddleware;
|
|
33
35
|
this.log = log;
|
|
34
36
|
this.config = {
|
|
35
37
|
...defaultServerConfig,
|
|
@@ -151,7 +153,7 @@ export class SafeJsonRpcServer {
|
|
|
151
153
|
};
|
|
152
154
|
return;
|
|
153
155
|
}
|
|
154
|
-
const resp = await this.processBatch(ctx.request.body);
|
|
156
|
+
const resp = await this.processBatch(ctx.request.body, ctx.request.headers);
|
|
155
157
|
if (Array.isArray(resp)) {
|
|
156
158
|
ctx.status = 200;
|
|
157
159
|
ctx.body = resp;
|
|
@@ -160,7 +162,7 @@ export class SafeJsonRpcServer {
|
|
|
160
162
|
ctx.body = resp;
|
|
161
163
|
}
|
|
162
164
|
} else {
|
|
163
|
-
const resp = await this.processRequest(ctx.request.body);
|
|
165
|
+
const resp = await this.processRequest(ctx.request.body, ctx.request.headers);
|
|
164
166
|
if ('error' in resp) {
|
|
165
167
|
ctx.status = this.config.http200OnError ? 200 : 400;
|
|
166
168
|
}
|
|
@@ -169,7 +171,7 @@ export class SafeJsonRpcServer {
|
|
|
169
171
|
});
|
|
170
172
|
return router;
|
|
171
173
|
}
|
|
172
|
-
async processBatch(requests) {
|
|
174
|
+
async processBatch(requests, headers = {}) {
|
|
173
175
|
if (requests.length === 0) {
|
|
174
176
|
return {
|
|
175
177
|
jsonrpc: '2.0',
|
|
@@ -180,7 +182,7 @@ export class SafeJsonRpcServer {
|
|
|
180
182
|
id: null
|
|
181
183
|
};
|
|
182
184
|
}
|
|
183
|
-
const results = await Promise.allSettled(requests.map((req)=>this.processRequest(req)));
|
|
185
|
+
const results = await Promise.allSettled(requests.map((req)=>this.processRequest(req, headers)));
|
|
184
186
|
return results.map((res)=>{
|
|
185
187
|
if (res.status === 'fulfilled') {
|
|
186
188
|
return res.value;
|
|
@@ -196,7 +198,7 @@ export class SafeJsonRpcServer {
|
|
|
196
198
|
};
|
|
197
199
|
});
|
|
198
200
|
}
|
|
199
|
-
async processRequest(request) {
|
|
201
|
+
async processRequest(request, headers = {}) {
|
|
200
202
|
if (!request || typeof request !== 'object') {
|
|
201
203
|
return {
|
|
202
204
|
jsonrpc: '2.0',
|
|
@@ -230,11 +232,27 @@ export class SafeJsonRpcServer {
|
|
|
230
232
|
};
|
|
231
233
|
} else {
|
|
232
234
|
try {
|
|
233
|
-
|
|
235
|
+
let result;
|
|
236
|
+
if (this.diagnosticsMiddleware) {
|
|
237
|
+
await this.diagnosticsMiddleware({
|
|
238
|
+
id: id ?? null,
|
|
239
|
+
method,
|
|
240
|
+
params,
|
|
241
|
+
headers
|
|
242
|
+
}, async ()=>{
|
|
243
|
+
result = await this.proxy.call(method, params);
|
|
244
|
+
});
|
|
245
|
+
} else {
|
|
246
|
+
result = await this.proxy.call(method, params);
|
|
247
|
+
}
|
|
248
|
+
// Coerce an undefined return value to null so the response always carries a `result` key.
|
|
249
|
+
// JSON.stringify drops undefined-valued keys, which would otherwise produce a JSON-RPC
|
|
250
|
+
// response with neither `result` nor `error` — a spec violation that leaves callers unable
|
|
251
|
+
// to distinguish "not found" from a malformed response.
|
|
234
252
|
return {
|
|
235
253
|
jsonrpc,
|
|
236
254
|
id,
|
|
237
|
-
result
|
|
255
|
+
result: result ?? null
|
|
238
256
|
};
|
|
239
257
|
} catch (err) {
|
|
240
258
|
if (err && err instanceof ZodError) {
|
|
@@ -330,7 +348,7 @@ export class SafeJsonRpcServer {
|
|
|
330
348
|
assert(schemaHasMethod(this.schema, methodName), `Method ${methodName} not found in schema`);
|
|
331
349
|
const method = this.handler[methodName];
|
|
332
350
|
assert(typeof method === 'function', `Method ${methodName} is not a function`);
|
|
333
|
-
const args = await parseWithOptionals(jsonParams, this.schema[methodName]
|
|
351
|
+
const args = await parseWithOptionals(jsonParams, getSchemaParameters(this.schema[methodName]));
|
|
334
352
|
const ret = await method.apply(this.handler, args);
|
|
335
353
|
this.log.debug(format('response', methodName, ret));
|
|
336
354
|
return ret;
|
|
@@ -389,15 +407,15 @@ function makeAggregateHealthcheck(namedHandlers, log) {
|
|
|
389
407
|
* @param servers - List of handlers to be combined.
|
|
390
408
|
* @returns A single JsonRpcServer with namespaced methods.
|
|
391
409
|
*/ export function createNamespacedSafeJsonRpcServer(handlers, options = {}) {
|
|
392
|
-
const { middlewares, log } = options;
|
|
410
|
+
const { diagnostic, middlewares, log } = options;
|
|
393
411
|
const proxy = new NamespacedSafeJsonProxy(handlers);
|
|
394
412
|
const healthCheck = makeAggregateHealthcheck(handlers, log);
|
|
395
|
-
return new SafeJsonRpcServer(proxy, options, healthCheck, middlewares, log);
|
|
413
|
+
return new SafeJsonRpcServer(proxy, options, healthCheck, middlewares, diagnostic, log);
|
|
396
414
|
}
|
|
397
415
|
export function createSafeJsonRpcServer(handler, schema, options = {}) {
|
|
398
|
-
const { log, healthCheck, middlewares: extraMiddlewares } = options;
|
|
416
|
+
const { diagnostic, log, healthCheck, middlewares: extraMiddlewares } = options;
|
|
399
417
|
const proxy = new SafeJsonProxy(handler, schema);
|
|
400
|
-
return new SafeJsonRpcServer(proxy, options, healthCheck, extraMiddlewares, log);
|
|
418
|
+
return new SafeJsonRpcServer(proxy, options, healthCheck, extraMiddlewares, diagnostic, log);
|
|
401
419
|
}
|
|
402
420
|
/**
|
|
403
421
|
* Creates a router for handling a plain status request that will return 200 status when running.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Pino configuration that adds OpenTelemetry severity fields understood by CloudWatch Logs. */
|
|
2
|
+
export declare const AWSCloudLoggerConfig: {
|
|
3
|
+
messageKey: string;
|
|
4
|
+
formatters: {
|
|
5
|
+
level(label: string, level: number): object;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxvZ2dlci1jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvYXdzLWxvZ2dlci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBLGdHQUFnRztBQUNoRyxlQUFPLE1BQU0sb0JBQW9COzs7OztDQU9ILENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-logger-config.d.ts","sourceRoot":"","sources":["../../src/log/aws-logger-config.ts"],"names":[],"mappings":"AAuBA,gGAAgG;AAChG,eAAO,MAAM,oBAAoB;;;;;CAOH,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
function getSeverity(label) {
|
|
2
|
+
switch(label){
|
|
3
|
+
case 'trace':
|
|
4
|
+
return {
|
|
5
|
+
severityText: 'TRACE',
|
|
6
|
+
severityNumber: 1
|
|
7
|
+
};
|
|
8
|
+
case 'debug':
|
|
9
|
+
return {
|
|
10
|
+
severityText: 'DEBUG',
|
|
11
|
+
severityNumber: 5
|
|
12
|
+
};
|
|
13
|
+
case 'verbose':
|
|
14
|
+
return {
|
|
15
|
+
severityText: 'VERBOSE',
|
|
16
|
+
severityNumber: 7
|
|
17
|
+
};
|
|
18
|
+
case 'info':
|
|
19
|
+
return {
|
|
20
|
+
severityText: 'INFO',
|
|
21
|
+
severityNumber: 9
|
|
22
|
+
};
|
|
23
|
+
case 'warn':
|
|
24
|
+
return {
|
|
25
|
+
severityText: 'WARN',
|
|
26
|
+
severityNumber: 13
|
|
27
|
+
};
|
|
28
|
+
case 'error':
|
|
29
|
+
return {
|
|
30
|
+
severityText: 'ERROR',
|
|
31
|
+
severityNumber: 17
|
|
32
|
+
};
|
|
33
|
+
case 'fatal':
|
|
34
|
+
return {
|
|
35
|
+
severityText: 'FATAL',
|
|
36
|
+
severityNumber: 21
|
|
37
|
+
};
|
|
38
|
+
default:
|
|
39
|
+
return {
|
|
40
|
+
severityText: 'UNSPECIFIED',
|
|
41
|
+
severityNumber: 0
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Pino configuration that adds OpenTelemetry severity fields understood by CloudWatch Logs. */ export const AWSCloudLoggerConfig = {
|
|
46
|
+
messageKey: 'msg',
|
|
47
|
+
formatters: {
|
|
48
|
+
level (label, level) {
|
|
49
|
+
return {
|
|
50
|
+
level,
|
|
51
|
+
...getSeverity(label)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts bigint values to strings recursively in a log object to avoid serialization issues.
|
|
3
|
+
*/
|
|
4
|
+
export declare function convertBigintsToStrings(obj: unknown): unknown;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnaW50LXV0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nL2JpZ2ludC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FxQjdEIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigint-utils.d.ts","sourceRoot":"","sources":["../../src/log/bigint-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAqB7D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts bigint values to strings recursively in a log object to avoid serialization issues.
|
|
3
|
+
*/ export function convertBigintsToStrings(obj) {
|
|
4
|
+
if (typeof obj === 'bigint') {
|
|
5
|
+
return String(obj);
|
|
6
|
+
}
|
|
7
|
+
if (Array.isArray(obj)) {
|
|
8
|
+
return obj.map((item)=>convertBigintsToStrings(item));
|
|
9
|
+
}
|
|
10
|
+
if (obj !== null && typeof obj === 'object') {
|
|
11
|
+
if (typeof obj.toJSON === 'function') {
|
|
12
|
+
return convertBigintsToStrings(obj.toJSON());
|
|
13
|
+
}
|
|
14
|
+
const result = {};
|
|
15
|
+
for(const key in obj){
|
|
16
|
+
result[key] = convertBigintsToStrings(obj[key]);
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
return obj;
|
|
21
|
+
}
|
|
@@ -10,4 +10,4 @@ export declare const GoogleCloudLoggerConfig: {
|
|
|
10
10
|
level(label: string, level: number): object;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2Nsb3VkLWxvZ2dlci1jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvZ2Nsb3VkLWxvZ2dlci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUE7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSx1QkFBdUI7Ozs7OztDQXFETixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcloud-logger-config.d.ts","sourceRoot":"","sources":["../../src/log/gcloud-logger-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gcloud-logger-config.d.ts","sourceRoot":"","sources":["../../src/log/gcloud-logger-config.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;CAqDN,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { convertBigintsToStrings } from './bigint-utils.js';
|
|
1
2
|
/* eslint-disable camelcase */ const GOOGLE_CLOUD_TRACE_ID = 'logging.googleapis.com/trace';
|
|
2
3
|
const GOOGLE_CLOUD_SPAN_ID = 'logging.googleapis.com/spanId';
|
|
3
4
|
const GOOGLE_CLOUD_TRACE_SAMPLED = 'logging.googleapis.com/trace_sampled';
|
|
@@ -9,6 +10,8 @@ const GOOGLE_CLOUD_TRACE_SAMPLED = 'logging.googleapis.com/trace_sampled';
|
|
|
9
10
|
messageKey: 'message',
|
|
10
11
|
formatters: {
|
|
11
12
|
log (object) {
|
|
13
|
+
// Convert bigints to strings recursively to avoid serialization issues
|
|
14
|
+
object = convertBigintsToStrings(object);
|
|
12
15
|
// Add trace context attributes following Cloud Logging structured log format described
|
|
13
16
|
// in https://cloud.google.com/logging/docs/structured-logging#special-payload-fields
|
|
14
17
|
const { trace_id, span_id, trace_flags, ...rest } = object;
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import { type LogLevel } from './log-levels.js';
|
|
2
2
|
export type LogFilters = [string, LogLevel][];
|
|
3
3
|
export declare function getLogLevelFromFilters(filters: LogFilters, module: string): LogLevel | undefined;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Parses the LOG_LEVEL env string into a default level and per-module filter overrides.
|
|
6
|
+
*
|
|
7
|
+
* Format: `<default_level>;<level>:<module1>,<module2>;<level>:<module3>;...`
|
|
8
|
+
* - First segment (before the first `;`) is the default log level for all modules.
|
|
9
|
+
* - Remaining segments are `level:module` pairs: apply the given level to the listed modules (comma-separated).
|
|
10
|
+
* - Later filters override earlier ones for overlapping module matches.
|
|
11
|
+
* - The `aztec:` prefix is stripped from module names; spaces are trimmed.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* parseLogLevel('debug;warn:module1,module2;error:module3', 'info')
|
|
16
|
+
* // => ['debug', [['module3', 'error'], ['module2', 'warn'], ['module1', 'warn']]]
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseLogLevelEnvVar(logLevelEnvVar: string | undefined, defaultLevel: LogLevel): [LogLevel, LogFilters];
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWZpbHRlcnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvbG9nLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFhLE1BQU0saUJBQWlCLENBQUM7QUFFM0QsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO0FBRTlDLHdCQUFnQixzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FlaEc7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFnQixtQkFBbUIsQ0FDakMsY0FBYyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2xDLFlBQVksRUFBRSxRQUFRLEdBQ3JCLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQU94QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-filters.d.ts","sourceRoot":"","sources":["../../src/log/log-filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,iBAAiB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;AAE9C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAehG;AAED
|
|
1
|
+
{"version":3,"file":"log-filters.d.ts","sourceRoot":"","sources":["../../src/log/log-filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,iBAAiB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;AAE9C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAehG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,QAAQ,GACrB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAOxB"}
|
package/dest/log/log-filters.js
CHANGED
|
@@ -15,26 +15,40 @@ export function getLogLevelFromFilters(filters, module) {
|
|
|
15
15
|
}
|
|
16
16
|
return undefined;
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Parses the LOG_LEVEL env string into a default level and per-module filter overrides.
|
|
20
|
+
*
|
|
21
|
+
* Format: `<default_level>;<level>:<module1>,<module2>;<level>:<module3>;...`
|
|
22
|
+
* - First segment (before the first `;`) is the default log level for all modules.
|
|
23
|
+
* - Remaining segments are `level:module` pairs: apply the given level to the listed modules (comma-separated).
|
|
24
|
+
* - Later filters override earlier ones for overlapping module matches.
|
|
25
|
+
* - The `aztec:` prefix is stripped from module names; spaces are trimmed.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* parseLogLevel('debug;warn:module1,module2;error:module3', 'info')
|
|
30
|
+
* // => ['debug', [['module3', 'error'], ['module2', 'warn'], ['module1', 'warn']]]
|
|
31
|
+
* ```
|
|
32
|
+
*/ export function parseLogLevelEnvVar(logLevelEnvVar, defaultLevel) {
|
|
33
|
+
if (!logLevelEnvVar) {
|
|
25
34
|
return [
|
|
26
35
|
defaultLevel,
|
|
27
36
|
[]
|
|
28
37
|
];
|
|
29
38
|
}
|
|
30
|
-
const [level] =
|
|
31
|
-
|
|
39
|
+
const [level] = logLevelEnvVar.split(';', 1);
|
|
40
|
+
assertValidLogLevel(level);
|
|
32
41
|
return [
|
|
33
42
|
level,
|
|
34
|
-
parseFilters(
|
|
43
|
+
parseFilters(logLevelEnvVar.slice(level.length + 1))
|
|
35
44
|
];
|
|
36
45
|
}
|
|
37
|
-
|
|
46
|
+
function assertValidLogLevel(level) {
|
|
47
|
+
if (!LogLevels.includes(level)) {
|
|
48
|
+
throw new Error(`Invalid log level: ${level}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function parseFilters(definition) {
|
|
38
52
|
if (!definition) {
|
|
39
53
|
return [];
|
|
40
54
|
}
|
|
@@ -47,7 +61,7 @@ export function parseFilters(definition) {
|
|
|
47
61
|
throw new Error(`Invalid log filter statement: ${statement}`);
|
|
48
62
|
}
|
|
49
63
|
const sanitizedLevel = level.trim().toLowerCase();
|
|
50
|
-
|
|
64
|
+
assertValidLogLevel(sanitizedLevel);
|
|
51
65
|
for (const module of modules.split(',')){
|
|
52
66
|
filters.push([
|
|
53
67
|
module.trim().toLowerCase().replace(/^aztec:/, ''),
|
|
@@ -83,4 +83,4 @@ export type Logger = {
|
|
|
83
83
|
getBindings: () => LoggerBindings;
|
|
84
84
|
};
|
|
85
85
|
export {};
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFrQyxNQUFNLFdBQVcsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFVdkMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCx3RUFBd0U7QUFDeEUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQiwrREFBK0Q7SUFDL0QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsdUZBQXVGO0lBQ3ZGLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNyQixDQUFDO0FBTUYsS0FBSyxrQkFBa0IsR0FBRyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7QUFHM0Qsd0JBQWdCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxJQUFJLENBRXZFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsUUFLbkU7QUFZRCx3QkFBZ0IsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0E2QzlFO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUFHLGNBQWMsR0FBRyxNQUFNLENBS2hHO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBZUQsZUFBTyxNQUFPLFFBQVEsa0ZBQUUsVUFBVSx1Q0FBK0QsQ0FBQztBQXNEbEcsZUFBTyxNQUFNLE1BQU07Ozs7O0NBR2xCLENBQUM7QUFlRiwyRkFBMkY7QUFDM0Ysd0JBQWdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FRbEQ7QUFFRCw2REFBNkQ7QUFDN0Qsd0JBQWdCLGdCQUFnQixJQUFJLElBQUksQ0FHdkM7QUFNRCxLQUFLLFNBQVMsR0FBRztJQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFeEYseUdBQXlHO0FBQ3pHLHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWtCM0U7QUFjRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sY0FBYzs7Ozs7Ozs7OztDQUcxQixDQUFDO0FBMERGLGVBQU8sTUFBTSxNQUFNLDJDQUFlLENBQUM7QUFhbkM7OztHQUdHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUU3RDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FlNUQ7QUFFRCxvREFBb0Q7QUFDcEQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUFDO0FBRXZFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLE1BQU0sR0FBRztLQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSztDQUFFLEdBQUc7SUFBNEIsS0FBSyxFQUFFLFVBQVUsQ0FBQTtDQUFFLEdBQUc7SUFDbEcsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUNoQixjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxLQUFLLE9BQU8sQ0FBQztJQUM3QyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUM7SUFDN0MsZ0VBQWdFO0lBQ2hFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztDQUNuQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAkC,MAAM,WAAW,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAkC,MAAM,WAAW,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAUvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAC3B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAMF,KAAK,kBAAkB,GAAG,MAAM,cAAc,GAAG,SAAS,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,QAKnE;AAYD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CA6C9E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,CAKhG;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAeD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAA+D,CAAC;AAsDlG,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAeF,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAQlD;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAMD,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB3E;AAcD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAG1B,CAAC;AA0DF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,gEAAgE;IAChE,WAAW,EAAE,MAAM,cAAc,CAAC;CACnC,CAAC"}
|
package/dest/log/pino-logger.js
CHANGED
|
@@ -4,8 +4,11 @@ import { pino, symbols } from 'pino';
|
|
|
4
4
|
import { inspect } from 'util';
|
|
5
5
|
import { compactArray } from '../collection/array.js';
|
|
6
6
|
import { parseBooleanEnv } from '../config/parse-env.js';
|
|
7
|
+
import { AWSCloudLoggerConfig } from './aws-logger-config.js';
|
|
8
|
+
import { convertBigintsToStrings } from './bigint-utils.js';
|
|
7
9
|
import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
|
|
8
|
-
import { getLogLevelFromFilters,
|
|
10
|
+
import { getLogLevelFromFilters, parseLogLevelEnvVar } from './log-filters.js';
|
|
11
|
+
const MAX_MODULE_NAME_LENGTH = 256;
|
|
9
12
|
const logBindingsHandlers = [];
|
|
10
13
|
export function addLogBindingsHandler(handler) {
|
|
11
14
|
logBindingsHandlers.push(handler);
|
|
@@ -26,7 +29,7 @@ function getBindingsFromHandlers() {
|
|
|
26
29
|
return undefined;
|
|
27
30
|
}
|
|
28
31
|
export function createLogger(module, bindings) {
|
|
29
|
-
module = module.replace(/^aztec:/, '');
|
|
32
|
+
module = module.slice(0, MAX_MODULE_NAME_LENGTH).replace(/^aztec:/, '');
|
|
30
33
|
const resolvedBindings = {
|
|
31
34
|
...getBindingsFromHandlers(),
|
|
32
35
|
...bindings
|
|
@@ -92,13 +95,18 @@ function isLevelEnabled(logger, level) {
|
|
|
92
95
|
}
|
|
93
96
|
// Load log levels from environment variables.
|
|
94
97
|
const defaultLogLevel = process.env.NODE_ENV === 'test' ? 'silent' : 'info';
|
|
95
|
-
export const [logLevel, logFilters] =
|
|
98
|
+
export const [logLevel, logFilters] = parseLogLevelEnvVar(process.env.LOG_LEVEL, defaultLogLevel);
|
|
96
99
|
// Define custom logging levels for pino.
|
|
97
100
|
const customLevels = {
|
|
98
101
|
verbose: 25
|
|
99
102
|
};
|
|
100
|
-
// Global pino options, tweaked for
|
|
103
|
+
// Global pino options, tweaked for the active cloud logging backend.
|
|
101
104
|
const useGcloudLogging = parseBooleanEnv(process.env['USE_GCLOUD_LOGGING']);
|
|
105
|
+
const useAwsLogging = parseBooleanEnv(process.env['USE_AWS_LOGGING']);
|
|
106
|
+
const loggingConfig = useGcloudLogging ? GoogleCloudLoggerConfig : useAwsLogging ? AWSCloudLoggerConfig : {
|
|
107
|
+
formatters: {},
|
|
108
|
+
messageKey: 'msg'
|
|
109
|
+
};
|
|
102
110
|
const redactedPaths = [
|
|
103
111
|
'validatorPrivateKeys',
|
|
104
112
|
// for both the validator and the prover
|
|
@@ -117,7 +125,7 @@ const redactedPaths = [
|
|
|
117
125
|
];
|
|
118
126
|
const pinoOpts = {
|
|
119
127
|
customLevels,
|
|
120
|
-
messageKey:
|
|
128
|
+
messageKey: loggingConfig.messageKey,
|
|
121
129
|
useOnlyCustomLevels: false,
|
|
122
130
|
level: logLevel,
|
|
123
131
|
redact: {
|
|
@@ -129,7 +137,10 @@ const pinoOpts = {
|
|
|
129
137
|
...redactedPaths.map((p)=>`opts.${p}`)
|
|
130
138
|
]
|
|
131
139
|
},
|
|
132
|
-
|
|
140
|
+
formatters: {
|
|
141
|
+
log: (obj)=>convertBigintsToStrings(obj),
|
|
142
|
+
...loggingConfig.formatters
|
|
143
|
+
}
|
|
133
144
|
};
|
|
134
145
|
export const levels = {
|
|
135
146
|
labels: {
|
|
@@ -199,7 +210,7 @@ const pinoPrettyBaseOpts = {
|
|
|
199
210
|
destination: 2,
|
|
200
211
|
sync: true,
|
|
201
212
|
colorize: useColor,
|
|
202
|
-
ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity',
|
|
213
|
+
ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity,severityText,severityNumber',
|
|
203
214
|
customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
|
|
204
215
|
customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
|
|
205
216
|
minimumLevel: 'trace',
|
|
@@ -318,5 +329,19 @@ logger.verbose({
|
|
|
318
329
|
* @param err - Error to log
|
|
319
330
|
* @returns A string with both the log message and the error message.
|
|
320
331
|
*/ function formatErr(msg, err) {
|
|
321
|
-
|
|
332
|
+
if (!err) {
|
|
333
|
+
return msg;
|
|
334
|
+
}
|
|
335
|
+
try {
|
|
336
|
+
return `${msg}: ${inspect(err)}`;
|
|
337
|
+
} catch {
|
|
338
|
+
// inspect can crash on error objects with broken property descriptors
|
|
339
|
+
try {
|
|
340
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
341
|
+
return `${msg}: ${err instanceof Error ? `${err.name}: ${err.message}` : String(err)}`;
|
|
342
|
+
} catch {
|
|
343
|
+
// if even String(err) fails, return the original message with a note about the error
|
|
344
|
+
return `${msg}: [unserializable error]`;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
322
347
|
}
|