@aztec/foundation 0.37.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dest/abi/abi.d.ts +6 -21
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +2 -13
  4. package/dest/abi/function_selector.d.ts +4 -0
  5. package/dest/abi/function_selector.d.ts.map +1 -1
  6. package/dest/abi/function_selector.js +10 -1
  7. package/dest/collection/index.d.ts +1 -0
  8. package/dest/collection/index.d.ts.map +1 -1
  9. package/dest/collection/index.js +2 -1
  10. package/dest/collection/object.d.ts +4 -0
  11. package/dest/collection/object.d.ts.map +1 -0
  12. package/dest/collection/object.js +8 -0
  13. package/dest/iterable/all.d.ts +9 -0
  14. package/dest/iterable/all.d.ts.map +1 -0
  15. package/dest/iterable/all.js +19 -0
  16. package/dest/iterable/filter.d.ts +10 -0
  17. package/dest/iterable/filter.d.ts.map +1 -0
  18. package/dest/iterable/filter.js +49 -0
  19. package/dest/iterable/index.d.ts +7 -0
  20. package/dest/iterable/index.d.ts.map +1 -0
  21. package/dest/iterable/index.js +7 -0
  22. package/dest/iterable/isAsyncIt.d.ts +7 -0
  23. package/dest/iterable/isAsyncIt.d.ts.map +1 -0
  24. package/dest/iterable/isAsyncIt.js +9 -0
  25. package/dest/iterable/map.d.ts +12 -0
  26. package/dest/iterable/map.d.ts.map +1 -0
  27. package/dest/iterable/map.js +37 -0
  28. package/dest/iterable/peek.d.ts +19 -0
  29. package/dest/iterable/peek.d.ts.map +1 -0
  30. package/dest/iterable/peek.js +33 -0
  31. package/dest/iterable/sort.d.ts +14 -0
  32. package/dest/iterable/sort.d.ts.map +1 -0
  33. package/dest/iterable/sort.js +16 -0
  34. package/dest/iterable/take.d.ts +10 -0
  35. package/dest/iterable/take.d.ts.map +1 -0
  36. package/dest/iterable/take.js +33 -0
  37. package/package.json +3 -2
  38. package/src/abi/abi.ts +6 -32
  39. package/src/abi/function_selector.ts +11 -0
  40. package/src/collection/index.ts +1 -0
  41. package/src/collection/object.ts +19 -0
  42. package/src/iterable/all.ts +32 -0
  43. package/src/iterable/filter.ts +77 -0
  44. package/src/iterable/index.ts +6 -0
  45. package/src/iterable/isAsyncIt.ts +8 -0
  46. package/src/iterable/map.ts +66 -0
  47. package/src/iterable/peek.ts +58 -0
  48. package/src/iterable/sort.ts +39 -0
  49. package/src/iterable/take.ts +54 -0
package/dest/abi/abi.d.ts CHANGED
@@ -161,18 +161,14 @@ export interface FunctionAbi {
161
161
  * The artifact entry of a function.
162
162
  */
163
163
  export interface FunctionArtifact extends FunctionAbi {
164
- /**
165
- * The ACIR bytecode of the function.
166
- */
164
+ /** The ACIR bytecode of the function. */
167
165
  bytecode: Buffer;
168
- /**
169
- * The verification key of the function.
170
- */
166
+ /** The verification key of the function. */
171
167
  verificationKey?: string;
172
- /**
173
- * Maps opcodes to source code pointers
174
- */
168
+ /** Maps opcodes to source code pointers */
175
169
  debugSymbols: string;
170
+ /** Debug metadata for the function. */
171
+ debug?: FunctionDebugMetadata;
176
172
  }
177
173
  /**
178
174
  * A file ID. It's assigned during compilation.
@@ -311,21 +307,10 @@ export interface FunctionDebugMetadata {
311
307
  */
312
308
  files: DebugFileMap;
313
309
  }
314
- /** A function artifact with optional debug metadata */
315
- export interface FunctionArtifactWithDebugMetadata extends FunctionArtifact {
316
- /** Debug metadata for the function. */
317
- debug?: FunctionDebugMetadata;
318
- }
319
- /**
320
- * Gets a function artifact given its name or selector.
321
- */
322
- export declare function getFunctionArtifact(artifact: ContractArtifact, functionNameOrSelector: string | FunctionSelector): FunctionArtifact;
323
- /** @deprecated Use getFunctionArtifact instead */
324
- export declare function getFunctionArtifactWithSelector(artifact: ContractArtifact, selector: FunctionSelector): FunctionArtifact;
325
310
  /**
326
311
  * Gets a function artifact including debug metadata given its name or selector.
327
312
  */
328
- export declare function getFunctionArtifactWithDebugMetadata(artifact: ContractArtifact, functionNameOrSelector: string | FunctionSelector): FunctionArtifactWithDebugMetadata;
313
+ export declare function getFunctionArtifact(artifact: ContractArtifact, functionNameOrSelector: string | FunctionSelector): FunctionArtifact;
329
314
  /**
330
315
  * Gets the debug metadata of a given function from the contract artifact
331
316
  * @param artifact - The contract build artifact
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/abi/abi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/abi/abi.ts"],"names":[],"mappings":"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"}
package/dest/abi/abi.js CHANGED
@@ -17,7 +17,7 @@ export var FunctionType;
17
17
  FunctionType["UNCONSTRAINED"] = "unconstrained";
18
18
  })(FunctionType || (FunctionType = {}));
19
19
  /**
20
- * Gets a function artifact given its name or selector.
20
+ * Gets a function artifact including debug metadata given its name or selector.
21
21
  */
