@aztec/foundation 0.0.1-commit.6c91f13 → 0.0.1-commit.6d63667d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dest/branded-types/block_number.d.ts +4 -1
  2. package/dest/branded-types/block_number.d.ts.map +1 -1
  3. package/dest/branded-types/block_number.js +3 -0
  4. package/dest/branded-types/checkpoint_number.d.ts +10 -2
  5. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  6. package/dest/branded-types/checkpoint_number.js +17 -8
  7. package/dest/branded-types/index.d.ts +3 -2
  8. package/dest/branded-types/index.d.ts.map +1 -1
  9. package/dest/branded-types/index.js +2 -1
  10. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  11. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  12. package/dest/branded-types/index_within_checkpoint.js +59 -0
  13. package/dest/buffer/buffer16.d.ts +4 -1
  14. package/dest/buffer/buffer16.d.ts.map +1 -1
  15. package/dest/buffer/buffer16.js +3 -1
  16. package/dest/buffer/buffer32.d.ts +4 -1
  17. package/dest/buffer/buffer32.d.ts.map +1 -1
  18. package/dest/buffer/buffer32.js +3 -1
  19. package/dest/collection/array.d.ts +12 -1
  20. package/dest/collection/array.d.ts.map +1 -1
  21. package/dest/collection/array.js +51 -0
  22. package/dest/config/env_var.d.ts +2 -2
  23. package/dest/config/env_var.d.ts.map +1 -1
  24. package/dest/config/index.d.ts +6 -3
  25. package/dest/config/index.d.ts.map +1 -1
  26. package/dest/config/index.js +16 -7
  27. package/dest/config/parse-env.d.ts +3 -0
  28. package/dest/config/parse-env.d.ts.map +1 -0
  29. package/dest/config/parse-env.js +7 -0
  30. package/dest/config/secret_value.js +3 -1
  31. package/dest/crypto/ecdsa/signature.d.ts +10 -1
  32. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  33. package/dest/crypto/poseidon/index.d.ts +1 -2
  34. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  35. package/dest/crypto/poseidon/index.js +0 -9
  36. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  37. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  38. package/dest/crypto/random/randomness_singleton.js +5 -5
  39. package/dest/crypto/sync/poseidon/index.d.ts +1 -2
  40. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  41. package/dest/crypto/sync/poseidon/index.js +0 -8
  42. package/dest/curves/bls12/field.js +6 -3
  43. package/dest/curves/bls12/point.d.ts +10 -1
  44. package/dest/curves/bls12/point.d.ts.map +1 -1
  45. package/dest/curves/bls12/point.js +3 -1
  46. package/dest/curves/bn254/field.js +5 -2
  47. package/dest/curves/grumpkin/point.d.ts +11 -2
  48. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  49. package/dest/error/index.d.ts +4 -4
  50. package/dest/error/index.d.ts.map +1 -1
  51. package/dest/eth-address/index.js +4 -2
  52. package/dest/eth-signature/eth_signature.d.ts +4 -1
  53. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  54. package/dest/jest/setup.js +4 -1
  55. package/dest/json-rpc/client/undici.d.ts +1 -1
  56. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  57. package/dest/json-rpc/client/undici.js +21 -4
  58. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  59. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  60. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  61. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  62. package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
  63. package/dest/log/libp2p_logger.d.ts +5 -2
  64. package/dest/log/libp2p_logger.d.ts.map +1 -1
  65. package/dest/log/libp2p_logger.js +14 -4
  66. package/dest/log/pino-logger-server.d.ts +9 -0
  67. package/dest/log/pino-logger-server.d.ts.map +1 -0
  68. package/dest/log/pino-logger-server.js +18 -0
  69. package/dest/log/pino-logger.d.ts +37 -8
  70. package/dest/log/pino-logger.d.ts.map +1 -1
  71. package/dest/log/pino-logger.js +116 -27
  72. package/dest/queue/semaphore.d.ts +5 -1
  73. package/dest/queue/semaphore.d.ts.map +1 -1
  74. package/dest/retry/index.d.ts +11 -1
  75. package/dest/retry/index.d.ts.map +1 -1
  76. package/dest/retry/index.js +11 -0
  77. package/dest/serialize/buffer_reader.d.ts +7 -4
  78. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  79. package/dest/serialize/buffer_reader.js +13 -4
  80. package/dest/timer/date.d.ts +23 -1
  81. package/dest/timer/date.d.ts.map +1 -1
  82. package/dest/timer/date.js +29 -0
  83. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  84. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  85. package/dest/trees/{balanced_merkle_tree.js → balanced_merkle_tree_root.js} +2 -17
  86. package/dest/trees/hasher.d.ts +3 -1
  87. package/dest/trees/hasher.d.ts.map +1 -1
  88. package/dest/trees/hasher.js +10 -5
  89. package/dest/trees/index.d.ts +4 -4
  90. package/dest/trees/index.d.ts.map +1 -1
  91. package/dest/trees/index.js +3 -3
  92. package/dest/trees/membership_witness.d.ts +11 -1
  93. package/dest/trees/membership_witness.d.ts.map +1 -1
  94. package/dest/trees/membership_witness.js +9 -0
  95. package/dest/trees/merkle_tree_calculator.d.ts +1 -1
  96. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  97. package/dest/trees/merkle_tree_calculator.js +2 -2
  98. package/dest/trees/sibling_path.d.ts +2 -1
  99. package/dest/trees/sibling_path.d.ts.map +1 -1
  100. package/dest/trees/sibling_path.js +2 -2
  101. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +2 -3
  102. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  103. package/dest/trees/unbalanced_merkle_tree_calculator.js +1 -5
  104. package/dest/trees/{unbalanced_merkle_tree.d.ts → unbalanced_merkle_tree_root.d.ts} +3 -5
  105. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  106. package/dest/trees/{unbalanced_merkle_tree.js → unbalanced_merkle_tree_root.js} +11 -49
  107. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  108. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  109. package/dest/trees/unbalanced_tree_store.js +49 -1
  110. package/dest/types/index.d.ts +4 -2
  111. package/dest/types/index.d.ts.map +1 -1
  112. package/dest/types/index.js +3 -0
  113. package/package.json +25 -4
  114. package/src/branded-types/block_number.ts +5 -0
  115. package/src/branded-types/checkpoint_number.ts +22 -7
  116. package/src/branded-types/index.ts +2 -1
  117. package/src/branded-types/index_within_checkpoint.ts +88 -0
  118. package/src/collection/array.ts +52 -0
  119. package/src/config/env_var.ts +32 -7
  120. package/src/config/index.ts +19 -4
  121. package/src/config/parse-env.ts +4 -0
  122. package/src/crypto/poseidon/index.ts +0 -10
  123. package/src/crypto/random/randomness_singleton.ts +6 -4
  124. package/src/crypto/sync/poseidon/index.ts +0 -9
  125. package/src/eth-address/index.ts +1 -1
  126. package/src/jest/setup.mjs +4 -1
  127. package/src/json-rpc/client/undici.ts +21 -3
  128. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  129. package/src/log/libp2p_logger.ts +12 -5
  130. package/src/log/pino-logger-server.ts +25 -0
  131. package/src/log/pino-logger.ts +138 -37
  132. package/src/queue/semaphore.ts +5 -0
  133. package/src/retry/index.ts +18 -0
  134. package/src/serialize/buffer_reader.ts +21 -9
  135. package/src/timer/date.ts +42 -0
  136. package/src/trees/{balanced_merkle_tree.ts → balanced_merkle_tree_root.ts} +2 -18
  137. package/src/trees/hasher.ts +9 -0
  138. package/src/trees/index.ts +3 -3
  139. package/src/trees/membership_witness.ts +8 -0
  140. package/src/trees/merkle_tree_calculator.ts +2 -2
  141. package/src/trees/sibling_path.ts +2 -2
  142. package/src/trees/unbalanced_merkle_tree_calculator.ts +1 -12
  143. package/src/trees/{unbalanced_merkle_tree.ts → unbalanced_merkle_tree_root.ts} +17 -61
  144. package/src/trees/unbalanced_tree_store.ts +57 -2
  145. package/src/types/index.ts +6 -1
  146. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  147. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  148. package/dest/json-rpc/server/telemetry.js +0 -0
  149. package/dest/trees/balanced_merkle_tree.d.ts +0 -22
  150. package/dest/trees/balanced_merkle_tree.d.ts.map +0 -1
  151. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  152. package/src/json-rpc/server/telemetry.ts +0 -0
