@tanstack/db-ivm 0.1.15 → 0.1.16

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.
@@ -22,6 +22,7 @@ const topK = require("./operators/topK.cjs");
22
22
  const topKWithFractionalIndex = require("./operators/topKWithFractionalIndex.cjs");
23
23
  const groupedTopKWithFractionalIndex = require("./operators/groupedTopKWithFractionalIndex.cjs");
24
24
  const orderBy = require("./operators/orderBy.cjs");
25
+ const groupedOrderBy = require("./operators/groupedOrderBy.cjs");
25
26
  const filterBy = require("./operators/filterBy.cjs");
26
27
  exports.D2 = d2.D2;
27
28
  exports.RootStreamBuilder = d2.RootStreamBuilder;
@@ -74,5 +75,6 @@ exports.orderBy = orderBy.orderBy;
74
75
  exports.orderByWithFractionalIndex = orderBy.orderByWithFractionalIndex;
75
76
  exports.orderByWithFractionalIndexBase = orderBy.orderByWithFractionalIndexBase;
76
77
  exports.orderByWithIndex = orderBy.orderByWithIndex;
78
+ exports.groupedOrderByWithFractionalIndex = groupedOrderBy.groupedOrderByWithFractionalIndex;
77
79
  exports.filterBy = filterBy.filterBy;