22
22
  export function getFunctionArtifact(artifact, functionNameOrSelector) {
23
23
  const functionArtifact = artifact.functions.find(f => typeof functionNameOrSelector === 'string'
@@ -26,17 +26,6 @@ export function getFunctionArtifact(artifact, functionNameOrSelector) {
26
26
  if (!functionArtifact) {
27
27
  throw new Error(`Unknown function ${functionNameOrSelector}`);
28
28
  }
29
- return functionArtifact;
30
- }
31
- /** @deprecated Use getFunctionArtifact instead */
32
- export function getFunctionArtifactWithSelector(artifact, selector) {
33
- return getFunctionArtifact(artifact, selector);
34
- }
35
- /**
36
- * Gets a function artifact including debug metadata given its name or selector.
37
- */
38
- export function getFunctionArtifactWithDebugMetadata(artifact, functionNameOrSelector) {
39
- const functionArtifact = getFunctionArtifact(artifact, functionNameOrSelector);
40
29
  const debugMetadata = getFunctionDebugMetadata(artifact, functionArtifact);
41
30
  return { ...functionArtifact, debug: debugMetadata };
42
31
  }
@@ -99,4 +88,4 @@ export function getInitializer(contract, initializerNameOrArtifact) {
99
88
  return initializerNameOrArtifact;
100
89
  }
101
90
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQXlEL0I7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQ2hDLDJDQUFpQixDQUFBO0lBQ2pCLDJDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBR2pDO0FBK0VEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0lBQ2IsK0NBQStCLENBQUE7QUFDakMsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBaU5EOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxRQUEwQixFQUMxQixzQkFBaUQ7SUFFakQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuRCxPQUFPLHNCQUFzQixLQUFLLFFBQVE7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQXNCO1FBQ25DLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQ3hELENBQUM7SUFDRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixzQkFBc0IsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQUVELGtEQUFrRDtBQUNsRCxNQUFNLFVBQVUsK0JBQStCLENBQUMsUUFBMEIsRUFBRSxRQUEwQjtJQUNwRyxP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
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQXlEL0I7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQ2hDLDJDQUFpQixDQUFBO0lBQ2pCLDJDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBR2pDO0FBK0VEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0lBQ2IsK0NBQStCLENBQUE7QUFDakMsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBdU1EOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxRQUEwQixFQUMxQixzQkFBaUQ7SUFFakQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuRCxPQUFPLHNCQUFzQixLQUFLLFFBQVE7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQXNCO1FBQ25DLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQ3hELENBQUM7SUFDRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixzQkFBc0IsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixFQUFFLEtBQUss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
@@ -69,5 +69,9 @@ export declare class FunctionSelector extends Selector {
69
69
  * Creates a random instance.
70
70
  */
71
71
  static random(): FunctionSelector;
72
+ toJSON(): {
73
+ type: string;
74
+ value: string;
75
+ };
72
76
  }
73
77
  //# sourceMappingURL=function_selector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"function_selector.d.ts","sourceRoot":"","sources":["../../src/abi/function_selector.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,oFAAoF;AACpF,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C;;;OAGG;IACM,MAAM,CAAC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,YAAY,EAAE,CAAA;KAAE,GAAG,OAAO;IACjE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO;IAC/D,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAcjD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAM/C;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;IAIvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM;IAQtC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM;IAQlC;;;OAGG;IACH,MAAM,CAAC,KAAK;IAIZ;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,YAAY,EAAE,CAAA;KAAE,GAAG,gBAAgB;IAClG,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,gBAAgB;IAcxF;;OAEG;IACH,MAAM,CAAC,MAAM;CAGd"}
1
+ {"version":3,"file":"function_selector.d.ts","sourceRoot":"","sources":["../../src/abi/function_selector.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,oFAAoF;AACpF,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C;;;OAGG;IACM,MAAM,CAAC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,YAAY,EAAE,CAAA;KAAE,GAAG,OAAO;IACjE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO;IAC/D,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAcjD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAM/C;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;IAIvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM;IAQtC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM;IAQlC;;;OAGG;IACH,MAAM,CAAC,KAAK;IAIZ;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,YAAY,EAAE,CAAA;KAAE,GAAG,gBAAgB;IAClG,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,gBAAgB;IAcxF;;OAEG;IACH,MAAM,CAAC,MAAM;IAIb,MAAM;;;;CAMP"}
@@ -2,6 +2,7 @@ import { fromHex, toBigIntBE } from '../bigint-buffer/index.js';
2
2
  import { keccak256, randomBytes } from '../crypto/index.js';
3
3
  import { BufferReader } from '../serialize/buffer_reader.js';
4
4
  import { FieldReader } from '../serialize/field_reader.js';
5
+ import { TypeRegistry } from '../serialize/type_registry.js';
5
6
  import { decodeFunctionSignature } from './decoder.js';
6
7
  import { Selector } from './selector.js';
7
8
  /** A function selector is the first 4 bytes of the hash of a function signature. */
@@ -87,5 +88,13 @@ export class FunctionSelector extends Selector {
87
88
  static random() {
88
89
  return FunctionSelector.fromBuffer(randomBytes(Selector.SIZE));
89
90
  }
91
+ toJSON() {
92
+ return {
93
+ type: 'FunctionSelector',
94
+ value: this.toString(),
95
+ };
96
+ }
90
97
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2Z1bmN0aW9uX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVXpDLG9GQUFvRjtBQUNwRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsUUFBUTtJQVFuQyxNQUFNLENBQ2IsS0FBK0UsRUFDL0UsV0FBNEI7UUFFNUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLFdBQVksQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQzthQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1B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
98
+ // For deserializing JSON.
99
+ TypeRegistry.register('FunctionSelector', FunctionSelector);
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2Z1bmN0aW9uX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVV6QyxvRkFBb0Y7QUFDcEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7SUFRbkMsTUFBTSxDQUNiLEtBQStFLEVBQy9FLFdBQTRCO1FBRTVCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxXQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDM0YsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FB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
@@ -1,2 +1,3 @@
1
1
  export * from './array.js';
2
+ export * from './object.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collection/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collection/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './array.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29sbGVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQyJ9
2
+ export * from './object.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29sbGVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ /** Returns a new object with the same keys and where each value has been passed through the mapping function. */
2
+ export declare function mapValues<K extends string | number | symbol, T, U>(obj: Record<K, T>, fn: (value: T) => U): Record<K, U>;
3
+ export declare function mapValues<K extends string | number | symbol, T, U>(obj: Partial<Record<K, T>>, fn: (value: T) => U): Partial<Record<K, U>>;
4
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/collection/object.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EAChE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChB,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EAChE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC1B,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export function mapValues(obj, fn) {
2
+ const result = {};
3
+ for (const key in obj) {
4
+ result[key] = fn(obj[key]);
5
+ }
6
+ return result;
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbGxlY3Rpb24vb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sVUFBVSxTQUFTLENBQ3ZCLEdBQWlCLEVBQ2pCLEVBQW1CO0lBRW5CLE1BQU0sTUFBTSxHQUFpQixFQUFrQixDQUFDO0lBQ2hELEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Collects all values from an (async) iterable and returns them as an array
3
+ * @param source - Iterable to collect all values from
4
+ * @returns All of the iterable's values as an array.
5
+ */
6
+ declare function all<T>(source: Iterable<T>): T[];
7
+ declare function all<T>(source: Iterable<T> | AsyncIterable<T>): Promise<T[]>;
8
+ export { all };
9
+ //# sourceMappingURL=all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/iterable/all.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,iBAAS,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1C,iBAAS,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAuBtE,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { isAsyncIterable } from './isAsyncIt.js';
2
+ function all(source) {
3
+ if (isAsyncIterable(source)) {
4
+ return (async () => {
5
+ const arr = [];
6
+ for await (const entry of source) {
7
+ arr.push(entry);
8
+ }
9
+ return arr;
10
+ })();
11
+ }
12
+ const arr = [];
13
+ for (const entry of source) {
14
+ arr.push(entry);
15
+ }
16
+ return arr;
17
+ }
18
+ export { all };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2l0ZXJhYmxlL2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTakQsU0FBUyxHQUFHLENBQUksTUFBc0M7SUFDcEQsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBRWYsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFFZixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyJ9
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Filters the passed (async) iterable by using the filter function.
3
+ * @param source - An iterable to filter.
4
+ * @returns A generator of the filtered values.
5
+ */
6
+ declare function filter<T>(source: Iterable<T>, fn: (val: T, index: number) => Promise<boolean>): AsyncGenerator<T, void, undefined>;
7
+ declare function filter<T>(source: Iterable<T>, fn: (val: T, index: number) => boolean): Generator<T, void, undefined>;
8
+ declare function filter<T>(source: Iterable<T> | AsyncIterable<T>, fn: (val: T, index: number) => boolean | Promise<boolean>): AsyncGenerator<T, void, undefined>;
9
+ export { filter };
10
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/iterable/filter.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,iBAAS,MAAM,CAAC,CAAC,EACf,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAC9C,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACtC,iBAAS,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/G,iBAAS,MAAM,CAAC,CAAC,EACf,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EACtC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACxD,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAyDtC,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { peek } from './peek.js';
2
+ function isAsyncIterable(thing) {
3
+ return thing[Symbol.asyncIterator] != null;
4
+ }
5
+ function filter(source, fn) {
6
+ let index = 0;
7
+ if (isAsyncIterable(source)) {
8
+ return (async function* () {
9
+ for await (const entry of source) {
10
+ if (await fn(entry, index++)) {
11
+ yield entry;
12
+ }
13
+ }
14
+ })();
15
+ }
16
+ // if mapping function returns a promise we have to return an async generator
17
+ const peekable = peek(source);
18
+ const { value, done } = peekable.next();
19
+ if (done === true) {
20
+ return (function* () { })();
21
+ }
22
+ const res = fn(value, index++);
23
+ // @ts-expect-error .then is not present on O
24
+ if (typeof res.then === 'function') {
25
+ return (async function* () {
26
+ if (await res) {
27
+ yield value;
28
+ }
29
+ for await (const entry of peekable) {
30
+ if (await fn(entry, index++)) {
31
+ yield entry;
32
+ }
33
+ }
34
+ })();
35
+ }
36
+ const func = fn;
37
+ return (function* () {
38
+ if (res === true) {
39
+ yield value;
40
+ }
41
+ for (const entry of peekable) {
42
+ if (func(entry, index++)) {
43
+ yield entry;
44
+ }
45
+ }
46
+ })();
47
+ }
48
+ export { filter };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2l0ZXJhYmxlL2ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLFNBQVMsZUFBZSxDQUFJLEtBQVU7SUFDcEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQztBQUM3QyxDQUFDO0FBZ0JELFNBQVMsTUFBTSxDQUNiLE1BQXNDLEVBQ3RDLEVBQXlEO0lBRXpELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVkLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO1lBQ3JCLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxJQUFJLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQzdCLE1BQU0sS0FBSyxDQUFDO2dCQUNkLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXhDLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBSyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFL0IsNkNBQTZDO0lBQzdDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQztZQUNyQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBRUQsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ25DLElBQUksTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsTUFBTSxLQUFLLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLEVBQXdDLENBQUM7SUFFdEQsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNmLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDUCxDQUFDO0FBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDIn0=
@@ -0,0 +1,7 @@
1
+ export * from './map.js';
2
+ export * from './filter.js';
3
+ export * from './sort.js';
4
+ export * from './take.js';
5
+ export * from './all.js';
6
+ export * from './peek.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/iterable/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './map.js';
2
+ export * from './filter.js';
3
+ export * from './sort.js';
4
+ export * from './take.js';
5
+ export * from './all.js';
6
+ export * from './peek.js';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaXRlcmFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUMifQ==
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Utility function to type check an AsyncIterable
3
+ * @param thing - Input to type check
4
+ * @returns Type-checked input
5
+ */
6
+ export declare function isAsyncIterable<T>(thing: any): thing is AsyncIterable<T>;
7
+ //# sourceMappingURL=isAsyncIt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAsyncIt.d.ts","sourceRoot":"","sources":["../../src/iterable/isAsyncIt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAExE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Utility function to type check an AsyncIterable
3
+ * @param thing - Input to type check
4
+ * @returns Type-checked input
5
+ */
6
+ export function isAsyncIterable(thing) {
7
+ return thing[Symbol.asyncIterator] != null;
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBc3luY0l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2l0ZXJhYmxlL2lzQXN5bmNJdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBSSxLQUFVO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDN0MsQ0FBQyJ9
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Takes an (async) iterable and returns one with each item mapped by the passed
3
+ * function.
4
+ * @param source - The iterable to run the map function on.
5
+ * @param func - The function to run over the iterable's items.
6
+ * @returns A generator of the mapped items.
7
+ */
8
+ declare function map<I, O>(source: Iterable<I>, func: (val: I, index: number) => Promise<O>): AsyncGenerator<O, void, undefined>;
9
+ declare function map<I, O>(source: Iterable<I>, func: (val: I, index: number) => O): Generator<O, void, undefined>;
10
+ declare function map<I, O>(source: AsyncIterable<I> | Iterable<I>, func: (val: I, index: number) => O | Promise<O>): AsyncGenerator<O, void, undefined>;
11
+ export { map };
12
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/iterable/map.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,iBAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EACf,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1C,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACtC,iBAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3G,iBAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EACf,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EACtC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC9C,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AA+CtC,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { isAsyncIterable } from './isAsyncIt.js';
2
+ import { peek } from './peek.js';
3
+ function map(source, func) {
4
+ let index = 0;
5
+ if (isAsyncIterable(source)) {
6
+ return (async function* () {
7
+ for await (const val of source) {
8
+ yield func(val, index++);
9
+ }
10
+ })();
11
+ }
12
+ // if mapping function returns a promise we have to return an async generator
13
+ const peekable = peek(source);
14
+ const { value, done } = peekable.next();
15
+ if (done === true) {
16
+ return (function* () { })();
17
+ }
18
+ const res = func(value, index++);
19
+ // @ts-expect-error .then is not present on O
20
+ if (typeof res.then === 'function') {
21
+ return (async function* () {
22
+ yield await res;
23
+ for await (const val of peekable) {
24
+ yield func(val, index++);
25
+ }
26
+ })();
27
+ }
28
+ const fn = func;
29
+ return (function* () {
30
+ yield res;
31
+ for (const val of peekable) {
32
+ yield fn(val, index++);
33
+ }
34
+ })();
35
+ }
36
+ export { map };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2l0ZXJhYmxlL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWtCakMsU0FBUyxHQUFHLENBQ1YsTUFBc0MsRUFDdEMsSUFBK0M7SUFFL0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRWQsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsS0FBSyxTQUFTLENBQUM7WUFDckIsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFeEMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUVqQyw2Q0FBNkM7SUFDN0MsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLENBQUM7WUFFaEIsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLElBQW9DLENBQUM7SUFFaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNmLE1BQU0sR0FBUSxDQUFDO1FBRWYsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNQLENBQUM7QUFFRCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMifQ==
@@ -0,0 +1,19 @@
1
+ export interface Peek<T> {
2
+ peek(): IteratorResult<T, undefined>;
3
+ }
4
+ export interface AsyncPeek<T> {
5
+ peek(): Promise<IteratorResult<T, undefined>>;
6
+ }
7
+ export interface Push<T> {
8
+ push(value: T): void;
9
+ }
10
+ export type Peekable<T> = Iterable<T> & Peek<T> & Push<T> & Iterator<T>;
11
+ export type AsyncPeekable<T> = AsyncIterable<T> & AsyncPeek<T> & Push<T> & AsyncIterator<T>;
12
+ /**
13
+ * Utility function that allows peeking into the contents of an async iterator.
14
+ * @param iterable - The async iterator to peek the values of.
15
+ */
16
+ declare function peekable<T>(iterable: Iterable<T>): Peekable<T>;
17
+ declare function peekable<T>(iterable: AsyncIterable<T>): AsyncPeekable<T>;
18
+ export { peekable as peek };
19
+ //# sourceMappingURL=peek.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peek.d.ts","sourceRoot":"","sources":["../../src/iterable/peek.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,IAAI,IAAI,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAE5F;;;GAGG;AACH,iBAAS,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzD,iBAAS,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAoCnE,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ function peekable(iterable) {
2
+ const [iterator, symbol] =
3
+ // @ts-expect-error can't use Symbol.asyncIterator to index iterable since it might be Iterable
4
+ iterable[Symbol.asyncIterator] != null
5
+ ? // @ts-expect-error can't use Symbol.asyncIterator to index iterable since it might be Iterable
6
+ [iterable[Symbol.asyncIterator](), Symbol.asyncIterator]
7
+ : // @ts-expect-error can't use Symbol.iterator to index iterable since it might be AsyncIterable
8
+ [iterable[Symbol.iterator](), Symbol.iterator];
9
+ const queue = [];
10
+ // @ts-expect-error can't use symbol to index peekable
11
+ return {
12
+ peek: () => {
13
+ return iterator.next();
14
+ },
15
+ push: (value) => {
16
+ queue.push(value);
17
+ },
18
+ next: () => {
19
+ if (queue.length > 0) {
20
+ return {
21
+ done: false,
22
+ value: queue.shift(),
23
+ };
24
+ }
25
+ return iterator.next();
26
+ },
27
+ [symbol]() {
28
+ return this;
29
+ },
30
+ };
31
+ }
32
+ export { peekable as peek };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pdGVyYWJsZS9wZWVrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCQSxTQUFTLFFBQVEsQ0FBSSxRQUF3QztJQUMzRCxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUN0QiwrRkFBK0Y7SUFDL0YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJO1FBQ3BDLENBQUMsQ0FBQywrRkFBK0Y7WUFDL0YsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMxRCxDQUFDLENBQUMsK0ZBQStGO1lBQy9GLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVyRCxNQUFNLEtBQUssR0FBVSxFQUFFLENBQUM7SUFFeEIsc0RBQXNEO0lBQ3RELE9BQU87UUFDTCxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ1QsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ25CLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELElBQUksRUFBRSxHQUFHLEVBQUU7WUFDVCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE9BQU87b0JBQ0wsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUU7aUJBQ3JCLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELENBQUMsTUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDIn0=
@@ -0,0 +1,14 @@
1
+ export interface CompareFunction<T> {
2
+ (a: T, b: T): number;
3
+ }
4
+ /**
5
+ * Collects all values from an async iterator, sorts them
6
+ * using the passed function and yields them.
7
+ * @param source - Iterable to sort.
8
+ * @param sorter - Sorting function.
9
+ * @returns A generator of the sorted values.
10
+ */
11
+ declare function sort<T>(source: Iterable<T>, sorter: CompareFunction<T>): Generator<T, void, undefined>;
12
+ declare function sort<T>(source: Iterable<T> | AsyncIterable<T>, sorter: CompareFunction<T>): AsyncGenerator<T, void, undefined>;
13
+ export { sort };
14
+ //# sourceMappingURL=sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/iterable/sort.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACjG,iBAAS,IAAI,CAAC,CAAC,EACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EACtC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAoBtC,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { all } from './all.js';
2
+ import { isAsyncIterable } from './isAsyncIt.js';
3
+ function sort(source, sorter) {
4
+ if (isAsyncIterable(source)) {
5
+ return (async function* () {
6
+ const arr = await all(source);
7
+ yield* arr.sort(sorter);
8
+ })();
9
+ }
10
+ return (function* () {
11
+ const arr = all(source);
12
+ yield* arr.sort(sorter);
13
+ })();
14
+ }
15
+ export { sort };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pdGVyYWJsZS9zb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBa0JqRCxTQUFTLElBQUksQ0FDWCxNQUFzQyxFQUN0QyxNQUEwQjtJQUUxQixJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQztZQUNyQixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUU5QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNmLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDUCxDQUFDO0FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDIn0=
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Stop iteration after n items have been received.
3
+ * @param source - An iterable to take n items from.
4
+ * @param limit - The number of items to take from the iterable.
5
+ * @returns A generator, limited to n items.
6
+ */
7
+ declare function take<T>(source: Iterable<T>, limit: number): Generator<T, void, undefined>;
8
+ declare function take<T>(source: Iterable<T> | AsyncIterable<T>, limit: number): AsyncGenerator<T, void, undefined>;
9
+ export { take };
10
+ //# sourceMappingURL=take.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"take.d.ts","sourceRoot":"","sources":["../../src/iterable/take.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACpF,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AA4C5G,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { isAsyncIterable } from './isAsyncIt.js';
2
+ function take(source, limit) {
3
+ if (isAsyncIterable(source)) {
4
+ return (async function* () {
5
+ let items = 0;
6
+ if (limit < 1) {
7
+ return;
8
+ }
9
+ for await (const entry of source) {
10
+ yield entry;
11
+ items++;
12
+ if (items === limit) {
13
+ return;
14
+ }
15
+ }
16
+ })();
17
+ }
18
+ return (function* () {
19
+ let items = 0;
20
+ if (limit < 1) {
21
+ return;
22
+ }
23
+ for (const entry of source) {
24
+ yield entry;
25
+ items++;
26
+ if (items === limit) {
27
+ return;
28
+ }
29
+ }
30
+ })();
31
+ }
32
+ export { take };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pdGVyYWJsZS90YWtlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVVqRCxTQUFTLElBQUksQ0FDWCxNQUFzQyxFQUN0QyxLQUFhO0lBRWIsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsS0FBSyxTQUFTLENBQUM7WUFDckIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBRWQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxLQUFLLENBQUM7Z0JBRVosS0FBSyxFQUFFLENBQUM7Z0JBRVIsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ3BCLE9BQU87Z0JBQ1QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDZixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFZCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixNQUFNLEtBQUssQ0FBQztZQUVaLEtBQUssRUFBRSxDQUFDO1lBRVIsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDUCxDQUFDO0FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/foundation",
3
- "version": "0.37.0",
3
+ "version": "0.39.0",
4
4
  "packageManager": "yarn@3.4.1",
5
5
  "type": "module",
6
6
  "main": "./dest/index.js",
@@ -20,6 +20,7 @@
20
20
  "./json-rpc": "./dest/json-rpc/index.js",
21
21
  "./json-rpc/server": "./dest/json-rpc/server/index.js",
22
22
  "./json-rpc/client": "./dest/json-rpc/client/index.js",
23
+ "./iterable": "./dest/iterable/index.js",
23
24
  "./log": "./dest/log/index.js",
24
25
  "./mutex": "./dest/mutex/index.js",
25
26
  "./fields": "./dest/fields/index.js",
@@ -78,7 +79,7 @@
78
79
  ]
79
80
  },
80
81
  "dependencies": {
81
- "@aztec/bb.js": "0.37.0",
82
+ "@aztec/bb.js": "0.39.0",
82
83
  "@koa/cors": "^5.0.0",
83
84
  "@noble/curves": "^1.2.0",
84
85
  "bn.js": "^5.2.1",
package/src/abi/abi.ts CHANGED
@@ -183,18 +183,14 @@ export interface FunctionAbi {
183
183
  * The artifact entry of a function.
184
184
  */
185
185
  export interface FunctionArtifact extends FunctionAbi {
186
- /**
187
- * The ACIR bytecode of the function.
188
- */
186
+ /** The ACIR bytecode of the function. */
189
187
  bytecode: Buffer;
190
- /**
191
- * The verification key of the function.
192
- */
188
+ /** The verification key of the function. */
193
189
  verificationKey?: string;
194
- /**
195
- * Maps opcodes to source code pointers
196
- */
190
+ /** Maps opcodes to source code pointers */
197
191
  debugSymbols: string;
192
+ /** Debug metadata for the function. */
193
+ debug?: FunctionDebugMetadata;
198
194
  }
199
195
 
200
196
  /**
@@ -350,14 +346,8 @@ export interface FunctionDebugMetadata {
350
346
  files: DebugFileMap;
351
347
  }
352
348
 
353
- /** A function artifact with optional debug metadata */
354
- export interface FunctionArtifactWithDebugMetadata extends FunctionArtifact {
355
- /** Debug metadata for the function. */
356
- debug?: FunctionDebugMetadata;
357
- }
358
-
359
349
  /**
360
- * Gets a function artifact given its name or selector.
350
+ * Gets a function artifact including debug metadata given its name or selector.
361
351
  */
362
352
  export function getFunctionArtifact(
363
353
  artifact: ContractArtifact,
@@ -371,22 +361,6 @@ export function getFunctionArtifact(
371
361
  if (!functionArtifact) {
372
362
  throw new Error(`Unknown function ${functionNameOrSelector}`);
373
363
  }
374
- return functionArtifact;
375
- }
376
-
377
- /** @deprecated Use getFunctionArtifact instead */
378
- export function getFunctionArtifactWithSelector(artifact: ContractArtifact, selector: FunctionSelector) {
379
- return getFunctionArtifact(artifact, selector);
380
- }
381
-
382
- /**
383
- * Gets a function artifact including debug metadata given its name or selector.
384
- */
385
- export function getFunctionArtifactWithDebugMetadata(
386
- artifact: ContractArtifact,
387
- functionNameOrSelector: string | FunctionSelector,
388
- ): FunctionArtifactWithDebugMetadata {
389
- const functionArtifact = getFunctionArtifact(artifact, functionNameOrSelector);
390
364
  const debugMetadata = getFunctionDebugMetadata(artifact, functionArtifact);
391
365
  return { ...functionArtifact, debug: debugMetadata };
392
366
  }
@@ -3,6 +3,7 @@ import { keccak256, randomBytes } from '../crypto/index.js';
3
3
  import { type Fr } from '../fields/fields.js';
4
4
  import { BufferReader } from '../serialize/buffer_reader.js';
5
5
  import { FieldReader } from '../serialize/field_reader.js';
6
+ import { TypeRegistry } from '../serialize/type_registry.js';
6
7
  import { type ABIParameter } from './abi.js';
7
8
  import { decodeFunctionSignature } from './decoder.js';
8
9
  import { Selector } from './selector.js';
@@ -126,4 +127,14 @@ export class FunctionSelector extends Selector {
126
127
  static random() {
127
128
  return FunctionSelector.fromBuffer(randomBytes(Selector.SIZE));
128
129
  }
130
+
131
+ toJSON() {
132
+ return {
133
+ type: 'FunctionSelector',
134
+ value: this.toString(),
135
+ };
136
+ }
129
137
  }
138
+
139
+ // For deserializing JSON.
140
+ TypeRegistry.register('FunctionSelector', FunctionSelector);
@@ -1 +1,2 @@
1
1
  export * from './array.js';
2
+ export * from './object.js';
@@ -0,0 +1,19 @@
1
+ /** Returns a new object with the same keys and where each value has been passed through the mapping function. */
2
+ export function mapValues<K extends string | number | symbol, T, U>(
3
+ obj: Record<K, T>,
4
+ fn: (value: T) => U,
5
+ ): Record<K, U>;
6
+ export function mapValues<K extends string | number | symbol, T, U>(
7
+ obj: Partial<Record<K, T>>,
8
+ fn: (value: T) => U,
9
+ ): Partial<Record<K, U>>;
10
+ export function mapValues<K extends string | number | symbol, T, U>(
11
+ obj: Record<K, T>,
12
+ fn: (value: T) => U,
13
+ ): Record<K, U> {
14
+ const result: Record<K, U> = {} as Record<K, U>;
15
+ for (const key in obj) {
16
+ result[key] = fn(obj[key]);
17
+ }
18
+ return result;
19
+ }
@@ -0,0 +1,32 @@
1
+ import { isAsyncIterable } from './isAsyncIt.js';
2
+
3
+ /**
4
+ * Collects all values from an (async) iterable and returns them as an array
5
+ * @param source - Iterable to collect all values from
6
+ * @returns All of the iterable's values as an array.
7
+ */
8
+ function all<T>(source: Iterable<T>): T[];
9
+ function all<T>(source: Iterable<T> | AsyncIterable<T>): Promise<T[]>;
10
+ function all<T>(source: Iterable<T> | AsyncIterable<T>): Promise<T[]> | T[] {
11
+ if (isAsyncIterable(source)) {
12
+ return (async () => {
13
+ const arr = [];
14
+
15
+ for await (const entry of source) {
16
+ arr.push(entry);
17
+ }
18
+
19
+ return arr;
20
+ })();
21
+ }
22
+
23
+ const arr = [];
24
+
25
+ for (const entry of source) {
26
+ arr.push(entry);
27
+ }
28
+
29
+ return arr;
30
+ }
31
+
32
+ export { all };
@@ -0,0 +1,77 @@
1
+ import { peek } from './peek.js';
2
+
3
+ function isAsyncIterable<T>(thing: any): thing is AsyncIterable<T> {
4
+ return thing[Symbol.asyncIterator] != null;
5
+ }
6
+
7
+ /**
8
+ * Filters the passed (async) iterable by using the filter function.
9
+ * @param source - An iterable to filter.
10
+ * @returns A generator of the filtered values.
11
+ */
12
+ function filter<T>(
13
+ source: Iterable<T>,
14
+ fn: (val: T, index: number) => Promise<boolean>,
15
+ ): AsyncGenerator<T, void, undefined>;
16
+ function filter<T>(source: Iterable<T>, fn: (val: T, index: number) => boolean): Generator<T, void, undefined>;
17
+ function filter<T>(
18
+ source: Iterable<T> | AsyncIterable<T>,
19
+ fn: (val: T, index: number) => boolean | Promise<boolean>,
20
+ ): AsyncGenerator<T, void, undefined>;
21
+ function filter<T>(
22
+ source: Iterable<T> | AsyncIterable<T>,
23
+ fn: (val: T, index: number) => boolean | Promise<boolean>,
24
+ ): Generator<T, void, undefined> | AsyncGenerator<T, void, undefined> {
25
+ let index = 0;
26
+
27
+ if (isAsyncIterable(source)) {
28
+ return (async function* () {
29
+ for await (const entry of source) {
30
+ if (await fn(entry, index++)) {
31
+ yield entry;
32
+ }
33
+ }
34
+ })();
35
+ }
36
+
37
+ // if mapping function returns a promise we have to return an async generator
38
+ const peekable = peek(source);
39
+ const { value, done } = peekable.next();
40
+
41
+ if (done === true) {
42
+ return (function* () {})();
43
+ }
44
+
45
+ const res = fn(value, index++);
46
+
47
+ // @ts-expect-error .then is not present on O
48
+ if (typeof res.then === 'function') {
49
+ return (async function* () {
50
+ if (await res) {
51
+ yield value;
52
+ }
53
+
54
+ for await (const entry of peekable) {
55
+ if (await fn(entry, index++)) {
56
+ yield entry;
57
+ }
58
+ }
59
+ })();
60
+ }
61
+
62
+ const func = fn as (val: T, index: number) => boolean;
63
+
64
+ return (function* () {
65
+ if (res === true) {
66
+ yield value;
67
+ }
68
+
69
+ for (const entry of peekable) {
70
+ if (func(entry, index++)) {
71
+ yield entry;
72
+ }
73
+ }
74
+ })();
75
+ }
76
+
77
+ export { filter };
@@ -0,0 +1,6 @@
1
+ export * from './map.js';
2
+ export * from './filter.js';
3
+ export * from './sort.js';
4
+ export * from './take.js';
5
+ export * from './all.js';
6
+ export * from './peek.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utility function to type check an AsyncIterable
3
+ * @param thing - Input to type check
4
+ * @returns Type-checked input
5
+ */
6
+ export function isAsyncIterable<T>(thing: any): thing is AsyncIterable<T> {
7
+ return thing[Symbol.asyncIterator] != null;
8
+ }
@@ -0,0 +1,66 @@
1
+ import { isAsyncIterable } from './isAsyncIt.js';
2
+ import { peek } from './peek.js';
3
+
4
+ /**
5
+ * Takes an (async) iterable and returns one with each item mapped by the passed
6
+ * function.
7
+ * @param source - The iterable to run the map function on.
8
+ * @param func - The function to run over the iterable's items.
9
+ * @returns A generator of the mapped items.
10
+ */
11
+ function map<I, O>(
12
+ source: Iterable<I>,
13
+ func: (val: I, index: number) => Promise<O>,
14
+ ): AsyncGenerator<O, void, undefined>;
15
+ function map<I, O>(source: Iterable<I>, func: (val: I, index: number) => O): Generator<O, void, undefined>;
16
+ function map<I, O>(
17
+ source: AsyncIterable<I> | Iterable<I>,
18
+ func: (val: I, index: number) => O | Promise<O>,
19
+ ): AsyncGenerator<O, void, undefined>;
20
+ function map<I, O>(
21
+ source: AsyncIterable<I> | Iterable<I>,
22
+ func: (val: I, index: number) => O | Promise<O>,
23
+ ): AsyncGenerator<O, void, undefined> | Generator<O, void, undefined> {
24
+ let index = 0;
25
+
26
+ if (isAsyncIterable(source)) {
27
+ return (async function* () {
28
+ for await (const val of source) {
29
+ yield func(val, index++);
30
+ }
31
+ })();
32
+ }
33
+
34
+ // if mapping function returns a promise we have to return an async generator
35
+ const peekable = peek(source);
36
+ const { value, done } = peekable.next();
37
+
38
+ if (done === true) {
39
+ return (function* () {})();
40
+ }
41
+
42
+ const res = func(value, index++);
43
+
44
+ // @ts-expect-error .then is not present on O
45
+ if (typeof res.then === 'function') {
46
+ return (async function* () {
47
+ yield await res;
48
+
49
+ for await (const val of peekable) {
50
+ yield func(val, index++);
51
+ }
52
+ })();
53
+ }
54
+
55
+ const fn = func as (val: I, index: number) => O;
56
+
57
+ return (function* () {
58
+ yield res as O;
59
+
60
+ for (const val of peekable) {
61
+ yield fn(val, index++);
62
+ }
63
+ })();
64
+ }
65
+
66
+ export { map };
@@ -0,0 +1,58 @@
1
+ export interface Peek<T> {
2
+ peek(): IteratorResult<T, undefined>;
3
+ }
4
+
5
+ export interface AsyncPeek<T> {
6
+ peek(): Promise<IteratorResult<T, undefined>>;
7
+ }
8
+
9
+ export interface Push<T> {
10
+ push(value: T): void;
11
+ }
12
+
13
+ export type Peekable<T> = Iterable<T> & Peek<T> & Push<T> & Iterator<T>;
14
+
15
+ export type AsyncPeekable<T> = AsyncIterable<T> & AsyncPeek<T> & Push<T> & AsyncIterator<T>;
16
+
17
+ /**
18
+ * Utility function that allows peeking into the contents of an async iterator.
19
+ * @param iterable - The async iterator to peek the values of.
20
+ */
21
+ function peekable<T>(iterable: Iterable<T>): Peekable<T>;
22
+ function peekable<T>(iterable: AsyncIterable<T>): AsyncPeekable<T>;
23
+ function peekable<T>(iterable: Iterable<T> | AsyncIterable<T>): Peekable<T> | AsyncPeekable<T> {
24
+ const [iterator, symbol] =
25
+ // @ts-expect-error can't use Symbol.asyncIterator to index iterable since it might be Iterable
26
+ iterable[Symbol.asyncIterator] != null
27
+ ? // @ts-expect-error can't use Symbol.asyncIterator to index iterable since it might be Iterable
28
+ [iterable[Symbol.asyncIterator](), Symbol.asyncIterator]
29
+ : // @ts-expect-error can't use Symbol.iterator to index iterable since it might be AsyncIterable
30
+ [iterable[Symbol.iterator](), Symbol.iterator];
31
+
32
+ const queue: any[] = [];
33
+
34
+ // @ts-expect-error can't use symbol to index peekable
35
+ return {
36
+ peek: () => {
37
+ return iterator.next();
38
+ },
39
+ push: (value: any) => {
40
+ queue.push(value);
41
+ },
42
+ next: () => {
43
+ if (queue.length > 0) {
44
+ return {
45
+ done: false,
46
+ value: queue.shift(),
47
+ };
48
+ }
49
+
50
+ return iterator.next();
51
+ },
52
+ [symbol]() {
53
+ return this;
54
+ },
55
+ };
56
+ }
57
+
58
+ export { peekable as peek };
@@ -0,0 +1,39 @@
1
+ import { all } from './all.js';
2
+ import { isAsyncIterable } from './isAsyncIt.js';
3
+
4
+ export interface CompareFunction<T> {
5
+ (a: T, b: T): number;
6
+ }
7
+
8
+ /**
9
+ * Collects all values from an async iterator, sorts them
10
+ * using the passed function and yields them.
11
+ * @param source - Iterable to sort.
12
+ * @param sorter - Sorting function.
13
+ * @returns A generator of the sorted values.
14
+ */
15
+ function sort<T>(source: Iterable<T>, sorter: CompareFunction<T>): Generator<T, void, undefined>;
16
+ function sort<T>(
17
+ source: Iterable<T> | AsyncIterable<T>,
18
+ sorter: CompareFunction<T>,
19
+ ): AsyncGenerator<T, void, undefined>;
20
+ function sort<T>(
21
+ source: Iterable<T> | AsyncIterable<T>,
22
+ sorter: CompareFunction<T>,
23
+ ): AsyncGenerator<T, void, undefined> | Generator<T, void, undefined> {
24
+ if (isAsyncIterable(source)) {
25
+ return (async function* () {
26
+ const arr = await all(source);
27
+
28
+ yield* arr.sort(sorter);
29
+ })();
30
+ }
31
+
32
+ return (function* () {
33
+ const arr = all(source);
34
+
35
+ yield* arr.sort(sorter);
36
+ })();
37
+ }
38
+
39
+ export { sort };
@@ -0,0 +1,54 @@
1
+ import { isAsyncIterable } from './isAsyncIt.js';
2
+
3
+ /**
4
+ * Stop iteration after n items have been received.
5
+ * @param source - An iterable to take n items from.
6
+ * @param limit - The number of items to take from the iterable.
7
+ * @returns A generator, limited to n items.
8
+ */
9
+ function take<T>(source: Iterable<T>, limit: number): Generator<T, void, undefined>;
10
+ function take<T>(source: Iterable<T> | AsyncIterable<T>, limit: number): AsyncGenerator<T, void, undefined>;
11
+ function take<T>(
12
+ source: Iterable<T> | AsyncIterable<T>,
13
+ limit: number,
14
+ ): AsyncGenerator<T, void, undefined> | Generator<T, void, undefined> {
15
+ if (isAsyncIterable(source)) {
16
+ return (async function* () {
17
+ let items = 0;
18
+
19
+ if (limit < 1) {
20
+ return;
21
+ }
22
+
23
+ for await (const entry of source) {
24
+ yield entry;
25
+
26
+ items++;
27
+
28
+ if (items === limit) {
29
+ return;
30
+ }
31
+ }
32
+ })();
33
+ }
34
+
35
+ return (function* () {
36
+ let items = 0;
37
+
38
+ if (limit < 1) {
39
+ return;
40
+ }
41
+
42
+ for (const entry of source) {
43
+ yield entry;
44
+
45
+ items++;
46
+
47
+ if (items === limit) {
48
+ return;
49
+ }
50
+ }
51
+ })();
52
+ }
53
+
54
+ export { take };