@@ -18,8 +18,11 @@ export type ViemTransactionSignature = {
18
18
  * Contains a signature split into it's primary components (r,s,v)
19
19
  */
20
20
  export declare class Signature {
21
+ /** The r value of the signature */
21
22
  readonly r: Buffer32;
23
+ /** The s value of the signature */
22
24
  readonly s: Buffer32;
25
+ /** The v value of the signature */
23
26
  readonly v: number;
24
27
  private size;
25
28
  readonly empty: boolean;
@@ -58,4 +61,4 @@ export declare class Signature {
58
61
  toJSON(): `0x${string}`;
59
62
  static get schema(): z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, Signature, string>;
60
63
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBSXhCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO2FBUUYsQ0FBQyxFQUFFLFFBQVE7YUFFWCxDQUFDLEVBQUUsUUFBUTthQUVYLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBRXpCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBRXhCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBRWhDO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxPQUFPLElBQUksTUFBTSxDQVFoQjtJQUVELFFBQVEsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUV4QjtJQUVEOztPQUVHO0lBQ0gsZUFBZSxJQUFJLGFBQWEsQ0FNL0I7SUFFRDs7T0FFRztJQUNILDBCQUEwQixJQUFJLHdCQUF3QixDQVNyRDtJQUVELE1BQU0sa0JBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSwySEFNaEI7Q0FDRiJ9
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBSXhCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBT2xCLG1DQUFtQzthQUNuQixDQUFDLEVBQUUsUUFBUTtJQUMzQixtQ0FBbUM7YUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO2FBQ25CLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBRXpCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBRXhCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBRWhDO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxPQUFPLElBQUksTUFBTSxDQVFoQjtJQUVELFFBQVEsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUV4QjtJQUVEOztPQUVHO0lBQ0gsZUFBZSxJQUFJLGFBQWEsQ0FNL0I7SUFFRDs7T0FFRztJQUNILDBCQUEwQixJQUFJLHdCQUF3QixDQVNyRDtJQUVELE1BQU0sa0JBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSwySEFNaEI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;aAQF,CAAC,EAAE,QAAQ;aAEX,CAAC,EAAE,QAAQ;aAEX,CAAC,EAAE,MAAM;IAV3B,OAAO,CAAC,IAAI,CAAqB;IAEjC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B;IACE,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,MAAM,EAG1B;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQvD;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAEhD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAQ/C;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAEtD;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,CAE5E;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,MAAM,CAQhB;IAED,QAAQ,IAAI,KAAK,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,eAAe,IAAI,aAAa,CAM/B;IAED;;OAEG;IACH,0BAA0B,IAAI,wBAAwB,CASrD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,2HAMhB;CACF"}
1
+ {"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAOlB,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,MAAM;IAV3B,OAAO,CAAC,IAAI,CAAqB;IAEjC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B;IACE,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,MAAM,EAG1B;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQvD;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAEhD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAQ/C;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAEtD;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,CAE5E;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,MAAM,CAQhB;IAED,QAAQ,IAAI,KAAK,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,eAAe,IAAI,aAAa,CAM/B;IAED;;OAEG;IACH,0BAA0B,IAAI,wBAAwB,CASrD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,2HAMhB;CACF"}
@@ -1,7 +1,10 @@
1
+ import { parseBooleanEnv } from '@aztec/foundation/config';
1
2
  import { overwriteLoggingStream, pinoPrettyOpts } from '@aztec/foundation/log';
2
3
  import pretty from 'pino-pretty';
3
4
  // Overwrite logging stream with pino-pretty. We define this as a separate
4
5
  // file so we don't mess up with dependencies in non-testing environments,
5
6
  // since pino-pretty messes up with browser bundles.
6
7
  // See also https://www.npmjs.com/package/pino-pretty?activeTab=readme#user-content-usage-with-jest
7
- overwriteLoggingStream(pretty(pinoPrettyOpts));
8
+ if (!parseBooleanEnv(process.env.LOG_JSON)) {
9
+ overwriteLoggingStream(pretty(pinoPrettyOpts));
10
+ }
@@ -2,4 +2,4 @@ import { Agent } from 'undici';
2
2
  import type { JsonRpcFetch } from './fetch.js';
3
3
  export { Agent };
4
4
  export declare function makeUndiciFetch(client?: Agent): JsonRpcFetch;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kaWNpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvanNvbi1ycGMvY2xpZW50L3VuZGljaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFtQixNQUFNLFFBQVEsQ0FBQztBQUtoRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRWpCLHdCQUFnQixlQUFlLENBQUMsTUFBTSxRQUFjLEdBQUcsWUFBWSxDQXdEbEUifQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kaWNpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvanNvbi1ycGMvY2xpZW50L3VuZGljaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsS0FBSyxFQUFtQixNQUFNLFFBQVEsQ0FBQztBQUtoRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFVL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRWpCLHdCQUFnQixlQUFlLENBQUMsTUFBTSxRQUFjLEdBQUcsWUFBWSxDQWtFbEUifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"undici.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/undici.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAKhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,wBAAgB,eAAe,CAAC,MAAM,QAAc,GAAG,YAAY,CAwDlE"}
1
+ {"version":3,"file":"undici.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/undici.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAKhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,wBAAgB,eAAe,CAAC,MAAM,QAAc,GAAG,YAAY,CAkElE"}
@@ -1,8 +1,13 @@
1
+ import { promisify } from 'node:util';
2
+ import { gunzip as gunzipCb, gzip as gzipCb } from 'node:zlib';
1
3
  import { Agent } from 'undici';
2
4
  import { createLogger } from '../../log/pino-logger.js';
3
5
  import { NoRetryError } from '../../retry/index.js';
4
6
  import { jsonStringify } from '../convert.js';
7
+ const gzip = promisify(gzipCb);
8
+ const gunzip = promisify(gunzipCb);
5
9
  const log = createLogger('json-rpc:json_rpc_client:undici');
10
+ /** Minimum request size in bytes to trigger compression. */ const COMPRESSION_THRESHOLD = 1024;
6
11
  export { Agent };
7
12
  export function makeUndiciFetch(client = new Agent()) {
8
13
  return async (host, body, extraHeaders = {}, noRetry = false)=>{
@@ -12,14 +17,20 @@ export function makeUndiciFetch(client = new Agent()) {
12
17
  });
13
18
  let resp;
14
19
  try {
20
+ const jsonBody = Buffer.from(jsonStringify(body));
21
+ const shouldCompress = jsonBody.length >= COMPRESSION_THRESHOLD;
15
22
  resp = await client.request({
16
23
  method: 'POST',
17
24
  origin: new URL(host),
18
25
  path: '/',
19
- body: jsonStringify(body),
26
+ body: shouldCompress ? await gzip(jsonBody) : jsonBody,
20
27
  headers: {
21
28
  ...extraHeaders,
22
- 'content-type': 'application/json'
29
+ 'content-type': 'application/json',
30
+ ...shouldCompress && {
31
+ 'content-encoding': 'gzip'
32
+ },
33
+ 'accept-encoding': 'gzip'
23
34
  }
24
35
  });
25
36
  } catch (err) {
@@ -28,13 +39,19 @@ export function makeUndiciFetch(client = new Agent()) {
28
39
  }
29
40
  let responseJson;
30
41
  const responseOk = resp.statusCode >= 200 && resp.statusCode <= 299;
42
+ const contentEncoding = resp.headers['content-encoding'];
31
43
  try {
32
- responseJson = await resp.body.json();
44
+ if (contentEncoding === 'gzip') {
45
+ const jsonBuffer = await gunzip(await resp.body.arrayBuffer());
46
+ responseJson = JSON.parse(jsonBuffer.toString('utf-8'));
47
+ } else {
48
+ responseJson = await resp.body.json();
49
+ }
33
50
  } catch {
34
51
  if (!responseOk) {
35
52
  throw new Error('HTTP ' + resp.statusCode);
36
53
  }
37
- throw new Error(`Failed to parse body as JSON: ${await resp.body.text()}`);
54
+ throw new Error(`Failed to parse body as JSON. encoding: ${contentEncoding}, body: ${await resp.body.text()}`);
38
55
  }
39
56
  if (!responseOk) {
40
57
  const errorMessage = `Error ${resp.statusCode} response from server ${host}: ${responseJson}`;
@@ -2,12 +2,12 @@
2
2
  * Test class for testing string converter.
3
3
  */
4
4
  export declare class ToStringClass {
5
- readonly x: string;
6
- readonly y: string;
5
+ /** A value */ readonly x: string;
6
+ /** Another value */ readonly y: string;
7
7
  constructor(
8
8
  /** A value */ x: string,
9
9
  /** Another value */ y: string);
10
10
  toString(): string;
11
11
  static fromString(value: string): ToStringClass;
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NfYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL2ZpeHR1cmVzL2NsYXNzX2EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO2FBRVMsQ0FBQyxFQUFFLE1BQU07YUFDSCxDQUFDLEVBQUUsTUFBTTtJQUZoRDtJQUNFLGNBQWMsQ0FBaUIsQ0FBQyxFQUFFLE1BQU07SUFDeEMsb0JBQW9CLENBQWlCLENBQUMsRUFBRSxNQUFNLEVBQzVDO0lBRUosUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLGlCQUc5QjtDQUNGIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NfYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL2ZpeHR1cmVzL2NsYXNzX2EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO0lBRXRCLGNBQWMsVUFBaUIsQ0FBQyxFQUFFLE1BQU07SUFDeEMsb0JBQW9CLFVBQWlCLENBQUMsRUFBRSxNQUFNO0lBRmhEO0lBQ0UsY0FBYyxDQUFpQixDQUFDLEVBQUUsTUFBTTtJQUN4QyxvQkFBb0IsQ0FBaUIsQ0FBQyxFQUFFLE1BQU0sRUFDNUM7SUFFSixRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0saUJBRzlCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"class_a.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_a.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;aAES,CAAC,EAAE,MAAM;aACH,CAAC,EAAE,MAAM;IAFhD;IACE,cAAc,CAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,CAAiB,CAAC,EAAE,MAAM,EAC5C;IAEJ,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,iBAG9B;CACF"}
1
+ {"version":3,"file":"class_a.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_a.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;IAEtB,cAAc,UAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,UAAiB,CAAC,EAAE,MAAM;IAFhD;IACE,cAAc,CAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,CAAiB,CAAC,EAAE,MAAM,EAC5C;IAEJ,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,iBAG9B;CACF"}
@@ -2,12 +2,12 @@
2
2
  * Test class for testing string converter.
3
3
  */
4
4
  export declare class ToStringClass {
5
- readonly x: string;
6
- readonly y: string;
5
+ /** A value */ readonly x: string;
6
+ /** Another value */ readonly y: string;
7
7
  constructor(
8
8
  /** A value */ x: string,
9
9
  /** Another value */ y: string);
10
10
  toString(): string;
11
11
  static fromString(value: string): ToStringClass;
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NfYi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL2ZpeHR1cmVzL2NsYXNzX2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO2FBRVMsQ0FBQyxFQUFFLE1BQU07YUFDSCxDQUFDLEVBQUUsTUFBTTtJQUZoRDtJQUNFLGNBQWMsQ0FBaUIsQ0FBQyxFQUFFLE1BQU07SUFDeEMsb0JBQW9CLENBQWlCLENBQUMsRUFBRSxNQUFNLEVBQzVDO0lBRUosUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLGlCQUc5QjtDQUNGIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NfYi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL2ZpeHR1cmVzL2NsYXNzX2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO0lBRXRCLGNBQWMsVUFBaUIsQ0FBQyxFQUFFLE1BQU07SUFDeEMsb0JBQW9CLFVBQWlCLENBQUMsRUFBRSxNQUFNO0lBRmhEO0lBQ0UsY0FBYyxDQUFpQixDQUFDLEVBQUUsTUFBTTtJQUN4QyxvQkFBb0IsQ0FBaUIsQ0FBQyxFQUFFLE1BQU0sRUFDNUM7SUFFSixRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0saUJBRzlCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"class_b.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_b.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;aAES,CAAC,EAAE,MAAM;aACH,CAAC,EAAE,MAAM;IAFhD;IACE,cAAc,CAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,CAAiB,CAAC,EAAE,MAAM,EAC5C;IAEJ,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,iBAG9B;CACF"}
1
+ {"version":3,"file":"class_b.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_b.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;IAEtB,cAAc,UAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,UAAiB,CAAC,EAAE,MAAM;IAFhD;IACE,cAAc,CAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,CAAiB,CAAC,EAAE,MAAM,EAC5C;IAEJ,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,iBAG9B;CACF"}
@@ -14,7 +14,7 @@ import { assert } from '../js_utils.js';
14
14
  const defaultServerConfig = {
15
15
  http200OnError: false,
16
16
  maxBatchSize: 100,
17
- maxBodySizeBytes: '50mb'
17
+ maxBodySizeBytes: '1mb'
18
18
  };
19
19
  export class SafeJsonRpcServer {
20
20
  proxy;
@@ -1,7 +1,10 @@
1
1
  import type { ComponentLogger } from '@libp2p/interface';
2
+ import { type LoggerBindings } from './pino-logger.js';
2
3
  /**
3
4
  * Creates a libp2p compatible logger that wraps our pino logger.
4
5
  * This adapter implements the ComponentLogger interface required by libp2p.
6
+ * @param namespace - Base namespace for the logger
7
+ * @param bindings - Optional bindings to pass to the logger (actor, instanceId)
5
8
  */
6
- export declare function createLibp2pComponentLogger(namespace: string): ComponentLogger;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX2xvZ2dlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy9saWJwMnBfbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBVSxNQUFNLG1CQUFtQixDQUFDO0FBTWpFOzs7R0FHRztBQUNILHdCQUFnQiwyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLGVBQWUsQ0FJOUUifQ==
9
+ export declare function createLibp2pComponentLogger(namespace: string, bindings?: LoggerBindings): ComponentLogger;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX2xvZ2dlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy9saWJwMnBfbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBVSxNQUFNLG1CQUFtQixDQUFDO0FBSWpFLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBc0IsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRTs7Ozs7R0FLRztBQUNILHdCQUFnQiwyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FBRyxlQUFlLENBSXpHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p_logger.d.ts","sourceRoot":"","sources":["../../src/log/libp2p_logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAC;AAMjE;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAI9E"}
1
+ {"version":3,"file":"libp2p_logger.d.ts","sourceRoot":"","sources":["../../src/log/libp2p_logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAC;AAIjE,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,kBAAkB,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,eAAe,CAIzG"}
@@ -3,9 +3,11 @@ import { logFilters, logger } from './pino-logger.js';
3
3
  /**
4
4
  * Creates a libp2p compatible logger that wraps our pino logger.
5
5
  * This adapter implements the ComponentLogger interface required by libp2p.
6
- */ export function createLibp2pComponentLogger(namespace) {
6
+ * @param namespace - Base namespace for the logger
7
+ * @param bindings - Optional bindings to pass to the logger (actor, instanceId)
8
+ */ export function createLibp2pComponentLogger(namespace, bindings) {
7
9
  return {
8
- forComponent: (component)=>createLibp2pLogger(`${namespace}:${component}`)
10
+ forComponent: (component)=>createLibp2pLogger(`${namespace}:${component}`, bindings)
9
11
  };
10
12
  }
11
13
  // Lipp2p libraries use arbitrary string substitutions, so we need to replace them with %s, this is slow so avoid doing it unless trace debugging
@@ -16,10 +18,18 @@ function replaceFormatting(message) {
16
18
  }
17
19
  return message.replace(/(%p|%a)/g, '%s');
18
20
  }
19
- function createLibp2pLogger(component) {
21
+ function createLibp2pLogger(component, bindings) {
20
22
  // Create a direct pino logger instance for libp2p that supports string interpolation
23
+ const actor = bindings?.actor;
24
+ const instanceId = bindings?.instanceId;
21
25
  const log = logger.child({
22
- module: component
26
+ module: component,
27
+ ...actor && {
28
+ actor
29
+ },
30
+ ...instanceId && {
31
+ instanceId
32
+ }
23
33
  }, {
24
34
  level: getLogLevelFromFilters(logFilters, component)
25
35
  });
@@ -0,0 +1,9 @@
1
+ import { type LoggerBindings } from './pino-logger.js';
2
+ /** Returns the current bindings from AsyncLocalStorage, if any. */
3
+ export declare function getBindings(): LoggerBindings | undefined;
4
+ /**
5
+ * Runs a callback within a bindings context. All loggers created within the callback
6
+ * will automatically inherit the bindings (actor, instanceId) via the log bindings handler.
7
+ */
8
+ export declare function withLoggerBindings<T>(bindings: LoggerBindings, callback: () => Promise<T>): Promise<T>;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXItc2VydmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nL3Bpbm8tbG9nZ2VyLXNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQW1ELE1BQU0sa0JBQWtCLENBQUM7QUFLeEcsbUVBQW1FO0FBQ25FLHdCQUFnQixXQUFXLElBQUksY0FBYyxHQUFHLFNBQVMsQ0FFeEQ7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0Isa0JBQWtCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FRNUcifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pino-logger-server.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAmD,MAAM,kBAAkB,CAAC;AAKxG,mEAAmE;AACnE,wBAAgB,WAAW,IAAI,cAAc,GAAG,SAAS,CAExD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ5G"}
@@ -0,0 +1,18 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { addLogBindingsHandler, removeLogBindingsHandler } from './pino-logger.js';
3
+ /** AsyncLocalStorage for logger bindings context propagation (Node.js only). */ const bindingsStorage = new AsyncLocalStorage();
4
+ /** Returns the current bindings from AsyncLocalStorage, if any. */ export function getBindings() {
5
+ return bindingsStorage.getStore();
6
+ }
7
+ /**
8
+ * Runs a callback within a bindings context. All loggers created within the callback
9
+ * will automatically inherit the bindings (actor, instanceId) via the log bindings handler.
10
+ */ export async function withLoggerBindings(bindings, callback) {
11
+ const handler = ()=>bindingsStorage.getStore();
12
+ addLogBindingsHandler(handler);
13
+ try {
14
+ return await bindingsStorage.run(bindings, callback);
15
+ } finally{
16
+ removeLogBindingsHandler(handler);
17
+ }
18
+ }
@@ -1,14 +1,25 @@
1
+ import { type Color } from 'colorette';
1
2
  import type { Writable } from 'stream';
2
3
  import type { LogLevel } from './log-levels.js';
3
4
  import type { LogData, LogFn } from './log_fn.js';
4
- export declare function createLogger(module: string): Logger;
5
+ /** Optional bindings to pass to createLogger for additional context. */
6
+ export type LoggerBindings = {
7
+ /** Actor label shown in logs (e.g., 'MAIN', 'prover-node'). */
8
+ actor?: string;
9
+ /** Instance identifier for distinguishing multiple instances of the same component. */
10
+ instanceId?: string;
11
+ };
12
+ type LogBindingsHandler = () => LoggerBindings | undefined;
13
+ export declare function addLogBindingsHandler(handler: LogBindingsHandler): void;
14
+ export declare function removeLogBindingsHandler(handler: LogBindingsHandler): void;
15
+ export declare function createLogger(module: string, bindings?: LoggerBindings): Logger;
16
+ /**
17
+ * Returns a logger for the given module. If loggerOrBindings is already a Logger, returns it directly.
18
+ * Otherwise, creates a new logger with the given module name and bindings.
19
+ */
20
+ export declare function resolveLogger(module: string, loggerOrBindings?: Logger | LoggerBindings): Logger;
5
21
  type LogDataHandler = (data: LogData) => LogData;
6
22
  export declare function addLogDataHandler(handler: LogDataHandler): void;
7
- type LogNameHandler = (module: string) => string;
8
- export declare function addLogNameHandler(handler: LogNameHandler): void;
9
- export declare function removeLogNameHandler(handler: LogNameHandler): void;
10
- /** Creates all loggers within the given callback with the suffix appended to the module name. */
11
- export declare function withLogNameSuffix<T>(suffix: string, callback: () => Promise<T>): Promise<T>;
12
23
  export declare const logLevel: "debug" | "error" | "fatal" | "info" | "silent" | "trace" | "verbose" | "warn", logFilters: import("./log-filters.js").LogFilters;
13
24
  export declare const levels: {
14
25
  labels: any;
@@ -16,16 +27,32 @@ export declare const levels: {
16
27
  verbose: number;
17
28
  };
18
29
  };
30
+ /** Returns the color function assigned to a given actor, assigning a new one if needed. */
31
+ export declare function getActorColor(actor: string): Color;
32
+ /** Resets the actor-to-color mapping. Useful for testing. */
33
+ export declare function resetActorColors(): void;
34
+ type LogObject = {
35
+ actor?: string;
36
+ module?: string;
37
+ instanceId?: string;
38
+ msg?: string;
39
+ };
40
+ /** Formats a log message with per-actor coloring. Actor, module, and instanceId share the same color. */
41
+ export declare function formatLogMessage(log: LogObject, messageKey: string): string;
42
+ /**
43
+ * Pino-pretty options for direct use (e.g., jest/setup.mjs).
44
+ * Includes function-based messageFormat for per-actor coloring when enabled.
45
+ */
19
46
  export declare const pinoPrettyOpts: {
20
47
  destination: number;
21
48
  sync: boolean;
22
49
  colorize: boolean;
23
50
  ignore: string;
24
- messageFormat: string;
25
51
  customLevels: string;
26
52
  customColors: string;
27
53
  minimumLevel: "trace";
28
54
  singleLine: boolean;
55
+ messageFormat: string | typeof formatLogMessage;
29
56
  };
30
57
  export declare const logger: import("pino").Logger<"verbose", boolean>;
31
58
  /**
@@ -52,6 +79,8 @@ export type Logger = {
52
79
  isLevelEnabled: (level: LogLevel) => boolean;
53
80
  module: string;
54
81
  createChild: (childModule: string) => Logger;
82
+ /** Returns the bindings (actor, instanceId) for this logger. */
83
+ getBindings: () => LoggerBindings;
55
84
  };
56
85
  export {};
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBT3ZDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQsd0JBQWdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FtQ25EO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBUUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxjQUFjLFFBSzNEO0FBRUQsaUdBQWlHO0FBQ2pHLHdCQUFzQixpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQU1qRztBQVdELGVBQU8sTUFBTyxRQUFRLGtGQUFFLFVBQVUsdUNBQW9ELENBQUM7QUEwQ3ZGLGVBQU8sTUFBTSxNQUFNOzs7OztDQUdsQixDQUFDO0FBTUYsZUFBTyxNQUFNLGNBQWM7Ozs7Ozs7Ozs7Q0FVMUIsQ0FBQztBQW9ERixlQUFPLE1BQU0sTUFBTSwyQ0FBZSxDQUFDO0FBYW5DOzs7R0FHRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FFN0Q7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IscUJBQXFCLENBQUMsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBZTVEO0FBRUQsb0RBQW9EO0FBQ3BELEtBQUssVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxLQUFLLElBQUksQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sTUFBTSxNQUFNLEdBQUc7S0FBRyxDQUFDLElBQUksUUFBUSxHQUFHLEtBQUs7Q0FBRSxHQUFHO0lBQTRCLEtBQUssRUFBRSxVQUFVLENBQUE7Q0FBRSxHQUFHO0lBQ2xHLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDaEIsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUM7SUFDN0MsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDO0NBQzlDLENBQUMifQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFrQyxNQUFNLFdBQVcsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFRdkMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCx3RUFBd0U7QUFDeEUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQiwrREFBK0Q7SUFDL0QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsdUZBQXVGO0lBQ3ZGLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNyQixDQUFDO0FBSUYsS0FBSyxrQkFBa0IsR0FBRyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7QUFHM0Qsd0JBQWdCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxJQUFJLENBRXZFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsUUFLbkU7QUFZRCx3QkFBZ0IsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0E2QzlFO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUFHLGNBQWMsR0FBRyxNQUFNLENBS2hHO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBZUQsZUFBTyxNQUFPLFFBQVEsa0ZBQUUsVUFBVSx1Q0FBb0QsQ0FBQztBQTBDdkYsZUFBTyxNQUFNLE1BQU07Ozs7O0NBR2xCLENBQUM7QUFlRiwyRkFBMkY7QUFDM0Ysd0JBQWdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FRbEQ7QUFFRCw2REFBNkQ7QUFDN0Qsd0JBQWdCLGdCQUFnQixJQUFJLElBQUksQ0FHdkM7QUFNRCxLQUFLLFNBQVMsR0FBRztJQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFeEYseUdBQXlHO0FBQ3pHLHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWtCM0U7QUFjRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sY0FBYzs7Ozs7Ozs7OztDQUcxQixDQUFDO0FBMERGLGVBQU8sTUFBTSxNQUFNLDJDQUFlLENBQUM7QUFhbkM7OztHQUdHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUU3RDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FlNUQ7QUFFRCxvREFBb0Q7QUFDcEQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUFDO0FBRXZFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLE1BQU0sR0FBRztLQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSztDQUFFLEdBQUc7SUFBNEIsS0FBSyxFQUFFLFVBQVUsQ0FBQTtDQUFFLEdBQUc7SUFDbEcsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUNoQixjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxLQUFLLE9BQU8sQ0FBQztJQUM3QyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUM7SUFDN0MsZ0VBQWdFO0lBQ2hFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztDQUNuQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmCnD;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAQD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,QAK3D;AAED,iGAAiG;AACjG,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMjG;AAWD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAAoD,CAAC;AA0CvF,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAMF,eAAO,MAAM,cAAc;;;;;;;;;;CAU1B,CAAC;AAoDF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C,CAAC"}
1
+ {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAkC,MAAM,WAAW,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAQvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAC3B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,KAAK,kBAAkB,GAAG,MAAM,cAAc,GAAG,SAAS,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,QAKnE;AAYD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CA6C9E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,CAKhG;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAeD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAAoD,CAAC;AA0CvF,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAeF,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAQlD;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAMD,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB3E;AAcD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAG1B,CAAC;AA0DF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,gEAAgE;IAChE,WAAW,EAAE,MAAM,cAAc,CAAC;CACnC,CAAC"}
@@ -3,13 +3,44 @@ import isNode from 'detect-node';
3
3
  import { pino, symbols } from 'pino';
4
4
  import { inspect } from 'util';
5
5
  import { compactArray } from '../collection/array.js';
6
- import { parseBooleanEnv } from '../config/index.js';
6
+ import { parseBooleanEnv } from '../config/parse-env.js';
7
7
  import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
8
8
  import { getLogLevelFromFilters, parseEnv } from './log-filters.js';
9
- export function createLogger(module) {
10
- module = logNameHandlers.reduce((moduleName, handler)=>handler(moduleName), module.replace(/^aztec:/, ''));
9
+ const logBindingsHandlers = [];
10
+ export function addLogBindingsHandler(handler) {
11
+ logBindingsHandlers.push(handler);
12
+ }
13
+ export function removeLogBindingsHandler(handler) {
14
+ const index = logBindingsHandlers.indexOf(handler);
15
+ if (index !== -1) {
16
+ logBindingsHandlers.splice(index, 1);
17
+ }
18
+ }
19
+ function getBindingsFromHandlers() {
20
+ for (const handler of logBindingsHandlers){
21
+ const bindings = handler();
22
+ if (bindings) {
23
+ return bindings;
24
+ }
25
+ }
26
+ return undefined;
27
+ }
28
+ export function createLogger(module, bindings) {
29
+ module = module.replace(/^aztec:/, '');
30
+ const resolvedBindings = {
31
+ ...getBindingsFromHandlers(),
32
+ ...bindings
33
+ };
34
+ const actor = resolvedBindings?.actor;
35
+ const instanceId = resolvedBindings?.instanceId;
11
36
  const pinoLogger = logger.child({
12
- module
37
+ module,
38
+ ...actor && {
39
+ actor
40
+ },
41
+ ...instanceId && {
42
+ instanceId
43
+ }
13
44
  }, {
14
45
  level: getLogLevelFromFilters(logFilters, module)
15
46
  });
@@ -29,9 +60,25 @@ export function createLogger(module) {
29
60
  /** Level of the logger */ level: pinoLogger.level,
30
61
  /** Whether the given level is enabled for this logger. */ isLevelEnabled: (level)=>isLevelEnabled(pinoLogger, level),
31
62
  /** Module name for the logger. */ module,
32
- /** Creates another logger by extending this logger module name. */ createChild: (childModule)=>createLogger(`${module}:${childModule}`)
63
+ /** Creates another logger by extending this logger module name and preserving bindings. */ createChild: (childModule)=>createLogger(`${module}:${childModule}`, {
64
+ actor,
65
+ instanceId
66
+ }),
67
+ /** Returns the bindings (actor, instanceId) for this logger. */ getBindings: ()=>({
68
+ actor,
69
+ instanceId
70
+ })
33
71
  };
34
72
  }
73
+ /**
74
+ * Returns a logger for the given module. If loggerOrBindings is already a Logger, returns it directly.
75
+ * Otherwise, creates a new logger with the given module name and bindings.
76
+ */ export function resolveLogger(module, loggerOrBindings) {
77
+ if (loggerOrBindings && 'info' in loggerOrBindings) {
78
+ return loggerOrBindings;
79
+ }
80
+ return createLogger(module, loggerOrBindings);
81
+ }
35
82
  const logDataHandlers = [];
36
83
  export function addLogDataHandler(handler) {
37
84
  logDataHandlers.push(handler);
@@ -39,23 +86,6 @@ export function addLogDataHandler(handler) {
39
86
  function processLogData(data) {
40
87
  return logDataHandlers.reduce((accum, handler)=>handler(accum), data);
41
88
  }
42
- const logNameHandlers = [];
43
- export function addLogNameHandler(handler) {
44
- logNameHandlers.push(handler);
45
- }
46
- export function removeLogNameHandler(handler) {
47
- const index = logNameHandlers.indexOf(handler);
48
- if (index !== -1) {
49
- logNameHandlers.splice(index, 1);
50
- }
51
- }
52
- /** Creates all loggers within the given callback with the suffix appended to the module name. */ export async function withLogNameSuffix(suffix, callback) {
53
- const logNameHandler = (module)=>`${module}:${suffix}`;
54
- addLogNameHandler(logNameHandler);
55
- const result = await callback();
56
- removeLogNameHandler(logNameHandler);
57
- return result;
58
- }
59
89
  // Patch isLevelEnabled missing from pino/browser.
60
90
  function isLevelEnabled(logger, level) {
61
91
  return typeof logger.isLevelEnabled === 'function' ? logger.isLevelEnabled(level) : logger.levels.values[level] >= logger.levels.values[logger.level];
@@ -114,23 +144,82 @@ export const levels = {
114
144
  // Transport options for pretty logging to stderr via pino-pretty.
115
145
  const colorEnv = process.env['FORCE_COLOR'];
116
146
  const useColor = colorEnv === undefined ? isColorSupported : parseBooleanEnv(colorEnv);
117
- const { bold, reset } = createColors({
147
+ const { bold, reset, cyan, magenta, yellow, blue, green, magentaBright, yellowBright, blueBright, greenBright } = createColors({
118
148
  useColor
119
149
  });
120
- export const pinoPrettyOpts = {
150
+ // Per-actor coloring: each unique actor gets a different color for easier visual distinction.
151
+ // Disabled when LOG_NO_COLOR_PER_ACTOR is set to a truthy value.
152
+ const useColorPerActor = useColor && !parseBooleanEnv(process.env['LOG_NO_COLOR_PER_ACTOR']);
153
+ const actorColors = [
154
+ yellow,
155
+ magenta,
156
+ blue,
157
+ green,
158
+ magentaBright,
159
+ yellowBright,
160
+ blueBright,
161
+ greenBright
162
+ ];
163
+ const actorColorMap = new Map();
164
+ let nextColorIndex = 0;
165
+ /** Returns the color function assigned to a given actor, assigning a new one if needed. */ export function getActorColor(actor) {
166
+ let color = actorColorMap.get(actor);
167
+ if (!color) {
168
+ color = actorColors[nextColorIndex % actorColors.length];
169
+ actorColorMap.set(actor, color);
170
+ nextColorIndex++;
171
+ }
172
+ return color;
173
+ }
174
+ /** Resets the actor-to-color mapping. Useful for testing. */ export function resetActorColors() {
175
+ actorColorMap.clear();
176
+ nextColorIndex = 0;
177
+ }
178
+ // String template for messageFormat (used in worker threads and when per-actor coloring is disabled).
179
+ const messageFormatString = `${bold('{module}')}{if actor} ${cyan('{actor}')}{end}{if instanceId} ${reset(cyan('{instanceId}'))}{end} ${reset('{msg}')}`;
180
+ /** Formats a log message with per-actor coloring. Actor, module, and instanceId share the same color. */ export function formatLogMessage(log, messageKey) {
181
+ const actor = log.actor;
182
+ const module = log.module ?? '';
183
+ const instanceId = log.instanceId;
184
+ const msg = log[messageKey] ?? '';
185
+ // Use actor color for actor, module, and instanceId when actor is present
186
+ const color = actor ? getActorColor(actor) : cyan;
187
+ let result = bold(color(module));
188
+ if (actor) {
189
+ result += ' ' + color(actor);
190
+ }
191
+ if (instanceId) {
192
+ result += ' ' + reset(color(instanceId));
193
+ }
194
+ result += ' ' + reset(String(msg));
195
+ return result;
196
+ }
197
+ // Base options for pino-pretty (shared between transport and direct use).
198
+ const pinoPrettyBaseOpts = {
121
199
  destination: 2,
122
200
  sync: true,
123
201
  colorize: useColor,
124
- ignore: 'module,pid,hostname,trace_id,span_id,trace_flags,severity',
125
- messageFormat: `${bold('{module}')} ${reset('{msg}')}`,
202
+ ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity',
126
203
  customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
127
204
  customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
128
205
  minimumLevel: 'trace',
129
206
  singleLine: !parseBooleanEnv(process.env['LOG_MULTILINE'])
130
207
  };
208
+ /**
209
+ * Pino-pretty options for direct use (e.g., jest/setup.mjs).
210
+ * Includes function-based messageFormat for per-actor coloring when enabled.
211
+ */ export const pinoPrettyOpts = {
212
+ ...pinoPrettyBaseOpts,
213
+ messageFormat: useColorPerActor ? formatLogMessage : messageFormatString
214
+ };
215
+ // Transport options use string template only (functions can't be serialized to worker threads).
216
+ const prettyTransportOpts = {
217
+ ...pinoPrettyBaseOpts,
218
+ messageFormat: messageFormatString
219
+ };
131
220
  const prettyTransport = {
132
221
  target: 'pino-pretty',
133
- options: pinoPrettyOpts,
222
+ options: prettyTransportOpts,
134
223
  level: 'trace'
135
224
  };
136
225
  // Transport for vanilla stdio logging as JSON.
@@ -1,3 +1,7 @@
1
+ export interface ISemaphore {
2
+ acquire(): Promise<void>;
3
+ release(): void;
4
+ }
1
5
  /**
2
6
  * Allows the acquiring of up to `size` tokens before calls to acquire block, waiting for a call to release().
3
7
  */
@@ -20,4 +24,4 @@ export declare class Semaphore {
20
24
  */
21
25
  release(): void;
22
26
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtYXBob3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvc2VtYXBob3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBa0M7SUFFeEQsWUFBWSxJQUFJLEVBQUUsTUFBTSxFQUV2QjtJQUVEOzs7Ozs7T0FNRztJQUNVLE9BQU8sa0JBRW5CO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLFNBRWI7Q0FDRiJ9
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtYXBob3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvc2VtYXBob3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sV0FBVyxVQUFVO0lBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsT0FBTyxJQUFJLElBQUksQ0FBQztDQUNqQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBa0M7SUFFeEQsWUFBWSxJQUFJLEVBQUUsTUFBTSxFQUV2QjtJQUVEOzs7Ozs7T0FNRztJQUNVLE9BQU8sa0JBRW5CO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLFNBRWI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"semaphore.d.ts","sourceRoot":"","sources":["../../src/queue/semaphore.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IAExD,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED;;;;;;OAMG;IACU,OAAO,kBAEnB;IAED;;;;;OAKG;IACI,OAAO,SAEb;CACF"}
1
+ {"version":3,"file":"semaphore.d.ts","sourceRoot":"","sources":["../../src/queue/semaphore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IAExD,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED;;;;;;OAMG;IACU,OAAO,kBAEnB;IAED;;;;;OAKG;IACI,OAAO,SAEb;CACF"}
@@ -42,4 +42,14 @@ export declare function retry<Result>(fn: () => Promise<Result>, name?: string,
42
42
  * @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if timeout is exceeded.
43
43
  */
44
44
  export declare function retryUntil<T>(fn: () => (T | undefined) | Promise<T | undefined>, name?: string, timeout?: number, interval?: number): Promise<NonNullable<Awaited<T>>>;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFJNUQsd0VBQXdFO0FBQ3hFLHFCQUFhLFlBQWEsU0FBUSxLQUFLO0NBQUc7QUFFMUM7Ozs7Ozs7R0FPRztBQUNILHdCQUFpQixnQkFBZ0IscUNBTWhDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFpQixXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxvQ0FJN0M7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFzQixLQUFLLENBQUMsTUFBTSxFQUNoQyxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3pCLElBQUksU0FBYyxFQUNsQixPQUFPLG1DQUFxQixFQUM1QixHQUFHLEdBQUUsTUFBeUMsRUFDOUMsWUFBWSxVQUFRLG1CQW9CckI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQXNCLFVBQVUsQ0FBQyxDQUFDLEVBQ2hDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSSxFQUNYLFFBQVEsU0FBSSxvQ0FlYiJ9
45
+ /**
46
+ * Convenience wrapper around retryUntil with fast polling for tests.
47
+ * Uses 10s timeout and 100ms polling interval by default.
48
+ *
49
+ * @param fn - The function to retry until it returns a truthy value.
50
+ * @param name - Description of what we're waiting for (for error messages).
51
+ * @param timeout - Optional timeout in seconds. Defaults to 10s.
52
+ * @param interval - Optional interval in seconds. Defaults to 0.1s (100ms).
53
+ */
54
+ export declare function retryFastUntil<T>(fn: () => (T | undefined) | Promise<T | undefined>, name?: string, timeout?: number, interval?: number): Promise<NonNullable<Awaited<T>>>;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFJNUQsd0VBQXdFO0FBQ3hFLHFCQUFhLFlBQWEsU0FBUSxLQUFLO0NBQUc7QUFFMUM7Ozs7Ozs7R0FPRztBQUNILHdCQUFpQixnQkFBZ0IscUNBTWhDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFpQixXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxvQ0FJN0M7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFzQixLQUFLLENBQUMsTUFBTSxFQUNoQyxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3pCLElBQUksU0FBYyxFQUNsQixPQUFPLG1DQUFxQixFQUM1QixHQUFHLEdBQUUsTUFBeUMsRUFDOUMsWUFBWSxVQUFRLG1CQW9CckI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQXNCLFVBQVUsQ0FBQyxDQUFDLEVBQ2hDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSSxFQUNYLFFBQVEsU0FBSSxvQ0FlYjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxDQUFDLEVBQzlCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSyxFQUNaLFFBQVEsU0FBTSxvQ0FHZiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAI5D,wEAAwE;AACxE,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C;;;;;;;GAOG;AACH,wBAAiB,gBAAgB,qCAMhC;AAED;;;;GAIG;AACH,wBAAiB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,oCAI7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,SAAc,EAClB,OAAO,mCAAqB,EAC5B,GAAG,GAAE,MAAyC,EAC9C,YAAY,UAAQ,mBAoBrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAI,EACX,QAAQ,SAAI,oCAeb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAI5D,wEAAwE;AACxE,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C;;;;;;;GAOG;AACH,wBAAiB,gBAAgB,qCAMhC;AAED;;;;GAIG;AACH,wBAAiB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,oCAI7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,SAAc,EAClB,OAAO,mCAAqB,EAC5B,GAAG,GAAE,MAAyC,EAC9C,YAAY,UAAQ,mBAoBrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAI,EACX,QAAQ,SAAI,oCAeb;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAK,EACZ,QAAQ,SAAM,oCAGf"}
@@ -91,3 +91,14 @@ import { Timer } from '../timer/index.js';
91
91
  }
92
92
  }
93
93
  }
94
+ /**
95
+ * Convenience wrapper around retryUntil with fast polling for tests.
96
+ * Uses 10s timeout and 100ms polling interval by default.
97
+ *
98
+ * @param fn - The function to retry until it returns a truthy value.
99
+ * @param name - Description of what we're waiting for (for error messages).
100
+ * @param timeout - Optional timeout in seconds. Defaults to 10s.
101
+ * @param interval - Optional interval in seconds. Defaults to 0.1s (100ms).
102
+ */ export function retryFastUntil(fn, name = '', timeout = 10, interval = 0.1) {
103
+ return retryUntil(fn, name, timeout, interval);
104
+ }