@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.
- package/dest/abi/abi.d.ts +6 -21
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +2 -13
- package/dest/abi/function_selector.d.ts +4 -0
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +10 -1
- package/dest/collection/index.d.ts +1 -0
- package/dest/collection/index.d.ts.map +1 -1
- package/dest/collection/index.js +2 -1
- package/dest/collection/object.d.ts +4 -0
- package/dest/collection/object.d.ts.map +1 -0
- package/dest/collection/object.js +8 -0
- package/dest/iterable/all.d.ts +9 -0
- package/dest/iterable/all.d.ts.map +1 -0
- package/dest/iterable/all.js +19 -0
- package/dest/iterable/filter.d.ts +10 -0
- package/dest/iterable/filter.d.ts.map +1 -0
- package/dest/iterable/filter.js +49 -0
- package/dest/iterable/index.d.ts +7 -0
- package/dest/iterable/index.d.ts.map +1 -0
- package/dest/iterable/index.js +7 -0
- package/dest/iterable/isAsyncIt.d.ts +7 -0
- package/dest/iterable/isAsyncIt.d.ts.map +1 -0
- package/dest/iterable/isAsyncIt.js +9 -0
- package/dest/iterable/map.d.ts +12 -0
- package/dest/iterable/map.d.ts.map +1 -0
- package/dest/iterable/map.js +37 -0
- package/dest/iterable/peek.d.ts +19 -0
- package/dest/iterable/peek.d.ts.map +1 -0
- package/dest/iterable/peek.js +33 -0
- package/dest/iterable/sort.d.ts +14 -0
- package/dest/iterable/sort.d.ts.map +1 -0
- package/dest/iterable/sort.js +16 -0
- package/dest/iterable/take.d.ts +10 -0
- package/dest/iterable/take.d.ts.map +1 -0
- package/dest/iterable/take.js +33 -0
- package/package.json +3 -2
- package/src/abi/abi.ts +6 -32
- package/src/abi/function_selector.ts +11 -0
- package/src/collection/index.ts +1 -0
- package/src/collection/object.ts +19 -0
- package/src/iterable/all.ts +32 -0
- package/src/iterable/filter.ts +77 -0
- package/src/iterable/index.ts +6 -0
- package/src/iterable/isAsyncIt.ts +8 -0
- package/src/iterable/map.ts +66 -0
- package/src/iterable/peek.ts +58 -0
- package/src/iterable/sort.ts +39 -0
- 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
|
|
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
|
package/dest/abi/abi.d.ts.map
CHANGED
|
@@ -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,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQXlEL0I7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQ2hDLDJDQUFpQixDQUFBO0lBQ2pCLDJDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBR2pDO0FBK0VEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0lBQ2IsK0NBQStCLENBQUE7QUFDakMsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBdU1EOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxRQUEwQixFQUMxQixzQkFBaUQ7SUFFakQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuRCxPQUFPLHNCQUFzQixLQUFLLFFBQVE7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQXNCO1FBQ25DLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQ3hELENBQUM7SUFDRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixzQkFBc0IsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixFQUFFLEtBQUss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
|
|
@@ -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;
|
|
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
|
-
|
|
98
|
+
// For deserializing JSON.
|
|
99
|
+
TypeRegistry.register('FunctionSelector', FunctionSelector);
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2Z1bmN0aW9uX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVV6QyxvRkFBb0Y7QUFDcEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7SUFRbkMsTUFBTSxDQUNiLEtBQStFLEVBQy9FLFdBQTRCO1FBRTVCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxXQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDM0YsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQTZCO1FBQzdDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFNO1FBQ3JCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUEwQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFpQjtRQUNwQyx5Q0FBeUM7UUFDekMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxNQUFNLGNBQWMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBSztRQUNWLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBVUQsTUFBTSxDQUFDLHFCQUFxQixDQUMxQixVQUFpRSxFQUNqRSxlQUFnQztRQUVoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUN4QixPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDbkcsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsNkdBQTZHO1FBQzdHLDJEQUEyRDtRQUMzRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTTtRQUNYLE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU87WUFDTCxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCwwQkFBMEI7QUFDMUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDIn0=
|
|
@@ -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"}
|
package/dest/collection/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './array.js';
|
|
2
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
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.
|
|
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.
|
|
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);
|
package/src/collection/index.ts
CHANGED
|
@@ -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,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 };
|