@tanstack/db-ivm 0.1.24 → 0.1.26
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/dist/cjs/d2.d.cts +3 -3
- package/dist/cjs/graph.d.cts +2 -2
- package/dist/cjs/hashing/index.d.cts +2 -2
- package/dist/cjs/index.cjs +42 -42
- package/dist/cjs/index.d.cts +6 -6
- package/dist/cjs/indexes.cjs +6 -3
- package/dist/cjs/indexes.cjs.map +1 -1
- package/dist/cjs/indexes.d.cts +38 -8
- package/dist/cjs/multiset.cjs +12 -4
- package/dist/cjs/multiset.cjs.map +1 -1
- package/dist/cjs/multiset.d.cts +9 -4
- package/dist/cjs/operators/concat.d.cts +2 -2
- package/dist/cjs/operators/consolidate.d.cts +2 -2
- package/dist/cjs/operators/count.cjs.map +1 -1
- package/dist/cjs/operators/count.d.cts +11 -5
- package/dist/cjs/operators/debug.d.cts +2 -2
- package/dist/cjs/operators/distinct.d.cts +2 -2
- package/dist/cjs/operators/filter.d.cts +3 -3
- package/dist/cjs/operators/filterBy.cjs.map +1 -1
- package/dist/cjs/operators/filterBy.d.cts +2 -2
- package/dist/cjs/operators/groupBy.cjs.map +1 -1
- package/dist/cjs/operators/groupBy.d.cts +5 -2
- package/dist/cjs/operators/groupedOrderBy.d.cts +8 -2
- package/dist/cjs/operators/groupedTopKWithFractionalIndex.d.cts +34 -7
- package/dist/cjs/operators/index.d.cts +21 -21
- package/dist/cjs/operators/join.cjs.map +1 -1
- package/dist/cjs/operators/join.d.cts +49 -10
- package/dist/cjs/operators/keying.d.cts +5 -2
- package/dist/cjs/operators/map.d.cts +3 -3
- package/dist/cjs/operators/negate.d.cts +3 -3
- package/dist/cjs/operators/orderBy.d.cts +20 -5
- package/dist/cjs/operators/output.d.cts +3 -3
- package/dist/cjs/operators/pipe.d.cts +1 -1
- package/dist/cjs/operators/reduce.cjs.map +1 -1
- package/dist/cjs/operators/reduce.d.cts +29 -5
- package/dist/cjs/operators/tap.d.cts +3 -3
- package/dist/cjs/operators/topK.cjs.map +1 -1
- package/dist/cjs/operators/topK.d.cts +5 -2
- package/dist/cjs/operators/topKArray.d.cts +11 -2
- package/dist/cjs/operators/topKState.d.cts +44 -8
- package/dist/cjs/operators/topKWithFractionalIndex.d.cts +41 -8
- package/dist/cjs/operators/topKWithFractionalIndexBTree.d.cts +20 -5
- package/dist/cjs/types.d.cts +6 -3
- package/dist/cjs/utils.cjs +9 -7
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/cjs/utils.d.cts +7 -4
- package/dist/esm/index.js +15 -15
- package/dist/esm/indexes.js +6 -3
- package/dist/esm/indexes.js.map +1 -1
- package/dist/esm/multiset.d.ts +1 -2
- package/dist/esm/multiset.js +12 -4
- package/dist/esm/multiset.js.map +1 -1
- package/dist/esm/operators/count.d.ts +1 -1
- package/dist/esm/operators/count.js.map +1 -1
- package/dist/esm/operators/filterBy.d.ts +1 -1
- package/dist/esm/operators/filterBy.js.map +1 -1
- package/dist/esm/operators/groupBy.js.map +1 -1
- package/dist/esm/operators/join.d.ts +6 -6
- package/dist/esm/operators/join.js.map +1 -1
- package/dist/esm/operators/reduce.d.ts +1 -1
- package/dist/esm/operators/reduce.js.map +1 -1
- package/dist/esm/operators/topK.d.ts +2 -2
- package/dist/esm/operators/topK.js.map +1 -1
- package/dist/esm/operators/topKArray.js +1 -1
- package/dist/esm/utils.d.ts +3 -3
- package/dist/esm/utils.js +9 -7
- package/dist/esm/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/indexes.ts +8 -3
- package/src/multiset.ts +13 -7
- package/src/operators/count.ts +2 -2
- package/src/operators/filterBy.ts +1 -1
- package/src/operators/groupBy.ts +1 -2
- package/src/operators/join.ts +6 -6
- package/src/operators/reduce.ts +2 -2
- package/src/operators/topK.ts +4 -4
- package/src/utils.ts +14 -10
package/src/operators/count.ts
CHANGED
|
@@ -29,8 +29,8 @@ export class CountOperator<K, V> extends ReduceOperator<K, V, number> {
|
|
|
29
29
|
* Counts the number of elements by key (version-free)
|
|
30
30
|
*/
|
|
31
31
|
export function count<
|
|
32
|
-
KType extends T extends KeyValue<infer K, infer _V> ? K : never,
|
|
33
|
-
VType extends T extends KeyValue<KType, infer V> ? V : never,
|
|
32
|
+
KType extends (T extends KeyValue<infer K, infer _V> ? K : never),
|
|
33
|
+
VType extends (T extends KeyValue<KType, infer V> ? V : never),
|
|
34
34
|
T,
|
|
35
35
|
>() {
|
|
36
36
|
return (
|
|
@@ -12,7 +12,7 @@ import type { IStreamBuilder, KeyValue, PipedOperator } from '../types.js'
|
|
|
12
12
|
*/
|
|
13
13
|
export function filterBy<
|
|
14
14
|
K,
|
|
15
|
-
V1 extends T extends KeyValue<infer _KT, infer VT> ? VT : never,
|
|
15
|
+
V1 extends (T extends KeyValue<infer _KT, infer VT> ? VT : never),
|
|
16
16
|
T,
|
|
17
17
|
>(
|
|
18
18
|
other: IStreamBuilder<KeyValue<K, unknown>>,
|
package/src/operators/groupBy.ts
CHANGED
|
@@ -16,8 +16,7 @@ type PipedAggregateFunction<T, R> = {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
type AggregateFunction<T, R, V = unknown> =
|
|
19
|
-
|
|
20
|
-
| PipedAggregateFunction<T, R>
|
|
19
|
+
BasicAggregateFunction<T, R, V> | PipedAggregateFunction<T, R>
|
|
21
20
|
|
|
22
21
|
type ExtractAggregateReturnType<T, A> =
|
|
23
22
|
A extends AggregateFunction<T, infer R, any> ? R : never
|
package/src/operators/join.ts
CHANGED
|
@@ -254,7 +254,7 @@ export class JoinOperator<K, V1, V2> extends BinaryOperator<
|
|
|
254
254
|
*/
|
|
255
255
|
export function join<
|
|
256
256
|
K,
|
|
257
|
-
V1 extends T extends KeyValue<infer _KT, infer VT> ? VT : never,
|
|
257
|
+
V1 extends (T extends KeyValue<infer _KT, infer VT> ? VT : never),
|
|
258
258
|
V2,
|
|
259
259
|
T,
|
|
260
260
|
>(
|
|
@@ -289,7 +289,7 @@ export function join<
|
|
|
289
289
|
*/
|
|
290
290
|
export function innerJoin<
|
|
291
291
|
K,
|
|
292
|
-
V1 extends T extends KeyValue<infer _KT, infer VT> ? VT : never,
|
|
292
|
+
V1 extends (T extends KeyValue<infer _KT, infer VT> ? VT : never),
|
|
293
293
|
V2,
|
|
294
294
|
T,
|
|
295
295
|
>(
|
|
@@ -307,7 +307,7 @@ export function innerJoin<
|
|
|
307
307
|
*/
|
|
308
308
|
export function antiJoin<
|
|
309
309
|
K,
|
|
310
|
-
V1 extends T extends KeyValue<infer _KT, infer VT> ? VT : never,
|
|
310
|
+
V1 extends (T extends KeyValue<infer _KT, infer VT> ? VT : never),
|
|
311
311
|
V2,
|
|
312
312
|
T,
|
|
313
313
|
>(
|
|
@@ -325,7 +325,7 @@ export function antiJoin<
|
|
|
325
325
|
*/
|
|
326
326
|
export function leftJoin<
|
|
327
327
|
K,
|
|
328
|
-
V1 extends T extends KeyValue<infer _KT, infer VT> ? VT : never,
|
|
328
|
+
V1 extends (T extends KeyValue<infer _KT, infer VT> ? VT : never),
|
|
329
329
|
V2,
|
|
330
330
|
T,
|
|
331
331
|
>(
|
|
@@ -343,7 +343,7 @@ export function leftJoin<
|
|
|
343
343
|
*/
|
|
344
344
|
export function rightJoin<
|
|
345
345
|
K,
|
|
346
|
-
V1 extends T extends KeyValue<infer _KT, infer VT> ? VT : never,
|
|
346
|
+
V1 extends (T extends KeyValue<infer _KT, infer VT> ? VT : never),
|
|
347
347
|
V2,
|
|
348
348
|
T,
|
|
349
349
|
>(
|
|
@@ -361,7 +361,7 @@ export function rightJoin<
|
|
|
361
361
|
*/
|
|
362
362
|
export function fullJoin<
|
|
363
363
|
K,
|
|
364
|
-
V1 extends T extends KeyValue<infer _KT, infer VT> ? VT : never,
|
|
364
|
+
V1 extends (T extends KeyValue<infer _KT, infer VT> ? VT : never),
|
|
365
365
|
V2,
|
|
366
366
|
T,
|
|
367
367
|
>(
|
package/src/operators/reduce.ts
CHANGED
|
@@ -101,8 +101,8 @@ export class ReduceOperator<K, V1, V2> extends UnaryOperator<[K, V1], [K, V2]> {
|
|
|
101
101
|
* Reduces the elements in the stream by key (version-free)
|
|
102
102
|
*/
|
|
103
103
|
export function reduce<
|
|
104
|
-
KType extends T extends KeyValue<infer K, infer _V> ? K : never,
|
|
105
|
-
V1Type extends T extends KeyValue<KType, infer V> ? V : never,
|
|
104
|
+
KType extends (T extends KeyValue<infer K, infer _V> ? K : never),
|
|
105
|
+
V1Type extends (T extends KeyValue<KType, infer V> ? V : never),
|
|
106
106
|
R,
|
|
107
107
|
T,
|
|
108
108
|
>(f: (values: Array<[V1Type, number]>) => Array<[R, number]>) {
|
package/src/operators/topK.ts
CHANGED
|
@@ -19,8 +19,8 @@ interface TopKOptions {
|
|
|
19
19
|
* @returns A piped operator that limits the number of results
|
|
20
20
|
*/
|
|
21
21
|
export function topK<
|
|
22
|
-
KType extends T extends KeyValue<infer K, infer _V> ? K : never,
|
|
23
|
-
V1Type extends T extends KeyValue<KType, infer V> ? V : never,
|
|
22
|
+
KType extends (T extends KeyValue<infer K, infer _V> ? K : never),
|
|
23
|
+
V1Type extends (T extends KeyValue<KType, infer V> ? V : never),
|
|
24
24
|
T,
|
|
25
25
|
>(
|
|
26
26
|
comparator: (a: V1Type, b: V1Type) => number,
|
|
@@ -57,8 +57,8 @@ export function topK<
|
|
|
57
57
|
* @returns A piped operator that orders the elements and limits the number of results
|
|
58
58
|
*/
|
|
59
59
|
export function topKWithIndex<
|
|
60
|
-
KType extends T extends KeyValue<infer K, infer _V> ? K : never,
|
|
61
|
-
V1Type extends T extends KeyValue<KType, infer V> ? V : never,
|
|
60
|
+
KType extends (T extends KeyValue<infer K, infer _V> ? K : never),
|
|
61
|
+
V1Type extends (T extends KeyValue<KType, infer V> ? V : never),
|
|
62
62
|
T,
|
|
63
63
|
>(
|
|
64
64
|
comparator: (a: V1Type, b: V1Type) => number,
|
package/src/utils.ts
CHANGED
|
@@ -50,20 +50,24 @@ export function binarySearch<T>(
|
|
|
50
50
|
return low
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
const objectIds = new WeakMap<object, number>()
|
|
54
|
-
let nextObjectId = 0
|
|
55
|
-
|
|
56
53
|
/**
|
|
57
|
-
* A string identity
|
|
58
|
-
*
|
|
54
|
+
* A string identity within one consolidation: primitives by value, objects,
|
|
55
|
+
* functions, and symbols by identity.
|
|
59
56
|
*/
|
|
60
|
-
export function getStringId(
|
|
57
|
+
export function getStringId(
|
|
58
|
+
value: unknown,
|
|
59
|
+
referenceIds: Map<object | symbol, number>,
|
|
60
|
+
): string {
|
|
61
61
|
if (value === null) return `null`
|
|
62
62
|
if (value === undefined) return `undefined`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
const type = typeof value
|
|
64
|
+
if (type === `object` || type === `function` || type === `symbol`) {
|
|
65
|
+
const reference = value as object | symbol
|
|
66
|
+
let id = referenceIds.get(reference)
|
|
67
|
+
if (id === undefined) referenceIds.set(reference, (id = referenceIds.size))
|
|
68
|
+
return `ref_${id}`
|
|
69
|
+
}
|
|
70
|
+
return `${type}_${String(value)}`
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
export function* concatIterable<T>(
|