@aztec/foundation 0.0.1-commit.f295ac2 → 0.0.1-commit.f504929

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 (140) hide show
  1. package/dest/array/sorted_array.d.ts +6 -1
  2. package/dest/array/sorted_array.d.ts.map +1 -1
  3. package/dest/array/sorted_array.js +18 -15
  4. package/dest/collection/array.d.ts +12 -1
  5. package/dest/collection/array.d.ts.map +1 -1
  6. package/dest/collection/array.js +51 -0
  7. package/dest/config/env_var.d.ts +2 -2
  8. package/dest/config/env_var.d.ts.map +1 -1
  9. package/dest/config/index.d.ts +1 -1
  10. package/dest/config/index.d.ts.map +1 -1
  11. package/dest/config/index.js +15 -0
  12. package/dest/config/network_config.d.ts +7 -1
  13. package/dest/config/network_config.d.ts.map +1 -1
  14. package/dest/config/network_config.js +2 -1
  15. package/dest/config/network_name.d.ts +2 -2
  16. package/dest/config/network_name.d.ts.map +1 -1
  17. package/dest/config/network_name.js +2 -0
  18. package/dest/crypto/poseidon/index.d.ts +1 -2
  19. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  20. package/dest/crypto/poseidon/index.js +13 -22
  21. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  22. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  23. package/dest/crypto/random/randomness_singleton.js +4 -4
  24. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  25. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  26. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  27. package/dest/crypto/sync/poseidon/index.d.ts +1 -2
  28. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  29. package/dest/crypto/sync/poseidon/index.js +0 -8
  30. package/dest/curves/bn254/field.d.ts +2 -1
  31. package/dest/curves/bn254/field.d.ts.map +1 -1
  32. package/dest/curves/bn254/field.js +5 -2
  33. package/dest/eth-signature/eth_signature.d.ts +2 -1
  34. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  35. package/dest/eth-signature/eth_signature.js +7 -2
  36. package/dest/jest/setup.js +28 -1
  37. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  38. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  39. package/dest/json-rpc/client/safe_json_rpc_client.js +1 -1
  40. package/dest/json-rpc/client/undici.d.ts +1 -1
  41. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  42. package/dest/json-rpc/client/undici.js +21 -4
  43. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  44. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  45. package/dest/json-rpc/server/api_key_auth.js +57 -0
  46. package/dest/json-rpc/server/index.d.ts +2 -1
  47. package/dest/json-rpc/server/index.d.ts.map +1 -1
  48. package/dest/json-rpc/server/index.js +1 -0
  49. package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
  50. package/dest/log/bigint-utils.d.ts +5 -0
  51. package/dest/log/bigint-utils.d.ts.map +1 -0
  52. package/dest/log/bigint-utils.js +21 -0
  53. package/dest/log/gcloud-logger-config.d.ts +1 -1
  54. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  55. package/dest/log/gcloud-logger-config.js +3 -0
  56. package/dest/log/libp2p_logger.d.ts +5 -2
  57. package/dest/log/libp2p_logger.d.ts.map +1 -1
  58. package/dest/log/libp2p_logger.js +14 -4
  59. package/dest/log/log-filters.d.ts +17 -4
  60. package/dest/log/log-filters.d.ts.map +1 -1
  61. package/dest/log/log-filters.js +26 -12
  62. package/dest/log/pino-logger-server.d.ts +9 -0
  63. package/dest/log/pino-logger-server.d.ts.map +1 -0
  64. package/dest/log/pino-logger-server.js +18 -0
  65. package/dest/log/pino-logger.d.ts +37 -8
  66. package/dest/log/pino-logger.d.ts.map +1 -1
  67. package/dest/log/pino-logger.js +121 -28
  68. package/dest/queue/base_memory_queue.d.ts +2 -2
  69. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  70. package/dest/queue/semaphore.d.ts +5 -1
  71. package/dest/queue/semaphore.d.ts.map +1 -1
  72. package/dest/serialize/buffer_reader.d.ts +8 -1
  73. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  74. package/dest/serialize/buffer_reader.js +13 -0
  75. package/dest/serialize/serialize.d.ts +19 -1
  76. package/dest/serialize/serialize.d.ts.map +1 -1
  77. package/dest/serialize/serialize.js +31 -0
  78. package/dest/sleep/index.d.ts +2 -1
  79. package/dest/sleep/index.d.ts.map +1 -1
  80. package/dest/sleep/index.js +10 -1
  81. package/dest/timer/date.d.ts +25 -1
  82. package/dest/timer/date.d.ts.map +1 -1
  83. package/dest/timer/date.js +33 -0
  84. package/dest/transport/transport_client.js +2 -2
  85. package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
  86. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
  87. package/dest/trees/balanced_merkle_tree_root.js +2 -3
  88. package/dest/trees/hasher.d.ts +1 -2
  89. package/dest/trees/hasher.d.ts.map +1 -1
  90. package/dest/trees/hasher.js +0 -5
  91. package/dest/trees/membership_witness.d.ts +5 -1
  92. package/dest/trees/membership_witness.d.ts.map +1 -1
  93. package/dest/trees/membership_witness.js +9 -0
  94. package/dest/trees/merkle_tree_calculator.d.ts +1 -1
  95. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  96. package/dest/trees/merkle_tree_calculator.js +2 -2
  97. package/dest/trees/sibling_path.d.ts +1 -1
  98. package/dest/trees/sibling_path.d.ts.map +1 -1
  99. package/dest/trees/sibling_path.js +2 -2
  100. package/dest/types/index.d.ts +3 -1
  101. package/dest/types/index.d.ts.map +1 -1
  102. package/dest/types/index.js +3 -0
  103. package/package.json +23 -2
  104. package/src/array/sorted_array.ts +22 -17
  105. package/src/collection/array.ts +52 -0
  106. package/src/config/env_var.ts +42 -3
  107. package/src/config/index.ts +15 -0
  108. package/src/config/network_config.ts +1 -0
  109. package/src/config/network_name.ts +4 -1
  110. package/src/crypto/poseidon/index.ts +13 -23
  111. package/src/crypto/random/randomness_singleton.ts +9 -5
  112. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  113. package/src/crypto/sync/poseidon/index.ts +0 -9
  114. package/src/curves/bn254/field.ts +6 -2
  115. package/src/eth-signature/eth_signature.ts +7 -1
  116. package/src/jest/setup.mjs +31 -1
  117. package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
  118. package/src/json-rpc/client/undici.ts +21 -3
  119. package/src/json-rpc/server/api_key_auth.ts +63 -0
  120. package/src/json-rpc/server/index.ts +1 -0
  121. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  122. package/src/log/bigint-utils.ts +25 -0
  123. package/src/log/gcloud-logger-config.ts +5 -0
  124. package/src/log/libp2p_logger.ts +12 -5
  125. package/src/log/log-filters.ts +29 -11
  126. package/src/log/pino-logger-server.ts +25 -0
  127. package/src/log/pino-logger.ts +142 -38
  128. package/src/queue/base_memory_queue.ts +1 -1
  129. package/src/queue/semaphore.ts +5 -0
  130. package/src/serialize/buffer_reader.ts +15 -0
  131. package/src/serialize/serialize.ts +32 -0
  132. package/src/sleep/index.ts +10 -1
  133. package/src/timer/date.ts +48 -0
  134. package/src/transport/transport_client.ts +2 -2
  135. package/src/trees/balanced_merkle_tree_root.ts +2 -5
  136. package/src/trees/hasher.ts +0 -4
  137. package/src/trees/membership_witness.ts +8 -0
  138. package/src/trees/merkle_tree_calculator.ts +2 -2
  139. package/src/trees/sibling_path.ts +2 -2
  140. package/src/types/index.ts +5 -0
