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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "convex-helpers",
3
- "version": "0.1.113",
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.25.4",
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,EAInB,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,CA6PpC"}
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"}
@@ -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
  },
@@ -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
- ...(queries[lastPageKey]!.args
547
- .paginationOpts as unknown as PaginationOptions),
545
+ ...queries[lastPageKey]!.args.paginationOpts,
548
546
  endCursor: continueCursor,
549
547
  },
550
548
  },
@@ -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 unlimited.
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;;;;OAIG;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"}
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"}
@@ -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 unlimited.
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
@@ -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
- abstract iterWithKeys(): AsyncIterable<[T | null, IndexKey]>;
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(): AsyncIterable<[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> ? {
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> | null, IndexKey]>;
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(): AsyncIterable<[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> ? {
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> | null, IndexKey]>;
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(): AsyncIterable<[
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(): AsyncIterable<[T | null, IndexKey]>;
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(): AsyncIterable<[T | null, IndexKey]>;
508
+ iterWithKeys(_trackBandwidth?: boolean): StreamIterable<T>;
517
509
  getOrder(): "asc" | "desc";
518
510
  getIndexFields(): string[];
519
511
  getEqualityIndexFilter(): Value[];
@@ -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
- for await (const [doc, indexKey] of narrowStream.iterWithKeys()) {
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
- if ((maxRows !== undefined && page.length >= maxRows) ||
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 (indexKeys.length === maxRowsToRead) {
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, _] of this.iterWithKeys()) {
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: [result.value, getIndexKey(result.value, indexFields)],
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.from({ length: iterators.length }, () => ({
720
- done: false,
721
- value: undefined,
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].done && !results[i].value) {
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, _prevMinIndex] = minIndexKeyAndIndex;
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 result = results[minIndex].value;
776
+ const [doc, indexKey] = results[minIndex].value;
756
777
  // indicate that we've used this result
757
- results[minIndex].value = undefined;
758
- return { done: false, value: result };
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
- constructor(outerStream, mapper, mappedIndexFields) {
889
- this.#outerIterator = outerStream.iterWithKeys()[Symbol.asyncIterator]();
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.iterWithKeys()[Symbol.asyncIterator](),
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
- return { done: false, value: [u, fullIndexKey] };
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
- constructor(value, order = "asc", indexFields, indexKey, equalityIndexFilter) {
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 { done: false, value: [value, indexKey] };
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 { done: false, value: [null, indexKey] };
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 { convexToJson, compareValues, jsonToConvex } from "convex/values";
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
- abstract iterWithKeys(): AsyncIterable<[T | null, IndexKey]>;
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
- for await (const [doc, indexKey] of narrowStream.iterWithKeys()) {
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
- (maxRows !== undefined && page.length >= maxRows) ||
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 (indexKeys.length === maxRowsToRead) {
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, _] of this.iterWithKeys()) {
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 as const, value: undefined };
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(): AsyncIterable<
741
- [DocumentByName<DM<Schema>, T> | null, IndexKey]
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: [result.value, getIndexKey(result.value, indexFields)],
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) => stream.iterWithKeys());
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.from(
1029
- { length: iterators.length },
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]!.done && !results[i]!.value) {
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, _prevMinIndex] = minIndexKeyAndIndex;
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 result = results[minIndex]!.value;
1115
+ const [doc, indexKey] = results[minIndex]!.value!;
1075
1116
  // indicate that we've used this result
1076
- results[minIndex]!.value = undefined;
1077
- return { done: false, value: result };
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(): AsyncIterable<[T | null, IndexKey]> {
1165
- const iterables = this.#streams.map((stream) => stream.iterWithKeys());
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.iterWithKeys()[Symbol.asyncIterator]();
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.iterWithKeys()[Symbol.asyncIterator](),
1338
+ innerIterator: innerStream
1339
+ .iterWithKeys(this.#trackBandwidth)
1340
+ [Symbol.asyncIterator](),
1287
1341
  count: 0,
1342
+ bandwidth,
1288
1343
  };
1289
1344
  }
1290
- async next(): Promise<IteratorResult<[U | null, IndexKey]>> {
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
- return { done: false, value: [u, fullIndexKey] };
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(): AsyncIterable<[U | null, IndexKey]> {
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(): AsyncIterable<[T | null, IndexKey]> {
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 { done: false, value: [value, indexKey] };
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(): AsyncIterable<[T | null, IndexKey]> {
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(): AsyncIterable<[T | null, IndexKey]> {
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(): AsyncIterable<[T | null, IndexKey]> {
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 { done: false, value: [null, indexKey] };
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
  },
@@ -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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"}