78
80
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const groupedTopKWithFractionalIndex = require("./groupedTopKWithFractionalIndex.cjs");
4
+ const consolidate = require("./consolidate.cjs");
5
+ function groupedOrderByWithFractionalIndex(valueExtractor, options) {
6
+ const limit = options.limit ?? Infinity;
7
+ const offset = options.offset ?? 0;
8
+ const setSizeCallback = options.setSizeCallback;
9
+ const setWindowFn = options.setWindowFn;
10
+ const groupKeyFn = options.groupKeyFn;
11
+ const comparator = options.comparator ?? ((a, b) => {
12
+ if (a === b) return 0;
13
+ if (a < b) return -1;
14
+ return 1;
15
+ });
16
+ return (stream) => {
17
+ return stream.pipe(
18
+ groupedTopKWithFractionalIndex.groupedTopKWithFractionalIndex(
19
+ (a, b) => comparator(valueExtractor(a), valueExtractor(b)),
20
+ {
21
+ limit,
22
+ offset,
23
+ setSizeCallback,
24
+ setWindowFn,
25
+ groupKeyFn
26
+ }
27
+ ),
28
+ consolidate.consolidate()
29
+ );
30
+ };
31
+ }
32
+ exports.groupedOrderByWithFractionalIndex = groupedOrderByWithFractionalIndex;
33
+ //# sourceMappingURL=groupedOrderBy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupedOrderBy.cjs","sources":["../../../src/operators/groupedOrderBy.ts"],"sourcesContent":["import { groupedTopKWithFractionalIndex } from './groupedTopKWithFractionalIndex.js'\nimport { consolidate } from './consolidate.js'\nimport type { IStreamBuilder, KeyValue } from '../types.js'\n\nexport interface GroupedOrderByOptions<Ve> {\n comparator?: (a: Ve, b: Ve) => number\n limit?: number\n offset?: number\n}\n\nexport interface GroupedOrderByWithFractionalIndexOptions<\n Ve,\n KeyType = unknown,\n ValueType = unknown,\n> extends GroupedOrderByOptions<Ve> {\n setSizeCallback?: (getSize: () => number) => void\n setWindowFn?: (\n windowFn: (options: { offset?: number; limit?: number }) => void,\n ) => void\n /**\n * Function to extract a group key from the element's key and value.\n * Elements with the same group key will be sorted and limited together.\n */\n groupKeyFn: (key: KeyType, value: ValueType) => unknown\n}\n\n/**\n * Orders the elements per group and limits the number of results per group, with optional offset and\n * annotates the value with a fractional index.\n * This requires a keyed stream, and uses the `groupedTopKWithFractionalIndex` operator to order elements within each group.\n *\n * Elements are grouped by the provided groupKeyFn, and each group maintains its own sorted collection\n * with independent limit/offset.\n *\n * @param valueExtractor - A function that extracts the value to order by from the element\n * @param options - Configuration including groupKeyFn, comparator, limit, and offset\n * @returns A piped operator that orders the elements per group and limits the number of results per group\n */\nexport function groupedOrderByWithFractionalIndex<\n T extends KeyValue<unknown, unknown>,\n Ve = unknown,\n>(\n valueExtractor: (\n value: T extends KeyValue<unknown, infer V> ? V : never,\n ) => Ve,\n options: GroupedOrderByWithFractionalIndexOptions<\n Ve,\n T extends KeyValue<infer K, unknown> ? K : never,\n T extends KeyValue<unknown, infer V> ? V : never\n >,\n) {\n type KeyType = T extends KeyValue<infer K, unknown> ? K : never\n type ValueType = T extends KeyValue<unknown, infer V> ? V : never\n\n const limit = options.limit ?? Infinity\n const offset = options.offset ?? 0\n const setSizeCallback = options.setSizeCallback\n const setWindowFn = options.setWindowFn\n const groupKeyFn = options.groupKeyFn\n const comparator =\n options.comparator ??\n ((a, b) => {\n // Default to JS like ordering\n if (a === b) return 0\n if (a < b) return -1\n return 1\n })\n\n return (\n stream: IStreamBuilder<T>,\n ): IStreamBuilder<[KeyType, [ValueType, string]]> => {\n // Cast to the expected key type for groupedTopKWithFractionalIndex\n type StreamKey = KeyType extends string | number ? KeyType : string | number\n\n return stream.pipe(\n groupedTopKWithFractionalIndex<StreamKey, ValueType>(\n (a: ValueType, b: ValueType) =>\n comparator(valueExtractor(a), valueExtractor(b)),\n {\n limit,\n offset,\n setSizeCallback,\n setWindowFn,\n groupKeyFn: groupKeyFn as (\n key: StreamKey,\n value: ValueType,\n ) => unknown,\n },\n ) as (\n stream: IStreamBuilder<T>,\n ) => IStreamBuilder<[KeyType, [ValueType, string]]>,\n consolidate(),\n )\n }\n}\n"],"names":["groupedTopKWithFractionalIndex","consolidate"],"mappings":";;;;AAsCO,SAAS,kCAId,gBAGA,SAKA;AAIA,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,SAAS,QAAQ,UAAU;AACjC,QAAM,kBAAkB,QAAQ;AAChC,QAAM,cAAc,QAAQ;AAC5B,QAAM,aAAa,QAAQ;AAC3B,QAAM,aACJ,QAAQ,eACP,CAAC,GAAG,MAAM;AAET,QAAI,MAAM,EAAG,QAAO;AACpB,QAAI,IAAI,EAAG,QAAO;AAClB,WAAO;AAAA,EACT;AAEF,SAAO,CACL,WACmD;AAInD,WAAO,OAAO;AAAA,MACZA,+BAAAA;AAAAA,QACE,CAAC,GAAc,MACb,WAAW,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC;AAAA,QACjD;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAIF;AAAA,MAIFC,YAAAA,YAAA;AAAA,IAAY;AAAA,EAEhB;AACF;;"}
@@ -0,0 +1,31 @@
1
+ import { IStreamBuilder, KeyValue } from '../types.js';
2
+ export interface GroupedOrderByOptions<Ve> {
3
+ comparator?: (a: Ve, b: Ve) => number;
4
+ limit?: number;
5
+ offset?: number;
6
+ }
7
+ export interface GroupedOrderByWithFractionalIndexOptions<Ve, KeyType = unknown, ValueType = unknown> extends GroupedOrderByOptions<Ve> {
8
+ setSizeCallback?: (getSize: () => number) => void;
9
+ setWindowFn?: (windowFn: (options: {
10
+ offset?: number;
11
+ limit?: number;
12
+ }) => void) => void;
13
+ /**
14
+ * Function to extract a group key from the element's key and value.
15
+ * Elements with the same group key will be sorted and limited together.
16
+ */
17
+ groupKeyFn: (key: KeyType, value: ValueType) => unknown;
18
+ }
19
+ /**
20
+ * Orders the elements per group and limits the number of results per group, with optional offset and
21
+ * annotates the value with a fractional index.
22
+ * This requires a keyed stream, and uses the `groupedTopKWithFractionalIndex` operator to order elements within each group.
23
+ *
24
+ * Elements are grouped by the provided groupKeyFn, and each group maintains its own sorted collection
25
+ * with independent limit/offset.
26
+ *
27
+ * @param valueExtractor - A function that extracts the value to order by from the element
28
+ * @param options - Configuration including groupKeyFn, comparator, limit, and offset
29
+ * @returns A piped operator that orders the elements per group and limits the number of results per group
30
+ */
31
+ export declare function groupedOrderByWithFractionalIndex<T extends KeyValue<unknown, unknown>, Ve = unknown>(valueExtractor: (value: T extends KeyValue<unknown, infer V> ? V : never) => Ve, options: GroupedOrderByWithFractionalIndexOptions<Ve, T extends KeyValue<infer K, unknown> ? K : never, T extends KeyValue<unknown, infer V> ? V : never>): (stream: IStreamBuilder<T>) => IStreamBuilder<[T extends KeyValue<infer K, unknown> ? K : never, [T extends KeyValue<unknown, infer V> ? V : never, string]]>;
@@ -16,5 +16,6 @@ export * from './topK.js';
16
16
  export * from './topKWithFractionalIndex.js';