@@ -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
  });
@@ -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
- export declare function assertLogLevel(level: string): asserts level is LogLevel;
5
- export declare function parseEnv(env: string | undefined, defaultLevel: LogLevel): [LogLevel, LogFilters];
6
- export declare function parseFilters(definition: string | undefined): LogFilters;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWZpbHRlcnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvbG9nLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFhLE1BQU0saUJBQWlCLENBQUM7QUFFM0QsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO0FBRTlDLHdCQUFnQixzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FlaEc7QUFFRCx3QkFBZ0IsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxRQUFRLENBSXZFO0FBRUQsd0JBQWdCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQU9oRztBQUVELHdCQUFnQixZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLEdBQUcsVUFBVSxDQTBCdkUifQ==
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,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAIvE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAOhG;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CA0BvE"}
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"}
@@ -15,26 +15,40 @@ export function getLogLevelFromFilters(filters, module) {
15
15
  }
16
16
  return undefined;
17
17
  }
18
- export function assertLogLevel(level) {
19
- if (!LogLevels.includes(level)) {
20
- throw new Error(`Invalid log level: ${level}`);
21
- }
22
- }
23
- export function parseEnv(env, defaultLevel) {
24
- if (!env) {
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] = env.split(';', 1);
31
- assertLogLevel(level);
39
+ const [level] = logLevelEnvVar.split(';', 1);
40
+ assertValidLogLevel(level);
32
41
  return [
33
42
  level,
34
- parseFilters(env.slice(level.length + 1))
43
+ parseFilters(logLevelEnvVar.slice(level.length + 1))
35
44
  ];
36
45
  }
