@aztec/foundation 0.0.1-commit.fcb71a6 → 0.0.1-commit.ff7989d6c

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 (191) 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/branded-types/block_number.d.ts +4 -1
  5. package/dest/branded-types/block_number.d.ts.map +1 -1
  6. package/dest/branded-types/block_number.js +3 -0
  7. package/dest/branded-types/checkpoint_number.d.ts +10 -2
  8. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  9. package/dest/branded-types/checkpoint_number.js +17 -8
  10. package/dest/branded-types/index.d.ts +3 -2
  11. package/dest/branded-types/index.d.ts.map +1 -1
  12. package/dest/branded-types/index.js +2 -1
  13. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  14. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  15. package/dest/branded-types/index_within_checkpoint.js +59 -0
  16. package/dest/buffer/buffer16.d.ts +4 -1
  17. package/dest/buffer/buffer16.d.ts.map +1 -1
  18. package/dest/buffer/buffer16.js +3 -1
  19. package/dest/buffer/buffer32.d.ts +4 -1
  20. package/dest/buffer/buffer32.d.ts.map +1 -1
  21. package/dest/buffer/buffer32.js +3 -1
  22. package/dest/collection/array.d.ts +12 -1
  23. package/dest/collection/array.d.ts.map +1 -1
  24. package/dest/collection/array.js +51 -0
  25. package/dest/config/env_var.d.ts +2 -2
  26. package/dest/config/env_var.d.ts.map +1 -1
  27. package/dest/config/index.d.ts +6 -3
  28. package/dest/config/index.d.ts.map +1 -1
  29. package/dest/config/index.js +16 -7
  30. package/dest/config/network_name.d.ts +2 -2
  31. package/dest/config/network_name.d.ts.map +1 -1
  32. package/dest/config/network_name.js +2 -0
  33. package/dest/config/parse-env.d.ts +3 -0
  34. package/dest/config/parse-env.d.ts.map +1 -0
  35. package/dest/config/parse-env.js +7 -0
  36. package/dest/config/secret_value.js +3 -1
  37. package/dest/crypto/ecdsa/signature.d.ts +10 -1
  38. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  39. package/dest/crypto/poseidon/index.d.ts +1 -2
  40. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  41. package/dest/crypto/poseidon/index.js +0 -9
  42. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  43. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  44. package/dest/crypto/random/randomness_singleton.js +5 -5
  45. package/dest/crypto/sync/poseidon/index.d.ts +1 -2
  46. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  47. package/dest/crypto/sync/poseidon/index.js +0 -8
  48. package/dest/curves/bls12/field.js +6 -3
  49. package/dest/curves/bls12/point.d.ts +10 -1
  50. package/dest/curves/bls12/point.d.ts.map +1 -1
  51. package/dest/curves/bls12/point.js +3 -1
  52. package/dest/curves/bn254/field.js +5 -2
  53. package/dest/curves/grumpkin/point.d.ts +11 -2
  54. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  55. package/dest/error/index.d.ts +4 -4
  56. package/dest/error/index.d.ts.map +1 -1
  57. package/dest/eth-address/index.js +4 -2
  58. package/dest/eth-signature/eth_signature.d.ts +4 -1
  59. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  60. package/dest/jest/setup.js +4 -1
  61. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  62. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  63. package/dest/json-rpc/client/safe_json_rpc_client.js +1 -1
  64. package/dest/json-rpc/client/undici.d.ts +1 -1
  65. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  66. package/dest/json-rpc/client/undici.js +21 -4
  67. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  68. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  69. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  70. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  71. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  72. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  73. package/dest/json-rpc/server/api_key_auth.js +57 -0
  74. package/dest/json-rpc/server/index.d.ts +2 -1
  75. package/dest/json-rpc/server/index.d.ts.map +1 -1
  76. package/dest/json-rpc/server/index.js +1 -0
  77. package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
  78. package/dest/log/bigint-utils.d.ts +5 -0
  79. package/dest/log/bigint-utils.d.ts.map +1 -0
  80. package/dest/log/bigint-utils.js +18 -0
  81. package/dest/log/gcloud-logger-config.d.ts +1 -1
  82. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  83. package/dest/log/gcloud-logger-config.js +3 -0
  84. package/dest/log/libp2p_logger.d.ts +5 -2
  85. package/dest/log/libp2p_logger.d.ts.map +1 -1
  86. package/dest/log/libp2p_logger.js +14 -4
  87. package/dest/log/log-filters.d.ts +17 -4
  88. package/dest/log/log-filters.d.ts.map +1 -1
  89. package/dest/log/log-filters.js +26 -12
  90. package/dest/log/pino-logger-server.d.ts +9 -0
  91. package/dest/log/pino-logger-server.d.ts.map +1 -0
  92. package/dest/log/pino-logger-server.js +18 -0
  93. package/dest/log/pino-logger.d.ts +37 -8
  94. package/dest/log/pino-logger.d.ts.map +1 -1
  95. package/dest/log/pino-logger.js +122 -29
  96. package/dest/queue/base_memory_queue.d.ts +2 -2
  97. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  98. package/dest/queue/semaphore.d.ts +5 -1
  99. package/dest/queue/semaphore.d.ts.map +1 -1
  100. package/dest/retry/index.d.ts +11 -1
  101. package/dest/retry/index.d.ts.map +1 -1
  102. package/dest/retry/index.js +11 -0
  103. package/dest/serialize/buffer_reader.d.ts +14 -4
  104. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  105. package/dest/serialize/buffer_reader.js +26 -4
  106. package/dest/serialize/serialize.d.ts +19 -1
  107. package/dest/serialize/serialize.d.ts.map +1 -1
  108. package/dest/serialize/serialize.js +31 -0
  109. package/dest/timer/date.d.ts +25 -1
  110. package/dest/timer/date.d.ts.map +1 -1
  111. package/dest/timer/date.js +33 -0
  112. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  113. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  114. package/dest/trees/{balanced_merkle_tree.js → balanced_merkle_tree_root.js} +2 -17
  115. package/dest/trees/hasher.d.ts +3 -1
  116. package/dest/trees/hasher.d.ts.map +1 -1
  117. package/dest/trees/hasher.js +10 -5
  118. package/dest/trees/index.d.ts +4 -4
  119. package/dest/trees/index.d.ts.map +1 -1
  120. package/dest/trees/index.js +3 -3
  121. package/dest/trees/membership_witness.d.ts +11 -1
  122. package/dest/trees/membership_witness.d.ts.map +1 -1
  123. package/dest/trees/membership_witness.js +9 -0
  124. package/dest/trees/merkle_tree_calculator.d.ts +1 -1
  125. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  126. package/dest/trees/merkle_tree_calculator.js +2 -2
  127. package/dest/trees/sibling_path.d.ts +2 -1
  128. package/dest/trees/sibling_path.d.ts.map +1 -1
  129. package/dest/trees/sibling_path.js +2 -2
  130. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +2 -3
  131. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  132. package/dest/trees/unbalanced_merkle_tree_calculator.js +1 -5
  133. package/dest/trees/{unbalanced_merkle_tree.d.ts → unbalanced_merkle_tree_root.d.ts} +3 -5
  134. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  135. package/dest/trees/{unbalanced_merkle_tree.js → unbalanced_merkle_tree_root.js} +11 -49
  136. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  137. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  138. package/dest/trees/unbalanced_tree_store.js +49 -1
  139. package/dest/types/index.d.ts +4 -2
  140. package/dest/types/index.d.ts.map +1 -1
  141. package/dest/types/index.js +3 -0
  142. package/package.json +25 -4
  143. package/src/array/sorted_array.ts +22 -17
  144. package/src/branded-types/block_number.ts +5 -0
  145. package/src/branded-types/checkpoint_number.ts +22 -7
  146. package/src/branded-types/index.ts +2 -1
  147. package/src/branded-types/index_within_checkpoint.ts +88 -0
  148. package/src/collection/array.ts +52 -0
  149. package/src/config/env_var.ts +55 -9
  150. package/src/config/index.ts +19 -4
  151. package/src/config/network_name.ts +4 -1
  152. package/src/config/parse-env.ts +4 -0
  153. package/src/crypto/poseidon/index.ts +0 -10
  154. package/src/crypto/random/randomness_singleton.ts +6 -4
  155. package/src/crypto/sync/poseidon/index.ts +0 -9
  156. package/src/eth-address/index.ts +1 -1
  157. package/src/jest/setup.mjs +4 -1
  158. package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
  159. package/src/json-rpc/client/undici.ts +21 -3
  160. package/src/json-rpc/server/api_key_auth.ts +63 -0
  161. package/src/json-rpc/server/index.ts +1 -0
  162. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  163. package/src/log/bigint-utils.ts +22 -0
  164. package/src/log/gcloud-logger-config.ts +5 -0
  165. package/src/log/libp2p_logger.ts +12 -5
  166. package/src/log/log-filters.ts +29 -11
  167. package/src/log/pino-logger-server.ts +25 -0
  168. package/src/log/pino-logger.ts +144 -39
  169. package/src/queue/base_memory_queue.ts +1 -1
  170. package/src/queue/semaphore.ts +5 -0
  171. package/src/retry/index.ts +18 -0
  172. package/src/serialize/buffer_reader.ts +36 -9
  173. package/src/serialize/serialize.ts +32 -0
  174. package/src/timer/date.ts +48 -0
  175. package/src/trees/{balanced_merkle_tree.ts → balanced_merkle_tree_root.ts} +2 -18
  176. package/src/trees/hasher.ts +9 -0
  177. package/src/trees/index.ts +3 -3
  178. package/src/trees/membership_witness.ts +8 -0
  179. package/src/trees/merkle_tree_calculator.ts +2 -2
  180. package/src/trees/sibling_path.ts +2 -2
  181. package/src/trees/unbalanced_merkle_tree_calculator.ts +1 -12
  182. package/src/trees/{unbalanced_merkle_tree.ts → unbalanced_merkle_tree_root.ts} +17 -61
  183. package/src/trees/unbalanced_tree_store.ts +57 -2
  184. package/src/types/index.ts +6 -1
  185. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  186. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  187. package/dest/json-rpc/server/telemetry.js +0 -0
  188. package/dest/trees/balanced_merkle_tree.d.ts +0 -22
  189. package/dest/trees/balanced_merkle_tree.d.ts.map +0 -1
  190. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  191. package/src/json-rpc/server/telemetry.ts +0 -0