17
17
  export * from './groupedTopKWithFractionalIndex.js';
18
18
  export * from './orderBy.js';
19
+ export * from './groupedOrderBy.js';
19
20
  export * from './filterBy.js';
20
21
  export { groupBy, groupByOperators } from './groupBy.js';
package/dist/esm/index.js CHANGED
@@ -20,6 +20,7 @@ import { topK, topKWithIndex } from "./operators/topK.js";
20
20
  import { TopKWithFractionalIndexOperator, topKWithFractionalIndex } from "./operators/topKWithFractionalIndex.js";
21
21
  import { GroupedTopKWithFractionalIndexOperator, groupedTopKWithFractionalIndex } from "./operators/groupedTopKWithFractionalIndex.js";
22
22
  import { orderBy, orderByWithFractionalIndex, orderByWithFractionalIndexBase, orderByWithIndex } from "./operators/orderBy.js";
23
+ import { groupedOrderByWithFractionalIndex } from "./operators/groupedOrderBy.js";
23
24
  import { filterBy } from "./operators/filterBy.js";
24
25
  export {
25
26
  ConcatOperator,
@@ -52,6 +53,7 @@ export {
52
53
  fullJoin,
53
54
  groupBy,
54
55
  groupByOperators,
56
+ groupedOrderByWithFractionalIndex,
55
57
  groupedTopKWithFractionalIndex,
56
58
  innerJoin,
57
59
  join,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,31 @@
1
+ import { IStreamBuilder, KeyValue } from '../types.js';
2
+ export interface GroupedOrderByOptions<Ve> {
3
+ comparator?: (a: Ve, b: Ve) => number;
4
+ limit?: number;
5
+ offset?: number;
6
+ }
7
+ export interface GroupedOrderByWithFractionalIndexOptions<Ve, KeyType = unknown, ValueType = unknown> extends GroupedOrderByOptions<Ve> {
8
+ setSizeCallback?: (getSize: () => number) => void;
9
+ setWindowFn?: (windowFn: (options: {
10
+ offset?: number;
11
+ limit?: number;
12
+ }) => void) => void;
13
+ /**
14
+ * Function to extract a group key from the element's key and value.
15
+ * Elements with the same group key will be sorted and limited together.
16
+ */
17
+ groupKeyFn: (key: KeyType, value: ValueType) => unknown;
18
+ }
19
+ /**
20
+ * Orders the elements per group and limits the number of results per group, with optional offset and
21
+ * annotates the value with a fractional index.
22
+ * This requires a keyed stream, and uses the `groupedTopKWithFractionalIndex` operator to order elements within each group.
23
+ *
24
+ * Elements are grouped by the provided groupKeyFn, and each group maintains its own sorted collection
25
+ * with independent limit/offset.
26
+ *
27
+ * @param valueExtractor - A function that extracts the value to order by from the element
28
+ * @param options - Configuration including groupKeyFn, comparator, limit, and offset
29
+ * @returns A piped operator that orders the elements per group and limits the number of results per group
30
+ */
31
+ export declare function groupedOrderByWithFractionalIndex<T extends KeyValue<unknown, unknown>, Ve = unknown>(valueExtractor: (value: T extends KeyValue<unknown, infer V> ? V : never) => Ve, options: GroupedOrderByWithFractionalIndexOptions<Ve, T extends KeyValue<infer K, unknown> ? K : never, T extends KeyValue<unknown, infer V> ? V : never>): (stream: IStreamBuilder<T>) => IStreamBuilder<[T extends KeyValue<infer K, unknown> ? K : never, [T extends KeyValue<unknown, infer V> ? V : never, string]]>;
@@ -0,0 +1,33 @@
1
+ import { groupedTopKWithFractionalIndex } from "./groupedTopKWithFractionalIndex.js";
2
+ import { consolidate } from "./consolidate.js";
3
+ function groupedOrderByWithFractionalIndex(valueExtractor, options) {
4
+ const limit = options.limit ?? Infinity;
5
+ const offset = options.offset ?? 0;
6
+ const setSizeCallback = options.setSizeCallback;
7
+ const setWindowFn = options.setWindowFn;
8
+ const groupKeyFn = options.groupKeyFn;
9
+ const comparator = options.comparator ?? ((a, b) => {
10
+ if (a === b) return 0;
11
+ if (a < b) return -1;
12
+ return 1;
13
+ });
14
+ return (stream) => {
15
+ return stream.pipe(
16
+ groupedTopKWithFractionalIndex(
17
+ (a, b) => comparator(valueExtractor(a), valueExtractor(b)),
18
+ {
19
+ limit,
20
+ offset,
21
+ setSizeCallback,
22
+ setWindowFn,
23
+ groupKeyFn
24
+ }
25
+ ),
26
+ consolidate()
27
+ );
28
+ };
29
+ }
30
+ export {
31
+ groupedOrderByWithFractionalIndex
32
+ };
33
+ //# sourceMappingURL=groupedOrderBy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupedOrderBy.js","sources":["../../../src/operators/groupedOrderBy.ts"],"sourcesContent":["import { groupedTopKWithFractionalIndex } from './groupedTopKWithFractionalIndex.js'\nimport { consolidate } from './consolidate.js'\nimport type { IStreamBuilder, KeyValue } from '../types.js'\n\nexport interface GroupedOrderByOptions<Ve> {\n comparator?: (a: Ve, b: Ve) => number\n limit?: number\n offset?: number\n}\n\nexport interface GroupedOrderByWithFractionalIndexOptions<\n Ve,\n KeyType = unknown,\n ValueType = unknown,\n> extends GroupedOrderByOptions<Ve> {\n setSizeCallback?: (getSize: () => number) => void\n setWindowFn?: (\n windowFn: (options: { offset?: number; limit?: number }) => void,\n ) => void\n /**\n * Function to extract a group key from the element's key and value.\n * Elements with the same group key will be sorted and limited together.\n */\n groupKeyFn: (key: KeyType, value: ValueType) => unknown\n}\n\n/**\n * Orders the elements per group and limits the number of results per group, with optional offset and\n * annotates the value with a fractional index.\n * This requires a keyed stream, and uses the `groupedTopKWithFractionalIndex` operator to order elements within each group.\n *\n * Elements are grouped by the provided groupKeyFn, and each group maintains its own sorted collection\n * with independent limit/offset.\n *\n * @param valueExtractor - A function that extracts the value to order by from the element\n * @param options - Configuration including groupKeyFn, comparator, limit, and offset\n * @returns A piped operator that orders the elements per group and limits the number of results per group\n */\nexport function groupedOrderByWithFractionalIndex<\n T extends KeyValue<unknown, unknown>,\n Ve = unknown,\n>(\n valueExtractor: (\n value: T extends KeyValue<unknown, infer V> ? V : never,\n ) => Ve,\n options: GroupedOrderByWithFractionalIndexOptions<\n Ve,\n T extends KeyValue<infer K, unknown> ? K : never,\n T extends KeyValue<unknown, infer V> ? V : never\n >,\n) {\n type KeyType = T extends KeyValue<infer K, unknown> ? K : never\n type ValueType = T extends KeyValue<unknown, infer V> ? V : never\n\n const limit = options.limit ?? Infinity\n const offset = options.offset ?? 0\n const setSizeCallback = options.setSizeCallback\n const setWindowFn = options.setWindowFn\n const groupKeyFn = options.groupKeyFn\n const comparator =\n options.comparator ??\n ((a, b) => {\n // Default to JS like ordering\n if (a === b) return 0\n if (a < b) return -1\n return 1\n })\n\n return (\n stream: IStreamBuilder<T>,\n ): IStreamBuilder<[KeyType, [ValueType, string]]> => {\n // Cast to the expected key type for groupedTopKWithFractionalIndex\n type StreamKey = KeyType extends string | number ? KeyType : string | number\n\n return stream.pipe(\n groupedTopKWithFractionalIndex<StreamKey, ValueType>(\n (a: ValueType, b: ValueType) =>\n comparator(valueExtractor(a), valueExtractor(b)),\n {\n limit,\n offset,\n setSizeCallback,\n setWindowFn,\n groupKeyFn: groupKeyFn as (\n key: StreamKey,\n value: ValueType,\n ) => unknown,\n },\n ) as (\n stream: IStreamBuilder<T>,\n ) => IStreamBuilder<[KeyType, [ValueType, string]]>,\n consolidate(),\n )\n }\n}\n"],"names":[],"mappings":";;AAsCO,SAAS,kCAId,gBAGA,SAKA;AAIA,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,SAAS,QAAQ,UAAU;AACjC,QAAM,kBAAkB,QAAQ;AAChC,QAAM,cAAc,QAAQ;AAC5B,QAAM,aAAa,QAAQ;AAC3B,QAAM,aACJ,QAAQ,eACP,CAAC,GAAG,MAAM;AAET,QAAI,MAAM,EAAG,QAAO;AACpB,QAAI,IAAI,EAAG,QAAO;AAClB,WAAO;AAAA,EACT;AAEF,SAAO,CACL,WACmD;AAInD,WAAO,OAAO;AAAA,MACZ;AAAA,QACE,CAAC,GAAc,MACb,WAAW,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC;AAAA,QACjD;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAIF;AAAA,MAIF,YAAA;AAAA,IAAY;AAAA,EAEhB;AACF;"}
@@ -16,5 +16,6 @@ export * from './topK.js';
16
16
  export * from './topKWithFractionalIndex.js';
17
17
  export * from './groupedTopKWithFractionalIndex.js';
18
18
  export * from './orderBy.js';
19
+ export * from './groupedOrderBy.js';
19
20
  export * from './filterBy.js';
20
21
  export { groupBy, groupByOperators } from './groupBy.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/db-ivm",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "description": "Incremental View Maintenance for TanStack DB based on Differential Dataflow",
5
5
  "author": "Sam Willis",
6
6
  "license": "MIT",
@@ -0,0 +1,95 @@
1
+ import { groupedTopKWithFractionalIndex } from './groupedTopKWithFractionalIndex.js'
2
+ import { consolidate } from './consolidate.js'
3
+ import type { IStreamBuilder, KeyValue } from '../types.js'
4
+
5
+ export interface GroupedOrderByOptions<Ve> {
6
+ comparator?: (a: Ve, b: Ve) => number
7
+ limit?: number
8
+ offset?: number
9
+ }
10
+
11
+ export interface GroupedOrderByWithFractionalIndexOptions<
12
+ Ve,
13
+ KeyType = unknown,
14
+ ValueType = unknown,
15
+ > extends GroupedOrderByOptions<Ve> {
16
+ setSizeCallback?: (getSize: () => number) => void
17
+ setWindowFn?: (
18
+ windowFn: (options: { offset?: number; limit?: number }) => void,
19
+ ) => void
20
+ /**
21
+ * Function to extract a group key from the element's key and value.
22
+ * Elements with the same group key will be sorted and limited together.
23
+ */
24
+ groupKeyFn: (key: KeyType, value: ValueType) => unknown
25
+ }
26
+
27
+ /**
28
+ * Orders the elements per group and limits the number of results per group, with optional offset and
29
+ * annotates the value with a fractional index.
30
+ * This requires a keyed stream, and uses the `groupedTopKWithFractionalIndex` operator to order elements within each group.
31
+ *
32
+ * Elements are grouped by the provided groupKeyFn, and each group maintains its own sorted collection
33
+ * with independent limit/offset.
34
+ *
35
+ * @param valueExtractor - A function that extracts the value to order by from the element
36
+ * @param options - Configuration including groupKeyFn, comparator, limit, and offset
37
+ * @returns A piped operator that orders the elements per group and limits the number of results per group
38
+ */
39
+ export function groupedOrderByWithFractionalIndex<
40
+ T extends KeyValue<unknown, unknown>,
41
+ Ve = unknown,
42
+ >(
43
+ valueExtractor: (
44
+ value: T extends KeyValue<unknown, infer V> ? V : never,
45
+ ) => Ve,
46
+ options: GroupedOrderByWithFractionalIndexOptions<
47
+ Ve,
48
+ T extends KeyValue<infer K, unknown> ? K : never,
49
+ T extends KeyValue<unknown, infer V> ? V : never
50
+ >,
51
+ ) {
52
+ type KeyType = T extends KeyValue<infer K, unknown> ? K : never
53
+ type ValueType = T extends KeyValue<unknown, infer V> ? V : never
54
+
55
+ const limit = options.limit ?? Infinity
56
+ const offset = options.offset ?? 0
57
+ const setSizeCallback = options.setSizeCallback
58
+ const setWindowFn = options.setWindowFn
59
+ const groupKeyFn = options.groupKeyFn
60
+ const comparator =
61
+ options.comparator ??
62
+ ((a, b) => {
63
+ // Default to JS like ordering
64
+ if (a === b) return 0
65
+ if (a < b) return -1
66
+ return 1
67
+ })
68
+
69
+ return (
70
+ stream: IStreamBuilder<T>,
71
+ ): IStreamBuilder<[KeyType, [ValueType, string]]> => {
72
+ // Cast to the expected key type for groupedTopKWithFractionalIndex
73
+ type StreamKey = KeyType extends string | number ? KeyType : string | number
74
+
75
+ return stream.pipe(
76
+ groupedTopKWithFractionalIndex<StreamKey, ValueType>(
77
+ (a: ValueType, b: ValueType) =>
78
+ comparator(valueExtractor(a), valueExtractor(b)),
79
+ {
80
+ limit,
81
+ offset,
82
+ setSizeCallback,
83
+ setWindowFn,
84
+ groupKeyFn: groupKeyFn as (
85
+ key: StreamKey,
86
+ value: ValueType,
87
+ ) => unknown,
88
+ },
89
+ ) as (
90
+ stream: IStreamBuilder<T>,
91
+ ) => IStreamBuilder<[KeyType, [ValueType, string]]>,
92
+ consolidate(),
93
+ )
94
+ }
95
+ }
@@ -16,5 +16,6 @@ export * from './topK.js'
16
16
  export * from './topKWithFractionalIndex.js'
17
17
  export * from './groupedTopKWithFractionalIndex.js'
18
18
  export * from './orderBy.js'
19
+ export * from './groupedOrderBy.js'
19
20
  export * from './filterBy.js'
20
21
  export { groupBy, groupByOperators } from './groupBy.js'