37
- export function parseFilters(definition) {
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
- assertLogLevel(sanitizedLevel);
64
+ assertValidLogLevel(sanitizedLevel);
51
65
  for (const module of modules.split(',')){
52
66
  filters.push([
53
67
  module.trim().toLowerCase().replace(/^aztec:/, ''),
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBUXZDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQsd0JBQWdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FtQ25EO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBUUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxjQUFjLFFBSzNEO0FBRUQsaUdBQWlHO0FBQ2pHLHdCQUFzQixpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQU1qRztBQVdELGVBQU8sTUFBTyxRQUFRLGtGQUFFLFVBQVUsdUNBQW9ELENBQUM7QUEwQ3ZGLGVBQU8sTUFBTSxNQUFNOzs7OztDQUdsQixDQUFDO0FBTUYsZUFBTyxNQUFNLGNBQWM7Ozs7Ozs7Ozs7Q0FVMUIsQ0FBQztBQW9ERixlQUFPLE1BQU0sTUFBTSwyQ0FBZSxDQUFDO0FBYW5DOzs7R0FHRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FFN0Q7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IscUJBQXFCLENBQUMsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBZTVEO0FBRUQsb0RBQW9EO0FBQ3BELEtBQUssVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxLQUFLLElBQUksQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sTUFBTSxNQUFNLEdBQUc7S0FBRyxDQUFDLElBQUksUUFBUSxHQUFHLEtBQUs7Q0FBRSxHQUFHO0lBQTRCLEtBQUssRUFBRSxVQUFVLENBQUE7Q0FBRSxHQUFHO0lBQ2xHLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDaEIsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUM7SUFDN0MsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDO0NBQzlDLENBQUMifQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby1sb2dnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2cvcGluby1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFrQyxNQUFNLFdBQVcsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFTdkMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCx3RUFBd0U7QUFDeEUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQiwrREFBK0Q7SUFDL0QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsdUZBQXVGO0lBQ3ZGLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNyQixDQUFDO0FBSUYsS0FBSyxrQkFBa0IsR0FBRyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUM7QUFHM0Qsd0JBQWdCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxJQUFJLENBRXZFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsUUFLbkU7QUFZRCx3QkFBZ0IsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0E2QzlFO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUFHLGNBQWMsR0FBRyxNQUFNLENBS2hHO0FBSUQsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUdqRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGNBQWMsR0FBRyxJQUFJLENBRS9EO0FBZUQsZUFBTyxNQUFPLFFBQVEsa0ZBQUUsVUFBVSx1Q0FBK0QsQ0FBQztBQTZDbEcsZUFBTyxNQUFNLE1BQU07Ozs7O0NBR2xCLENBQUM7QUFlRiwyRkFBMkY7QUFDM0Ysd0JBQWdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FRbEQ7QUFFRCw2REFBNkQ7QUFDN0Qsd0JBQWdCLGdCQUFnQixJQUFJLElBQUksQ0FHdkM7QUFNRCxLQUFLLFNBQVMsR0FBRztJQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFeEYseUdBQXlHO0FBQ3pHLHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWtCM0U7QUFjRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sY0FBYzs7Ozs7Ozs7OztDQUcxQixDQUFDO0FBMERGLGVBQU8sTUFBTSxNQUFNLDJDQUFlLENBQUM7QUFhbkM7OztHQUdHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUU3RDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FlNUQ7QUFFRCxvREFBb0Q7QUFDcEQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUFDO0FBRXZFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLE1BQU0sR0FBRztLQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsS0FBSztDQUFFLEdBQUc7SUFBNEIsS0FBSyxFQUFFLFVBQVUsQ0FBQTtDQUFFLEdBQUc7SUFDbEcsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUNoQixjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxLQUFLLE9BQU8sQ0FBQztJQUM3QyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUM7SUFDN0MsZ0VBQWdFO0lBQ2hFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztDQUNuQyxDQUFDIn0=
@@ -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;AAQvC,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;AASvC,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,uCAA+D,CAAC;AA6ClG,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"}
@@ -4,12 +4,44 @@ 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 { convertBigintsToStrings } from './bigint-utils.js';
7
8
  import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
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
+ import { getLogLevelFromFilters, parseLogLevelEnvVar } from './log-filters.js';
10
+ const logBindingsHandlers = [];
11
+ export function addLogBindingsHandler(handler) {
12
+ logBindingsHandlers.push(handler);
13
+ }
14
+ export function removeLogBindingsHandler(handler) {
15
+ const index = logBindingsHandlers.indexOf(handler);
16
+ if (index !== -1) {
17
+ logBindingsHandlers.splice(index, 1);
18
+ }
19
+ }
20
+ function getBindingsFromHandlers() {
21
+ for (const handler of logBindingsHandlers){
22
+ const bindings = handler();
23
+ if (bindings) {
24
+ return bindings;
25
+ }
26
+ }
27
+ return undefined;
28
+ }
29
+ export function createLogger(module, bindings) {
30
+ module = module.replace(/^aztec:/, '');
31
+ const resolvedBindings = {
32
+ ...getBindingsFromHandlers(),
33
+ ...bindings
34
+ };
35
+ const actor = resolvedBindings?.actor;
36
+ const instanceId = resolvedBindings?.instanceId;
11
37
  const pinoLogger = logger.child({
12
- module
38
+ module,
39
+ ...actor && {
40
+ actor
41
+ },
42
+ ...instanceId && {
43
+ instanceId
44
+ }
13
45
  }, {
14
46
  level: getLogLevelFromFilters(logFilters, module)
15
47
  });
@@ -29,9 +61,25 @@ export function createLogger(module) {
29
61
  /** Level of the logger */ level: pinoLogger.level,
30
62
  /** Whether the given level is enabled for this logger. */ isLevelEnabled: (level)=>isLevelEnabled(pinoLogger, level),
31
63
  /** Module name for the logger. */ module,
32
- /** Creates another logger by extending this logger module name. */ createChild: (childModule)=>createLogger(`${module}:${childModule}`)
64
+ /** Creates another logger by extending this logger module name and preserving bindings. */ createChild: (childModule)=>createLogger(`${module}:${childModule}`, {
65
+ actor,
66
+ instanceId
67
+ }),
68
+ /** Returns the bindings (actor, instanceId) for this logger. */ getBindings: ()=>({
69
+ actor,
70
+ instanceId
71
+ })
33
72
  };
34
73
  }
74
+ /**
75
+ * Returns a logger for the given module. If loggerOrBindings is already a Logger, returns it directly.
76
+ * Otherwise, creates a new logger with the given module name and bindings.
77
+ */ export function resolveLogger(module, loggerOrBindings) {
78
+ if (loggerOrBindings && 'info' in loggerOrBindings) {
79
+ return loggerOrBindings;
80
+ }
81
+ return createLogger(module, loggerOrBindings);
82
+ }
35
83
  const logDataHandlers = [];
36
84
  export function addLogDataHandler(handler) {
37
85
  logDataHandlers.push(handler);
@@ -39,30 +87,13 @@ export function addLogDataHandler(handler) {
39
87
  function processLogData(data) {
40
88
  return logDataHandlers.reduce((accum, handler)=>handler(accum), data);
41
89
  }
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
90
  // Patch isLevelEnabled missing from pino/browser.
60
91
  function isLevelEnabled(logger, level) {
61
92
  return typeof logger.isLevelEnabled === 'function' ? logger.isLevelEnabled(level) : logger.levels.values[level] >= logger.levels.values[logger.level];
62
93
  }
63
94
  // Load log levels from environment variables.
64
95
  const defaultLogLevel = process.env.NODE_ENV === 'test' ? 'silent' : 'info';
65
- export const [logLevel, logFilters] = parseEnv(process.env.LOG_LEVEL, defaultLogLevel);
96
+ export const [logLevel, logFilters] = parseLogLevelEnvVar(process.env.LOG_LEVEL, defaultLogLevel);
66
97
  // Define custom logging levels for pino.
67
98
  const customLevels = {
68
99
  verbose: 25
@@ -99,6 +130,9 @@ const pinoOpts = {
99
130
  ...redactedPaths.map((p)=>`opts.${p}`)
100
131
  ]
101
132
  },
133
+ formatters: {
134
+ log: (obj)=>convertBigintsToStrings(obj)
135
+ },
102
136
  ...useGcloudLogging ? GoogleCloudLoggerConfig : {}
103
137
  };
104
138
  export const levels = {
@@ -114,23 +148,82 @@ export const levels = {
114
148
  // Transport options for pretty logging to stderr via pino-pretty.
115
149
  const colorEnv = process.env['FORCE_COLOR'];
116
150
  const useColor = colorEnv === undefined ? isColorSupported : parseBooleanEnv(colorEnv);
117
- const { bold, reset } = createColors({
151
+ const { bold, reset, cyan, magenta, yellow, blue, green, magentaBright, yellowBright, blueBright, greenBright } = createColors({
118
152
  useColor
119
153
  });
120
- export const pinoPrettyOpts = {
154
+ // Per-actor coloring: each unique actor gets a different color for easier visual distinction.
155
+ // Disabled when LOG_NO_COLOR_PER_ACTOR is set to a truthy value.
156
+ const useColorPerActor = useColor && !parseBooleanEnv(process.env['LOG_NO_COLOR_PER_ACTOR']);
157
+ const actorColors = [
158
+ yellow,
159
+ magenta,
160
+ blue,
161
+ green,
162
+ magentaBright,
163
+ yellowBright,
164
+ blueBright,
165
+ greenBright
166
+ ];
167
+ const actorColorMap = new Map();
168
+ let nextColorIndex = 0;
169
+ /** Returns the color function assigned to a given actor, assigning a new one if needed. */ export function getActorColor(actor) {
170
+ let color = actorColorMap.get(actor);
171
+ if (!color) {
172
+ color = actorColors[nextColorIndex % actorColors.length];
173
+ actorColorMap.set(actor, color);
174
+ nextColorIndex++;
175
+ }
176
+ return color;
177
+ }
178
+ /** Resets the actor-to-color mapping. Useful for testing. */ export function resetActorColors() {
179
+ actorColorMap.clear();
180
+ nextColorIndex = 0;
181
+ }
182
+ // String template for messageFormat (used in worker threads and when per-actor coloring is disabled).
183
+ const messageFormatString = `${bold('{module}')}{if actor} ${cyan('{actor}')}{end}{if instanceId} ${reset(cyan('{instanceId}'))}{end} ${reset('{msg}')}`;
184
+ /** Formats a log message with per-actor coloring. Actor, module, and instanceId share the same color. */ export function formatLogMessage(log, messageKey) {
185
+ const actor = log.actor;
186
+ const module = log.module ?? '';
187
+ const instanceId = log.instanceId;
188
+ const msg = log[messageKey] ?? '';
189
+ // Use actor color for actor, module, and instanceId when actor is present
190
+ const color = actor ? getActorColor(actor) : cyan;
191
+ let result = bold(color(module));
192
+ if (actor) {
193
+ result += ' ' + color(actor);
194
+ }
195
+ if (instanceId) {
196
+ result += ' ' + reset(color(instanceId));
197
+ }
198
+ result += ' ' + reset(String(msg));
199
+ return result;
200
+ }
201
+ // Base options for pino-pretty (shared between transport and direct use).
202
+ const pinoPrettyBaseOpts = {
121
203
  destination: 2,
122
204
  sync: true,
123
205
  colorize: useColor,
124
- ignore: 'module,pid,hostname,trace_id,span_id,trace_flags,severity',
125
- messageFormat: `${bold('{module}')} ${reset('{msg}')}`,
206
+ ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity',
126
207
  customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
127
208
  customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
128
209
  minimumLevel: 'trace',
129
210
  singleLine: !parseBooleanEnv(process.env['LOG_MULTILINE'])
130
211
  };
212
+ /**
213
+ * Pino-pretty options for direct use (e.g., jest/setup.mjs).
214
+ * Includes function-based messageFormat for per-actor coloring when enabled.
215
+ */ export const pinoPrettyOpts = {
216
+ ...pinoPrettyBaseOpts,
217
+ messageFormat: useColorPerActor ? formatLogMessage : messageFormatString
218
+ };
219
+ // Transport options use string template only (functions can't be serialized to worker threads).
220
+ const prettyTransportOpts = {
221
+ ...pinoPrettyBaseOpts,
222
+ messageFormat: messageFormatString
223
+ };
131
224
  const prettyTransport = {
132
225
  target: 'pino-pretty',
133
- options: pinoPrettyOpts,
226
+ options: prettyTransportOpts,
134
227
  level: 'trace'
135
228
  };
136
229
  // Transport for vanilla stdio logging as JSON.
@@ -60,6 +60,6 @@ export declare abstract class BaseMemoryQueue<T> {
60
60
  * @param handler - A function that takes an item of type T and returns a Promise<void> after processing the item.
61
61
  * @returns A Promise<void> that resolves when the queue is finished processing.
62
62
  */
63
- process(handler: (item: T) => Promise<void>): Promise<void>;
63
+ process(handler: (item: T) => Promise<void> | void): Promise<void>;
64
64
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9tZW1vcnlfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXNlX21lbW9yeV9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBc0IsZUFBZSxDQUFDLENBQUM7SUFJekIsT0FBTyxDQUFDLEdBQUc7SUFIdkIsT0FBTyxDQUFDLE9BQU8sQ0FBb0M7SUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUV6QixZQUFvQixHQUFHLHlDQUF5QyxFQUFJO0lBRXBFLFNBQVMsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJO1FBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNyQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0tBQ25CLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLE1BQU0sV0FFWjtJQUVEOzs7T0FHRztJQUNJLFlBQVksSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUVuQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBNkJqRDtJQUVEOzs7O09BSUc7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxPQUFPLENBVzNCO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsU0FHVDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLFNBSVo7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBWXZEO0NBQ0YifQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9tZW1vcnlfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXNlX21lbW9yeV9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBc0IsZUFBZSxDQUFDLENBQUM7SUFJekIsT0FBTyxDQUFDLEdBQUc7SUFIdkIsT0FBTyxDQUFDLE9BQU8sQ0FBb0M7SUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUV6QixZQUFvQixHQUFHLHlDQUF5QyxFQUFJO0lBRXBFLFNBQVMsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJO1FBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNyQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0tBQ25CLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLE1BQU0sV0FFWjtJQUVEOzs7T0FHRztJQUNJLFlBQVksSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUVuQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBNkJqRDtJQUVEOzs7O09BSUc7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxPQUFPLENBVzNCO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsU0FHVDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLFNBSVo7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGlCQVk5RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"base_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/base_memory_queue.ts"],"names":[],"mappings":"AAGA,8BAAsB,eAAe,CAAC,CAAC;IAIzB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAoB,GAAG,yCAAyC,EAAI;IAEpE,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;QACrB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IAEF;;;;;OAKG;IACI,MAAM,WAEZ;IAED;;;OAGG;IACI,YAAY,IAAI,CAAC,GAAG,SAAS,CAEnC;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BjD;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAW3B;IAED;;;;OAIG;IACI,GAAG,SAGT;IAED;;;;OAIG;IACI,MAAM,SAIZ;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,iBAYvD;CACF"}
1
+ {"version":3,"file":"base_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/base_memory_queue.ts"],"names":[],"mappings":"AAGA,8BAAsB,eAAe,CAAC,CAAC;IAIzB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAoB,GAAG,yCAAyC,EAAI;IAEpE,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;QACrB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IAEF;;;;;OAKG;IACI,MAAM,WAEZ;IAED;;;OAGG;IACI,YAAY,IAAI,CAAC,GAAG,SAAS,CAEnC;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BjD;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAW3B;IAED;;;;OAIG;IACI,GAAG,SAGT;IAED;;;;OAIG;IACI,MAAM,SAIZ;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAY9D;CACF"}
@@ -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"}
@@ -72,6 +72,13 @@ export declare class BufferReader {
72
72
  * @returns The read 256 bit value as a bigint.
73
73
  */
74
74
  readUInt256(): bigint;
75
+ /**
76
+ * Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
77
+ * Updates the index position by 32 bytes after reading the number.
78
+ *
79
+ * @returns The read 256 bit signed value as a bigint.
80
+ */
81
+ readInt256(): bigint;
75
82
  /** Alias for readUInt256 */
76
83
  readBigInt(): bigint;
77
84
  /**
@@ -264,4 +271,4 @@ export interface FromBuffer<T> {
264
271
  */
265
272
  fromBuffer(buffer: Buffer): T;
266
273
  }
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9idWZmZXJfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHFCQUFhLFlBQVk7O0lBR3JCLE9BQU8sQ0FBQyxNQUFNO0lBRmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixNQUFNLFNBQUksRUFHWDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxHQUFHLE1BQU0sR0FBRyxZQUFZLEdBQUcsWUFBWSxDQVV2RjtJQUVELDBFQUEwRTtJQUNuRSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUcvRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxVQUFVLElBQUksTUFBTSxDQU8xQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVELDRCQUE0QjtJQUNyQixVQUFVLElBQUksTUFBTSxDQUUxQjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7Ozs7T0FLRztJQUNJLFNBQVMsSUFBSSxNQUFNLENBSXpCO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxJQUFJLE9BQU8sQ0FJNUI7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUlsQztJQUVELHlDQUF5QztJQUNsQyxTQUFTLElBQUksTUFBTSxDQUl6QjtJQUVEOzs7OztPQUtHO0lBQ0ksZ0JBQWdCLElBQUksTUFBTSxFQUFFLENBSWxDO0lBRUQ7Ozs7O09BS0c7SUFDSSxpQkFBaUIsSUFBSSxNQUFNLEVBQUUsQ0FJbkM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxVQUFVLENBQUMsQ0FBQyxFQUNqQixnQkFBZ0IsRUFBRTtRQUNoQjs7V0FFRztRQUNILFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDO0tBQ3pDLEVBQ0QsT0FBTyxDQUFDLEVBQUUsTUFBTSxHQUNmLENBQUMsRUFBRSxDQVVMO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUU7UUFDaEQ7O1dBRUc7UUFDSCxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQztLQUN6QyxHQUFHLENBQUMsRUFBRSxDQU9OO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxFQUNsQyxJQUFJLEVBQUUsQ0FBQyxFQUNQLGdCQUFnQixFQUFFO1FBQ2hCOztXQUVHO1FBQ0gsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUM7S0FDekMsR0FDQSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUdiO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FBQyxJQUFJLFNBQUssR0FBRyxNQUFNLEVBQUUsQ0FlMUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxVQUFVLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRTtRQUNqQzs7V0FFRztRQUNILFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDO0tBQ3pDLEdBQUcsQ0FBQyxDQUVKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBR25DO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUUxQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBTzFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGNBQWMsSUFBSSxVQUFVLENBSWxDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxPQUFPLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRTtRQUM5Qjs7V0FFRztRQUNILFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDO0tBQ3pDLEdBQUc7UUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFBO0tBQUUsQ0FTdkI7SUFFRDs7O09BR0c7SUFDSSxTQUFTLElBQUksTUFBTSxDQUV6QjtJQUVEOzs7T0FHRztJQUNJLGNBQWMsSUFBSSxNQUFNLENBRTlCO0NBU0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxVQUFVLENBQUMsQ0FBQztJQUMzQjs7O09BR0c7SUFDSCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7Q0FDL0IifQ==
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9idWZmZXJfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHFCQUFhLFlBQVk7O0lBR3JCLE9BQU8sQ0FBQyxNQUFNO0lBRmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixNQUFNLFNBQUksRUFHWDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxHQUFHLE1BQU0sR0FBRyxZQUFZLEdBQUcsWUFBWSxDQVV2RjtJQUVELDBFQUEwRTtJQUNuRSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUcvRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxVQUFVLElBQUksTUFBTSxDQU8xQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FNMUI7SUFFRCw0QkFBNEI7SUFDckIsVUFBVSxJQUFJLE1BQU0sQ0FFMUI7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsSUFBSSxNQUFNLENBSTFCO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLElBQUksTUFBTSxDQUl6QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFdBQVcsSUFBSSxP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
@@ -1 +1 @@
1
- {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { toBigIntBE } from '../bigint-buffer/index.js';
1
2
  /**
2
3
  * The BufferReader class provides a utility for reading various data types from a buffer.
3
4
  * It supports reading numbers, booleans, byte arrays, Fr and Fq field elements,
@@ -103,6 +104,18 @@
103
104
  this.index += 32;
104
105
  return result;
105
106
  }
107
+ /**
108
+ * Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
109
+ * Updates the index position by 32 bytes after reading the number.
110
+ *
111
+ * @returns The read 256 bit signed value as a bigint.
112
+ */ readInt256() {
113
+ this.#rangeCheck(32);
114
+ const unsigned = toBigIntBE(this.buffer.subarray(this.index, this.index + 32));
115
+ this.index += 32;
116
+ const signBit = 1n << 255n;
117
+ return unsigned >= signBit ? unsigned - (1n << 256n) : unsigned;
118
+ }
106
119
  /** Alias for readUInt256 */ readBigInt() {
107
120
  return this.readUInt256();
108
121
  }
@@ -115,6 +115,13 @@ export declare function toFriendlyJSON(obj: object): string;
115
115
  * @returns A Buffer containing the serialized BigInt value in big-endian format.
116
116
  */
117
117
  export declare function serializeBigInt(n: bigint, width?: number): Buffer<ArrayBufferLike>;
118
+ /**
119
+ * Serialize a signed BigInt value into a Buffer of specified width using two's complement.
120
+ * @param n - The signed BigInt value to be serialized.
121
+ * @param width - The width (in bytes) of the output Buffer, optional with default value 32.
122
+ * @returns A Buffer containing the serialized signed BigInt value in big-endian format.
123
+ */
124
+ export declare function serializeSignedBigInt(n: bigint, width?: number): Buffer<ArrayBufferLike>;
118
125
  /**
119
126
  * Deserialize a big integer from a buffer, given an offset and width.
120
127
  * Reads the specified number of bytes from the buffer starting at the offset, converts it to a big integer, and returns the deserialized result along with the number of bytes read (advanced).
@@ -128,6 +135,17 @@ export declare function deserializeBigInt(buf: Buffer, offset?: number, width?:
128
135
  elem: bigint;
129
136
  adv: number;
130
137
  };
138
+ /**
139
+ * Deserialize a signed BigInt from a buffer (two's complement).
140
+ * @param buf - The buffer containing the signed big integer to be deserialized.
141
+ * @param offset - The position in the buffer where the integer starts. Defaults to 0.
142
+ * @param width - The number of bytes to read from the buffer for the integer. Defaults to 32.
143
+ * @returns An object containing the deserialized signed bigint value ('elem') and bytes advanced ('adv').
144
+ */
145
+ export declare function deserializeSignedBigInt(buf: Buffer, offset?: number, width?: number): {
146
+ elem: bigint;
147
+ adv: number;
148
+ };
131
149
  /**
132
150
  * Serializes a Date object into a Buffer containing its timestamp as a big integer value.
133
151
  * The resulting Buffer has a fixed width of 8 bytes, representing a 64-bit big-endian integer.
@@ -178,4 +196,4 @@ export declare function deserializeInt32(buf: Buffer, offset?: number): {
178
196
  adv: number;
179
197
  };
180
198
  export {};
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplL3NlcmlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUM7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0NBQWtDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFlBQVksU0FBSSxHQUFHLE1BQU0sQ0FhL0Y7QUFFRDs7R0FFRztBQUNILEtBQUssYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsTUFBTSxFQUNYLE1BQU0sRUFBRSxNQUFNLEtBQ1g7SUFDSDs7T0FFRztJQUNILElBQUksRUFBRSxDQUFDLENBQUM7SUFDUjs7T0FFRztJQUNILEdBQUcsRUFBRSxNQUFNLENBQUM7Q0FDYixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsRUFDMUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLFNBQUksR0FDVDtJQUNEOztPQUVHO0lBQ0gsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ1Y7O09BRUc7SUFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDO0NBQ2IsQ0FXQTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUd6RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxTQUFJLEdBQUcsTUFBTSxDQUluRTtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQ7QUFFRCw4Q0FBOEM7QUFDOUMsTUFBTSxNQUFNLFVBQVUsR0FDbEIsT0FBTyxHQUNQLE1BQU0sR0FDTixVQUFVLEdBQ1YsTUFBTSxHQUNOLE1BQU0sR0FDTixNQUFNLEdBQ047SUFDRTs7T0FFRztJQUNILFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztDQUN4QixHQUNELFVBQVUsRUFBRSxDQUFDO0FBRWpCLGdFQUFnRTtBQUNoRSxNQUFNLE1BQU0sU0FBUyxHQUNqQixFQUFFLEdBQ0YsT0FBTyxHQUNQLE1BQU0sR0FDTixNQUFNLEdBQ04sTUFBTSxHQUNOO0lBQ0U7OztPQUdHO0lBQ0gsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ2hCLEdBQ0Q7SUFDRSw0QkFBNEI7SUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ25CLEdBQ0Q7SUFDRSx1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7Q0FDdEIsR0FDRCxTQUFTLEVBQUUsQ0FBQztBQUVoQixNQUFNLE1BQU0sWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0E0QnRFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FzQjVEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBRS9EO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBNEJsRDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBRXBEO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUksRUFBRSxLQUFLLFNBQUs7OztFQUVwRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLDJCQUV2QztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3REO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUk7OztFQUd4RDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3ZEIn0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplL3NlcmlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUM7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0NBQWtDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFlBQVksU0FBSSxHQUFHLE1BQU0sQ0FhL0Y7QUFFRDs7R0FFRztBQUNILEtBQUssYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsTUFBTSxFQUNYLE1BQU0sRUFBRSxNQUFNLEtBQ1g7SUFDSDs7T0FFRztJQUNILElBQUksRUFBRSxDQUFDLENBQUM7SUFDUjs7T0FFRztJQUNILEdBQUcsRUFBRSxNQUFNLENBQUM7Q0FDYixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsRUFDMUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLFNBQUksR0FDVDtJQUNEOztPQUVHO0lBQ0gsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ1Y7O09BRUc7SUFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDO0NBQ2IsQ0FXQTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUd6RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxTQUFJLEdBQUcsTUFBTSxDQUluRTtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQ7QUFFRCw4Q0FBOEM7QUFDOUMsTUFBTSxNQUFNLFVBQVUsR0FDbEIsT0FBTyxHQUNQLE1BQU0sR0FDTixVQUFVLEdBQ1YsTUFBTSxHQUNOLE1BQU0sR0FDTixNQUFNLEdBQ047SUFDRTs7T0FFRztJQUNILFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztDQUN4QixHQUNELFVBQVUsRUFBRSxDQUFDO0FBRWpCLGdFQUFnRTtBQUNoRSxNQUFNLE1BQU0sU0FBUyxHQUNqQixFQUFFLEdBQ0YsT0FBTyxHQUNQLE1BQU0sR0FDTixNQUFNLEdBQ04sTUFBTSxHQUNOO0lBQ0U7OztPQUdHO0lBQ0gsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ2hCLEdBQ0Q7SUFDRSw0QkFBNEI7SUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ25CLEdBQ0Q7SUFDRSx1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7Q0FDdEIsR0FDRCxTQUFTLEVBQUUsQ0FBQztBQUVoQixNQUFNLE1BQU0sWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0E0QnRFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FzQjVEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBRS9EO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBNEJsRDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBRXBEO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBUTFEO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUksRUFBRSxLQUFLLFNBQUs7OztFQUVwRTtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSSxFQUFFLEtBQUssU0FBSzs7O0VBTzFFO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksMkJBRXZDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdEQ7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3hEO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQifQ==