convex-helpers 0.1.113 → 0.1.114
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/package.json +2 -2
- package/react/cache/hooks.d.ts.map +1 -1
- package/react/cache/hooks.js +1 -2
- package/react/cache/hooks.ts +1 -3
- package/server/pagination.d.ts +2 -1
- package/server/pagination.d.ts.map +1 -1
- package/server/pagination.ts +2 -1
- package/server/stream.d.ts +21 -29
- package/server/stream.d.ts.map +1 -1
- package/server/stream.js +88 -46
- package/server/stream.ts +126 -55
- package/validators.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "convex-helpers",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.114",
|
|
4
4
|
"description": "A collection of useful code to complement the official convex package.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"homepage": "https://github.com/get-convex/convex-helpers/tree/main/packages/convex-helpers/README.md",
|
|
165
165
|
"peerDependencies": {
|
|
166
166
|
"@standard-schema/spec": "^1.0.0",
|
|
167
|
-
"convex": "^1.
|
|
167
|
+
"convex": "^1.32.0",
|
|
168
168
|
"hono": "^4.0.5",
|
|
169
169
|
"react": "^17.0.2 || ^18.0.0 || ^19.0.0",
|
|
170
170
|
"typescript": "^5.5",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,eAAe,CAAC;AAkBvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS,GAAG,KAAK,CAAC,CAgCzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,KAAK,SAAS,iBAAiB,CAAC,OAAO,CAAC,EAC/D,KAAK,EAAE,KAAK,EACZ,GAAG,SAAS,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAC1C,kBAAkB,CAAC,KAAK,CAAC,GAAG,SAAS,CAoBvC;AAoHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,uBAAuB,EACrE,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,MAAM,EACxC,OAAO,EAAE;IACP,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GACA,2BAA2B,CAAC,KAAK,CAAC,CA4PpC"}
|
package/react/cache/hooks.js
CHANGED
|
@@ -423,8 +423,7 @@ export function usePaginatedQuery(query, args, options) {
|
|
|
423
423
|
args: {
|
|
424
424
|
...prevState.args,
|
|
425
425
|
paginationOpts: {
|
|
426
|
-
...queries[lastPageKey].args
|
|
427
|
-
.paginationOpts,
|
|
426
|
+
...queries[lastPageKey].args.paginationOpts,
|
|
428
427
|
endCursor: continueCursor,
|
|
429
428
|
},
|
|
430
429
|
},
|
package/react/cache/hooks.ts
CHANGED
|
@@ -15,7 +15,6 @@ import type {
|
|
|
15
15
|
FunctionArgs,
|
|
16
16
|
FunctionReference,
|
|
17
17
|
FunctionReturnType,
|
|
18
|
-
PaginationOptions,
|
|
19
18
|
paginationOptsValidator,
|
|
20
19
|
PaginationResult,
|
|
21
20
|
} from "convex/server";
|
|
@@ -543,8 +542,7 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
543
542
|
args: {
|
|
544
543
|
...prevState.args,
|
|
545
544
|
paginationOpts: {
|
|
546
|
-
...
|
|
547
|
-
.paginationOpts as unknown as PaginationOptions),
|
|
545
|
+
...queries[lastPageKey]!.args.paginationOpts,
|
|
548
546
|
endCursor: continueCursor,
|
|
549
547
|
},
|
|
550
548
|
},
|
package/server/pagination.d.ts
CHANGED
|
@@ -24,7 +24,8 @@ export type PageRequest<DataModel extends GenericDataModel, T extends TableNames
|
|
|
24
24
|
/** Absolute maximum number of rows to return, even if endIndexKey is
|
|
25
25
|
* provided. Use this to prevent a single page from growing too large, but
|
|
26
26
|
* watch out because gaps can form between pages.
|
|
27
|
-
* Default is
|
|
27
|
+
* Default is the transaction limit.
|
|
28
|
+
* (https://docs.convex.dev/production/state/limits).
|
|
28
29
|
*/
|
|
29
30
|
absoluteMaxRows?: number;
|
|
30
31
|
/** Whether the index is walked in ascending or descending order. Default is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EACV,6BAA6B,EAC7B,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,oBAAoB,EAGrB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;AAE7C,MAAM,MAAM,WAAW,CACrB,SAAS,SAAS,gBAAgB,EAClC,CAAC,SAAS,qBAAqB,CAAC,SAAS,CAAC,IACxC;IACF,mDAAmD;IACnD,KAAK,EAAE,CAAC,CAAC;IACT,+EAA+E;IAC/E,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EACV,6BAA6B,EAC7B,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,oBAAoB,EAGrB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;AAE7C,MAAM,MAAM,WAAW,CACrB,SAAS,SAAS,gBAAgB,EAClC,CAAC,SAAS,qBAAqB,CAAC,SAAS,CAAC,IACxC;IACF,mDAAmD;IACnD,KAAK,EAAE,CAAC,CAAC;IACT,+EAA+E;IAC/E,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD;;;;OAIG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,CACtB,SAAS,SAAS,gBAAgB,EAClC,CAAC,SAAS,qBAAqB,CAAC,SAAS,CAAC,IACxC;IACF;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;IACrC,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,SAAS,SAAS,gBAAgB,EAClC,CAAC,SAAS,qBAAqB,CAAC,SAAS,CAAC,EAE1C,GAAG,EAAE;IAAE,EAAE,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;CAAE,EAC7C,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAyBrC;AAED,wBAAuB,WAAW,CAChC,SAAS,SAAS,gBAAgB,EAClC,CAAC,SAAS,qBAAqB,CAAC,SAAS,CAAC,EAE1C,GAAG,EAAE;IAAE,EAAE,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;CAAE,EAC7C,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAAC,GAC5E,cAAc,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAmC1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,SAAS,CAAC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EACrE,EAAE,EAAE,qBAAqB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,EAChE,MAAM,EAAE,MAAM,GACb,oBAAoB,CAAC,MAAM,CAAC,CAE9B"}
|
package/server/pagination.ts
CHANGED
|
@@ -43,7 +43,8 @@ export type PageRequest<
|
|
|
43
43
|
/** Absolute maximum number of rows to return, even if endIndexKey is
|
|
44
44
|
* provided. Use this to prevent a single page from growing too large, but
|
|
45
45
|
* watch out because gaps can form between pages.
|
|
46
|
-
* Default is
|
|
46
|
+
* Default is the transaction limit.
|
|
47
|
+
* (https://docs.convex.dev/production/state/limits).
|
|
47
48
|
*/
|
|
48
49
|
absoluteMaxRows?: number;
|
|
49
50
|
/** Whether the index is walked in ascending or descending order. Default is
|
package/server/stream.d.ts
CHANGED
|
@@ -26,11 +26,20 @@ export declare function getIndexFields<Schema extends SchemaDefinition<any, bool
|
|
|
26
26
|
*/
|
|
27
27
|
export declare function stream<Schema extends SchemaDefinition<any, boolean>>(db: GenericDatabaseReader<DM<Schema>>, schema: Schema): StreamDatabaseReader<Schema>;
|
|
28
28
|
type GenericStreamItem = NonNullable<unknown>;
|
|
29
|
+
type StreamIterable<T> = AsyncIterable<[T | null, IndexKey, number], undefined>;
|
|
29
30
|
/**
|
|
30
31
|
* A "QueryStream" is an async iterable of query results, ordered by indexed fields.
|
|
31
32
|
*/
|
|
32
33
|
export declare abstract class QueryStream<T extends GenericStreamItem> implements GenericOrderedQuery<T> {
|
|
33
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Iterate over documents with their index keys and bandwidth consumed.
|
|
36
|
+
* @param trackBandwidth - If true, tracks bytes read using getDocumentSize. Defaults to false for efficiency.
|
|
37
|
+
* @returns AsyncIterable of [document | null, indexKey, bytesRead]
|
|
38
|
+
* - document: The document or null if filtered out
|
|
39
|
+
* - indexKey: The index key for cursor positioning
|
|
40
|
+
* - bytesRead: Bytes consumed to produce this result (0 if trackBandwidth is false)
|
|
41
|
+
*/
|
|
42
|
+
abstract iterWithKeys(trackBandwidth?: boolean): StreamIterable<T>;
|
|
34
43
|
abstract narrow(indexBounds: IndexBounds): QueryStream<T>;
|
|
35
44
|
abstract getOrder(): "asc" | "desc";
|
|
36
45
|
abstract getIndexFields(): string[];
|
|
@@ -92,20 +101,13 @@ export declare abstract class QueryStream<T extends GenericStreamItem> implement
|
|
|
92
101
|
paginate(opts: PaginationOptions & {
|
|
93
102
|
endCursor?: string | null;
|
|
94
103
|
maximumRowsRead?: number;
|
|
104
|
+
maximumBytesRead?: number;
|
|
95
105
|
}): Promise<PaginationResult<T>>;
|
|
96
106
|
collect(): Promise<T[]>;
|
|
97
107
|
take(n: number): Promise<T[]>;
|
|
98
108
|
unique(): Promise<T | null>;
|
|
99
109
|
first(): Promise<T | null>;
|
|
100
|
-
[Symbol.asyncIterator]():
|
|
101
|
-
next(): Promise<{
|
|
102
|
-
done: true;
|
|
103
|
-
value: undefined;
|
|
104
|
-
} | {
|
|
105
|
-
done: boolean;
|
|
106
|
-
value: T;
|
|
107
|
-
}>;
|
|
108
|
-
};
|
|
110
|
+
[Symbol.asyncIterator](): AsyncIterator<T, undefined>;
|
|
109
111
|
}
|
|
110
112
|
/**
|
|
111
113
|
* GenericOrderedQuery<DocumentByInfo<TableInfo>> is equivalent to OrderedQuery<TableInfo>
|
|
@@ -251,7 +253,7 @@ export declare class StreamQueryInitializer<Schema extends SchemaDefinition<any,
|
|
|
251
253
|
vectorIndexes: VectorIndexes;
|
|
252
254
|
} : never; } & import("convex/server").AnyDataModel> : never : never, T>, "by_creation_time">, 0>) => IndexRange) | undefined;
|
|
253
255
|
};
|
|
254
|
-
iterWithKeys():
|
|
256
|
+
iterWithKeys(trackBandwidth?: boolean): StreamIterable<DocumentByName<Schema["strictTableNameTypes"] extends infer T_1 ? T_1 extends Schema["strictTableNameTypes"] ? T_1 extends true ? { [TableName in keyof Schema["tables"] & string]: Schema["tables"][TableName] extends import("convex/server").TableDefinition<infer DocumentType extends import("convex/values").Validator<any, any, any>, infer Indexes extends import("convex/server").GenericTableIndexes, infer SearchIndexes extends import("convex/server").GenericTableSearchIndexes, infer VectorIndexes extends import("convex/server").GenericTableVectorIndexes> ? {
|
|
255
257
|
document: import("convex/server").Expand<import("convex/server").IdField<TableName> & import("convex/server").Expand<import("convex/server").SystemFields & DocumentType["type"]>>;
|
|
256
258
|
fieldPaths: keyof import("convex/server").IdField<TableName_1> | ("_creationTime" | DocumentType["fieldPaths"]);
|
|
257
259
|
indexes: import("convex/server").Expand<Indexes & import("convex/server").SystemIndexes>;
|
|
@@ -263,7 +265,7 @@ export declare class StreamQueryInitializer<Schema extends SchemaDefinition<any,
|
|
|
263
265
|
indexes: import("convex/server").Expand<Indexes & import("convex/server").SystemIndexes>;
|
|
264
266
|
searchIndexes: SearchIndexes;
|
|
265
267
|
vectorIndexes: VectorIndexes;
|
|
266
|
-
} : never; } & import("convex/server").AnyDataModel> : never : never, T
|
|
268
|
+
} : never; } & import("convex/server").AnyDataModel> : never : never, T>>;
|
|
267
269
|
getOrder(): "asc" | "desc";
|
|
268
270
|
getEqualityIndexFilter(): Value[];
|
|
269
271
|
getIndexFields(): string[];
|
|
@@ -316,7 +318,7 @@ export declare class StreamQuery<Schema extends SchemaDefinition<any, boolean>,
|
|
|
316
318
|
};
|
|
317
319
|
indexRange: ((q: IndexRangeBuilder<DocumentByInfo<NamedTableInfo<DM<Schema>, T>>, NamedIndex<NamedTableInfo<DM<Schema>, T>, IndexName>>) => IndexRange) | undefined;
|
|
318
320
|
};
|
|
319
|
-
iterWithKeys():
|
|
321
|
+
iterWithKeys(trackBandwidth?: boolean): StreamIterable<DocumentByName<Schema["strictTableNameTypes"] extends infer T_1 ? T_1 extends Schema["strictTableNameTypes"] ? T_1 extends true ? { [TableName in keyof Schema["tables"] & string]: Schema["tables"][TableName] extends import("convex/server").TableDefinition<infer DocumentType extends import("convex/values").Validator<any, any, any>, infer Indexes extends import("convex/server").GenericTableIndexes, infer SearchIndexes extends import("convex/server").GenericTableSearchIndexes, infer VectorIndexes extends import("convex/server").GenericTableVectorIndexes> ? {
|
|
320
322
|
document: import("convex/server").Expand<import("convex/server").IdField<TableName> & import("convex/server").Expand<import("convex/server").SystemFields & DocumentType["type"]>>;
|
|
321
323
|
fieldPaths: keyof import("convex/server").IdField<TableName_1> | ("_creationTime" | DocumentType["fieldPaths"]);
|
|
322
324
|
indexes: import("convex/server").Expand<Indexes & import("convex/server").SystemIndexes>;
|
|
@@ -328,7 +330,7 @@ export declare class StreamQuery<Schema extends SchemaDefinition<any, boolean>,
|
|
|
328
330
|
indexes: import("convex/server").Expand<Indexes & import("convex/server").SystemIndexes>;
|
|
329
331
|
searchIndexes: SearchIndexes;
|
|
330
332
|
vectorIndexes: VectorIndexes;
|
|
331
|
-
} : never; } & import("convex/server").AnyDataModel> : never : never, T
|
|
333
|
+
} : never; } & import("convex/server").AnyDataModel> : never : never, T>>;
|
|
332
334
|
getOrder(): "asc" | "desc";
|
|
333
335
|
getEqualityIndexFilter(): Value[];
|
|
334
336
|
getIndexFields(): string[];
|
|
@@ -405,10 +407,7 @@ export declare class OrderedStreamQuery<Schema extends SchemaDefinition<any, boo
|
|
|
405
407
|
* inner() is as if you had used ctx.db to construct the query.
|
|
406
408
|
*/
|
|
407
409
|
inner(): OrderedQuery<NamedTableInfo<DM<Schema>, T>>;
|
|
408
|
-
iterWithKeys():
|
|
409
|
-
DocumentByName<DM<Schema>, T> | null,
|
|
410
|
-
IndexKey
|
|
411
|
-
]>;
|
|
410
|
+
iterWithKeys(trackBandwidth?: boolean): StreamIterable<DocumentByName<DM<Schema>, T>>;
|
|
412
411
|
getOrder(): "asc" | "desc";
|
|
413
412
|
getEqualityIndexFilter(): Value[];
|
|
414
413
|
getIndexFields(): string[];
|
|
@@ -482,14 +481,7 @@ export declare function mergedStream<T extends GenericStreamItem>(streams: Query
|
|
|
482
481
|
export declare class MergedStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
483
482
|
#private;
|
|
484
483
|
constructor(streams: QueryStream<T>[], orderByIndexFields: string[]);
|
|
485
|
-
iterWithKeys():
|
|
486
|
-
[Symbol.asyncIterator](): {
|
|
487
|
-
next(): Promise<{
|
|
488
|
-
done: boolean;
|
|
489
|
-
value: any;
|
|
490
|
-
}>;
|
|
491
|
-
};
|
|
492
|
-
};
|
|
484
|
+
iterWithKeys(trackBandwidth?: boolean): StreamIterable<T>;
|
|
493
485
|
getOrder(): "asc" | "desc";
|
|
494
486
|
getEqualityIndexFilter(): Value[];
|
|
495
487
|
getIndexFields(): string[];
|
|
@@ -497,8 +489,8 @@ export declare class MergedStream<T extends GenericStreamItem> extends QueryStre
|
|
|
497
489
|
}
|
|
498
490
|
export declare class SingletonStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
499
491
|
#private;
|
|
500
|
-
constructor(value: T | null, order: "asc" | "desc" | undefined, indexFields: string[], indexKey: IndexKey, equalityIndexFilter: Value[]);
|
|
501
|
-
iterWithKeys():
|
|
492
|
+
constructor(value: T | null, order: "asc" | "desc" | undefined, indexFields: string[], indexKey: IndexKey, equalityIndexFilter: Value[], bandwidth?: number);
|
|
493
|
+
iterWithKeys(_trackBandwidth?: boolean): StreamIterable<T>;
|
|
502
494
|
getOrder(): "asc" | "desc";
|
|
503
495
|
getIndexFields(): string[];
|
|
504
496
|
getEqualityIndexFilter(): Value[];
|
|
@@ -513,7 +505,7 @@ export declare class SingletonStream<T extends GenericStreamItem> extends QueryS
|
|
|
513
505
|
export declare class EmptyStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
514
506
|
#private;
|
|
515
507
|
constructor(order: "asc" | "desc", indexFields: string[]);
|
|
516
|
-
iterWithKeys():
|
|
508
|
+
iterWithKeys(_trackBandwidth?: boolean): StreamIterable<T>;
|
|
517
509
|
getOrder(): "asc" | "desc";
|
|
518
510
|
getIndexFields(): string[];
|
|
519
511
|
getEqualityIndexFilter(): Value[];
|
package/server/stream.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EACV,6BAA6B,EAC7B,cAAc,EACd,cAAc,EAEd,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;AAgH7C;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC7C,CAAC,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAE3C,KAAK,EAAE,CAAC,EACR,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EACjD,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,EAAE,CAsBV;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAClE,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EACrC,MAAM,EAAE,MAAM,GACb,oBAAoB,CAAC,MAAM,CAAC,CAE9B;AAED,KAAK,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAE9C;;GAEG;AACH,8BAAsB,WAAW,CAC/B,CAAC,SAAS,iBAAiB,CAC3B,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAEjC,QAAQ,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5D,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;IAGzD,QAAQ,CAAC,QAAQ,IAAI,KAAK,GAAG,MAAM;IACnC,QAAQ,CAAC,cAAc,IAAI,MAAM,EAAE;IAEnC,QAAQ,CAAC,sBAAsB,IAAI,KAAK,EAAE;IAI1C;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAWnE;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,iBAAiB,EAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GACpC,WAAW,CAAC,CAAC,CAAC;IAWjB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,CAAC,SAAS,iBAAiB,EACjC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAC3C,iBAAiB,EAAE,MAAM,EAAE,GAC1B,WAAW,CAAC,CAAC,CAAC;IAKjB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAMvD,MAAM,CAAC,UAAU,EAAE,GAAG,GAAG,KAAK;IAKxB,QAAQ,CACZ,IAAI,EAAE,iBAAiB,GAAG;QACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAsFzB,OAAO;IAGP,IAAI,CAAC,CAAC,EAAE,MAAM;IAad,MAAM;IAON,KAAK;IAIX,CAAC,MAAM,CAAC,aAAa,CAAC;;;;;;;;;CAYvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAC9D;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,cAAc,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E;;;;;;;OAOG;IACH,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B;;;;;;OAMG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnC;;;;SAIK;IACL,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,oBAAoB,CAC/B,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAC7C,YAAW,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAKnC,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM;IAJhB,MAAM,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAGvD,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EACrC,MAAM,EAAE,MAAM;IAKvB,KAAK,CAAC,SAAS,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EACvD,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC;IAG5C,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAGlB,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;CAG5C;AAED,KAAK,EAAE,CAAC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,IACnD,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,QAAQ,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,QAAQ,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC7C,CAAC,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAC3C,SAAS,SAAS,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IACzD;IACF,EAAE,EAAE,qBAAqB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,CACX,CAAC,EAAE,iBAAiB,CAClB,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7C,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CACrD,KACE,UAAU,CAAC;CACjB,CAAC;AAEF,8BAAsB,eAAe,CACnC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC7C,CAAC,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAC3C,SAAS,SAAS,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAE3D,SAAQ,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAEjE,YAAW,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtD,QAAQ,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC;CAC1D;AAED,qBAAa,sBAAsB,CACjC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC7C,CAAC,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAE3C,SAAQ,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB,CACrD,YAAW,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAGjD,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC;gBADR,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACpC,KAAK,EAAE,CAAC;IAIjB,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAG3D,SAAS,CAAC,SAAS,SAAS,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EACnE,SAAS,EAAE,SAAS,EACpB,UAAU,CAAC,EAAE,CACX,CAAC,EAAE,iBAAiB,CAClB,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7C,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CACrD,KACE,UAAU,GACd,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC;IAYpC,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,GAAG;IAGzD,KAAK;IAGL,KAAK,CACH,KAAK,EAAE,KAAK,GAAG,MAAM,GACpB,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAGpD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8GAuCI,UAAU;;IApCrB,YAAY;;;;;;;;;;;;;IAGZ,QAAQ,IAAI,KAAK,GAAG,MAAM;IAG1B,sBAAsB,IAAI,KAAK,EAAE;IAGjC,cAAc,IAAI,MAAM,EAAE;IAG1B,MAAM,CAAC,WAAW,EAAE,WAAW;;;;;;;;;;;;;CAGhC;AAGD,qBAAa,WAAW,CACtB,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC7C,CAAC,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAC3C,SAAS,SAAS,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAE3D,SAAQ,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAC5C,YAAW,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAGtC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,KAAK,EAAE,SAAS;IAChB,CAAC,EAAE,iBAAiB;IACpB,UAAU,EACb,CAAC,CACC,CAAC,EAAE,iBAAiB,CAClB,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7C,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CACrD,KACE,UAAU,CAAC,GAChB,SAAS;gBAVN,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,EACzC,KAAK,EAAE,SAAS,EAChB,CAAC,EAAE,iBAAiB,EACpB,UAAU,EACb,CAAC,CACC,CAAC,EAAE,iBAAiB,CAClB,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7C,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CACrD,KACE,UAAU,CAAC,GAChB,SAAS;IAIf,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAG3B,KAAK;IAGL,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;yBAfI,iBAAiB,CAClB,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7C,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CACrD,KACE,UAAU;;IAcrB,YAAY;;;;;;;;;;;;;IAGZ,QAAQ,IAAI,KAAK,GAAG,MAAM;IAG1B,sBAAsB,IAAI,KAAK,EAAE;IAGjC,cAAc,IAAI,MAAM,EAAE;IAG1B,MAAM,CAAC,WAAW,EAAE,WAAW;;;;;;;;;;;;;CAGhC;AAED,qBAAa,kBAAkB,CAC7B,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC7C,CAAC,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAC3C,SAAS,SAAS,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAE3D,SAAQ,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAC5C,YAAW,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAG7C,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC;IACzC,KAAK,EAAE,KAAK,GAAG,MAAM;gBADrB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,EACzC,KAAK,EAAE,KAAK,GAAG,MAAM;IAI9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGA7CI,UAAU;;IA8DrB;;OAEG;IACH,KAAK,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAIpD,YAAY,IAAI,aAAa,CAC3B;QAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;QAAE,QAAQ;KAAC,CACjD;IAqBD,QAAQ,IAAI,KAAK,GAAG,MAAM;IAG1B,sBAAsB,IAAI,KAAK,EAAE;IAGjC,cAAc,IAAI,MAAM,EAAE;IAG1B,MAAM,CAAC,WAAW,EAAE,WAAW;;;;;;;;;;;;;CAkDhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC7C,CAAC,SAAS,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAC3C,SAAS,SAAS,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAE3D,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,KAAK,GAAG,MAAM,GACpB,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAiB5C;AAED,cAAM,iBAAiB;;IAOF,WAAW,EAAE,MAAM,EAAE;IALjC,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAa;IACrD,mBAAmB,EAAE,OAAO,CAAQ;IACpC,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAa;IACrD,mBAAmB,EAAE,OAAO,CAAQ;IACpC,mBAAmB,EAAE,KAAK,EAAE,CAAM;gBACtB,WAAW,EAAE,MAAM,EAAE;IACxC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAW9B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAU9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAS/B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAU9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CA+ChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EACtD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EACzB,kBAAkB,EAAE,MAAM,EAAE,GAC3B,WAAW,CAAC,CAAC,CAAC,CAEhB;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;;gBAK/D,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE;IAqBnE,YAAY;;;;;;;;IA+DZ,QAAQ,IAAI,KAAK,GAAG,MAAM;IAG1B,sBAAsB,IAAI,KAAK,EAAE;IAGjC,cAAc,IAAI,MAAM,EAAE;IAG1B,MAAM,CAAC,WAAW,EAAE,WAAW;CAMhC;AAuSD,qBAAa,eAAe,CAC1B,CAAC,SAAS,iBAAiB,CAC3B,SAAQ,WAAW,CAAC,CAAC,CAAC;;gBAOpB,KAAK,EAAE,CAAC,GAAG,IAAI,EACf,KAAK,EAAE,KAAK,GAAG,MAAM,YAAQ,EAC7B,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,KAAK,EAAE;IAgB9B,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;IAkBnD,QAAQ,IAAI,KAAK,GAAG,MAAM;IAG1B,cAAc,IAAI,MAAM,EAAE;IAG1B,sBAAsB,IAAI,KAAK,EAAE;IAGjC,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;CAiCjD;AAED;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;;gBAG9D,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAKxD,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;IAWnD,QAAQ,IAAI,KAAK,GAAG,MAAM;IAG1B,cAAc,IAAI,MAAM,EAAE;IAG1B,sBAAsB,IAAI,KAAK,EAAE;IAGjC,MAAM,CAAC,YAAY,EAAE,WAAW;CAGjC"}
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["stream.ts"],"names":[],"mappings":"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"}
|
package/server/stream.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { convexToJson, compareValues, jsonToConvex } from "convex/values";
|
|
1
|
+
import { convexToJson, compareValues, jsonToConvex, getDocumentSize, } from "convex/values";
|
|
2
2
|
//
|
|
3
3
|
// Helper functions
|
|
4
4
|
//
|
|
@@ -282,13 +282,21 @@ export class QueryStream {
|
|
|
282
282
|
const indexKeys = [];
|
|
283
283
|
let hasMore = opts.endCursor && opts.endCursor !== "[]";
|
|
284
284
|
let continueCursor = opts.endCursor ?? "[]";
|
|
285
|
-
|
|
285
|
+
const maxBytesToRead = opts.maximumBytesRead;
|
|
286
|
+
const trackBandwidth = maxBytesToRead !== undefined;
|
|
287
|
+
let totalBytesRead = 0;
|
|
288
|
+
let hitLimit = false;
|
|
289
|
+
for await (const [doc, indexKey, bandwidth] of narrowStream.iterWithKeys(trackBandwidth)) {
|
|
286
290
|
if (doc !== null) {
|
|
287
291
|
page.push(doc);
|
|
288
292
|
}
|
|
289
293
|
indexKeys.push(indexKey);
|
|
290
|
-
|
|
294
|
+
totalBytesRead += bandwidth;
|
|
295
|
+
if ((maxBytesToRead !== undefined && totalBytesRead >= maxBytesToRead) ||
|
|
291
296
|
(maxRowsToRead !== undefined && indexKeys.length >= maxRowsToRead)) {
|
|
297
|
+
hitLimit = true;
|
|
298
|
+
}
|
|
299
|
+
if (hitLimit || (maxRows !== undefined && page.length >= maxRows)) {
|
|
292
300
|
hasMore = true;
|
|
293
301
|
continueCursor = serializeCursor(indexKey);
|
|
294
302
|
break;
|
|
@@ -296,7 +304,7 @@ export class QueryStream {
|
|
|
296
304
|
}
|
|
297
305
|
let pageStatus = undefined;
|
|
298
306
|
let splitCursor = undefined;
|
|
299
|
-
if (
|
|
307
|
+
if (hitLimit) {
|
|
300
308
|
pageStatus = "SplitRequired";
|
|
301
309
|
splitCursor = indexKeys[Math.floor((indexKeys.length - 1) / 2)];
|
|
302
310
|
}
|
|
@@ -317,7 +325,7 @@ export class QueryStream {
|
|
|
317
325
|
}
|
|
318
326
|
async take(n) {
|
|
319
327
|
const results = [];
|
|
320
|
-
for await (const [doc
|
|
328
|
+
for await (const [doc] of this.iterWithKeys()) {
|
|
321
329
|
if (doc === null) {
|
|
322
330
|
continue;
|
|
323
331
|
}
|
|
@@ -405,8 +413,8 @@ export class StreamQueryInitializer extends StreamableQuery {
|
|
|
405
413
|
reflect() {
|
|
406
414
|
return this.inner().reflect();
|
|
407
415
|
}
|
|
408
|
-
iterWithKeys() {
|
|
409
|
-
return this.inner().iterWithKeys();
|
|
416
|
+
iterWithKeys(trackBandwidth = false) {
|
|
417
|
+
return this.inner().iterWithKeys(trackBandwidth);
|
|
410
418
|
}
|
|
411
419
|
getOrder() {
|
|
412
420
|
return this.inner().getOrder();
|
|
@@ -443,8 +451,8 @@ export class StreamQuery extends StreamableQuery {
|
|
|
443
451
|
reflect() {
|
|
444
452
|
return this.inner().reflect();
|
|
445
453
|
}
|
|
446
|
-
iterWithKeys() {
|
|
447
|
-
return this.inner().iterWithKeys();
|
|
454
|
+
iterWithKeys(trackBandwidth = false) {
|
|
455
|
+
return this.inner().iterWithKeys(trackBandwidth);
|
|
448
456
|
}
|
|
449
457
|
getOrder() {
|
|
450
458
|
return this.inner().getOrder();
|
|
@@ -491,7 +499,7 @@ export class OrderedStreamQuery extends StreamableQuery {
|
|
|
491
499
|
const { db, table, index, order, indexRange } = this.reflect();
|
|
492
500
|
return db.query(table).withIndex(index, indexRange).order(order);
|
|
493
501
|
}
|
|
494
|
-
iterWithKeys() {
|
|
502
|
+
iterWithKeys(trackBandwidth = false) {
|
|
495
503
|
const { indexFields } = this.reflect();
|
|
496
504
|
const iterable = this.inner();
|
|
497
505
|
return {
|
|
@@ -503,9 +511,11 @@ export class OrderedStreamQuery extends StreamableQuery {
|
|
|
503
511
|
if (result.done) {
|
|
504
512
|
return { done: true, value: undefined };
|
|
505
513
|
}
|
|
514
|
+
const doc = result.value;
|
|
515
|
+
const bandwidth = trackBandwidth ? getDocumentSize(doc) : 0;
|
|
506
516
|
return {
|
|
507
517
|
done: false,
|
|
508
|
-
value: [
|
|
518
|
+
value: [doc, getIndexKey(doc, indexFields), bandwidth],
|
|
509
519
|
};
|
|
510
520
|
},
|
|
511
521
|
};
|
|
@@ -710,25 +720,36 @@ export class MergedStream extends QueryStream {
|
|
|
710
720
|
// Calculate common prefix of equality index filters.
|
|
711
721
|
this.#equalityIndexFilter = commonPrefix(this.#streams.map((stream) => stream.getEqualityIndexFilter()));
|
|
712
722
|
}
|
|
713
|
-
iterWithKeys() {
|
|
714
|
-
const iterables = this.#streams.map((stream) => stream.iterWithKeys());
|
|
723
|
+
iterWithKeys(trackBandwidth = false) {
|
|
724
|
+
const iterables = this.#streams.map((stream) => stream.iterWithKeys(trackBandwidth));
|
|
715
725
|
const comparisonInversion = this.#order === "asc" ? 1 : -1;
|
|
716
726
|
return {
|
|
717
727
|
[Symbol.asyncIterator]() {
|
|
718
728
|
const iterators = iterables.map((iterable) => iterable[Symbol.asyncIterator]());
|
|
719
|
-
const results = Array
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
}));
|
|
729
|
+
const results = Array(iterators.length);
|
|
730
|
+
// Track bandwidth from pre-fetched documents not yet yielded
|
|
731
|
+
const pendingBandwidth = Array(iterators.length).fill(0);
|
|
723
732
|
return {
|
|
724
733
|
async next() {
|
|
734
|
+
let bandwidthThisIteration = 0;
|
|
725
735
|
// Fill results from iterators with no value yet.
|
|
726
736
|
await Promise.all(iterators.map(async (iterator, i) => {
|
|
727
|
-
if (!results[i]
|
|
737
|
+
if (!results[i]) {
|
|
728
738
|
const result = await iterator.next();
|
|
729
739
|
results[i] = result;
|
|
740
|
+
// Track bandwidth from pre-fetched documents
|
|
741
|
+
if (trackBandwidth && !result.done && result.value) {
|
|
742
|
+
pendingBandwidth[i] = result.value[2];
|
|
743
|
+
}
|
|
730
744
|
}
|
|
731
745
|
}));
|
|
746
|
+
// Sum all pending bandwidth (pre-fetched docs) for this iteration
|
|
747
|
+
if (trackBandwidth) {
|
|
748
|
+
for (let i = 0; i < pendingBandwidth.length; i++) {
|
|
749
|
+
bandwidthThisIteration += pendingBandwidth[i];
|
|
750
|
+
pendingBandwidth[i] = 0;
|
|
751
|
+
}
|
|
752
|
+
}
|
|
732
753
|
// Find index for the value with the lowest index key.
|
|
733
754
|
let minIndexKeyAndIndex = undefined;
|
|
734
755
|
for (let i = 0; i < results.length; i++) {
|
|
@@ -741,7 +762,7 @@ export class MergedStream extends QueryStream {
|
|
|
741
762
|
minIndexKeyAndIndex = [resultIndexKey, i];
|
|
742
763
|
continue;
|
|
743
764
|
}
|
|
744
|
-
const [prevMin
|
|
765
|
+
const [prevMin] = minIndexKeyAndIndex;
|
|
745
766
|
if (compareKeys({ value: resultIndexKey, kind: "exact" }, { value: prevMin, kind: "exact" }) *
|
|
746
767
|
comparisonInversion <
|
|
747
768
|
0) {
|
|
@@ -752,10 +773,13 @@ export class MergedStream extends QueryStream {
|
|
|
752
773
|
return { done: true, value: undefined };
|
|
753
774
|
}
|
|
754
775
|
const [_, minIndex] = minIndexKeyAndIndex;
|
|
755
|
-
const
|
|
776
|
+
const [doc, indexKey] = results[minIndex].value;
|
|
756
777
|
// indicate that we've used this result
|
|
757
|
-
results[minIndex]
|
|
758
|
-
return {
|
|
778
|
+
results[minIndex] = undefined;
|
|
779
|
+
return {
|
|
780
|
+
done: false,
|
|
781
|
+
value: [doc, indexKey, bandwidthThisIteration],
|
|
782
|
+
};
|
|
759
783
|
},
|
|
760
784
|
};
|
|
761
785
|
},
|
|
@@ -828,8 +852,8 @@ class ConcatStreams extends QueryStream {
|
|
|
828
852
|
this.#indexFields = allSame(streams.map((stream) => stream.getIndexFields()), "Cannot concat streams with different index fields. Consider using .orderBy()");
|
|
829
853
|
this.#equalityIndexFilter = commonPrefix(streams.map((stream) => stream.getEqualityIndexFilter()));
|
|
830
854
|
}
|
|
831
|
-
iterWithKeys() {
|
|
832
|
-
const iterables = this.#streams.map((stream) => stream.iterWithKeys());
|
|
855
|
+
iterWithKeys(trackBandwidth = false) {
|
|
856
|
+
const iterables = this.#streams.map((stream) => stream.iterWithKeys(trackBandwidth));
|
|
833
857
|
const comparisonInversion = this.#order === "asc" ? 1 : -1;
|
|
834
858
|
let previousIndexKey = undefined;
|
|
835
859
|
return {
|
|
@@ -885,11 +909,14 @@ class FlatMapStreamIterator {
|
|
|
885
909
|
#currentOuterItem = null;
|
|
886
910
|
#mapper;
|
|
887
911
|
#mappedIndexFields;
|
|
888
|
-
|
|
889
|
-
|
|
912
|
+
#trackBandwidth;
|
|
913
|
+
constructor(outerStream, mapper, mappedIndexFields, trackBandwidth) {
|
|
914
|
+
this.#outerIterator = outerStream
|
|
915
|
+
.iterWithKeys(trackBandwidth)[Symbol.asyncIterator]();
|
|
890
916
|
this.#outerStream = outerStream;
|
|
891
917
|
this.#mapper = mapper;
|
|
892
918
|
this.#mappedIndexFields = mappedIndexFields;
|
|
919
|
+
this.#trackBandwidth = trackBandwidth;
|
|
893
920
|
}
|
|
894
921
|
singletonSkipInnerStream() {
|
|
895
922
|
// If the outer stream is a filtered value, yield a singleton
|
|
@@ -898,7 +925,7 @@ class FlatMapStreamIterator {
|
|
|
898
925
|
return new SingletonStream(null, this.#outerStream.getOrder(), this.#mappedIndexFields, indexKey, indexKey);
|
|
899
926
|
}
|
|
900
927
|
async setCurrentOuterItem(item) {
|
|
901
|
-
const [t, indexKey] = item;
|
|
928
|
+
const [t, indexKey, bandwidth] = item;
|
|
902
929
|
let innerStream;
|
|
903
930
|
if (t === null) {
|
|
904
931
|
innerStream = this.singletonSkipInnerStream();
|
|
@@ -915,8 +942,10 @@ class FlatMapStreamIterator {
|
|
|
915
942
|
this.#currentOuterItem = {
|
|
916
943
|
t,
|
|
917
944
|
indexKey,
|
|
918
|
-
innerIterator: innerStream
|
|
945
|
+
innerIterator: innerStream
|
|
946
|
+
.iterWithKeys(this.#trackBandwidth)[Symbol.asyncIterator](),
|
|
919
947
|
count: 0,
|
|
948
|
+
bandwidth,
|
|
920
949
|
};
|
|
921
950
|
}
|
|
922
951
|
async next() {
|
|
@@ -938,14 +967,18 @@ class FlatMapStreamIterator {
|
|
|
938
967
|
// (which will be skipped by everything except the maximumRowsRead count)
|
|
939
968
|
// to account for the cost of the outer stream.
|
|
940
969
|
this.#currentOuterItem.innerIterator = this.singletonSkipInnerStream()
|
|
941
|
-
.iterWithKeys()[Symbol.asyncIterator]();
|
|
970
|
+
.iterWithKeys(this.#trackBandwidth)[Symbol.asyncIterator]();
|
|
942
971
|
}
|
|
943
972
|
return await this.next();
|
|
944
973
|
}
|
|
945
|
-
const [u, indexKey] = result.value;
|
|
974
|
+
const [u, indexKey, innerBandwidth] = result.value;
|
|
946
975
|
this.#currentOuterItem.count++;
|
|
947
976
|
const fullIndexKey = [...this.#currentOuterItem.indexKey, ...indexKey];
|
|
948
|
-
|
|
977
|
+
// On first yield for this outer item, include outer bandwidth
|
|
978
|
+
const bandwidth = (this.#currentOuterItem.count === 1
|
|
979
|
+
? this.#currentOuterItem.bandwidth
|
|
980
|
+
: 0) + innerBandwidth;
|
|
981
|
+
return { done: false, value: [u, fullIndexKey, bandwidth] };
|
|
949
982
|
}
|
|
950
983
|
}
|
|
951
984
|
class FlatMapStream extends QueryStream {
|
|
@@ -958,13 +991,13 @@ class FlatMapStream extends QueryStream {
|
|
|
958
991
|
this.#mapper = mapper;
|
|
959
992
|
this.#mappedIndexFields = mappedIndexFields;
|
|
960
993
|
}
|
|
961
|
-
iterWithKeys() {
|
|
994
|
+
iterWithKeys(trackBandwidth = false) {
|
|
962
995
|
const outerStream = this.#stream;
|
|
963
996
|
const mapper = this.#mapper;
|
|
964
997
|
const mappedIndexFields = this.#mappedIndexFields;
|
|
965
998
|
return {
|
|
966
999
|
[Symbol.asyncIterator]() {
|
|
967
|
-
return new FlatMapStreamIterator(outerStream, mapper, mappedIndexFields);
|
|
1000
|
+
return new FlatMapStreamIterator(outerStream, mapper, mappedIndexFields, trackBandwidth);
|
|
968
1001
|
},
|
|
969
1002
|
};
|
|
970
1003
|
}
|
|
@@ -1007,20 +1040,23 @@ export class SingletonStream extends QueryStream {
|
|
|
1007
1040
|
#indexFields;
|
|
1008
1041
|
#indexKey;
|
|
1009
1042
|
#equalityIndexFilter;
|
|
1010
|
-
|
|
1043
|
+
#bandwidth;
|
|
1044
|
+
constructor(value, order = "asc", indexFields, indexKey, equalityIndexFilter, bandwidth = 0) {
|
|
1011
1045
|
super();
|
|
1012
1046
|
this.#value = value;
|
|
1013
1047
|
this.#order = order;
|
|
1014
1048
|
this.#indexFields = indexFields;
|
|
1015
1049
|
this.#indexKey = indexKey;
|
|
1016
1050
|
this.#equalityIndexFilter = equalityIndexFilter;
|
|
1051
|
+
this.#bandwidth = bandwidth;
|
|
1017
1052
|
if (indexKey.length !== indexFields.length) {
|
|
1018
1053
|
throw new Error(`indexKey must have the same length as indexFields: ${JSON.stringify(indexKey)} vs ${JSON.stringify(indexFields)}`);
|
|
1019
1054
|
}
|
|
1020
1055
|
}
|
|
1021
|
-
iterWithKeys() {
|
|
1056
|
+
iterWithKeys(_trackBandwidth = false) {
|
|
1022
1057
|
const value = this.#value;
|
|
1023
1058
|
const indexKey = this.#indexKey;
|
|
1059
|
+
const bandwidth = this.#bandwidth;
|
|
1024
1060
|
return {
|
|
1025
1061
|
[Symbol.asyncIterator]() {
|
|
1026
1062
|
let sent = false;
|
|
@@ -1030,7 +1066,10 @@ export class SingletonStream extends QueryStream {
|
|
|
1030
1066
|
return { done: true, value: undefined };
|
|
1031
1067
|
}
|
|
1032
1068
|
sent = true;
|
|
1033
|
-
return {
|
|
1069
|
+
return {
|
|
1070
|
+
done: false,
|
|
1071
|
+
value: [value, indexKey, bandwidth],
|
|
1072
|
+
};
|
|
1034
1073
|
},
|
|
1035
1074
|
};
|
|
1036
1075
|
},
|
|
@@ -1081,7 +1120,7 @@ export class EmptyStream extends QueryStream {
|
|
|
1081
1120
|
this.#order = order;
|
|
1082
1121
|
this.#indexFields = indexFields;
|
|
1083
1122
|
}
|
|
1084
|
-
iterWithKeys() {
|
|
1123
|
+
iterWithKeys(_trackBandwidth = false) {
|
|
1085
1124
|
return {
|
|
1086
1125
|
[Symbol.asyncIterator]() {
|
|
1087
1126
|
return {
|
|
@@ -1158,8 +1197,8 @@ class OrderByStream extends QueryStream {
|
|
|
1158
1197
|
getIndexFields() {
|
|
1159
1198
|
return this.#indexFields;
|
|
1160
1199
|
}
|
|
1161
|
-
iterWithKeys() {
|
|
1162
|
-
const iterable = this.#stream.iterWithKeys();
|
|
1200
|
+
iterWithKeys(trackBandwidth = false) {
|
|
1201
|
+
const iterable = this.#stream.iterWithKeys(trackBandwidth);
|
|
1163
1202
|
const staticFilter = this.#staticFilter;
|
|
1164
1203
|
return {
|
|
1165
1204
|
[Symbol.asyncIterator]() {
|
|
@@ -1170,10 +1209,10 @@ class OrderByStream extends QueryStream {
|
|
|
1170
1209
|
if (result.done) {
|
|
1171
1210
|
return result;
|
|
1172
1211
|
}
|
|
1173
|
-
const [doc, indexKey] = result.value;
|
|
1212
|
+
const [doc, indexKey, bandwidth] = result.value;
|
|
1174
1213
|
return {
|
|
1175
1214
|
done: false,
|
|
1176
|
-
value: [doc, indexKey.slice(staticFilter.length)],
|
|
1215
|
+
value: [doc, indexKey.slice(staticFilter.length), bandwidth],
|
|
1177
1216
|
};
|
|
1178
1217
|
},
|
|
1179
1218
|
};
|
|
@@ -1212,28 +1251,31 @@ class DistinctStream extends QueryStream {
|
|
|
1212
1251
|
}
|
|
1213
1252
|
this.#distinctIndexFieldsLength = distinctIndexFieldsLength;
|
|
1214
1253
|
}
|
|
1215
|
-
iterWithKeys() {
|
|
1254
|
+
iterWithKeys(trackBandwidth = false) {
|
|
1216
1255
|
const stream = this.#stream;
|
|
1217
1256
|
const distinctIndexFieldsLength = this.#distinctIndexFieldsLength;
|
|
1218
1257
|
return {
|
|
1219
1258
|
[Symbol.asyncIterator]() {
|
|
1220
1259
|
let currentStream = stream;
|
|
1221
1260
|
let currentIterator = currentStream
|
|
1222
|
-
.iterWithKeys()[Symbol.asyncIterator]();
|
|
1261
|
+
.iterWithKeys(trackBandwidth)[Symbol.asyncIterator]();
|
|
1223
1262
|
return {
|
|
1224
1263
|
async next() {
|
|
1225
1264
|
const result = await currentIterator.next();
|
|
1226
1265
|
if (result.done) {
|
|
1227
1266
|
return { done: true, value: undefined };
|
|
1228
1267
|
}
|
|
1229
|
-
const [doc, indexKey] = result.value;
|
|
1268
|
+
const [doc, indexKey, bandwidth] = result.value;
|
|
1230
1269
|
if (doc === null) {
|
|
1231
1270
|
// If the original stream has a post-filter `.filterWith`, we will
|
|
1232
1271
|
// iterate over filtered items -- possibly many with the same set of
|
|
1233
1272
|
// distinct index fields -- before finding the first item for the set
|
|
1234
1273
|
// of distinct index fields.
|
|
1235
1274
|
// So it's recommended to put `.filterWith` after `.distinct`.
|
|
1236
|
-
return {
|
|
1275
|
+
return {
|
|
1276
|
+
done: false,
|
|
1277
|
+
value: [null, indexKey, bandwidth],
|
|
1278
|
+
};
|
|
1237
1279
|
}
|
|
1238
1280
|
const distinctIndexKey = indexKey.slice(0, distinctIndexFieldsLength);
|
|
1239
1281
|
if (stream.getOrder() === "asc") {
|
|
@@ -1253,7 +1295,7 @@ class DistinctStream extends QueryStream {
|
|
|
1253
1295
|
});
|
|
1254
1296
|
}
|
|
1255
1297
|
currentIterator = currentStream
|
|
1256
|
-
.iterWithKeys()[Symbol.asyncIterator]();
|
|
1298
|
+
.iterWithKeys(trackBandwidth)[Symbol.asyncIterator]();
|
|
1257
1299
|
return result;
|
|
1258
1300
|
},
|
|
1259
1301
|
};
|
package/server/stream.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/* eslint-disable no-unexpected-multiline */
|
|
2
2
|
import type { Value } from "convex/values";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
convexToJson,
|
|
5
|
+
compareValues,
|
|
6
|
+
jsonToConvex,
|
|
7
|
+
getDocumentSize,
|
|
8
|
+
} from "convex/values";
|
|
4
9
|
import type {
|
|
5
10
|
DataModelFromSchemaDefinition,
|
|
6
11
|
DocumentByInfo,
|
|
@@ -211,6 +216,9 @@ export function stream<Schema extends SchemaDefinition<any, boolean>>(
|
|
|
211
216
|
|
|
212
217
|
type GenericStreamItem = NonNullable<unknown>;
|
|
213
218
|
|
|
219
|
+
type StreamIterable<T> = AsyncIterable<[T | null, IndexKey, number], undefined>;
|
|
220
|
+
type StreamResult<T> = IteratorResult<[T | null, IndexKey, number], undefined>;
|
|
221
|
+
|
|
214
222
|
/**
|
|
215
223
|
* A "QueryStream" is an async iterable of query results, ordered by indexed fields.
|
|
216
224
|
*/
|
|
@@ -218,7 +226,15 @@ export abstract class QueryStream<
|
|
|
218
226
|
T extends GenericStreamItem,
|
|
219
227
|
> implements GenericOrderedQuery<T> {
|
|
220
228
|
// Methods that subclasses must implement so OrderedQuery can be implemented.
|
|
221
|
-
|
|
229
|
+
/**
|
|
230
|
+
* Iterate over documents with their index keys and bandwidth consumed.
|
|
231
|
+
* @param trackBandwidth - If true, tracks bytes read using getDocumentSize. Defaults to false for efficiency.
|
|
232
|
+
* @returns AsyncIterable of [document | null, indexKey, bytesRead]
|
|
233
|
+
* - document: The document or null if filtered out
|
|
234
|
+
* - indexKey: The index key for cursor positioning
|
|
235
|
+
* - bytesRead: Bytes consumed to produce this result (0 if trackBandwidth is false)
|
|
236
|
+
*/
|
|
237
|
+
abstract iterWithKeys(trackBandwidth?: boolean): StreamIterable<T>;
|
|
222
238
|
abstract narrow(indexBounds: IndexBounds): QueryStream<T>;
|
|
223
239
|
|
|
224
240
|
// Methods so subclasses can make sure streams are combined correctly.
|
|
@@ -325,6 +341,7 @@ export abstract class QueryStream<
|
|
|
325
341
|
opts: PaginationOptions & {
|
|
326
342
|
endCursor?: string | null;
|
|
327
343
|
maximumRowsRead?: number;
|
|
344
|
+
maximumBytesRead?: number;
|
|
328
345
|
},
|
|
329
346
|
): Promise<PaginationResult<T>> {
|
|
330
347
|
if (opts.numItems === 0) {
|
|
@@ -380,15 +397,25 @@ export abstract class QueryStream<
|
|
|
380
397
|
const indexKeys: IndexKey[] = [];
|
|
381
398
|
let hasMore = opts.endCursor && opts.endCursor !== "[]";
|
|
382
399
|
let continueCursor = opts.endCursor ?? "[]";
|
|
383
|
-
|
|
400
|
+
const maxBytesToRead = opts.maximumBytesRead;
|
|
401
|
+
const trackBandwidth = maxBytesToRead !== undefined;
|
|
402
|
+
let totalBytesRead = 0;
|
|
403
|
+
let hitLimit = false;
|
|
404
|
+
for await (const [doc, indexKey, bandwidth] of narrowStream.iterWithKeys(
|
|
405
|
+
trackBandwidth,
|
|
406
|
+
)) {
|
|
384
407
|
if (doc !== null) {
|
|
385
408
|
page.push(doc);
|
|
386
409
|
}
|
|
387
410
|
indexKeys.push(indexKey);
|
|
411
|
+
totalBytesRead += bandwidth;
|
|
388
412
|
if (
|
|
389
|
-
(
|
|
413
|
+
(maxBytesToRead !== undefined && totalBytesRead >= maxBytesToRead) ||
|
|
390
414
|
(maxRowsToRead !== undefined && indexKeys.length >= maxRowsToRead)
|
|
391
415
|
) {
|
|
416
|
+
hitLimit = true;
|
|
417
|
+
}
|
|
418
|
+
if (hitLimit || (maxRows !== undefined && page.length >= maxRows)) {
|
|
392
419
|
hasMore = true;
|
|
393
420
|
continueCursor = serializeCursor(indexKey);
|
|
394
421
|
break;
|
|
@@ -397,7 +424,7 @@ export abstract class QueryStream<
|
|
|
397
424
|
let pageStatus: "SplitRecommended" | "SplitRequired" | undefined =
|
|
398
425
|
undefined;
|
|
399
426
|
let splitCursor: IndexKey | undefined = undefined;
|
|
400
|
-
if (
|
|
427
|
+
if (hitLimit) {
|
|
401
428
|
pageStatus = "SplitRequired";
|
|
402
429
|
splitCursor = indexKeys[Math.floor((indexKeys.length - 1) / 2)];
|
|
403
430
|
} else if (indexKeys.length >= softMaxRowsToRead) {
|
|
@@ -417,7 +444,7 @@ export abstract class QueryStream<
|
|
|
417
444
|
}
|
|
418
445
|
async take(n: number) {
|
|
419
446
|
const results: T[] = [];
|
|
420
|
-
for await (const [doc
|
|
447
|
+
for await (const [doc] of this.iterWithKeys()) {
|
|
421
448
|
if (doc === null) {
|
|
422
449
|
continue;
|
|
423
450
|
}
|
|
@@ -439,13 +466,13 @@ export abstract class QueryStream<
|
|
|
439
466
|
const docs = await this.take(1);
|
|
440
467
|
return docs[0] ?? null;
|
|
441
468
|
}
|
|
442
|
-
[Symbol.asyncIterator]() {
|
|
469
|
+
[Symbol.asyncIterator](): AsyncIterator<T, undefined> {
|
|
443
470
|
const iterator = this.iterWithKeys()[Symbol.asyncIterator]();
|
|
444
471
|
return {
|
|
445
472
|
async next() {
|
|
446
473
|
const result = await iterator.next();
|
|
447
474
|
if (result.done) {
|
|
448
|
-
return { done: true
|
|
475
|
+
return { done: true, value: undefined };
|
|
449
476
|
}
|
|
450
477
|
return { done: false, value: result.value[0]! };
|
|
451
478
|
},
|
|
@@ -632,8 +659,8 @@ export class StreamQueryInitializer<
|
|
|
632
659
|
reflect() {
|
|
633
660
|
return this.inner().reflect();
|
|
634
661
|
}
|
|
635
|
-
iterWithKeys() {
|
|
636
|
-
return this.inner().iterWithKeys();
|
|
662
|
+
iterWithKeys(trackBandwidth = false) {
|
|
663
|
+
return this.inner().iterWithKeys(trackBandwidth);
|
|
637
664
|
}
|
|
638
665
|
getOrder(): "asc" | "desc" {
|
|
639
666
|
return this.inner().getOrder();
|
|
@@ -682,8 +709,8 @@ export class StreamQuery<
|
|
|
682
709
|
reflect() {
|
|
683
710
|
return this.inner().reflect();
|
|
684
711
|
}
|
|
685
|
-
iterWithKeys() {
|
|
686
|
-
return this.inner().iterWithKeys();
|
|
712
|
+
iterWithKeys(trackBandwidth = false) {
|
|
713
|
+
return this.inner().iterWithKeys(trackBandwidth);
|
|
687
714
|
}
|
|
688
715
|
getOrder(): "asc" | "desc" {
|
|
689
716
|
return this.inner().getOrder();
|
|
@@ -737,9 +764,9 @@ export class OrderedStreamQuery<
|
|
|
737
764
|
const { db, table, index, order, indexRange } = this.reflect();
|
|
738
765
|
return db.query(table).withIndex(index, indexRange).order(order);
|
|
739
766
|
}
|
|
740
|
-
iterWithKeys(
|
|
741
|
-
|
|
742
|
-
|
|
767
|
+
iterWithKeys(
|
|
768
|
+
trackBandwidth = false,
|
|
769
|
+
): StreamIterable<DocumentByName<DM<Schema>, T>> {
|
|
743
770
|
const { indexFields } = this.reflect();
|
|
744
771
|
const iterable = this.inner();
|
|
745
772
|
return {
|
|
@@ -751,9 +778,11 @@ export class OrderedStreamQuery<
|
|
|
751
778
|
if (result.done) {
|
|
752
779
|
return { done: true, value: undefined };
|
|
753
780
|
}
|
|
781
|
+
const doc = result.value;
|
|
782
|
+
const bandwidth = trackBandwidth ? getDocumentSize(doc) : 0;
|
|
754
783
|
return {
|
|
755
784
|
done: false,
|
|
756
|
-
value: [
|
|
785
|
+
value: [doc, getIndexKey(doc, indexFields), bandwidth],
|
|
757
786
|
};
|
|
758
787
|
},
|
|
759
788
|
};
|
|
@@ -1017,32 +1046,44 @@ export class MergedStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1017
1046
|
this.#streams.map((stream) => stream.getEqualityIndexFilter()),
|
|
1018
1047
|
);
|
|
1019
1048
|
}
|
|
1020
|
-
iterWithKeys() {
|
|
1021
|
-
const iterables = this.#streams.map((stream) =>
|
|
1049
|
+
iterWithKeys(trackBandwidth = false): StreamIterable<T> {
|
|
1050
|
+
const iterables = this.#streams.map((stream) =>
|
|
1051
|
+
stream.iterWithKeys(trackBandwidth),
|
|
1052
|
+
);
|
|
1022
1053
|
const comparisonInversion = this.#order === "asc" ? 1 : -1;
|
|
1023
1054
|
return {
|
|
1024
1055
|
[Symbol.asyncIterator]() {
|
|
1025
1056
|
const iterators = iterables.map((iterable) =>
|
|
1026
1057
|
iterable[Symbol.asyncIterator](),
|
|
1027
1058
|
);
|
|
1028
|
-
const results = Array
|
|
1029
|
-
|
|
1030
|
-
(): IteratorResult<[T | null, IndexKey] | undefined> => ({
|
|
1031
|
-
done: false,
|
|
1032
|
-
value: undefined,
|
|
1033
|
-
}),
|
|
1059
|
+
const results: (StreamResult<T> | undefined)[] = Array(
|
|
1060
|
+
iterators.length,
|
|
1034
1061
|
);
|
|
1062
|
+
// Track bandwidth from pre-fetched documents not yet yielded
|
|
1063
|
+
const pendingBandwidth = Array(iterators.length).fill(0);
|
|
1035
1064
|
return {
|
|
1036
1065
|
async next() {
|
|
1066
|
+
let bandwidthThisIteration = 0;
|
|
1037
1067
|
// Fill results from iterators with no value yet.
|
|
1038
1068
|
await Promise.all(
|
|
1039
1069
|
iterators.map(async (iterator, i) => {
|
|
1040
|
-
if (!results[i]
|
|
1070
|
+
if (!results[i]) {
|
|
1041
1071
|
const result = await iterator.next();
|
|
1042
1072
|
results[i] = result;
|
|
1073
|
+
// Track bandwidth from pre-fetched documents
|
|
1074
|
+
if (trackBandwidth && !result.done && result.value) {
|
|
1075
|
+
pendingBandwidth[i] = result.value[2];
|
|
1076
|
+
}
|
|
1043
1077
|
}
|
|
1044
1078
|
}),
|
|
1045
1079
|
);
|
|
1080
|
+
// Sum all pending bandwidth (pre-fetched docs) for this iteration
|
|
1081
|
+
if (trackBandwidth) {
|
|
1082
|
+
for (let i = 0; i < pendingBandwidth.length; i++) {
|
|
1083
|
+
bandwidthThisIteration += pendingBandwidth[i]!;
|
|
1084
|
+
pendingBandwidth[i] = 0;
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1046
1087
|
// Find index for the value with the lowest index key.
|
|
1047
1088
|
let minIndexKeyAndIndex: [IndexKey, number] | undefined = undefined;
|
|
1048
1089
|
for (let i = 0; i < results.length; i++) {
|
|
@@ -1055,7 +1096,7 @@ export class MergedStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1055
1096
|
minIndexKeyAndIndex = [resultIndexKey, i];
|
|
1056
1097
|
continue;
|
|
1057
1098
|
}
|
|
1058
|
-
const [prevMin
|
|
1099
|
+
const [prevMin] = minIndexKeyAndIndex;
|
|
1059
1100
|
if (
|
|
1060
1101
|
compareKeys(
|
|
1061
1102
|
{ value: resultIndexKey, kind: "exact" },
|
|
@@ -1071,10 +1112,13 @@ export class MergedStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1071
1112
|
return { done: true, value: undefined };
|
|
1072
1113
|
}
|
|
1073
1114
|
const [_, minIndex] = minIndexKeyAndIndex;
|
|
1074
|
-
const
|
|
1115
|
+
const [doc, indexKey] = results[minIndex]!.value!;
|
|
1075
1116
|
// indicate that we've used this result
|
|
1076
|
-
results[minIndex]
|
|
1077
|
-
return {
|
|
1117
|
+
results[minIndex] = undefined;
|
|
1118
|
+
return {
|
|
1119
|
+
done: false,
|
|
1120
|
+
value: [doc, indexKey, bandwidthThisIteration],
|
|
1121
|
+
};
|
|
1078
1122
|
},
|
|
1079
1123
|
};
|
|
1080
1124
|
},
|
|
@@ -1161,8 +1205,10 @@ class ConcatStreams<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1161
1205
|
streams.map((stream) => stream.getEqualityIndexFilter()),
|
|
1162
1206
|
);
|
|
1163
1207
|
}
|
|
1164
|
-
iterWithKeys():
|
|
1165
|
-
const iterables = this.#streams.map((stream) =>
|
|
1208
|
+
iterWithKeys(trackBandwidth = false): StreamIterable<T> {
|
|
1209
|
+
const iterables = this.#streams.map((stream) =>
|
|
1210
|
+
stream.iterWithKeys(trackBandwidth),
|
|
1211
|
+
);
|
|
1166
1212
|
const comparisonInversion = this.#order === "asc" ? 1 : -1;
|
|
1167
1213
|
let previousIndexKey: IndexKey | undefined = undefined;
|
|
1168
1214
|
return {
|
|
@@ -1226,27 +1272,33 @@ class ConcatStreams<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1226
1272
|
class FlatMapStreamIterator<
|
|
1227
1273
|
T extends GenericStreamItem,
|
|
1228
1274
|
U extends GenericStreamItem,
|
|
1229
|
-
> implements AsyncIterator<[U | null, IndexKey]> {
|
|
1275
|
+
> implements AsyncIterator<[U | null, IndexKey, number], undefined> {
|
|
1230
1276
|
#outerStream: QueryStream<T>;
|
|
1231
|
-
#outerIterator: AsyncIterator<[T | null, IndexKey]>;
|
|
1277
|
+
#outerIterator: AsyncIterator<[T | null, IndexKey, number], undefined>;
|
|
1232
1278
|
#currentOuterItem: {
|
|
1233
1279
|
t: T | null;
|
|
1234
1280
|
indexKey: IndexKey;
|
|
1235
|
-
innerIterator: AsyncIterator<[U | null, IndexKey]>;
|
|
1281
|
+
innerIterator: AsyncIterator<[U | null, IndexKey, number], undefined>;
|
|
1236
1282
|
count: number;
|
|
1283
|
+
bandwidth: number; // bandwidth from reading outer doc
|
|
1237
1284
|
} | null = null;
|
|
1238
1285
|
#mapper: (doc: T) => Promise<QueryStream<U>>;
|
|
1239
1286
|
#mappedIndexFields: string[];
|
|
1287
|
+
#trackBandwidth: boolean;
|
|
1240
1288
|
|
|
1241
1289
|
constructor(
|
|
1242
1290
|
outerStream: QueryStream<T>,
|
|
1243
1291
|
mapper: (doc: T) => Promise<QueryStream<U>>,
|
|
1244
1292
|
mappedIndexFields: string[],
|
|
1293
|
+
trackBandwidth: boolean,
|
|
1245
1294
|
) {
|
|
1246
|
-
this.#outerIterator = outerStream
|
|
1295
|
+
this.#outerIterator = outerStream
|
|
1296
|
+
.iterWithKeys(trackBandwidth)
|
|
1297
|
+
[Symbol.asyncIterator]();
|
|
1247
1298
|
this.#outerStream = outerStream;
|
|
1248
1299
|
this.#mapper = mapper;
|
|
1249
1300
|
this.#mappedIndexFields = mappedIndexFields;
|
|
1301
|
+
this.#trackBandwidth = trackBandwidth;
|
|
1250
1302
|
}
|
|
1251
1303
|
singletonSkipInnerStream(): QueryStream<U> {
|
|
1252
1304
|
// If the outer stream is a filtered value, yield a singleton
|
|
@@ -1260,8 +1312,8 @@ class FlatMapStreamIterator<
|
|
|
1260
1312
|
indexKey,
|
|
1261
1313
|
);
|
|
1262
1314
|
}
|
|
1263
|
-
async setCurrentOuterItem(item: [T | null, IndexKey]) {
|
|
1264
|
-
const [t, indexKey] = item;
|
|
1315
|
+
async setCurrentOuterItem(item: [T | null, IndexKey, number]) {
|
|
1316
|
+
const [t, indexKey, bandwidth] = item;
|
|
1265
1317
|
let innerStream: QueryStream<U>;
|
|
1266
1318
|
if (t === null) {
|
|
1267
1319
|
innerStream = this.singletonSkipInnerStream();
|
|
@@ -1283,11 +1335,14 @@ class FlatMapStreamIterator<
|
|
|
1283
1335
|
this.#currentOuterItem = {
|
|
1284
1336
|
t,
|
|
1285
1337
|
indexKey,
|
|
1286
|
-
innerIterator: innerStream
|
|
1338
|
+
innerIterator: innerStream
|
|
1339
|
+
.iterWithKeys(this.#trackBandwidth)
|
|
1340
|
+
[Symbol.asyncIterator](),
|
|
1287
1341
|
count: 0,
|
|
1342
|
+
bandwidth,
|
|
1288
1343
|
};
|
|
1289
1344
|
}
|
|
1290
|
-
async next(): Promise<
|
|
1345
|
+
async next(): Promise<StreamResult<U>> {
|
|
1291
1346
|
if (this.#currentOuterItem === null) {
|
|
1292
1347
|
const result = await this.#outerIterator.next();
|
|
1293
1348
|
if (result.done) {
|
|
@@ -1305,15 +1360,20 @@ class FlatMapStreamIterator<
|
|
|
1305
1360
|
// (which will be skipped by everything except the maximumRowsRead count)
|
|
1306
1361
|
// to account for the cost of the outer stream.
|
|
1307
1362
|
this.#currentOuterItem.innerIterator = this.singletonSkipInnerStream()
|
|
1308
|
-
.iterWithKeys()
|
|
1363
|
+
.iterWithKeys(this.#trackBandwidth)
|
|
1309
1364
|
[Symbol.asyncIterator]();
|
|
1310
1365
|
}
|
|
1311
1366
|
return await this.next();
|
|
1312
1367
|
}
|
|
1313
|
-
const [u, indexKey] = result.value;
|
|
1368
|
+
const [u, indexKey, innerBandwidth] = result.value;
|
|
1314
1369
|
this.#currentOuterItem.count++;
|
|
1315
1370
|
const fullIndexKey = [...this.#currentOuterItem.indexKey, ...indexKey];
|
|
1316
|
-
|
|
1371
|
+
// On first yield for this outer item, include outer bandwidth
|
|
1372
|
+
const bandwidth =
|
|
1373
|
+
(this.#currentOuterItem.count === 1
|
|
1374
|
+
? this.#currentOuterItem.bandwidth
|
|
1375
|
+
: 0) + innerBandwidth;
|
|
1376
|
+
return { done: false, value: [u, fullIndexKey, bandwidth] };
|
|
1317
1377
|
}
|
|
1318
1378
|
}
|
|
1319
1379
|
|
|
@@ -1334,7 +1394,7 @@ class FlatMapStream<
|
|
|
1334
1394
|
this.#mapper = mapper;
|
|
1335
1395
|
this.#mappedIndexFields = mappedIndexFields;
|
|
1336
1396
|
}
|
|
1337
|
-
iterWithKeys():
|
|
1397
|
+
iterWithKeys(trackBandwidth = false): StreamIterable<U> {
|
|
1338
1398
|
const outerStream = this.#stream;
|
|
1339
1399
|
const mapper = this.#mapper;
|
|
1340
1400
|
const mappedIndexFields = this.#mappedIndexFields;
|
|
@@ -1344,6 +1404,7 @@ class FlatMapStream<
|
|
|
1344
1404
|
outerStream,
|
|
1345
1405
|
mapper,
|
|
1346
1406
|
mappedIndexFields,
|
|
1407
|
+
trackBandwidth,
|
|
1347
1408
|
);
|
|
1348
1409
|
},
|
|
1349
1410
|
};
|
|
@@ -1398,12 +1459,14 @@ export class SingletonStream<
|
|
|
1398
1459
|
#indexFields: string[];
|
|
1399
1460
|
#indexKey: IndexKey;
|
|
1400
1461
|
#equalityIndexFilter: Value[];
|
|
1462
|
+
#bandwidth: number;
|
|
1401
1463
|
constructor(
|
|
1402
1464
|
value: T | null,
|
|
1403
1465
|
order: "asc" | "desc" = "asc",
|
|
1404
1466
|
indexFields: string[],
|
|
1405
1467
|
indexKey: IndexKey,
|
|
1406
1468
|
equalityIndexFilter: Value[],
|
|
1469
|
+
bandwidth = 0,
|
|
1407
1470
|
) {
|
|
1408
1471
|
super();
|
|
1409
1472
|
this.#value = value;
|
|
@@ -1411,6 +1474,7 @@ export class SingletonStream<
|
|
|
1411
1474
|
this.#indexFields = indexFields;
|
|
1412
1475
|
this.#indexKey = indexKey;
|
|
1413
1476
|
this.#equalityIndexFilter = equalityIndexFilter;
|
|
1477
|
+
this.#bandwidth = bandwidth;
|
|
1414
1478
|
if (indexKey.length !== indexFields.length) {
|
|
1415
1479
|
throw new Error(
|
|
1416
1480
|
`indexKey must have the same length as indexFields: ${JSON.stringify(
|
|
@@ -1419,9 +1483,10 @@ export class SingletonStream<
|
|
|
1419
1483
|
);
|
|
1420
1484
|
}
|
|
1421
1485
|
}
|
|
1422
|
-
iterWithKeys():
|
|
1486
|
+
iterWithKeys(_trackBandwidth = false): StreamIterable<T> {
|
|
1423
1487
|
const value = this.#value;
|
|
1424
1488
|
const indexKey = this.#indexKey;
|
|
1489
|
+
const bandwidth = this.#bandwidth;
|
|
1425
1490
|
return {
|
|
1426
1491
|
[Symbol.asyncIterator]() {
|
|
1427
1492
|
let sent = false;
|
|
@@ -1431,7 +1496,10 @@ export class SingletonStream<
|
|
|
1431
1496
|
return { done: true, value: undefined };
|
|
1432
1497
|
}
|
|
1433
1498
|
sent = true;
|
|
1434
|
-
return {
|
|
1499
|
+
return {
|
|
1500
|
+
done: false,
|
|
1501
|
+
value: [value, indexKey, bandwidth],
|
|
1502
|
+
};
|
|
1435
1503
|
},
|
|
1436
1504
|
};
|
|
1437
1505
|
},
|
|
@@ -1495,7 +1563,7 @@ export class EmptyStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1495
1563
|
this.#order = order;
|
|
1496
1564
|
this.#indexFields = indexFields;
|
|
1497
1565
|
}
|
|
1498
|
-
iterWithKeys():
|
|
1566
|
+
iterWithKeys(_trackBandwidth = false): StreamIterable<T> {
|
|
1499
1567
|
return {
|
|
1500
1568
|
[Symbol.asyncIterator]() {
|
|
1501
1569
|
return {
|
|
@@ -1587,8 +1655,8 @@ class OrderByStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1587
1655
|
getIndexFields(): string[] {
|
|
1588
1656
|
return this.#indexFields;
|
|
1589
1657
|
}
|
|
1590
|
-
iterWithKeys():
|
|
1591
|
-
const iterable = this.#stream.iterWithKeys();
|
|
1658
|
+
iterWithKeys(trackBandwidth = false): StreamIterable<T> {
|
|
1659
|
+
const iterable = this.#stream.iterWithKeys(trackBandwidth);
|
|
1592
1660
|
const staticFilter = this.#staticFilter;
|
|
1593
1661
|
return {
|
|
1594
1662
|
[Symbol.asyncIterator]() {
|
|
@@ -1599,10 +1667,10 @@ class OrderByStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1599
1667
|
if (result.done) {
|
|
1600
1668
|
return result;
|
|
1601
1669
|
}
|
|
1602
|
-
const [doc, indexKey] = result.value;
|
|
1670
|
+
const [doc, indexKey, bandwidth] = result.value;
|
|
1603
1671
|
return {
|
|
1604
1672
|
done: false,
|
|
1605
|
-
value: [doc, indexKey.slice(staticFilter.length)],
|
|
1673
|
+
value: [doc, indexKey.slice(staticFilter.length), bandwidth],
|
|
1606
1674
|
};
|
|
1607
1675
|
},
|
|
1608
1676
|
};
|
|
@@ -1651,14 +1719,14 @@ class DistinctStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1651
1719
|
}
|
|
1652
1720
|
this.#distinctIndexFieldsLength = distinctIndexFieldsLength;
|
|
1653
1721
|
}
|
|
1654
|
-
override iterWithKeys():
|
|
1722
|
+
override iterWithKeys(trackBandwidth = false): StreamIterable<T> {
|
|
1655
1723
|
const stream = this.#stream;
|
|
1656
1724
|
const distinctIndexFieldsLength = this.#distinctIndexFieldsLength;
|
|
1657
1725
|
return {
|
|
1658
1726
|
[Symbol.asyncIterator]() {
|
|
1659
1727
|
let currentStream = stream;
|
|
1660
1728
|
let currentIterator = currentStream
|
|
1661
|
-
.iterWithKeys()
|
|
1729
|
+
.iterWithKeys(trackBandwidth)
|
|
1662
1730
|
[Symbol.asyncIterator]();
|
|
1663
1731
|
return {
|
|
1664
1732
|
async next() {
|
|
@@ -1666,14 +1734,17 @@ class DistinctStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1666
1734
|
if (result.done) {
|
|
1667
1735
|
return { done: true, value: undefined };
|
|
1668
1736
|
}
|
|
1669
|
-
const [doc, indexKey] = result.value;
|
|
1737
|
+
const [doc, indexKey, bandwidth] = result.value;
|
|
1670
1738
|
if (doc === null) {
|
|
1671
1739
|
// If the original stream has a post-filter `.filterWith`, we will
|
|
1672
1740
|
// iterate over filtered items -- possibly many with the same set of
|
|
1673
1741
|
// distinct index fields -- before finding the first item for the set
|
|
1674
1742
|
// of distinct index fields.
|
|
1675
1743
|
// So it's recommended to put `.filterWith` after `.distinct`.
|
|
1676
|
-
return {
|
|
1744
|
+
return {
|
|
1745
|
+
done: false,
|
|
1746
|
+
value: [null, indexKey, bandwidth],
|
|
1747
|
+
};
|
|
1677
1748
|
}
|
|
1678
1749
|
const distinctIndexKey = indexKey.slice(
|
|
1679
1750
|
0,
|
|
@@ -1695,7 +1766,7 @@ class DistinctStream<T extends GenericStreamItem> extends QueryStream<T> {
|
|
|
1695
1766
|
});
|
|
1696
1767
|
}
|
|
1697
1768
|
currentIterator = currentStream
|
|
1698
|
-
.iterWithKeys()
|
|
1769
|
+
.iterWithKeys(trackBandwidth)
|
|
1699
1770
|
[Symbol.asyncIterator]();
|
|
1700
1771
|
return result;
|
|
1701
1772
|
},
|
package/validators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["validators.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["validators.ts"],"names":[],"mappings":"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"}
|