@@ -1,10 +1,15 @@
1
1
  type Cmp<T> = (a: T, b: T) => -1 | 0 | 1;
2
2
  export declare function dedupeSortedArray<T>(arr: T[], cmp: Cmp<T>): void;
3
3
  export declare function insertIntoSortedArray<T>(arr: T[], item: T, cmp: Cmp<T>, allowDuplicates?: boolean): boolean;
4
+ /**
5
+ * Finds the index where needle would be inserted to maintain sorted order.
6
+ * Returns the count of elements less than or equal to needle.
7
+ */
8
+ export declare function findInsertionIndexInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): number;
4
9
  export declare function findIndexInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): number;
5
10
  export declare function findInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): T | undefined;
6
11
  export declare function removeAnyOf<T, N>(arr: T[], vals: N[], cmp: (a: T, b: N) => -1 | 0 | 1): void;
7
12
  export declare function removeFromSortedArray<T, N>(arr: T[], val: N, cmp: (a: T, b: N) => -1 | 0 | 1): void;
8
13
  export declare function merge<T>(arr: T[], toInsert: T[], cmp: (a: T, b: T) => -1 | 0 | 1): void;
9
14
  export {};
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVkX2FycmF5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJyYXkvc29ydGVkX2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXpDLHdCQUFnQixpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQWtCaEU7QUFFRCx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxVQUFPLEdBQUcsT0FBTyxDQTZCeEc7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxHQUFHLE1BQU0sQ0FvQnhHO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUcxRztBQUVELHdCQUFnQixXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FzQjVGO0FBRUQsd0JBQWdCLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBSzVGO0FBRUQsd0JBQWdCLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBcUJ2RiJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVkX2FycmF5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJyYXkvc29ydGVkX2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXpDLHdCQUFnQixpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQWtCaEU7QUFFRCx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxVQUFPLEdBQUcsT0FBTyxDQVl4RztBQUVEOzs7R0FHRztBQUNILHdCQUFnQiwrQkFBK0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxNQUFNLEdBQUcsTUFBTSxDQWdCakg7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxHQUFHLE1BQU0sQ0FvQnhHO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUcxRztBQUVELHdCQUFnQixXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FzQjVGO0FBRUQsd0JBQWdCLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBSzVGO0FBRUQsd0JBQWdCLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBcUJ2RiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"sorted_array.d.ts","sourceRoot":"","sources":["../../src/array/sorted_array.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAkBhE;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,UAAO,GAAG,OAAO,CA6BxG;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAoBxG;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,SAAS,CAG1G;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAsB5F;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAK5F;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAqBvF"}
1
+ {"version":3,"file":"sorted_array.d.ts","sourceRoot":"","sources":["../../src/array/sorted_array.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAkBhE;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,UAAO,GAAG,OAAO,CAYxG;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAgBjH;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAoBxG;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,SAAS,CAG1G;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAsB5F;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAK5F;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAqBvF"}
@@ -17,29 +17,32 @@ export function dedupeSortedArray(arr, cmp) {
17
17
  }
18
18
  }
19
19
  export function insertIntoSortedArray(arr, item, cmp, allowDuplicates = true) {
20
+ const index = findInsertionIndexInSortedArray(arr, item, cmp);
21
+ if (!allowDuplicates) {
22
+ // Check element before insertion point (upper bound returns index after equal elements)
23
+ if (index > 0 && cmp(arr[index - 1], item) === 0) {
24
+ return false;
25
+ }
26
+ }
27
+ arr.splice(index, 0, item);
28
+ return true;
29
+ }
30
+ /**
31
+ * Finds the index where needle would be inserted to maintain sorted order.
32
+ * Returns the count of elements less than or equal to needle.
33
+ */ export function findInsertionIndexInSortedArray(values, needle, cmp) {
20
34
  let start = 0;
21
- let end = arr.length;
35
+ let end = values.length;
22
36
  while(start < end){
23
37
  const mid = start + ((end - start) / 2 | 0);
24
- const comparison = cmp(arr[mid], item);
25
- if (comparison < 0) {
38
+ const comparison = cmp(values[mid], needle);
39
+ if (comparison <= 0) {
26
40
  start = mid + 1;
27
41
  } else {
28
42
  end = mid;
29
43
  }
30
44
  }
31
- if (!allowDuplicates) {
32
- // Check element at insertion point
33
- if (start < arr.length && cmp(arr[start], item) === 0) {
34
- return false;
35
- }
36
- // Check element before insertion point (in case we landed after duplicates)
37
- if (start > 0 && cmp(arr[start - 1], item) === 0) {
38
- return false;
39
- }
40
- }
41
- arr.splice(start, 0, item);
42
- return true;
45
+ return start;
43
46
  }
44
47
  export function findIndexInSortedArray(values, needle, cmp) {
45
48
  let start = 0;
@@ -37,6 +37,9 @@ export declare namespace BlockNumber {
37
37
  export declare namespace BlockNumber {
38
38
  var isValid: (value: unknown) => value is BlockNumber;
39
39
  }
40
+ export declare namespace BlockNumber {
41
+ var add: (bn: BlockNumber, increment: number) => BlockNumber;
42
+ }
40
43
  export declare namespace BlockNumber {
41
44
  var ZERO: BlockNumber;
42
45
  }
@@ -50,4 +53,4 @@ export declare const BlockNumberSchema: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z
50
53
  * Accepts numbers, bigints, or strings and coerces them to BlockNumber.
51
54
  */
52
55
  export declare const BlockNumberPositiveSchema: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, BlockNumber, string | number | bigint>;
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfbnVtYmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnJhbmRlZC10eXBlcy9ibG9ja19udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFFekQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsV0FBVyxDQVF0RDs7Ozs7Ozs7Ozs7Ozs7OztBQWdFRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0saUJBQWlCLHNJQUEyQixDQUFDO0FBRTFEOzs7R0FHRztBQUNILGVBQU8sTUFBTSx5QkFBeUIsc0lBQTJCLENBQUMifQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfbnVtYmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnJhbmRlZC10eXBlcy9ibG9ja19udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFFekQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsV0FBVyxDQVF0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFFRDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0saUJBQWlCLHNJQUEyQixDQUFDO0FBRTFEOzs7R0FHRztBQUNILGVBQU8sTUFBTSx5QkFBeUIsc0lBQTJCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"block_number.d.ts","sourceRoot":"","sources":["../../src/branded-types/block_number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAQtD;;;;;;;;;;;;;;;;AAgED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,sIAA2B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sIAA2B,CAAC"}
1
+ {"version":3,"file":"block_number.d.ts","sourceRoot":"","sources":["../../src/branded-types/block_number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAQtD;;;;;;;;;;;;;;;;;;;AAqED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,sIAA2B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sIAA2B,CAAC"}
@@ -55,6 +55,9 @@ import { z } from 'zod';
55
55
  */ BlockNumber.isValid = function(value) {
56
56
  return typeof value === 'number' && Number.isInteger(value) && value >= 0;
57
57
  };
58
+ /** Increments a BlockNumber by a given value. */ BlockNumber.add = function(bn, increment) {
59
+ return BlockNumber(bn + increment);
60
+ };
58
61
  /**
59
62
  * The zero block value (genesis block).
60
63
  */ BlockNumber.ZERO = BlockNumber(0);
@@ -38,9 +38,17 @@ export declare namespace CheckpointNumber {
38
38
  export declare namespace CheckpointNumber {
39
39
  var ZERO: CheckpointNumber;
40
40
  }
41
+ export declare namespace CheckpointNumber {
42
+ var INITIAL: CheckpointNumber;
43
+ }
41
44
  /**
42
- * Zod schema for parsing and validating CheckpointNumber values.
45
+ * Zod schema for parsing and validating Checkpoint values.
43
46
  * Accepts numbers, bigints, or strings and coerces them to CheckpointNumber.
44
47
  */
45
48
  export declare const CheckpointNumberSchema: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9udW1iZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9icmFuZGVkLXR5cGVzL2NoZWNrcG9pbnRfbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBRW5FOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLENBUWhFOzs7Ozs7Ozs7Ozs7Ozs7O0FBeUREOzs7R0FHRztBQUNILGVBQU8sTUFBTSxzQkFBc0IsMklBR1csQ0FBQyJ9
49
+ /**
50
+ * Zod schema for parsing and validating CheckpointNumber values that are strictly positive.
51
+ * Accepts numbers, bigints, or strings and coerces them to CheckpointNumber.
52
+ */
53
+ export declare const CheckpointNumberPositiveSchema: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9udW1iZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9icmFuZGVkLXR5cGVzL2NoZWNrcG9pbnRfbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBRW5FOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLENBUWhFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUVEOzs7R0FHRztBQUNILGVBQU8sTUFBTSxzQkFBc0IsMklBQWdDLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsZUFBTyxNQUFNLDhCQUE4QiwySUFBZ0MsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_number.d.ts","sourceRoot":"","sources":["../../src/branded-types/checkpoint_number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAQhE;;;;;;;;;;;;;;;;AAyDD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2IAGW,CAAC"}
1
+ {"version":3,"file":"checkpoint_number.d.ts","sourceRoot":"","sources":["../../src/branded-types/checkpoint_number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAQhE;;;;;;;;;;;;;;;;;;;AAqED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2IAAgC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,8BAA8B,2IAAgC,CAAC"}
@@ -55,14 +55,23 @@ import { z } from 'zod';
55
55
  */ CheckpointNumber.isValid = function(value) {
56
56
  return typeof value === 'number' && Number.isInteger(value) && value >= 0;
57
57
  };
58
- /**
59
- * The zero checkpoint value.
60
- */ CheckpointNumber.ZERO = CheckpointNumber(0);
58
+ /** The zero checkpoint value. */ CheckpointNumber.ZERO = CheckpointNumber(0);
59
+ /** Initial checkpoint. */ CheckpointNumber.INITIAL = CheckpointNumber(1);
61
60
  /**
62
61
  * Zod schema for parsing and validating CheckpointNumber values.
63
62
  * Accepts numbers, bigints, or strings and coerces them to CheckpointNumber.
64
- */ export const CheckpointNumberSchema = z.union([
65
- z.number(),
66
- z.bigint(),
67
- z.string()
68
- ]).pipe(z.coerce.number().int().min(0)).transform((value)=>CheckpointNumber(value));
63
+ */ function makeCheckpointNumberSchema(minValue) {
64
+ return z.union([
65
+ z.number(),
66
+ z.bigint(),
67
+ z.string()
68
+ ]).pipe(z.coerce.number().int().min(minValue)).transform((value)=>CheckpointNumber(value));
69
+ }
70
+ /**
71
+ * Zod schema for parsing and validating Checkpoint values.
72
+ * Accepts numbers, bigints, or strings and coerces them to CheckpointNumber.
73
+ */ export const CheckpointNumberSchema = makeCheckpointNumberSchema(0);
74
+ /**
75
+ * Zod schema for parsing and validating CheckpointNumber values that are strictly positive.
76
+ * Accepts numbers, bigints, or strings and coerces them to CheckpointNumber.
77
+ */ export const CheckpointNumberPositiveSchema = makeCheckpointNumberSchema(1);
@@ -1,6 +1,7 @@
1
1
  export { BlockNumber, BlockNumberSchema, BlockNumberPositiveSchema } from './block_number.js';
2
- export { CheckpointNumber, CheckpointNumberSchema } from './checkpoint_number.js';
2
+ export { CheckpointNumber, CheckpointNumberSchema, CheckpointNumberPositiveSchema } from './checkpoint_number.js';
3
3
  export { EpochNumber, EpochNumberSchema } from './epoch.js';
4
+ export { IndexWithinCheckpoint, IndexWithinCheckpointSchema } from './index_within_checkpoint.js';
4
5
  export { SlotNumber, SlotNumberSchema } from './slot.js';
5
6
  export type { Branded } from './types.js';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9icmFuZGVkLXR5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekQsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQyJ9
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9icmFuZGVkLXR5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekQsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/branded-types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEzD,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/branded-types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEzD,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { BlockNumber, BlockNumberSchema, BlockNumberPositiveSchema } from './block_number.js';
2
- export { CheckpointNumber, CheckpointNumberSchema } from './checkpoint_number.js';
2
+ export { CheckpointNumber, CheckpointNumberSchema, CheckpointNumberPositiveSchema } from './checkpoint_number.js';
3
3
  export { EpochNumber, EpochNumberSchema } from './epoch.js';
4
+ export { IndexWithinCheckpoint, IndexWithinCheckpointSchema } from './index_within_checkpoint.js';
4
5
  export { SlotNumber, SlotNumberSchema } from './slot.js';
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ import type { Branded } from './types.js';
3
+ /**
4
+ * A branded type representing the index of a block within a checkpoint.
5
+ * The first block in a checkpoint has index 0, the second has index 1, etc.
6
+ *
7
+ * This is a nominal type backed by a number, but TypeScript will treat it as
8
+ * incompatible with plain numbers and other branded numeric types.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const index = IndexWithinCheckpoint(0);
13
+ * const plainNumber: number = index; // OK - IndexWithinCheckpoint is assignable to number
14
+ * const indexFromNumber: IndexWithinCheckpoint = 0; // ERROR - number is not assignable to IndexWithinCheckpoint
15
+ * ```
16
+ */
17
+ export type IndexWithinCheckpoint = Branded<number, 'IndexWithinCheckpoint'>;
18
+ /**
19
+ * Creates an IndexWithinCheckpoint from a number.
20
+ * @param value - The index (must be a non-negative integer)
21
+ * @returns The branded IndexWithinCheckpoint value
22
+ * @throws If the value is negative or not an integer
23
+ */
24
+ export declare function IndexWithinCheckpoint(value: number): IndexWithinCheckpoint;
25
+ export declare namespace IndexWithinCheckpoint {
26
+ var fromBigInt: (value: bigint) => IndexWithinCheckpoint;
27
+ }
28
+ export declare namespace IndexWithinCheckpoint {
29
+ var fromString: (value: string) => IndexWithinCheckpoint;
30
+ }
31
+ export declare namespace IndexWithinCheckpoint {
32
+ var isValid: (value: unknown) => value is IndexWithinCheckpoint;
33
+ }
34
+ export declare namespace IndexWithinCheckpoint {
35
+ var ZERO: IndexWithinCheckpoint;
36
+ }
37
+ /**
38
+ * Zod schema for parsing and validating IndexWithinCheckpoint values.
39
+ * Accepts numbers, bigints, or strings and coerces them to IndexWithinCheckpoint.
40
+ */
41
+ export declare const IndexWithinCheckpointSchema: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, IndexWithinCheckpoint, string | number | bigint>;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhfd2l0aGluX2NoZWNrcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9icmFuZGVkLXR5cGVzL2luZGV4X3dpdGhpbl9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0FBRTdFOzs7OztHQUtHO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcscUJBQXFCLENBUTFFOzs7Ozs7Ozs7Ozs7O0FBOENEOzs7R0FHRztBQUNILGVBQU8sTUFBTSwyQkFBMkIsZ0pBR1csQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index_within_checkpoint.d.ts","sourceRoot":"","sources":["../../src/branded-types/index_within_checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAQ1E;;;;;;;;;;;;;AA8CD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,gJAGW,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Creates an IndexWithinCheckpoint from a number.
4
+ * @param value - The index (must be a non-negative integer)
5
+ * @returns The branded IndexWithinCheckpoint value
6
+ * @throws If the value is negative or not an integer
7
+ */ export function IndexWithinCheckpoint(value) {
8
+ if (!Number.isInteger(value)) {
9
+ throw new Error(`IndexWithinCheckpoint must be an integer, got ${value}`);
10
+ }
11
+ if (value < 0) {
12
+ throw new Error(`IndexWithinCheckpoint must be non-negative, got ${value}`);
13
+ }
14
+ return value;
15
+ }
16
+ /**
17
+ * Creates an IndexWithinCheckpoint from a bigint.
18
+ * @param value - The index as bigint (must be a non-negative integer within safe integer range)
19
+ * @returns The branded IndexWithinCheckpoint value
20
+ * @throws If the value is negative or exceeds Number.MAX_SAFE_INTEGER
21
+ */ IndexWithinCheckpoint.fromBigInt = function(value) {
22
+ if (value < 0n) {
23
+ throw new Error(`IndexWithinCheckpoint must be non-negative, got ${value}`);
24
+ }
25
+ if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
26
+ throw new Error(`IndexWithinCheckpoint ${value} exceeds MAX_SAFE_INTEGER`);
27
+ }
28
+ return Number(value);
29
+ };
30
+ /**
31
+ * Creates an IndexWithinCheckpoint from a string.
32
+ * @param value - The index as a string
33
+ * @returns The branded IndexWithinCheckpoint value
34
+ * @throws If the string cannot be parsed as a valid index
35
+ */ IndexWithinCheckpoint.fromString = function(value) {
36
+ const parsed = parseInt(value, 10);
37
+ if (isNaN(parsed)) {
38
+ throw new Error(`Cannot parse IndexWithinCheckpoint from string: ${value}`);
39
+ }
40
+ return IndexWithinCheckpoint(parsed);
41
+ };
42
+ /**
43
+ * Type guard to check if a value is a valid IndexWithinCheckpoint.
44
+ * Note: At runtime, an IndexWithinCheckpoint is just a number, so this checks if the value
45
+ * is a non-negative integer.
46
+ */ IndexWithinCheckpoint.isValid = function(value) {
47
+ return typeof value === 'number' && Number.isInteger(value) && value >= 0;
48
+ };
49
+ /**
50
+ * The zero index value (first block in checkpoint).
51
+ */ IndexWithinCheckpoint.ZERO = IndexWithinCheckpoint(0);
52
+ /**
53
+ * Zod schema for parsing and validating IndexWithinCheckpoint values.
54
+ * Accepts numbers, bigints, or strings and coerces them to IndexWithinCheckpoint.
55
+ */ export const IndexWithinCheckpointSchema = z.union([
56
+ z.number(),
57
+ z.bigint(),
58
+ z.string()
59
+ ]).pipe(z.coerce.number().int().min(0)).transform((value)=>IndexWithinCheckpoint(value));
@@ -5,6 +5,9 @@ import { inspect } from 'util';
5
5
  * A class representing a 16 byte Buffer.
6
6
  */
7
7
  export declare class Buffer16 {
8
+ /**
9
+ * The buffer containing the hash.
10
+ */
8
11
  buffer: Buffer;
9
12
  /**
10
13
  * The size of the hash in bytes.
@@ -74,4 +77,4 @@ export declare class Buffer16 {
74
77
  */
75
78
  static random(): Buffer16;
76
79
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyMTYuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWZmZXIvYnVmZmVyMTYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBc0MsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9COztHQUVHO0FBQ0gscUJBQWEsUUFBUTtJQWVWLE1BQU0sRUFBRSxNQUFNO0lBZHZCOztPQUVHO0lBQ0gsT0FBYyxJQUFJLFNBQU07SUFFeEI7O09BRUc7SUFDSCxPQUFjLElBQUksV0FBNkM7SUFFL0Q7SUFDRTs7T0FFRztJQUNJLE1BQU0sRUFBRSxNQUFNLEVBS3RCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSw0QkFFZDtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksWUFHckQ7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUVyQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sSUFBSSxPQUFPLENBRXZCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0lBRUQsTUFBTSxrQkFFTDtJQUVEOzs7T0FHRztJQUNJLFFBQVEsV0FFZDtJQUVEOztPQUVHO0lBQ0gsT0FBYyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sWUFFcEM7SUFFRCxPQUFjLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUUvQjtJQUVEOztPQUVHO0lBQ0gsT0FBYyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxRQUFRLENBUTlDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUU5QztJQUVEOzs7T0FHRztJQUNILE9BQWMsTUFBTSxJQUFJLFFBQVEsQ0FFL0I7Q0FDRiJ9
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyMTYuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWZmZXIvYnVmZmVyMTYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBc0MsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9COztHQUVHO0FBQ0gscUJBQWEsUUFBUTtJQVlqQjs7T0FFRztJQUNJLE1BQU0sRUFBRSxNQUFNO0lBZHZCOztPQUVHO0lBQ0gsT0FBYyxJQUFJLFNBQU07SUFFeEI7O09BRUc7SUFDSCxPQUFjLElBQUksV0FBNkM7SUFFL0Q7SUFDRTs7T0FFRztJQUNJLE1BQU0sRUFBRSxNQUFNLEVBS3RCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSw0QkFFZDtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksWUFHckQ7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUVyQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sSUFBSSxPQUFPLENBRXZCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0lBRUQsTUFBTSxrQkFFTDtJQUVEOzs7T0FHRztJQUNJLFFBQVEsV0FFZDtJQUVEOztPQUVHO0lBQ0gsT0FBYyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sWUFFcEM7SUFFRCxPQUFjLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUUvQjtJQUVEOztPQUVHO0lBQ0gsT0FBYyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxRQUFRLENBUTlDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUU5QztJQUVEOzs7T0FHRztJQUNILE9BQWMsTUFBTSxJQUFJLFFBQVEsQ0FFL0I7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"buffer16.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer16.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAsC,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B;;GAEG;AACH,qBAAa,QAAQ;IAeV,MAAM,EAAE,MAAM;IAdvB;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB;;OAEG;IACH,OAAc,IAAI,WAA6C;IAE/D;IACE;;OAEG;IACI,MAAM,EAAE,MAAM,EAKtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,YAGrD;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAErC;IAED;;;OAGG;IACI,MAAM,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED,MAAM,kBAEL;IAED;;;OAGG;IACI,QAAQ,WAEd;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,YAEpC;IAED,OAAc,SAAS,CAAC,IAAI,EAAE,EAAE,YAE/B;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAQ9C;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAE9C;IAED;;;OAGG;IACH,OAAc,MAAM,IAAI,QAAQ,CAE/B;CACF"}
1
+ {"version":3,"file":"buffer16.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer16.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAsC,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B;;GAEG;AACH,qBAAa,QAAQ;IAYjB;;OAEG;IACI,MAAM,EAAE,MAAM;IAdvB;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB;;OAEG;IACH,OAAc,IAAI,WAA6C;IAE/D;IACE;;OAEG;IACI,MAAM,EAAE,MAAM,EAKtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,YAGrD;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAErC;IAED;;;OAGG;IACI,MAAM,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED,MAAM,kBAEL;IAED;;;OAGG;IACI,QAAQ,WAEd;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,YAEpC;IAED,OAAc,SAAS,CAAC,IAAI,EAAE,EAAE,YAE/B;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAQ9C;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAE9C;IAED;;;OAGG;IACH,OAAc,MAAM,IAAI,QAAQ,CAE/B;CACF"}
@@ -1,7 +1,9 @@
1
+ var _computedKey;
1
2
  import { randomBytes } from '@aztec/foundation/crypto/random';
2
3
  import { BufferReader, deserializeBigInt, serializeBigInt } from '@aztec/foundation/serialize';
3
4
  import { inspect } from 'util';
4
5
  import { bufferToHex } from '../string/index.js';
6
+ _computedKey = inspect.custom;
5
7
  /**
6
8
  * A class representing a 16 byte Buffer.
7
9
  */ export class Buffer16 {
@@ -53,7 +55,7 @@ import { bufferToHex } from '../string/index.js';
53
55
  */ toString() {
54
56
  return bufferToHex(this.buffer);
55
57
  }
56
- [inspect.custom]() {
58
+ [_computedKey]() {
57
59
  return `Buffer16<${this.toString()}>`;
58
60
  }
59
61
  toJSON() {
@@ -5,6 +5,9 @@ import { inspect } from 'util';
5
5
  * A class representing a 32 byte Buffer.
6
6
  */
7
7
  export declare class Buffer32 {
8
+ /**
9
+ * The buffer containing the hash.
10
+ */
8
11
  buffer: Buffer;
9
12
  /**
10
13
  * The size of the hash in bytes.
@@ -81,4 +84,4 @@ export declare class Buffer32 {
81
84
  */
82
85
  static random(): Buffer32;
83
86
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyMzIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWZmZXIvYnVmZmVyMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBc0MsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9COztHQUVHO0FBQ0gscUJBQWEsUUFBUTtJQWVWLE1BQU0sRUFBRSxNQUFNO0lBZHZCOztPQUVHO0lBQ0gsT0FBYyxJQUFJLFNBQU07SUFFeEI7O09BRUc7SUFDSCxPQUFjLElBQUksV0FBNkM7SUFFL0Q7SUFDRTs7T0FFRztJQUNJLE1BQU0sRUFBRSxNQUFNLEVBS3RCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSw0QkFFZDtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksWUFHckQ7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUVyQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sSUFBSSxPQUFPLENBRXZCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0lBRUQsTUFBTSxrQkFFTDtJQUVEOzs7T0FHRztJQUNJLFFBQVEsV0FFZDtJQUNEOztPQUVHO0lBQ0gsT0FBYyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sWUFFcEM7SUFFRCxPQUFjLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUUvQjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBYyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sWUFNeEM7SUFFRDs7T0FFRztJQUNILE9BQWMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsUUFBUSxDQVE5QztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFFBQVEsQ0FFOUM7SUFFRDs7O09BR0c7SUFDSCxPQUFjLE1BQU0sSUFBSSxRQUFRLENBRS9CO0NBQ0YifQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyMzIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWZmZXIvYnVmZmVyMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBc0MsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9COztHQUVHO0FBQ0gscUJBQWEsUUFBUTtJQVlqQjs7T0FFRztJQUNJLE1BQU0sRUFBRSxNQUFNO0lBZHZCOztPQUVHO0lBQ0gsT0FBYyxJQUFJLFNBQU07SUFFeEI7O09BRUc7SUFDSCxPQUFjLElBQUksV0FBNkM7SUFFL0Q7SUFDRTs7T0FFRztJQUNJLE1BQU0sRUFBRSxNQUFNLEVBS3RCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSw0QkFFZDtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksWUFHckQ7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUVyQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sSUFBSSxPQUFPLENBRXZCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0lBRUQsTUFBTSxrQkFFTDtJQUVEOzs7T0FHRztJQUNJLFFBQVEsV0FFZDtJQUNEOztPQUVHO0lBQ0gsT0FBYyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sWUFFcEM7SUFFRCxPQUFjLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUUvQjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBYyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sWUFNeEM7SUFFRDs7T0FFRztJQUNILE9BQWMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsUUFBUSxDQVE5QztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFFBQVEsQ0FFOUM7SUFFRDs7O09BR0c7SUFDSCxPQUFjLE1BQU0sSUFBSSxRQUFRLENBRS9CO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"buffer32.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer32.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAsC,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B;;GAEG;AACH,qBAAa,QAAQ;IAeV,MAAM,EAAE,MAAM;IAdvB;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB;;OAEG;IACH,OAAc,IAAI,WAA6C;IAE/D;IACE;;OAEG;IACI,MAAM,EAAE,MAAM,EAKtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,YAGrD;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAErC;IAED;;;OAGG;IACI,MAAM,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED,MAAM,kBAEL;IAED;;;OAGG;IACI,QAAQ,WAEd;IACD;;OAEG;IACH,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,YAEpC;IAED,OAAc,SAAS,CAAC,IAAI,EAAE,EAAE,YAE/B;IAED;;;;;OAKG;IACH,OAAc,YAAY,CAAC,MAAM,EAAE,MAAM,YAMxC;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAQ9C;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAE9C;IAED;;;OAGG;IACH,OAAc,MAAM,IAAI,QAAQ,CAE/B;CACF"}
1
+ {"version":3,"file":"buffer32.d.ts","sourceRoot":"","sources":["../../src/buffer/buffer32.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAsC,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B;;GAEG;AACH,qBAAa,QAAQ;IAYjB;;OAEG;IACI,MAAM,EAAE,MAAM;IAdvB;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB;;OAEG;IACH,OAAc,IAAI,WAA6C;IAE/D;IACE;;OAEG;IACI,MAAM,EAAE,MAAM,EAKtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,YAGrD;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAErC;IAED;;;OAGG;IACI,MAAM,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED,MAAM,kBAEL;IAED;;;OAGG;IACI,QAAQ,WAEd;IACD;;OAEG;IACH,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,YAEpC;IAED,OAAc,SAAS,CAAC,IAAI,EAAE,EAAE,YAE/B;IAED;;;;;OAKG;IACH,OAAc,YAAY,CAAC,MAAM,EAAE,MAAM,YAMxC;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAQ9C;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAE9C;IAED;;;OAGG;IACH,OAAc,MAAM,IAAI,QAAQ,CAE/B;CACF"}
@@ -1,7 +1,9 @@
1
+ var _computedKey;
1
2
  import { randomBytes } from '@aztec/foundation/crypto/random';
2
3
  import { BufferReader, deserializeBigInt, serializeBigInt } from '@aztec/foundation/serialize';
3
4
  import { inspect } from 'util';
4
5
  import { bufferToHex } from '../string/index.js';
6
+ _computedKey = inspect.custom;
5
7
  /**
6
8
  * A class representing a 32 byte Buffer.
7
9
  */ export class Buffer32 {
@@ -53,7 +55,7 @@ import { bufferToHex } from '../string/index.js';
53
55
  */ toString() {
54
56
  return bufferToHex(this.buffer);
55
57
  }
56
- [inspect.custom]() {
58
+ [_computedKey]() {
57
59
  return `Buffer32<${this.toString()}>`;
58
60
  }
59
61
  toJSON() {
@@ -109,6 +109,17 @@ export declare function stdDev(values: number[]): number | undefined;
109
109
  export declare function countWhile<T>(collection: T[], predicate: (x: T) => boolean): number;
110
110
  /** Splits the given iterable into chunks of the given size. Last chunk may be of smaller than the requested size. */
111
111
  export declare function chunk<T>(items: T[], chunkSize: number): T[][];
112
+ /**
113
+ * Splits the given array into chunks of the given size, wrapping around to the beginning
114
+ * if the last chunk would be smaller than the requested size.
115
+ * Returns empty array for empty input. Returns single chunk with all items if chunkSize <= 0.
116
+ */
117
+ export declare function chunkWrapAround<T>(items: T[], chunkSize: number): T[][];
118
+ /**
119
+ * Splits the given iterable into chunks based on the key returned by the given function.
120
+ * Items must be contiguous to be included in the same chunk.
121
+ */
122
+ export declare function chunkBy<T, U>(items: T[], fn: (item: T) => U): T[][];
112
123
  /** Partitions the given iterable into two arrays based on the predicate. */
113
124
  export declare function partition<T>(items: T[], predicate: (item: T) => boolean): [T[], T[]];
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2xsZWN0aW9uL2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5EOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxFQUM3QyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQ1IsSUFBSSxFQUFFLENBQUMsRUFDUCxNQUFNLEVBQUUsQ0FBQyxFQUNULFFBQVEsU0FBcUMsR0FDNUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FNYjtBQUVELDhFQUE4RTtBQUM5RSx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FHckY7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FNNUY7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssT0FBTyxHQUFHLE9BQU8sQ0FPaEY7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLG1CQUFtQixDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxPQUFPLEdBQUcsTUFBTSxD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
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2xsZWN0aW9uL2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5EOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxFQUM3QyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQ1IsSUFBSSxFQUFFLENBQUMsRUFDUCxNQUFNLEVBQUUsQ0FBQyxFQUNULFFBQVEsU0FBcUMsR0FDNUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FNYjtBQUVELDhFQUE4RTtBQUM5RSx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FHckY7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FNNUY7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssT0FBTyxHQUFHLE9BQU8sQ0FPaEY7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLG1CQUFtQixDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxPQUFPLEdBQUcsTUFBTSxDQUV0RjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FFN0Q7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQixVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBTTFGO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsV0FBVyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBRzlGO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQU83RjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsNkJBQTZCLENBQzNDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUE7Q0FBRSxHQUFHO0lBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFBO0NBQUUsQ0FBQyxHQUFHO0lBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0NBQUUsQ0FBQyxFQUFFLFVBTS9GO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FFdkM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBRTNEO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFpQyxHQUFHLE9BQU8sQ0FVaEg7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FFL0U7QUFFRCwyQ0FBMkM7QUFDM0Msd0JBQWdCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUV6QztBQUVELG1GQUFtRjtBQUNuRix3QkFBZ0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO0FBQzFELGtGQUFrRjtBQUNsRix3QkFBZ0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO0FBbUIxRCxxRkFBcUY7QUFDckYsd0JBQWdCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLHNCQUtwQztBQUVELG1HQUFtRztBQUNuRyx3QkFBZ0IsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsc0JBT3hDO0FBRUQsNkdBQTZHO0FBQzdHLHdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxzQkFLdEM7QUFFRCx1RkFBdUY7QUFDdkYsd0JBQWdCLFVBQVUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxHQUFHLE1BQU0sQ0FVbkY7QUFFRCxxSEFBcUg7QUFDckgsd0JBQWdCLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FTN0Q7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FjdkU7QUFJRDs7O0dBR0c7QUFDSCx3QkFBZ0IsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBdUJuRTtBQUVELDRFQUE0RTtBQUM1RSx3QkFBZ0IsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQVdwRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/collection/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/collection/array.ts"],"names":[],"mappings":"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"}
@@ -201,6 +201,57 @@ export function median(arr) {
201
201
  }
202
202
  return chunks;
203
203
  }
204
+ /**
205
+ * Splits the given array into chunks of the given size, wrapping around to the beginning
206
+ * if the last chunk would be smaller than the requested size.
207
+ * Returns empty array for empty input. Returns single chunk with all items if chunkSize <= 0.
208
+ */ export function chunkWrapAround(items, chunkSize) {
209
+ if (items.length === 0) {
210
+ return [];
211
+ }
212
+ if (chunkSize <= 0 || items.length <= chunkSize) {
213
+ return [
214
+ items
215
+ ];
216
+ }
217
+ const remainder = items.length % chunkSize;
218
+ if (remainder === 0) {
219
+ return chunk(items, chunkSize);
220
+ }
221
+ const wrapAroundCount = chunkSize - remainder;
222
+ const wrappedItems = [
223
+ ...items,
224
+ ...items.slice(0, wrapAroundCount)
225
+ ];
226
+ return chunk(wrappedItems, chunkSize);
227
+ }
228
+ const UNINITIALIZED = Symbol('uninitialized');
229
+ /**
230
+ * Splits the given iterable into chunks based on the key returned by the given function.
231
+ * Items must be contiguous to be included in the same chunk.
232
+ */ export function chunkBy(items, fn) {
233
+ const chunks = [];
234
+ let currentChunk = [];
235
+ let currentKey = UNINITIALIZED;
236
+ for (const item of items){
237
+ const key = fn(item);
238
+ if (currentKey === UNINITIALIZED || key !== currentKey) {
239
+ if (currentChunk.length > 0) {
240
+ chunks.push(currentChunk);
241
+ }
242
+ currentChunk = [
243
+ item
244
+ ];
245
+ currentKey = key;
246
+ } else {
247
+ currentChunk.push(item);
248
+ }
249
+ }
250
+ if (currentChunk.length > 0) {
251
+ chunks.push(currentChunk);
252
+ }
253
+ return chunks;
254
+ }
204
255
  /** Partitions the given iterable into two arrays based on the predicate. */ export function partition(items, predicate) {
205
256
  const pass = [];
206
257
  const fail = [];