@hpcc-js/dataflow 9.3.8 → 9.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +265 -102
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,157 +1,225 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
1
3
|
function isSource(source) {
|
|
2
|
-
return source && (typeof source[Symbol.iterator]
|
|
4
|
+
return source && (typeof source[Symbol.iterator] === "function" || Array.isArray(source));
|
|
3
5
|
}
|
|
6
|
+
__name(isSource, "isSource");
|
|
4
7
|
function concatGen(concatSource) {
|
|
5
8
|
return function* (source) {
|
|
6
|
-
yield* source
|
|
9
|
+
yield* source;
|
|
10
|
+
yield* concatSource;
|
|
7
11
|
};
|
|
8
12
|
}
|
|
13
|
+
__name(concatGen, "concatGen");
|
|
9
14
|
function concat(s_or_n, concatSource) {
|
|
10
15
|
return concatSource !== void 0 ? concatGen(concatSource)(s_or_n) : concatGen(s_or_n);
|
|
11
16
|
}
|
|
17
|
+
__name(concat, "concat");
|
|
12
18
|
function eachGen(callbackFn) {
|
|
13
19
|
return function* (source) {
|
|
14
20
|
let i = -1;
|
|
15
|
-
for (const item of source)
|
|
16
|
-
callbackFn(item, ++i)
|
|
21
|
+
for (const item of source) {
|
|
22
|
+
callbackFn(item, ++i);
|
|
23
|
+
yield item;
|
|
24
|
+
}
|
|
17
25
|
};
|
|
18
26
|
}
|
|
27
|
+
__name(eachGen, "eachGen");
|
|
19
28
|
function each(s_or_cb, callbackFn) {
|
|
20
29
|
return isSource(s_or_cb) ? eachGen(callbackFn)(s_or_cb) : eachGen(s_or_cb);
|
|
21
30
|
}
|
|
31
|
+
__name(each, "each");
|
|
22
32
|
function entriesGen() {
|
|
23
33
|
return function* (source) {
|
|
24
34
|
let i = -1;
|
|
25
|
-
for (const item of source)
|
|
35
|
+
for (const item of source) {
|
|
26
36
|
yield [++i, item];
|
|
37
|
+
}
|
|
27
38
|
};
|
|
28
39
|
}
|
|
40
|
+
__name(entriesGen, "entriesGen");
|
|
29
41
|
function entries(source) {
|
|
30
42
|
return source ? entriesGen()(source) : entriesGen();
|
|
31
43
|
}
|
|
44
|
+
__name(entries, "entries");
|
|
32
45
|
function filterGen(callbackFn) {
|
|
33
46
|
return function* (source) {
|
|
34
47
|
let i = -1;
|
|
35
|
-
for (const item of source)
|
|
36
|
-
callbackFn(item, ++i)
|
|
48
|
+
for (const item of source) {
|
|
49
|
+
if (callbackFn(item, ++i)) {
|
|
50
|
+
yield item;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
37
53
|
};
|
|
38
54
|
}
|
|
55
|
+
__name(filterGen, "filterGen");
|
|
39
56
|
function filter(s_or_cb, callbackFn) {
|
|
40
57
|
return isSource(s_or_cb) ? filterGen(callbackFn)(s_or_cb) : filterGen(s_or_cb);
|
|
41
58
|
}
|
|
59
|
+
__name(filter, "filter");
|
|
42
60
|
function firstGen(n) {
|
|
43
61
|
return function* (source) {
|
|
44
62
|
let i = 0;
|
|
45
|
-
for (const item of source)
|
|
46
|
-
|
|
63
|
+
for (const item of source) {
|
|
64
|
+
yield item;
|
|
65
|
+
if (++i >= n) {
|
|
47
66
|
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
48
69
|
};
|
|
49
70
|
}
|
|
71
|
+
__name(firstGen, "firstGen");
|
|
50
72
|
function first(s_or_n, n) {
|
|
51
|
-
|
|
73
|
+
if (!isSource(s_or_n)) return firstGen(s_or_n);
|
|
74
|
+
return firstGen(n)(s_or_n);
|
|
52
75
|
}
|
|
76
|
+
__name(first, "first");
|
|
53
77
|
function groupGen(groupFn) {
|
|
54
78
|
return function* (source) {
|
|
55
79
|
let i = -1;
|
|
56
80
|
const group2 = {};
|
|
57
81
|
for (const row of source) {
|
|
58
82
|
const key = groupFn(row, ++i);
|
|
59
|
-
|
|
83
|
+
if (!group2[key]) {
|
|
84
|
+
group2[key] = [];
|
|
85
|
+
}
|
|
86
|
+
group2[key].push(row);
|
|
60
87
|
}
|
|
61
|
-
for (const key in group2)
|
|
88
|
+
for (const key in group2) {
|
|
62
89
|
yield { key, value: group2[key] };
|
|
90
|
+
}
|
|
63
91
|
};
|
|
64
92
|
}
|
|
93
|
+
__name(groupGen, "groupGen");
|
|
65
94
|
function group(s_or_gbf, groupByFn) {
|
|
66
95
|
return isSource(s_or_gbf) ? groupGen(groupByFn)(s_or_gbf) : groupGen(s_or_gbf);
|
|
67
96
|
}
|
|
97
|
+
__name(group, "group");
|
|
68
98
|
function Accessor(fof, accesor) {
|
|
69
99
|
const s = fof();
|
|
70
100
|
return {
|
|
71
|
-
observe: (_, i) => {
|
|
101
|
+
observe: /* @__PURE__ */ __name((_, i) => {
|
|
72
102
|
s.observe(accesor(_, i), i);
|
|
73
|
-
},
|
|
103
|
+
}, "observe"),
|
|
74
104
|
peek: s.peek
|
|
75
105
|
};
|
|
76
106
|
}
|
|
107
|
+
__name(Accessor, "Accessor");
|
|
77
108
|
function sensor(s) {
|
|
78
109
|
return each((r, i) => s.observe(r, i));
|
|
79
110
|
}
|
|
111
|
+
__name(sensor, "sensor");
|
|
80
112
|
function activity(s) {
|
|
81
113
|
return function* (source) {
|
|
82
114
|
let i = -1;
|
|
83
|
-
for (const row of source)
|
|
115
|
+
for (const row of source) {
|
|
84
116
|
s.observe(row, ++i);
|
|
117
|
+
}
|
|
85
118
|
yield s.peek();
|
|
86
119
|
};
|
|
87
120
|
}
|
|
121
|
+
__name(activity, "activity");
|
|
88
122
|
function scalar(s) {
|
|
89
123
|
return function(source) {
|
|
90
124
|
let i = -1;
|
|
91
|
-
for (const row of source)
|
|
125
|
+
for (const row of source) {
|
|
92
126
|
s.observe(row, ++i);
|
|
127
|
+
}
|
|
93
128
|
return s.peek();
|
|
94
129
|
};
|
|
95
130
|
}
|
|
131
|
+
__name(scalar, "scalar");
|
|
96
132
|
function _max() {
|
|
97
133
|
let max2;
|
|
98
134
|
return {
|
|
99
|
-
observe: (value, idx) => {
|
|
100
|
-
(idx === 0
|
|
101
|
-
|
|
102
|
-
|
|
135
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
136
|
+
if (idx === 0) {
|
|
137
|
+
max2 = value;
|
|
138
|
+
} else if (max2 < value) {
|
|
139
|
+
max2 = value;
|
|
140
|
+
}
|
|
141
|
+
}, "observe"),
|
|
142
|
+
peek: /* @__PURE__ */ __name(() => max2, "peek")
|
|
103
143
|
};
|
|
104
144
|
}
|
|
145
|
+
__name(_max, "_max");
|
|
105
146
|
function max(callbackFn) {
|
|
106
147
|
return callbackFn ? Accessor(_max, callbackFn) : _max();
|
|
107
148
|
}
|
|
149
|
+
__name(max, "max");
|
|
108
150
|
function _min() {
|
|
109
151
|
let min2;
|
|
110
152
|
return {
|
|
111
|
-
observe: (value, idx) => {
|
|
112
|
-
(idx === 0
|
|
113
|
-
|
|
114
|
-
|
|
153
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
154
|
+
if (idx === 0) {
|
|
155
|
+
min2 = value;
|
|
156
|
+
} else if (min2 > value) {
|
|
157
|
+
min2 = value;
|
|
158
|
+
}
|
|
159
|
+
}, "observe"),
|
|
160
|
+
peek: /* @__PURE__ */ __name(() => min2, "peek")
|
|
115
161
|
};
|
|
116
162
|
}
|
|
163
|
+
__name(_min, "_min");
|
|
117
164
|
function min(callbackFn) {
|
|
118
165
|
return callbackFn ? Accessor(_min, callbackFn) : _min();
|
|
119
166
|
}
|
|
167
|
+
__name(min, "min");
|
|
120
168
|
function _extent() {
|
|
121
|
-
const minFO = min()
|
|
169
|
+
const minFO = min();
|
|
170
|
+
const maxFO = max();
|
|
122
171
|
return {
|
|
123
|
-
observe: (value, idx) => {
|
|
124
|
-
minFO.observe(value, idx)
|
|
125
|
-
|
|
126
|
-
|
|
172
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
173
|
+
minFO.observe(value, idx);
|
|
174
|
+
maxFO.observe(value, idx);
|
|
175
|
+
}, "observe"),
|
|
176
|
+
peek: /* @__PURE__ */ __name(() => [minFO.peek(), maxFO.peek()], "peek")
|
|
127
177
|
};
|
|
128
178
|
}
|
|
179
|
+
__name(_extent, "_extent");
|
|
129
180
|
function extent(callbackFn) {
|
|
130
181
|
return callbackFn ? Accessor(_extent, callbackFn) : _extent();
|
|
131
182
|
}
|
|
183
|
+
__name(extent, "extent");
|
|
132
184
|
function isOptionA(_) {
|
|
133
185
|
return _.buckets !== void 0;
|
|
134
186
|
}
|
|
187
|
+
__name(isOptionA, "isOptionA");
|
|
135
188
|
function histogramGen(callbackFn, options) {
|
|
136
189
|
return function* (_source) {
|
|
137
|
-
let min2
|
|
190
|
+
let min2;
|
|
191
|
+
let bucketSize;
|
|
192
|
+
let source;
|
|
138
193
|
if (isOptionA(options)) {
|
|
139
194
|
source = Array.isArray(_source) ? _source : [..._source];
|
|
140
195
|
const minMax = scalar(extent(callbackFn))(source);
|
|
141
|
-
if (minMax === void 0)
|
|
142
|
-
return;
|
|
196
|
+
if (minMax === void 0) {
|
|
197
|
+
return void 0;
|
|
198
|
+
}
|
|
143
199
|
min2 = minMax[0];
|
|
144
|
-
const max2 = minMax[1]
|
|
200
|
+
const max2 = minMax[1];
|
|
201
|
+
const buckets = options.buckets;
|
|
145
202
|
bucketSize = (max2 - min2) / buckets;
|
|
146
|
-
} else
|
|
147
|
-
source = _source
|
|
203
|
+
} else {
|
|
204
|
+
source = _source;
|
|
205
|
+
min2 = options.min;
|
|
206
|
+
bucketSize = options.range;
|
|
207
|
+
}
|
|
148
208
|
const histogram2 = {};
|
|
149
209
|
let maxBucketID = 0;
|
|
150
210
|
for (const row of source) {
|
|
151
|
-
const value = callbackFn(row)
|
|
152
|
-
|
|
211
|
+
const value = callbackFn(row);
|
|
212
|
+
const bucketID = Math.floor((value - min2) / bucketSize);
|
|
213
|
+
if (maxBucketID < bucketID) {
|
|
214
|
+
maxBucketID = bucketID;
|
|
215
|
+
}
|
|
216
|
+
if (histogram2[bucketID] === void 0) {
|
|
217
|
+
histogram2[bucketID] = [];
|
|
218
|
+
}
|
|
219
|
+
histogram2[bucketID].push(row);
|
|
153
220
|
}
|
|
154
|
-
const lastBucket = histogram2[maxBucketID]
|
|
221
|
+
const lastBucket = histogram2[maxBucketID];
|
|
222
|
+
const from = min2 + maxBucketID * bucketSize;
|
|
155
223
|
for (let i = 0; i <= maxBucketID; ++i) {
|
|
156
224
|
if (i === maxBucketID - 1 && lastBucket.every((row) => from === callbackFn(row))) {
|
|
157
225
|
yield {
|
|
@@ -169,117 +237,166 @@ function histogramGen(callbackFn, options) {
|
|
|
169
237
|
}
|
|
170
238
|
};
|
|
171
239
|
}
|
|
240
|
+
__name(histogramGen, "histogramGen");
|
|
172
241
|
function histogram(s_or_hf, hf_or_b, options) {
|
|
173
242
|
return isSource(s_or_hf) ? histogramGen(hf_or_b, options)(s_or_hf) : histogramGen(s_or_hf, hf_or_b);
|
|
174
243
|
}
|
|
244
|
+
__name(histogram, "histogram");
|
|
175
245
|
function joinGen(_sourceU, callbackFn) {
|
|
176
246
|
const sourceB = Array.isArray(_sourceU) ? _sourceU[Symbol.iterator]() : _sourceU;
|
|
177
247
|
return function* (sourceT) {
|
|
178
248
|
let i = -1;
|
|
179
|
-
for (const item of sourceT)
|
|
249
|
+
for (const item of sourceT) {
|
|
180
250
|
yield callbackFn(item, sourceB.next().value, ++i);
|
|
251
|
+
}
|
|
181
252
|
};
|
|
182
253
|
}
|
|
254
|
+
__name(joinGen, "joinGen");
|
|
183
255
|
function join(sT_or_sU, sU_or_cb, callbackFn) {
|
|
184
256
|
return isSource(sU_or_cb) ? joinGen(sU_or_cb, callbackFn)(sT_or_sU) : joinGen(sT_or_sU, sU_or_cb);
|
|
185
257
|
}
|
|
258
|
+
__name(join, "join");
|
|
186
259
|
function mapGen(callbackFn) {
|
|
187
260
|
return function* (source) {
|
|
188
261
|
let i = -1;
|
|
189
|
-
for (const item of source)
|
|
262
|
+
for (const item of source) {
|
|
190
263
|
yield callbackFn(item, ++i);
|
|
264
|
+
}
|
|
191
265
|
};
|
|
192
266
|
}
|
|
267
|
+
__name(mapGen, "mapGen");
|
|
193
268
|
function map(s_or_cb, callbackFn) {
|
|
194
269
|
return isSource(s_or_cb) ? mapGen(callbackFn)(s_or_cb) : mapGen(s_or_cb);
|
|
195
270
|
}
|
|
271
|
+
__name(map, "map");
|
|
196
272
|
function normalizeGen() {
|
|
197
273
|
const calcExtent = scalar(extent());
|
|
198
274
|
return function* (_source) {
|
|
199
|
-
const source = Array.isArray(_source) ? _source : [..._source]
|
|
200
|
-
|
|
275
|
+
const source = Array.isArray(_source) ? _source : [..._source];
|
|
276
|
+
const range = calcExtent(source);
|
|
277
|
+
const divisor = range[1] - range[0] || 1;
|
|
278
|
+
const normalizeMap = map((row) => (row - range[0]) / divisor);
|
|
279
|
+
return yield* normalizeMap(source);
|
|
201
280
|
};
|
|
202
281
|
}
|
|
282
|
+
__name(normalizeGen, "normalizeGen");
|
|
203
283
|
function normalize(s_or_undef) {
|
|
204
284
|
return isSource(s_or_undef) ? normalizeGen()(s_or_undef) : normalizeGen();
|
|
205
285
|
}
|
|
286
|
+
__name(normalize, "normalize");
|
|
206
287
|
function skipGen(n) {
|
|
207
288
|
return function* (source) {
|
|
208
289
|
let i = -1;
|
|
209
|
-
for (const item of source)
|
|
210
|
-
++i >= n
|
|
290
|
+
for (const item of source) {
|
|
291
|
+
if (++i >= n) {
|
|
292
|
+
yield item;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
211
295
|
};
|
|
212
296
|
}
|
|
297
|
+
__name(skipGen, "skipGen");
|
|
213
298
|
function skip(s_or_n, n) {
|
|
214
299
|
return isSource(s_or_n) ? skipGen(n)(s_or_n) : skipGen(s_or_n);
|
|
215
300
|
}
|
|
301
|
+
__name(skip, "skip");
|
|
216
302
|
function sortGen(compareFn) {
|
|
217
303
|
return function* (source) {
|
|
218
304
|
yield* (Array.isArray(source) ? source : [...source]).sort(compareFn);
|
|
219
305
|
};
|
|
220
306
|
}
|
|
307
|
+
__name(sortGen, "sortGen");
|
|
221
308
|
function sort(s_or_cb, callbackFn) {
|
|
222
309
|
return isSource(s_or_cb) ? sortGen(callbackFn)(s_or_cb) : sortGen(s_or_cb);
|
|
223
310
|
}
|
|
311
|
+
__name(sort, "sort");
|
|
224
312
|
function count() {
|
|
225
313
|
let count2;
|
|
226
314
|
return {
|
|
227
|
-
observe: (value, idx) => {
|
|
228
|
-
idx === 0
|
|
229
|
-
|
|
230
|
-
|
|
315
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
316
|
+
if (idx === 0) {
|
|
317
|
+
count2 = 0;
|
|
318
|
+
}
|
|
319
|
+
++count2;
|
|
320
|
+
}, "observe"),
|
|
321
|
+
peek: /* @__PURE__ */ __name(() => count2, "peek")
|
|
231
322
|
};
|
|
232
323
|
}
|
|
324
|
+
__name(count, "count");
|
|
233
325
|
function _variance() {
|
|
234
|
-
let count2
|
|
326
|
+
let count2;
|
|
327
|
+
let mean2;
|
|
328
|
+
let sum;
|
|
235
329
|
return {
|
|
236
|
-
observe: (value, idx) => {
|
|
237
|
-
idx === 0
|
|
330
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
331
|
+
if (idx === 0) {
|
|
332
|
+
count2 = 0;
|
|
333
|
+
mean2 = 0;
|
|
334
|
+
sum = 0;
|
|
335
|
+
}
|
|
238
336
|
const delta = value - mean2;
|
|
239
|
-
mean2 += delta / ++count2
|
|
240
|
-
|
|
241
|
-
|
|
337
|
+
mean2 += delta / ++count2;
|
|
338
|
+
sum += delta * (value - mean2);
|
|
339
|
+
}, "observe"),
|
|
340
|
+
peek: /* @__PURE__ */ __name(() => count2 > 1 ? sum / (count2 - 1) : void 0, "peek")
|
|
242
341
|
};
|
|
243
342
|
}
|
|
343
|
+
__name(_variance, "_variance");
|
|
244
344
|
function variance(callbackFn) {
|
|
245
345
|
return callbackFn ? Accessor(_variance, callbackFn) : _variance();
|
|
246
346
|
}
|
|
347
|
+
__name(variance, "variance");
|
|
247
348
|
function _deviation() {
|
|
248
349
|
const v = variance();
|
|
249
350
|
return {
|
|
250
|
-
observe: (value, idx) => {
|
|
351
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
251
352
|
v.observe(value, idx);
|
|
252
|
-
},
|
|
253
|
-
peek: () => {
|
|
353
|
+
}, "observe"),
|
|
354
|
+
peek: /* @__PURE__ */ __name(() => {
|
|
254
355
|
const variance2 = v.peek();
|
|
255
356
|
return variance2 !== void 0 ? Math.sqrt(variance2) : variance2;
|
|
256
|
-
}
|
|
357
|
+
}, "peek")
|
|
257
358
|
};
|
|
258
359
|
}
|
|
360
|
+
__name(_deviation, "_deviation");
|
|
259
361
|
function deviation(callbackFn) {
|
|
260
362
|
return callbackFn ? Accessor(_deviation, callbackFn) : _deviation();
|
|
261
363
|
}
|
|
364
|
+
__name(deviation, "deviation");
|
|
262
365
|
function _mean() {
|
|
263
|
-
let total
|
|
366
|
+
let total;
|
|
367
|
+
let count2;
|
|
264
368
|
return {
|
|
265
|
-
observe: (value, idx) => {
|
|
266
|
-
idx === 0
|
|
267
|
-
|
|
268
|
-
|
|
369
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
370
|
+
if (idx === 0) {
|
|
371
|
+
total = value;
|
|
372
|
+
} else {
|
|
373
|
+
total += value;
|
|
374
|
+
}
|
|
375
|
+
count2 = idx;
|
|
376
|
+
}, "observe"),
|
|
377
|
+
peek: /* @__PURE__ */ __name(() => total / (count2 + 1), "peek")
|
|
269
378
|
};
|
|
270
379
|
}
|
|
380
|
+
__name(_mean, "_mean");
|
|
271
381
|
function mean(callbackFn) {
|
|
272
382
|
return callbackFn ? Accessor(_mean, callbackFn) : _mean();
|
|
273
383
|
}
|
|
384
|
+
__name(mean, "mean");
|
|
274
385
|
function _distribution() {
|
|
275
|
-
const minFO = min()
|
|
386
|
+
const minFO = min();
|
|
387
|
+
const maxFO = max();
|
|
388
|
+
const meanFO = mean();
|
|
389
|
+
const varianceFO = variance();
|
|
276
390
|
return {
|
|
277
|
-
observe: (value, idx) => {
|
|
278
|
-
minFO.observe(value, idx)
|
|
279
|
-
|
|
280
|
-
|
|
391
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
392
|
+
minFO.observe(value, idx);
|
|
393
|
+
maxFO.observe(value, idx);
|
|
394
|
+
meanFO.observe(value, idx);
|
|
395
|
+
varianceFO.observe(value, idx);
|
|
396
|
+
}, "observe"),
|
|
397
|
+
peek: /* @__PURE__ */ __name(() => {
|
|
281
398
|
const minResult = minFO.peek();
|
|
282
|
-
if (minResult === void 0) return;
|
|
399
|
+
if (minResult === void 0) return void 0;
|
|
283
400
|
const varianceResult = varianceFO.peek();
|
|
284
401
|
return {
|
|
285
402
|
min: minResult,
|
|
@@ -288,79 +405,125 @@ function _distribution() {
|
|
|
288
405
|
variance: varianceResult,
|
|
289
406
|
deviation: varianceResult !== void 0 ? Math.sqrt(varianceResult) : void 0
|
|
290
407
|
};
|
|
291
|
-
}
|
|
408
|
+
}, "peek")
|
|
292
409
|
};
|
|
293
410
|
}
|
|
411
|
+
__name(_distribution, "_distribution");
|
|
294
412
|
function distribution(callbackFn) {
|
|
295
413
|
return callbackFn ? Accessor(_distribution, callbackFn) : _distribution();
|
|
296
414
|
}
|
|
415
|
+
__name(distribution, "distribution");
|
|
297
416
|
function _median() {
|
|
298
417
|
let values;
|
|
299
418
|
return {
|
|
300
|
-
observe: (value, idx) => {
|
|
301
|
-
idx === 0
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
419
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
420
|
+
if (idx === 0) {
|
|
421
|
+
values = [];
|
|
422
|
+
}
|
|
423
|
+
values.push(value);
|
|
424
|
+
}, "observe"),
|
|
425
|
+
peek: /* @__PURE__ */ __name(() => {
|
|
426
|
+
const sorted = values.sort((l, r) => l - r);
|
|
427
|
+
const mid = sorted.length / 2;
|
|
428
|
+
if (sorted.length % 2 === 0) {
|
|
429
|
+
return (sorted[mid - 1] + sorted[mid]) / 2;
|
|
430
|
+
} else {
|
|
431
|
+
return sorted[Math.floor(mid)];
|
|
432
|
+
}
|
|
433
|
+
}, "peek")
|
|
307
434
|
};
|
|
308
435
|
}
|
|
436
|
+
__name(_median, "_median");
|
|
309
437
|
function median(callbackFn) {
|
|
310
438
|
return callbackFn ? Accessor(_median, callbackFn) : _median();
|
|
311
439
|
}
|
|
440
|
+
__name(median, "median");
|
|
312
441
|
function _quartile() {
|
|
313
442
|
let values;
|
|
314
443
|
return {
|
|
315
|
-
observe: (value, idx) => {
|
|
316
|
-
idx === 0
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
444
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
445
|
+
if (idx === 0) {
|
|
446
|
+
values = [];
|
|
447
|
+
}
|
|
448
|
+
values.push(value);
|
|
449
|
+
}, "observe"),
|
|
450
|
+
peek: /* @__PURE__ */ __name(() => {
|
|
451
|
+
const sorted = values.sort((l, r) => l - r);
|
|
452
|
+
const mid = sorted.length / 2;
|
|
453
|
+
let medianVal;
|
|
454
|
+
let lower;
|
|
455
|
+
let upper;
|
|
456
|
+
if (sorted.length < 2) {
|
|
457
|
+
return void 0;
|
|
458
|
+
} else if (sorted.length % 2 === 0) {
|
|
459
|
+
medianVal = (sorted[mid - 1] + sorted[mid]) / 2;
|
|
460
|
+
lower = sorted.slice(0, mid);
|
|
461
|
+
upper = sorted.slice(mid);
|
|
462
|
+
} else {
|
|
463
|
+
medianVal = sorted[Math.floor(mid)];
|
|
464
|
+
lower = sorted.slice(0, Math.floor(mid));
|
|
465
|
+
upper = sorted.slice(Math.ceil(mid));
|
|
466
|
+
}
|
|
467
|
+
return [sorted[0], scalar(median())(lower), medianVal, scalar(median())(upper), sorted[sorted.length - 1]];
|
|
468
|
+
}, "peek")
|
|
324
469
|
};
|
|
325
470
|
}
|
|
471
|
+
__name(_quartile, "_quartile");
|
|
326
472
|
function quartile(callbackFn) {
|
|
327
473
|
return callbackFn ? Accessor(_quartile, callbackFn) : _quartile();
|
|
328
474
|
}
|
|
475
|
+
__name(quartile, "quartile");
|
|
329
476
|
function _reduce(callback, initialValue) {
|
|
330
477
|
let reduced;
|
|
331
478
|
return {
|
|
332
|
-
observe: (value, idx) => {
|
|
333
|
-
idx === 0
|
|
334
|
-
|
|
335
|
-
|
|
479
|
+
observe: /* @__PURE__ */ __name((value, idx) => {
|
|
480
|
+
if (idx === 0) {
|
|
481
|
+
reduced = initialValue === void 0 ? value : callback(initialValue, value, idx);
|
|
482
|
+
} else {
|
|
483
|
+
reduced = callback(reduced, value, idx);
|
|
484
|
+
}
|
|
485
|
+
}, "observe"),
|
|
486
|
+
peek: /* @__PURE__ */ __name(() => reduced, "peek")
|
|
336
487
|
};
|
|
337
488
|
}
|
|
489
|
+
__name(_reduce, "_reduce");
|
|
338
490
|
function reduce(callbackFn, initialValue) {
|
|
339
491
|
return _reduce(callbackFn, initialValue);
|
|
340
492
|
}
|
|
493
|
+
__name(reduce, "reduce");
|
|
341
494
|
function* generate(generatorFn, maxLen) {
|
|
342
495
|
let i = -1;
|
|
343
|
-
|
|
496
|
+
while (maxLen === void 0 || ++i < maxLen) {
|
|
344
497
|
yield generatorFn();
|
|
498
|
+
}
|
|
345
499
|
}
|
|
500
|
+
__name(generate, "generate");
|
|
346
501
|
const GeneratorFunction = (function* () {
|
|
347
502
|
}).constructor;
|
|
348
503
|
function chainGen(...items) {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
return
|
|
359
|
-
|
|
504
|
+
if (items[items.length - 1] instanceof GeneratorFunction) {
|
|
505
|
+
return function* (source) {
|
|
506
|
+
let tail = source;
|
|
507
|
+
for (const activity2 of items) {
|
|
508
|
+
tail = activity2(tail);
|
|
509
|
+
}
|
|
510
|
+
yield* tail;
|
|
511
|
+
};
|
|
512
|
+
} else {
|
|
513
|
+
return function(source) {
|
|
514
|
+
let tail = source;
|
|
515
|
+
for (const activity2 of items) {
|
|
516
|
+
tail = activity2(tail);
|
|
517
|
+
}
|
|
518
|
+
return tail;
|
|
519
|
+
};
|
|
520
|
+
}
|
|
360
521
|
}
|
|
522
|
+
__name(chainGen, "chainGen");
|
|
361
523
|
function pipe(s_or_ia, ...items) {
|
|
362
524
|
return isSource(s_or_ia) ? chainGen(...items)(s_or_ia) : chainGen(s_or_ia, ...items);
|
|
363
525
|
}
|
|
526
|
+
__name(pipe, "pipe");
|
|
364
527
|
const chain = pipe;
|
|
365
528
|
export {
|
|
366
529
|
Accessor,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/activities/activity.ts","../src/activities/concat.ts","../src/activities/each.ts","../src/activities/entries.ts","../src/activities/filter.ts","../src/activities/first.ts","../src/activities/group.ts","../src/observers/observer.ts","../src/observers/max.ts","../src/observers/min.ts","../src/observers/extent.ts","../src/activities/histogram.ts","../src/activities/join.ts","../src/activities/map.ts","../src/activities/normalize.ts","../src/activities/skip.ts","../src/activities/sort.ts","../src/observers/count.ts","../src/observers/variance.ts","../src/observers/deviation.ts","../src/observers/mean.ts","../src/observers/distribution.ts","../src/observers/median.ts","../src/observers/quartile.ts","../src/observers/reduce.ts","../src/utils/generate.ts","../src/utils/pipe.ts"],"sourcesContent":["export type Source<T> = IterableIterator<T> | T[];\nexport type IterableActivity<T, U = T> = (source: Source<T>) => IterableIterator<U>;\nexport type ScalarActivity<T, U = T> = (source: Source<T>) => U;\nexport type Activity<T, U = T> = IterableActivity<T, U> | ScalarActivity<T, U>;\n\nexport function isSource<T>(source: Source<T> | any): source is Source<T> {\n return source && (typeof source[Symbol.iterator] === \"function\" || Array.isArray(source));\n}\n","import { Source, IterableActivity } from \"./activity.ts\";\n\nfunction concatGen<T = any>(concatSource: Source<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* source;\n yield* concatSource;\n };\n}\n\nexport function concat<T = any>(concatSource: Source<T>): IterableActivity<T, T>;\nexport function concat<T>(source: Source<T>, concatSource: Source<T>): IterableIterator<T>;\nexport function concat<T = any>(s_or_n: Source<T>, concatSource?: Source<T>): IterableActivity<T, T> | IterableIterator<T> {\n return concatSource !== undefined ? concatGen<T>(concatSource!)(s_or_n) : concatGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type EachCallback<T> = (value: T, index: number) => void;\n\nfunction eachGen<T = any>(callbackFn: EachCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n callbackFn(item, ++i);\n yield item;\n }\n };\n}\n\nexport function each<T = any>(callbackFn: EachCallback<T>): IterableActivity<T>;\nexport function each<T>(source: Source<T>, callbackFn: EachCallback<T>): IterableIterator<T>;\nexport function each<T>(s_or_cb: Source<T> | EachCallback<T>, callbackFn?: EachCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? eachGen(callbackFn!)(s_or_cb) : eachGen(s_or_cb);\n}\n","import { IterableActivity, Source } from \"./activity.ts\";\n\n// Array.entries\nfunction entriesGen<T = any>(): IterableActivity<T, [number, T]> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield [++i, item];\n }\n };\n}\n\nexport function entries<T = any>(): IterableActivity<T, [number, T]>;\nexport function entries<T>(source: Source<T>): IterableIterator<[number, T]>;\nexport function entries<T>(source?: Source<T>): IterableActivity<T, [number, T]> | IterableIterator<[number, T]> {\n return source ? entriesGen<T>()(source) : entriesGen<T>();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type FilterCallback<T> = (value: T, index: number) => boolean;\n\nfunction filterGen<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (callbackFn(item, ++i)) {\n yield item;\n }\n }\n };\n}\n\nexport function filter<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T>;\nexport function filter<T>(source: Source<T>, callbackFn: FilterCallback<T>): IterableIterator<T>;\nexport function filter<T>(s_or_cb: Source<T> | FilterCallback<T>, callbackFn?: FilterCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? filterGen(callbackFn!)(s_or_cb) : filterGen(s_or_cb);\n}\n","import { IterableActivity, isSource, Source } from \"./activity.ts\";\n\nfunction firstGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = 0;\n for (const item of source) {\n yield item;\n if (++i >= n) {\n break;\n }\n }\n };\n}\n\nexport function first<T = any>(n: number): IterableActivity<T, T>;\nexport function first<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function first<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n if (!isSource(s_or_n)) return firstGen<T>(s_or_n);\n return firstGen<T>(n!)(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type GroupFn<T> = (row: T, index: number) => number | string;\nexport type GroupRow<T> = { key: string, value: T[] };\n\nfunction groupGen<T = any>(groupFn: GroupFn<T>): IterableActivity<T, GroupRow<T>> {\n return function* (source: Source<T>) {\n let i = -1;\n const group: { [key: string]: T[] } = {};\n for (const row of source) {\n const key = groupFn(row, ++i);\n if (!group[key]) {\n group[key] = [];\n }\n group[key].push(row);\n }\n for (const key in group) {\n yield { key, value: group[key] };\n }\n };\n}\n\nexport function group<T>(groupByFn: GroupFn<T>): IterableActivity<T, GroupRow<T>>;\nexport function group<T>(source: Source<T>, groupByFn: GroupFn<T>): IterableIterator<GroupRow<T>>;\nexport function group<T>(s_or_gbf: Source<T> | GroupFn<T>, groupByFn?: GroupFn<T>): IterableActivity<T, GroupRow<T>> | IterableIterator<GroupRow<T>> {\n return isSource(s_or_gbf) ? groupGen<T>(groupByFn!)(s_or_gbf) : groupGen<T>(s_or_gbf);\n}\n","import { Source } from \"../activities/activity.ts\";\nimport { each } from \"../activities/each.ts\";\n\nexport type AccessorT<T, U> = (row: T, currentIndex: number) => U;\n\nexport interface ObserverFactory<T, U> {\n (): Observer<T, U>;\n}\n\nexport interface Observer<T, U> {\n observe(r: T, idx: number): void;\n peek(): U;\n}\n\nexport function Accessor<T = any, U = any, V = any>(fof: ObserverFactory<V, U>, accesor: AccessorT<T, V>): Observer<T, U> {\n const s = fof();\n\n return {\n observe: (_: T, i: number) => {\n s.observe(accesor(_, i), i);\n },\n peek: s.peek\n };\n}\n\n// This is an pass through activity so a FlowObserver can be inserted into a pipeline ---\nexport function sensor<T, U = any>(s: Observer<T, U>) {\n return each((r, i) => s.observe(r, i));\n}\n\n// This converts a FlowObserver to an Activity ---\nexport function activity<T, U>(s: Observer<T, U>) {\n return function* (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n yield s.peek();\n };\n}\n\n// This converts a FlowObserver to an ScalarActivity ---\nexport function scalar<T = any, U = any>(s: Observer<T, U>) {\n return function (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n return s.peek();\n };\n}\n\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _max(): Observer<number, number> {\n let max: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n max = value;\n } else if (max < value) {\n max = value;\n }\n },\n peek: () => max\n };\n}\n\nexport type MaxAccessor<T> = AccessorT<T, number>;\n\nexport function max(): Observer<number, number>;\nexport function max<T = any>(callbackFn: MaxAccessor<T>): Observer<T, number>;\nexport function max<T = any>(callbackFn?: MaxAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_max, callbackFn) : _max();\n}\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _min(): Observer<number, number> {\n let min: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n min = value;\n } else if (min > value) {\n min = value;\n }\n },\n peek: () => min\n };\n}\n\nexport type MinAccessor<T> = AccessorT<T, number>;\n\nexport function min(): Observer<number, number>;\nexport function min<T = any>(callbackFn: MinAccessor<T>): Observer<T, number>;\nexport function min<T = any>(callbackFn?: MinAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_min, callbackFn) : _min();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\nimport { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\n\nfunction _extent(): Observer<number, [number, number]> {\n const minFO = min();\n const maxFO = max();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n },\n peek: () => [minFO.peek(), maxFO.peek()]\n };\n}\n\nexport type ExtentAccessor<T> = AccessorT<T, number>;\n\nexport function extent(): Observer<number, [number, number]>;\nexport function extent<T = any>(callbackFn: ExtentAccessor<T>): Observer<T, [number, number]>;\nexport function extent<T = any>(callbackFn?: ExtentAccessor<T>): Observer<number, [number, number]> | Observer<T, [number, number]> {\n return callbackFn ? Accessor(_extent, callbackFn) : _extent();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\n\nexport type HistogramFn<T> = (row: T) => number;\nexport type HistogramRow<T> = { from: number, to: number, value: T[] };\nexport type OptionA = { buckets: number };\nexport type OptionB = { min: number, range: number };\nexport type Options = OptionA | OptionB;\n\nfunction isOptionA(_: Options): _ is OptionA {\n return (_ as OptionA).buckets !== undefined;\n}\n\nfunction histogramGen<T = any>(callbackFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>> {\n return function* (_source: Source<T>) {\n let min: number;\n let bucketSize: number;\n\n let source;\n if (isOptionA(options)) {\n source = Array.isArray(_source) ? _source : [..._source];\n const minMax = scalar(extent(callbackFn))(source);\n if (minMax === undefined) {\n return undefined;\n }\n min = minMax[0];\n const max = minMax[1];\n const buckets = options.buckets;\n bucketSize = (max - min) / buckets;\n } else {\n source = _source;\n min = options.min;\n bucketSize = options.range;\n }\n\n const histogram: { [key: number]: T[] } = {};\n\n let maxBucketID = 0;\n for (const row of source) {\n const value = callbackFn(row);\n const bucketID = Math.floor((value - min) / bucketSize);\n if (maxBucketID < bucketID) {\n maxBucketID = bucketID;\n }\n if (histogram[bucketID] === undefined) {\n histogram[bucketID] = [];\n }\n histogram[bucketID].push(row);\n }\n\n const lastBucket = histogram[maxBucketID];\n const from = min + maxBucketID * bucketSize;\n\n for (let i = 0; i <= maxBucketID; ++i) {\n // If all items in the last bucket match the \"to\" of the previous bucket, put them in there...\n if (i === maxBucketID - 1 && lastBucket.every(row => from === callbackFn(row))) {\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: [...(histogram[i] || []), ...lastBucket]\n };\n break;\n }\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: histogram[i] || []\n };\n }\n };\n}\n\nexport function histogram<T>(histogramByFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>>;\nexport function histogram<T>(source: Source<T>, histogramByFn: HistogramFn<T>, options: Options): IterableIterator<HistogramRow<T>>;\nexport function histogram<T>(s_or_hf: Source<T> | HistogramFn<T>, hf_or_b: HistogramFn<T> | Options, options?: Options): IterableActivity<T, HistogramRow<T>> | IterableIterator<HistogramRow<T>> {\n return isSource(s_or_hf) ? histogramGen<T>(hf_or_b as HistogramFn<T>, options!)(s_or_hf) : histogramGen<T>(s_or_hf as HistogramFn<T>, hf_or_b as Options);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type JoinCallback<T, U, V> = (rowT: T, rowU: U, index: number) => V;\n\nfunction joinGen<T = any, U = any, V = any>(_sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V> {\n const sourceB = Array.isArray(_sourceU) ? _sourceU[Symbol.iterator]() : _sourceU;\n return function* (sourceT: Source<T>) {\n let i = -1;\n for (const item of sourceT) {\n yield callbackFn(item, sourceB.next().value, ++i);\n }\n };\n}\n\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V>;\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableIterator<V>;\nexport function join<T, U, V>(sT_or_sU: Source<T> | Source<U>, sU_or_cb: Source<U> | JoinCallback<T, U, V>, callbackFn?: JoinCallback<T, U, V>): IterableActivity<T, V> | IterableIterator<V> {\n return isSource(sU_or_cb) ? joinGen(sU_or_cb, callbackFn!)(sT_or_sU as Source<T>) : joinGen(sT_or_sU as Source<U>, sU_or_cb);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type MapCallback<T, U> = (row: T, index: number) => U;\n\nfunction mapGen<T = any, U = any>(callbackFn: MapCallback<T, U>): IterableActivity<T, U> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield callbackFn(item, ++i);\n }\n };\n}\n\nexport function map<T, U>(callbackFn: MapCallback<T, U>): IterableActivity<T, U>;\nexport function map<T, U>(source: Source<T>, callbackFn: MapCallback<T, U>): IterableIterator<U>;\nexport function map<T, U>(s_or_cb: Source<T> | MapCallback<T, U>, callbackFn?: MapCallback<T, U>): IterableActivity<T, U> | IterableIterator<U> {\n return isSource(s_or_cb) ? mapGen(callbackFn!)(s_or_cb) : mapGen(s_or_cb);\n}\n","import { Source, IterableActivity, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\nimport { map } from \"./map.ts\";\n\nfunction normalizeGen(): IterableActivity<number> {\n const calcExtent = scalar(extent());\n return function* (_source: Source<number>) {\n const source = Array.isArray(_source) ? _source : [..._source];\n const range = calcExtent(source);\n const divisor = (range[1] - range[0]) || 1;\n const normalizeMap = map((row: number) => (row - range[0]) / divisor);\n return yield* normalizeMap(source);\n };\n}\n\nexport function normalize(): IterableActivity<number>;\nexport function normalize(source: Source<number>): IterableIterator<number>;\nexport function normalize(s_or_undef?: Source<number>): IterableActivity<number> | IterableIterator<number> {\n return isSource(s_or_undef) ? normalizeGen()(s_or_undef) : normalizeGen();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nfunction skipGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (++i >= n) {\n yield item;\n }\n }\n };\n}\n\nexport function skip<T = any>(n: number): IterableActivity<T, T>;\nexport function skip<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function skip<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n return isSource(s_or_n) ? skipGen<T>(n!)(s_or_n) : skipGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type SortCallback<T> = (a: T, b: T) => number;\n\nfunction sortGen<T = any>(compareFn?: SortCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* (Array.isArray(source) ? source : [...source]).sort(compareFn);\n };\n}\n\nexport function sort<T = any>(callbackFn: SortCallback<T>): IterableActivity<T>;\nexport function sort<T = any>(source: Source<T>, callbackFn: SortCallback<T>): IterableIterator<T>;\nexport function sort<T = any>(s_or_cb: Source<T> | SortCallback<T>, callbackFn?: SortCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? sortGen(callbackFn!)(s_or_cb) : sortGen(s_or_cb);\n}\n\n","import { Observer } from \"./observer.ts\";\n\nexport function count<T = any>(): Observer<T, number> {\n let count: number;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n count = 0;\n }\n ++count;\n },\n peek: () => count\n };\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _variance(): Observer<number, number | undefined> {\n let count: number;\n let mean: number;\n let sum: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n count = 0;\n mean = 0;\n sum = 0;\n }\n const delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n },\n peek: () => count > 1 ? sum / (count - 1) : undefined\n };\n}\n\nexport type VarianceAccessor<T> = AccessorT<T, number>;\n\nexport function variance(): Observer<number, number | undefined>;\nexport function variance<T = any>(callbackFn: VarianceAccessor<T>): Observer<T, number | undefined>;\nexport function variance<T = any>(callbackFn?: VarianceAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_variance, callbackFn) : _variance();\n}\n","import { variance } from \"./variance.ts\";\nimport { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _deviation(): Observer<number, number | undefined> {\n const v = variance();\n\n return {\n observe: (value: number, idx: number) => {\n v.observe(value, idx);\n },\n peek: () => {\n const variance = v.peek();\n return variance !== undefined ? Math.sqrt(variance) : variance;\n }\n };\n}\n\nexport type DeviationAccessor<T> = AccessorT<T, number>;\n\nexport function deviation(): Observer<number, number | undefined>;\nexport function deviation<T = any>(callbackFn: DeviationAccessor<T>): Observer<T, number | undefined>;\nexport function deviation<T = any>(callbackFn?: DeviationAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_deviation, callbackFn) : _deviation();\n}\n","import { Observer, Accessor } from \"./observer.ts\";\n\nfunction _mean(): Observer<number, number> {\n let total: number;\n let count: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n total = value;\n } else {\n total += value;\n }\n count = idx;\n },\n peek: () => total / (count + 1)\n };\n}\n\nexport type MeanAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function mean(): Observer<number, number>;\nexport function mean<T = any>(callbackFn: MeanAccessor<T>): Observer<T, number>;\nexport function mean<T = any>(callbackFn?: MeanAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_mean, callbackFn) : _mean();\n}\n","import { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\nimport { mean } from \"./mean.ts\";\nimport { variance } from \"./variance.ts\";\nimport { Observer, Accessor } from \"./observer.ts\";\n\nexport type DistributionCallback<T> = (row: T, currentIndex: number) => number;\n\nexport type DistributionT = {\n min: number,\n mean: number,\n max: number,\n deviation: number | undefined,\n variance: number | undefined\n} | undefined;\n\nfunction _distribution(): Observer<number, DistributionT> {\n const minFO = min();\n const maxFO = max();\n const meanFO = mean();\n const varianceFO = variance();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n meanFO.observe(value, idx);\n varianceFO.observe(value, idx);\n },\n peek: () => {\n const minResult = minFO.peek();\n if (minResult === undefined) return undefined;\n const varianceResult = varianceFO.peek();\n return {\n min: minResult,\n max: maxFO.peek(),\n mean: meanFO.peek(),\n variance: varianceResult,\n deviation: varianceResult !== undefined ? Math.sqrt(varianceResult) : undefined\n };\n }\n };\n}\n\nexport type DistributionAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function distribution(): Observer<number, DistributionT>;\nexport function distribution<T = any>(callbackFn: DistributionAccessor<T>): Observer<T, DistributionT>;\nexport function distribution<T = any>(callbackFn?: DistributionAccessor<T>): Observer<number, DistributionT> | Observer<T, DistributionT> {\n return callbackFn ? Accessor(_distribution, callbackFn) : _distribution();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _median(): Observer<number, number> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n if (sorted.length % 2 === 0) {\n return (sorted[mid - 1] + sorted[mid]) / 2;\n } else {\n return sorted[Math.floor(mid)];\n }\n }\n };\n}\n\nexport type MedianAccessor<T> = AccessorT<T, number>;\n\nexport function median(): Observer<number, number>;\nexport function median<T = any>(callbackFn: MedianAccessor<T>): Observer<T, number>;\nexport function median<T = any>(callbackFn?: MedianAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_median, callbackFn) : _median();\n}","import { median } from \"./median.ts\";\nimport { AccessorT, Observer, Accessor, scalar } from \"./observer.ts\";\n\nexport type QuartileAccessor<T> = AccessorT<T, number>;\n\nexport type QuartileT = [number, number, number, number, number] | undefined;\n\nfunction _quartile(): Observer<number, QuartileT> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n let medianVal: number;\n let lower: number[];\n let upper: number[];\n if (sorted.length < 2) {\n return undefined;\n } else if (sorted.length % 2 === 0) {\n medianVal = (sorted[mid - 1] + sorted[mid]) / 2;\n lower = sorted.slice(0, mid);\n upper = sorted.slice(mid);\n } else {\n medianVal = sorted[Math.floor(mid)];\n lower = sorted.slice(0, Math.floor(mid));\n upper = sorted.slice(Math.ceil(mid));\n }\n return [sorted[0], scalar(median())(lower)!, medianVal, scalar(median())(upper)!, sorted[sorted.length - 1]];\n }\n };\n}\n\nexport function quartile(): Observer<number, QuartileT>;\nexport function quartile<T = any>(callbackFn: QuartileAccessor<T>): Observer<T, QuartileT>;\nexport function quartile<T = any>(callbackFn?: QuartileAccessor<T>): Observer<number, QuartileT> | Observer<T, QuartileT> {\n return callbackFn ? Accessor(_quartile, callbackFn) : _quartile();\n}","import { Observer } from \"./observer.ts\";\n\nexport type ReduceCallback<T, U> = (previousValue: U, currentValue: T, currentIndex: number) => U;\n\nfunction _reduce<T, U>(callback: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n let reduced: U;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n reduced = initialValue === undefined ? (value as unknown as U) : callback(initialValue, value, idx);\n } else {\n reduced = callback(reduced, value, idx);\n }\n },\n peek: () => reduced\n };\n}\n\nexport function reduce<T = any, U = any>(callbackFn: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n return _reduce(callbackFn, initialValue);\n}\n","export function* generate<U>(generatorFn: () => U, maxLen?: number): IterableIterator<U> {\n let i = -1;\n while (maxLen === undefined || ++i < maxLen) {\n yield generatorFn();\n }\n}\n","import { IterableActivity, Source, isSource, ScalarActivity } from \"../activities/activity.ts\";\n\nconst GeneratorFunction = (function* () { }).constructor;\n\nfunction chainGen<T, U>(...items: (IterableActivity<T, U> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> {\n if (items[items.length - 1] instanceof GeneratorFunction) {\n return function* (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n yield* tail;\n };\n } else {\n return function (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n return tail;\n };\n }\n}\n\n// TODO: Switch to TS Variadic Types in 4.0\nexport function pipe<T, U>(head: IterableActivity<T, U>): IterableActivity<T, U>;\nexport function pipe<T, U>(head: ScalarActivity<T, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>): IterableIterator<U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>, head: IterableActivity<T, U>): IterableIterator<U>;\nexport function pipe<T, U>(source: Source<T>, head: ScalarActivity<T, U>): U;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I2, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I2, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: IterableActivity<I9, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: ScalarActivity<I9, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): U;\nexport function pipe<T, U = any>(s_or_ia: Source<T> | IterableActivity<T, U>, ...items: (IterableActivity<unknown, unknown> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> | ScalarActivity<T, U> | IterableIterator<U> {\n return isSource<T>(s_or_ia) ? chainGen<T, U>(...items)(s_or_ia) : chainGen<T, U>(s_or_ia as IterableActivity<T, U>, ...items);\n}\n\n// Maintain backward compatibility\nexport const chain = pipe;\n"],"names":["group","max","min","histogram","count","mean","variance","activity"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/activities/activity.ts","../src/activities/concat.ts","../src/activities/each.ts","../src/activities/entries.ts","../src/activities/filter.ts","../src/activities/first.ts","../src/activities/group.ts","../src/observers/observer.ts","../src/observers/max.ts","../src/observers/min.ts","../src/observers/extent.ts","../src/activities/histogram.ts","../src/activities/join.ts","../src/activities/map.ts","../src/activities/normalize.ts","../src/activities/skip.ts","../src/activities/sort.ts","../src/observers/count.ts","../src/observers/variance.ts","../src/observers/deviation.ts","../src/observers/mean.ts","../src/observers/distribution.ts","../src/observers/median.ts","../src/observers/quartile.ts","../src/observers/reduce.ts","../src/utils/generate.ts","../src/utils/pipe.ts"],"sourcesContent":["export type Source<T> = IterableIterator<T> | T[];\nexport type IterableActivity<T, U = T> = (source: Source<T>) => IterableIterator<U>;\nexport type ScalarActivity<T, U = T> = (source: Source<T>) => U;\nexport type Activity<T, U = T> = IterableActivity<T, U> | ScalarActivity<T, U>;\n\nexport function isSource<T>(source: Source<T> | any): source is Source<T> {\n return source && (typeof source[Symbol.iterator] === \"function\" || Array.isArray(source));\n}\n","import { Source, IterableActivity } from \"./activity.ts\";\n\nfunction concatGen<T = any>(concatSource: Source<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* source;\n yield* concatSource;\n };\n}\n\nexport function concat<T = any>(concatSource: Source<T>): IterableActivity<T, T>;\nexport function concat<T>(source: Source<T>, concatSource: Source<T>): IterableIterator<T>;\nexport function concat<T = any>(s_or_n: Source<T>, concatSource?: Source<T>): IterableActivity<T, T> | IterableIterator<T> {\n return concatSource !== undefined ? concatGen<T>(concatSource!)(s_or_n) : concatGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type EachCallback<T> = (value: T, index: number) => void;\n\nfunction eachGen<T = any>(callbackFn: EachCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n callbackFn(item, ++i);\n yield item;\n }\n };\n}\n\nexport function each<T = any>(callbackFn: EachCallback<T>): IterableActivity<T>;\nexport function each<T>(source: Source<T>, callbackFn: EachCallback<T>): IterableIterator<T>;\nexport function each<T>(s_or_cb: Source<T> | EachCallback<T>, callbackFn?: EachCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? eachGen(callbackFn!)(s_or_cb) : eachGen(s_or_cb);\n}\n","import { IterableActivity, Source } from \"./activity.ts\";\n\n// Array.entries\nfunction entriesGen<T = any>(): IterableActivity<T, [number, T]> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield [++i, item];\n }\n };\n}\n\nexport function entries<T = any>(): IterableActivity<T, [number, T]>;\nexport function entries<T>(source: Source<T>): IterableIterator<[number, T]>;\nexport function entries<T>(source?: Source<T>): IterableActivity<T, [number, T]> | IterableIterator<[number, T]> {\n return source ? entriesGen<T>()(source) : entriesGen<T>();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type FilterCallback<T> = (value: T, index: number) => boolean;\n\nfunction filterGen<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (callbackFn(item, ++i)) {\n yield item;\n }\n }\n };\n}\n\nexport function filter<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T>;\nexport function filter<T>(source: Source<T>, callbackFn: FilterCallback<T>): IterableIterator<T>;\nexport function filter<T>(s_or_cb: Source<T> | FilterCallback<T>, callbackFn?: FilterCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? filterGen(callbackFn!)(s_or_cb) : filterGen(s_or_cb);\n}\n","import { IterableActivity, isSource, Source } from \"./activity.ts\";\n\nfunction firstGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = 0;\n for (const item of source) {\n yield item;\n if (++i >= n) {\n break;\n }\n }\n };\n}\n\nexport function first<T = any>(n: number): IterableActivity<T, T>;\nexport function first<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function first<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n if (!isSource(s_or_n)) return firstGen<T>(s_or_n);\n return firstGen<T>(n!)(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type GroupFn<T> = (row: T, index: number) => number | string;\nexport type GroupRow<T> = { key: string, value: T[] };\n\nfunction groupGen<T = any>(groupFn: GroupFn<T>): IterableActivity<T, GroupRow<T>> {\n return function* (source: Source<T>) {\n let i = -1;\n const group: { [key: string]: T[] } = {};\n for (const row of source) {\n const key = groupFn(row, ++i);\n if (!group[key]) {\n group[key] = [];\n }\n group[key].push(row);\n }\n for (const key in group) {\n yield { key, value: group[key] };\n }\n };\n}\n\nexport function group<T>(groupByFn: GroupFn<T>): IterableActivity<T, GroupRow<T>>;\nexport function group<T>(source: Source<T>, groupByFn: GroupFn<T>): IterableIterator<GroupRow<T>>;\nexport function group<T>(s_or_gbf: Source<T> | GroupFn<T>, groupByFn?: GroupFn<T>): IterableActivity<T, GroupRow<T>> | IterableIterator<GroupRow<T>> {\n return isSource(s_or_gbf) ? groupGen<T>(groupByFn!)(s_or_gbf) : groupGen<T>(s_or_gbf);\n}\n","import { Source } from \"../activities/activity.ts\";\nimport { each } from \"../activities/each.ts\";\n\nexport type AccessorT<T, U> = (row: T, currentIndex: number) => U;\n\nexport interface ObserverFactory<T, U> {\n (): Observer<T, U>;\n}\n\nexport interface Observer<T, U> {\n observe(r: T, idx: number): void;\n peek(): U;\n}\n\nexport function Accessor<T = any, U = any, V = any>(fof: ObserverFactory<V, U>, accesor: AccessorT<T, V>): Observer<T, U> {\n const s = fof();\n\n return {\n observe: (_: T, i: number) => {\n s.observe(accesor(_, i), i);\n },\n peek: s.peek\n };\n}\n\n// This is an pass through activity so a FlowObserver can be inserted into a pipeline ---\nexport function sensor<T, U = any>(s: Observer<T, U>) {\n return each((r, i) => s.observe(r, i));\n}\n\n// This converts a FlowObserver to an Activity ---\nexport function activity<T, U>(s: Observer<T, U>) {\n return function* (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n yield s.peek();\n };\n}\n\n// This converts a FlowObserver to an ScalarActivity ---\nexport function scalar<T = any, U = any>(s: Observer<T, U>) {\n return function (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n return s.peek();\n };\n}\n\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _max(): Observer<number, number> {\n let max: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n max = value;\n } else if (max < value) {\n max = value;\n }\n },\n peek: () => max\n };\n}\n\nexport type MaxAccessor<T> = AccessorT<T, number>;\n\nexport function max(): Observer<number, number>;\nexport function max<T = any>(callbackFn: MaxAccessor<T>): Observer<T, number>;\nexport function max<T = any>(callbackFn?: MaxAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_max, callbackFn) : _max();\n}\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _min(): Observer<number, number> {\n let min: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n min = value;\n } else if (min > value) {\n min = value;\n }\n },\n peek: () => min\n };\n}\n\nexport type MinAccessor<T> = AccessorT<T, number>;\n\nexport function min(): Observer<number, number>;\nexport function min<T = any>(callbackFn: MinAccessor<T>): Observer<T, number>;\nexport function min<T = any>(callbackFn?: MinAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_min, callbackFn) : _min();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\nimport { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\n\nfunction _extent(): Observer<number, [number, number]> {\n const minFO = min();\n const maxFO = max();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n },\n peek: () => [minFO.peek(), maxFO.peek()]\n };\n}\n\nexport type ExtentAccessor<T> = AccessorT<T, number>;\n\nexport function extent(): Observer<number, [number, number]>;\nexport function extent<T = any>(callbackFn: ExtentAccessor<T>): Observer<T, [number, number]>;\nexport function extent<T = any>(callbackFn?: ExtentAccessor<T>): Observer<number, [number, number]> | Observer<T, [number, number]> {\n return callbackFn ? Accessor(_extent, callbackFn) : _extent();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\n\nexport type HistogramFn<T> = (row: T) => number;\nexport type HistogramRow<T> = { from: number, to: number, value: T[] };\nexport type OptionA = { buckets: number };\nexport type OptionB = { min: number, range: number };\nexport type Options = OptionA | OptionB;\n\nfunction isOptionA(_: Options): _ is OptionA {\n return (_ as OptionA).buckets !== undefined;\n}\n\nfunction histogramGen<T = any>(callbackFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>> {\n return function* (_source: Source<T>) {\n let min: number;\n let bucketSize: number;\n\n let source;\n if (isOptionA(options)) {\n source = Array.isArray(_source) ? _source : [..._source];\n const minMax = scalar(extent(callbackFn))(source);\n if (minMax === undefined) {\n return undefined;\n }\n min = minMax[0];\n const max = minMax[1];\n const buckets = options.buckets;\n bucketSize = (max - min) / buckets;\n } else {\n source = _source;\n min = options.min;\n bucketSize = options.range;\n }\n\n const histogram: { [key: number]: T[] } = {};\n\n let maxBucketID = 0;\n for (const row of source) {\n const value = callbackFn(row);\n const bucketID = Math.floor((value - min) / bucketSize);\n if (maxBucketID < bucketID) {\n maxBucketID = bucketID;\n }\n if (histogram[bucketID] === undefined) {\n histogram[bucketID] = [];\n }\n histogram[bucketID].push(row);\n }\n\n const lastBucket = histogram[maxBucketID];\n const from = min + maxBucketID * bucketSize;\n\n for (let i = 0; i <= maxBucketID; ++i) {\n // If all items in the last bucket match the \"to\" of the previous bucket, put them in there...\n if (i === maxBucketID - 1 && lastBucket.every(row => from === callbackFn(row))) {\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: [...(histogram[i] || []), ...lastBucket]\n };\n break;\n }\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: histogram[i] || []\n };\n }\n };\n}\n\nexport function histogram<T>(histogramByFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>>;\nexport function histogram<T>(source: Source<T>, histogramByFn: HistogramFn<T>, options: Options): IterableIterator<HistogramRow<T>>;\nexport function histogram<T>(s_or_hf: Source<T> | HistogramFn<T>, hf_or_b: HistogramFn<T> | Options, options?: Options): IterableActivity<T, HistogramRow<T>> | IterableIterator<HistogramRow<T>> {\n return isSource(s_or_hf) ? histogramGen<T>(hf_or_b as HistogramFn<T>, options!)(s_or_hf) : histogramGen<T>(s_or_hf as HistogramFn<T>, hf_or_b as Options);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type JoinCallback<T, U, V> = (rowT: T, rowU: U, index: number) => V;\n\nfunction joinGen<T = any, U = any, V = any>(_sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V> {\n const sourceB = Array.isArray(_sourceU) ? _sourceU[Symbol.iterator]() : _sourceU;\n return function* (sourceT: Source<T>) {\n let i = -1;\n for (const item of sourceT) {\n yield callbackFn(item, sourceB.next().value, ++i);\n }\n };\n}\n\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V>;\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableIterator<V>;\nexport function join<T, U, V>(sT_or_sU: Source<T> | Source<U>, sU_or_cb: Source<U> | JoinCallback<T, U, V>, callbackFn?: JoinCallback<T, U, V>): IterableActivity<T, V> | IterableIterator<V> {\n return isSource(sU_or_cb) ? joinGen(sU_or_cb, callbackFn!)(sT_or_sU as Source<T>) : joinGen(sT_or_sU as Source<U>, sU_or_cb);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type MapCallback<T, U> = (row: T, index: number) => U;\n\nfunction mapGen<T = any, U = any>(callbackFn: MapCallback<T, U>): IterableActivity<T, U> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield callbackFn(item, ++i);\n }\n };\n}\n\nexport function map<T, U>(callbackFn: MapCallback<T, U>): IterableActivity<T, U>;\nexport function map<T, U>(source: Source<T>, callbackFn: MapCallback<T, U>): IterableIterator<U>;\nexport function map<T, U>(s_or_cb: Source<T> | MapCallback<T, U>, callbackFn?: MapCallback<T, U>): IterableActivity<T, U> | IterableIterator<U> {\n return isSource(s_or_cb) ? mapGen(callbackFn!)(s_or_cb) : mapGen(s_or_cb);\n}\n","import { Source, IterableActivity, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\nimport { map } from \"./map.ts\";\n\nfunction normalizeGen(): IterableActivity<number> {\n const calcExtent = scalar(extent());\n return function* (_source: Source<number>) {\n const source = Array.isArray(_source) ? _source : [..._source];\n const range = calcExtent(source);\n const divisor = (range[1] - range[0]) || 1;\n const normalizeMap = map((row: number) => (row - range[0]) / divisor);\n return yield* normalizeMap(source);\n };\n}\n\nexport function normalize(): IterableActivity<number>;\nexport function normalize(source: Source<number>): IterableIterator<number>;\nexport function normalize(s_or_undef?: Source<number>): IterableActivity<number> | IterableIterator<number> {\n return isSource(s_or_undef) ? normalizeGen()(s_or_undef) : normalizeGen();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nfunction skipGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (++i >= n) {\n yield item;\n }\n }\n };\n}\n\nexport function skip<T = any>(n: number): IterableActivity<T, T>;\nexport function skip<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function skip<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n return isSource(s_or_n) ? skipGen<T>(n!)(s_or_n) : skipGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type SortCallback<T> = (a: T, b: T) => number;\n\nfunction sortGen<T = any>(compareFn?: SortCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* (Array.isArray(source) ? source : [...source]).sort(compareFn);\n };\n}\n\nexport function sort<T = any>(callbackFn: SortCallback<T>): IterableActivity<T>;\nexport function sort<T = any>(source: Source<T>, callbackFn: SortCallback<T>): IterableIterator<T>;\nexport function sort<T = any>(s_or_cb: Source<T> | SortCallback<T>, callbackFn?: SortCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? sortGen(callbackFn!)(s_or_cb) : sortGen(s_or_cb);\n}\n\n","import { Observer } from \"./observer.ts\";\n\nexport function count<T = any>(): Observer<T, number> {\n let count: number;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n count = 0;\n }\n ++count;\n },\n peek: () => count\n };\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _variance(): Observer<number, number | undefined> {\n let count: number;\n let mean: number;\n let sum: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n count = 0;\n mean = 0;\n sum = 0;\n }\n const delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n },\n peek: () => count > 1 ? sum / (count - 1) : undefined\n };\n}\n\nexport type VarianceAccessor<T> = AccessorT<T, number>;\n\nexport function variance(): Observer<number, number | undefined>;\nexport function variance<T = any>(callbackFn: VarianceAccessor<T>): Observer<T, number | undefined>;\nexport function variance<T = any>(callbackFn?: VarianceAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_variance, callbackFn) : _variance();\n}\n","import { variance } from \"./variance.ts\";\nimport { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _deviation(): Observer<number, number | undefined> {\n const v = variance();\n\n return {\n observe: (value: number, idx: number) => {\n v.observe(value, idx);\n },\n peek: () => {\n const variance = v.peek();\n return variance !== undefined ? Math.sqrt(variance) : variance;\n }\n };\n}\n\nexport type DeviationAccessor<T> = AccessorT<T, number>;\n\nexport function deviation(): Observer<number, number | undefined>;\nexport function deviation<T = any>(callbackFn: DeviationAccessor<T>): Observer<T, number | undefined>;\nexport function deviation<T = any>(callbackFn?: DeviationAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_deviation, callbackFn) : _deviation();\n}\n","import { Observer, Accessor } from \"./observer.ts\";\n\nfunction _mean(): Observer<number, number> {\n let total: number;\n let count: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n total = value;\n } else {\n total += value;\n }\n count = idx;\n },\n peek: () => total / (count + 1)\n };\n}\n\nexport type MeanAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function mean(): Observer<number, number>;\nexport function mean<T = any>(callbackFn: MeanAccessor<T>): Observer<T, number>;\nexport function mean<T = any>(callbackFn?: MeanAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_mean, callbackFn) : _mean();\n}\n","import { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\nimport { mean } from \"./mean.ts\";\nimport { variance } from \"./variance.ts\";\nimport { Observer, Accessor } from \"./observer.ts\";\n\nexport type DistributionCallback<T> = (row: T, currentIndex: number) => number;\n\nexport type DistributionT = {\n min: number,\n mean: number,\n max: number,\n deviation: number | undefined,\n variance: number | undefined\n} | undefined;\n\nfunction _distribution(): Observer<number, DistributionT> {\n const minFO = min();\n const maxFO = max();\n const meanFO = mean();\n const varianceFO = variance();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n meanFO.observe(value, idx);\n varianceFO.observe(value, idx);\n },\n peek: () => {\n const minResult = minFO.peek();\n if (minResult === undefined) return undefined;\n const varianceResult = varianceFO.peek();\n return {\n min: minResult,\n max: maxFO.peek(),\n mean: meanFO.peek(),\n variance: varianceResult,\n deviation: varianceResult !== undefined ? Math.sqrt(varianceResult) : undefined\n };\n }\n };\n}\n\nexport type DistributionAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function distribution(): Observer<number, DistributionT>;\nexport function distribution<T = any>(callbackFn: DistributionAccessor<T>): Observer<T, DistributionT>;\nexport function distribution<T = any>(callbackFn?: DistributionAccessor<T>): Observer<number, DistributionT> | Observer<T, DistributionT> {\n return callbackFn ? Accessor(_distribution, callbackFn) : _distribution();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _median(): Observer<number, number> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n if (sorted.length % 2 === 0) {\n return (sorted[mid - 1] + sorted[mid]) / 2;\n } else {\n return sorted[Math.floor(mid)];\n }\n }\n };\n}\n\nexport type MedianAccessor<T> = AccessorT<T, number>;\n\nexport function median(): Observer<number, number>;\nexport function median<T = any>(callbackFn: MedianAccessor<T>): Observer<T, number>;\nexport function median<T = any>(callbackFn?: MedianAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_median, callbackFn) : _median();\n}","import { median } from \"./median.ts\";\nimport { AccessorT, Observer, Accessor, scalar } from \"./observer.ts\";\n\nexport type QuartileAccessor<T> = AccessorT<T, number>;\n\nexport type QuartileT = [number, number, number, number, number] | undefined;\n\nfunction _quartile(): Observer<number, QuartileT> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n let medianVal: number;\n let lower: number[];\n let upper: number[];\n if (sorted.length < 2) {\n return undefined;\n } else if (sorted.length % 2 === 0) {\n medianVal = (sorted[mid - 1] + sorted[mid]) / 2;\n lower = sorted.slice(0, mid);\n upper = sorted.slice(mid);\n } else {\n medianVal = sorted[Math.floor(mid)];\n lower = sorted.slice(0, Math.floor(mid));\n upper = sorted.slice(Math.ceil(mid));\n }\n return [sorted[0], scalar(median())(lower)!, medianVal, scalar(median())(upper)!, sorted[sorted.length - 1]];\n }\n };\n}\n\nexport function quartile(): Observer<number, QuartileT>;\nexport function quartile<T = any>(callbackFn: QuartileAccessor<T>): Observer<T, QuartileT>;\nexport function quartile<T = any>(callbackFn?: QuartileAccessor<T>): Observer<number, QuartileT> | Observer<T, QuartileT> {\n return callbackFn ? Accessor(_quartile, callbackFn) : _quartile();\n}","import { Observer } from \"./observer.ts\";\n\nexport type ReduceCallback<T, U> = (previousValue: U, currentValue: T, currentIndex: number) => U;\n\nfunction _reduce<T, U>(callback: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n let reduced: U;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n reduced = initialValue === undefined ? (value as unknown as U) : callback(initialValue, value, idx);\n } else {\n reduced = callback(reduced, value, idx);\n }\n },\n peek: () => reduced\n };\n}\n\nexport function reduce<T = any, U = any>(callbackFn: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n return _reduce(callbackFn, initialValue);\n}\n","export function* generate<U>(generatorFn: () => U, maxLen?: number): IterableIterator<U> {\n let i = -1;\n while (maxLen === undefined || ++i < maxLen) {\n yield generatorFn();\n }\n}\n","import { IterableActivity, Source, isSource, ScalarActivity } from \"../activities/activity.ts\";\n\nconst GeneratorFunction = (function* () { }).constructor;\n\nfunction chainGen<T, U>(...items: (IterableActivity<T, U> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> {\n if (items[items.length - 1] instanceof GeneratorFunction) {\n return function* (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n yield* tail;\n };\n } else {\n return function (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n return tail;\n };\n }\n}\n\n// TODO: Switch to TS Variadic Types in 4.0\nexport function pipe<T, U>(head: IterableActivity<T, U>): IterableActivity<T, U>;\nexport function pipe<T, U>(head: ScalarActivity<T, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>): IterableIterator<U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>, head: IterableActivity<T, U>): IterableIterator<U>;\nexport function pipe<T, U>(source: Source<T>, head: ScalarActivity<T, U>): U;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I2, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I2, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: IterableActivity<I9, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: ScalarActivity<I9, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): U;\nexport function pipe<T, U = any>(s_or_ia: Source<T> | IterableActivity<T, U>, ...items: (IterableActivity<unknown, unknown> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> | ScalarActivity<T, U> | IterableIterator<U> {\n return isSource<T>(s_or_ia) ? chainGen<T, U>(...items)(s_or_ia) : chainGen<T, U>(s_or_ia as IterableActivity<T, U>, ...items);\n}\n\n// Maintain backward compatibility\nexport const chain = pipe;\n"],"names":["group","max","min","histogram","count","mean","variance","activity"],"mappings":"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"}
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["@hpcc-js/dataflow"]={})}(this,function(e){"use strict";var n=Object.defineProperty,t=(e,t)=>n(e,"name",{value:t,configurable:!0});function r(e){return e&&("function"==typeof e[Symbol.iterator]||Array.isArray(e))}function o(e){return function*(n){yield*n,yield*e}}function i(e,n){return void 0!==n?o(n)(e):o(e)}function u(e){return function*(n){let t=-1;for(const r of n)e(r,++t),yield r}}function c(e,n){return r(e)?u(n)(e):u(e)}function f(){return function*(e){let n=-1;for(const t of e)yield[++n,t]}}function s(e){return e?function*(e){let n=-1;for(const t of e)yield[++n,t]}(e):function*(e){let n=-1;for(const t of e)yield[++n,t]}}function l(e){return function*(n){let t=-1;for(const r of n)e(r,++t)&&(yield r)}}function a(e,n){return r(e)?l(n)(e):l(e)}function v(e){return function*(n){let t=0;for(const r of n)if(yield r,++t>=e)break}}function p(e,n){return r(e)?v(n)(e):v(e)}function d(e){return function*(n){let t=-1;const r={};for(const o of n){const n=e(o,++t);r[n]||(r[n]=[]),r[n].push(o)}for(const e in r)yield{key:e,value:r[e]}}}function b(e,n){return r(e)?d(n)(e):d(e)}function y(e,n){const r=e();return{observe:t((e,t)=>{r.observe(n(e,t),t)},"observe"),peek:r.peek}}function k(e){return c((n,t)=>e.observe(n,t))}function m(e){return function*(n){let t=-1;for(const r of n)e.observe(r,++t);yield e.peek()}}function h(e){return function(n){let t=-1;for(const r of n)e.observe(r,++t);return e.peek()}}function g(){let e;return{observe:t((n,t)=>{(0===t||e<n)&&(e=n)},"observe"),peek:t(()=>e,"peek")}}function A(e){return e?y(g,e):g()}function G(){let e;return{observe:t((n,t)=>{(0===t||e>n)&&(e=n)},"observe"),peek:t(()=>e,"peek")}}function x(e){return e?y(G,e):G()}function _(){const e=x(),n=A();return{observe:t((t,r)=>{e.observe(t,r),n.observe(t,r)},"observe"),peek:t(()=>[e.peek(),n.peek()],"peek")}}function M(e){return e?y(_,e):_()}function j(e){return void 0!==e.buckets}function S(e,n){return function*(t){let r,o,i;if(j(n)){i=Array.isArray(t)?t:[...t];const u=h(M(e))(i);if(void 0===u)return;r=u[0];o=(u[1]-r)/n.buckets}else i=t,r=n.min,o=n.range;const u={};let c=0;for(const n of i){const t=e(n),i=Math.floor((t-r)/o);c<i&&(c=i),void 0===u[i]&&(u[i]=[]),u[i].push(n)}const f=u[c],s=r+c*o;for(let n=0;n<=c;++n){if(n===c-1&&f.every(n=>s===e(n))){yield{from:r+n*o,to:r+(n+1)*o,value:[...u[n]||[],...f]};break}yield{from:r+n*o,to:r+(n+1)*o,value:u[n]||[]}}}}function q(e,n,t){return r(e)?S(n,t)(e):S(e,n)}function z(e,n){const t=Array.isArray(e)?e[Symbol.iterator]():e;return function*(e){let r=-1;for(const o of e)yield n(o,t.next().value,++r)}}function O(e,n,t){return r(n)?z(n,t)(e):z(e,n)}function T(e){return function*(n){let t=-1;for(const r of n)yield e(r,++t)}}function P(e,n){return r(e)?T(n)(e):T(e)}function w(){const e=h(M());return function*(n){const t=Array.isArray(n)?n:[...n],r=e(t),o=r[1]-r[0]||1,i=P(e=>(e-r[0])/o);return yield*i(t)}}function B(e){return r(e)?w()(e):w()}function C(e){return function*(n){let t=-1;for(const r of n)++t>=e&&(yield r)}}function D(e,n){return r(e)?C(n)(e):C(e)}function E(e){return function*(n){yield*(Array.isArray(n)?n:[...n]).sort(e)}}function F(e,n){return r(e)?E(n)(e):E(e)}function H(){let e;return{observe:t((n,t)=>{0===t&&(e=0),++e},"observe"),peek:t(()=>e,"peek")}}function I(){let e,n,r;return{observe:t((t,o)=>{0===o&&(e=0,n=0,r=0);const i=t-n;n+=i/++e,r+=i*(t-n)},"observe"),peek:t(()=>e>1?r/(e-1):void 0,"peek")}}function J(e){return e?y(I,e):I()}function K(){const e=J();return{observe:t((n,t)=>{e.observe(n,t)},"observe"),peek:t(()=>{const n=e.peek();return void 0!==n?Math.sqrt(n):n},"peek")}}function L(e){return e?y(K,e):K()}function N(){let e,n;return{observe:t((t,r)=>{0===r?e=t:e+=t,n=r},"observe"),peek:t(()=>e/(n+1),"peek")}}function Q(e){return e?y(N,e):N()}function R(){const e=x(),n=A(),r=Q(),o=J();return{observe:t((t,i)=>{e.observe(t,i),n.observe(t,i),r.observe(t,i),o.observe(t,i)},"observe"),peek:t(()=>{const t=e.peek();if(void 0===t)return;const i=o.peek();return{min:t,max:n.peek(),mean:r.peek(),variance:i,deviation:void 0!==i?Math.sqrt(i):void 0}},"peek")}}function U(e){return e?y(R,e):R()}function V(){let e;return{observe:t((n,t)=>{0===t&&(e=[]),e.push(n)},"observe"),peek:t(()=>{const n=e.sort((e,n)=>e-n),t=n.length/2;return n.length%2==0?(n[t-1]+n[t])/2:n[Math.floor(t)]},"peek")}}function W(e){return e?y(V,e):V()}function X(){let e;return{observe:t((n,t)=>{0===t&&(e=[]),e.push(n)},"observe"),peek:t(()=>{const n=e.sort((e,n)=>e-n),t=n.length/2;let r,o,i;if(!(n.length<2))return n.length%2==0?(r=(n[t-1]+n[t])/2,o=n.slice(0,t),i=n.slice(t)):(r=n[Math.floor(t)],o=n.slice(0,Math.floor(t)),i=n.slice(Math.ceil(t))),[n[0],h(W())(o),r,h(W())(i),n[n.length-1]]},"peek")}}function Y(e){return e?y(X,e):X()}function Z(e,n){let r;return{observe:t((t,o)=>{r=0===o?void 0===n?t:e(n,t,o):e(r,t,o)},"observe"),peek:t(()=>r,"peek")}}function $(e,n){return Z(e,n)}function*ee(e,n){let t=-1;for(;void 0===n||++t<n;)yield e()}t(r,"isSource"),t(o,"concatGen"),t(i,"concat"),t(u,"eachGen"),t(c,"each"),t(f,"entriesGen"),t(s,"entries"),t(l,"filterGen"),t(a,"filter"),t(v,"firstGen"),t(p,"first"),t(d,"groupGen"),t(b,"group"),t(y,"Accessor"),t(k,"sensor"),t(m,"activity"),t(h,"scalar"),t(g,"_max"),t(A,"max"),t(G,"_min"),t(x,"min"),t(_,"_extent"),t(M,"extent"),t(j,"isOptionA"),t(S,"histogramGen"),t(q,"histogram"),t(z,"joinGen"),t(O,"join"),t(T,"mapGen"),t(P,"map"),t(w,"normalizeGen"),t(B,"normalize"),t(C,"skipGen"),t(D,"skip"),t(E,"sortGen"),t(F,"sort"),t(H,"count"),t(I,"_variance"),t(J,"variance"),t(K,"_deviation"),t(L,"deviation"),t(N,"_mean"),t(Q,"mean"),t(R,"_distribution"),t(U,"distribution"),t(V,"_median"),t(W,"median"),t(X,"_quartile"),t(Y,"quartile"),t(Z,"_reduce"),t($,"reduce"),t(ee,"generate");const ne=function*(){}.constructor;function te(...e){return e[e.length-1]instanceof ne?function*(n){let t=n;for(const r of e)t=r(t);yield*t}:function(n){let t=n;for(const r of e)t=r(t);return t}}function re(e,...n){return r(e)?te(...n)(e):te(e,...n)}t(te,"chainGen"),t(re,"pipe");const oe=re;e.Accessor=y,e.activity=m,e.chain=oe,e.concat=i,e.count=H,e.deviation=L,e.distribution=U,e.each=c,e.entries=s,e.extent=M,e.filter=a,e.first=p,e.generate=ee,e.group=b,e.histogram=q,e.isSource=r,e.join=O,e.map=P,e.max=A,e.mean=Q,e.median=W,e.min=x,e.normalize=B,e.pipe=re,e.quartile=Y,e.reduce=$,e.scalar=h,e.sensor=k,e.skip=D,e.sort=F,e.variance=J,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=index.umd.cjs.map
|
package/dist/index.umd.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.cjs","sources":["../src/activities/activity.ts","../src/activities/concat.ts","../src/activities/each.ts","../src/activities/entries.ts","../src/activities/filter.ts","../src/activities/first.ts","../src/activities/group.ts","../src/observers/observer.ts","../src/observers/max.ts","../src/observers/min.ts","../src/observers/extent.ts","../src/activities/histogram.ts","../src/activities/join.ts","../src/activities/map.ts","../src/activities/normalize.ts","../src/activities/skip.ts","../src/activities/sort.ts","../src/observers/count.ts","../src/observers/variance.ts","../src/observers/deviation.ts","../src/observers/mean.ts","../src/observers/distribution.ts","../src/observers/median.ts","../src/observers/quartile.ts","../src/observers/reduce.ts","../src/utils/generate.ts","../src/utils/pipe.ts"],"sourcesContent":["export type Source<T> = IterableIterator<T> | T[];\nexport type IterableActivity<T, U = T> = (source: Source<T>) => IterableIterator<U>;\nexport type ScalarActivity<T, U = T> = (source: Source<T>) => U;\nexport type Activity<T, U = T> = IterableActivity<T, U> | ScalarActivity<T, U>;\n\nexport function isSource<T>(source: Source<T> | any): source is Source<T> {\n return source && (typeof source[Symbol.iterator] === \"function\" || Array.isArray(source));\n}\n","import { Source, IterableActivity } from \"./activity.ts\";\n\nfunction concatGen<T = any>(concatSource: Source<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* source;\n yield* concatSource;\n };\n}\n\nexport function concat<T = any>(concatSource: Source<T>): IterableActivity<T, T>;\nexport function concat<T>(source: Source<T>, concatSource: Source<T>): IterableIterator<T>;\nexport function concat<T = any>(s_or_n: Source<T>, concatSource?: Source<T>): IterableActivity<T, T> | IterableIterator<T> {\n return concatSource !== undefined ? concatGen<T>(concatSource!)(s_or_n) : concatGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type EachCallback<T> = (value: T, index: number) => void;\n\nfunction eachGen<T = any>(callbackFn: EachCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n callbackFn(item, ++i);\n yield item;\n }\n };\n}\n\nexport function each<T = any>(callbackFn: EachCallback<T>): IterableActivity<T>;\nexport function each<T>(source: Source<T>, callbackFn: EachCallback<T>): IterableIterator<T>;\nexport function each<T>(s_or_cb: Source<T> | EachCallback<T>, callbackFn?: EachCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? eachGen(callbackFn!)(s_or_cb) : eachGen(s_or_cb);\n}\n","import { IterableActivity, Source } from \"./activity.ts\";\n\n// Array.entries\nfunction entriesGen<T = any>(): IterableActivity<T, [number, T]> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield [++i, item];\n }\n };\n}\n\nexport function entries<T = any>(): IterableActivity<T, [number, T]>;\nexport function entries<T>(source: Source<T>): IterableIterator<[number, T]>;\nexport function entries<T>(source?: Source<T>): IterableActivity<T, [number, T]> | IterableIterator<[number, T]> {\n return source ? entriesGen<T>()(source) : entriesGen<T>();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type FilterCallback<T> = (value: T, index: number) => boolean;\n\nfunction filterGen<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (callbackFn(item, ++i)) {\n yield item;\n }\n }\n };\n}\n\nexport function filter<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T>;\nexport function filter<T>(source: Source<T>, callbackFn: FilterCallback<T>): IterableIterator<T>;\nexport function filter<T>(s_or_cb: Source<T> | FilterCallback<T>, callbackFn?: FilterCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? filterGen(callbackFn!)(s_or_cb) : filterGen(s_or_cb);\n}\n","import { IterableActivity, isSource, Source } from \"./activity.ts\";\n\nfunction firstGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = 0;\n for (const item of source) {\n yield item;\n if (++i >= n) {\n break;\n }\n }\n };\n}\n\nexport function first<T = any>(n: number): IterableActivity<T, T>;\nexport function first<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function first<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n if (!isSource(s_or_n)) return firstGen<T>(s_or_n);\n return firstGen<T>(n!)(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type GroupFn<T> = (row: T, index: number) => number | string;\nexport type GroupRow<T> = { key: string, value: T[] };\n\nfunction groupGen<T = any>(groupFn: GroupFn<T>): IterableActivity<T, GroupRow<T>> {\n return function* (source: Source<T>) {\n let i = -1;\n const group: { [key: string]: T[] } = {};\n for (const row of source) {\n const key = groupFn(row, ++i);\n if (!group[key]) {\n group[key] = [];\n }\n group[key].push(row);\n }\n for (const key in group) {\n yield { key, value: group[key] };\n }\n };\n}\n\nexport function group<T>(groupByFn: GroupFn<T>): IterableActivity<T, GroupRow<T>>;\nexport function group<T>(source: Source<T>, groupByFn: GroupFn<T>): IterableIterator<GroupRow<T>>;\nexport function group<T>(s_or_gbf: Source<T> | GroupFn<T>, groupByFn?: GroupFn<T>): IterableActivity<T, GroupRow<T>> | IterableIterator<GroupRow<T>> {\n return isSource(s_or_gbf) ? groupGen<T>(groupByFn!)(s_or_gbf) : groupGen<T>(s_or_gbf);\n}\n","import { Source } from \"../activities/activity.ts\";\nimport { each } from \"../activities/each.ts\";\n\nexport type AccessorT<T, U> = (row: T, currentIndex: number) => U;\n\nexport interface ObserverFactory<T, U> {\n (): Observer<T, U>;\n}\n\nexport interface Observer<T, U> {\n observe(r: T, idx: number): void;\n peek(): U;\n}\n\nexport function Accessor<T = any, U = any, V = any>(fof: ObserverFactory<V, U>, accesor: AccessorT<T, V>): Observer<T, U> {\n const s = fof();\n\n return {\n observe: (_: T, i: number) => {\n s.observe(accesor(_, i), i);\n },\n peek: s.peek\n };\n}\n\n// This is an pass through activity so a FlowObserver can be inserted into a pipeline ---\nexport function sensor<T, U = any>(s: Observer<T, U>) {\n return each((r, i) => s.observe(r, i));\n}\n\n// This converts a FlowObserver to an Activity ---\nexport function activity<T, U>(s: Observer<T, U>) {\n return function* (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n yield s.peek();\n };\n}\n\n// This converts a FlowObserver to an ScalarActivity ---\nexport function scalar<T = any, U = any>(s: Observer<T, U>) {\n return function (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n return s.peek();\n };\n}\n\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _max(): Observer<number, number> {\n let max: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n max = value;\n } else if (max < value) {\n max = value;\n }\n },\n peek: () => max\n };\n}\n\nexport type MaxAccessor<T> = AccessorT<T, number>;\n\nexport function max(): Observer<number, number>;\nexport function max<T = any>(callbackFn: MaxAccessor<T>): Observer<T, number>;\nexport function max<T = any>(callbackFn?: MaxAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_max, callbackFn) : _max();\n}\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _min(): Observer<number, number> {\n let min: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n min = value;\n } else if (min > value) {\n min = value;\n }\n },\n peek: () => min\n };\n}\n\nexport type MinAccessor<T> = AccessorT<T, number>;\n\nexport function min(): Observer<number, number>;\nexport function min<T = any>(callbackFn: MinAccessor<T>): Observer<T, number>;\nexport function min<T = any>(callbackFn?: MinAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_min, callbackFn) : _min();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\nimport { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\n\nfunction _extent(): Observer<number, [number, number]> {\n const minFO = min();\n const maxFO = max();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n },\n peek: () => [minFO.peek(), maxFO.peek()]\n };\n}\n\nexport type ExtentAccessor<T> = AccessorT<T, number>;\n\nexport function extent(): Observer<number, [number, number]>;\nexport function extent<T = any>(callbackFn: ExtentAccessor<T>): Observer<T, [number, number]>;\nexport function extent<T = any>(callbackFn?: ExtentAccessor<T>): Observer<number, [number, number]> | Observer<T, [number, number]> {\n return callbackFn ? Accessor(_extent, callbackFn) : _extent();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\n\nexport type HistogramFn<T> = (row: T) => number;\nexport type HistogramRow<T> = { from: number, to: number, value: T[] };\nexport type OptionA = { buckets: number };\nexport type OptionB = { min: number, range: number };\nexport type Options = OptionA | OptionB;\n\nfunction isOptionA(_: Options): _ is OptionA {\n return (_ as OptionA).buckets !== undefined;\n}\n\nfunction histogramGen<T = any>(callbackFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>> {\n return function* (_source: Source<T>) {\n let min: number;\n let bucketSize: number;\n\n let source;\n if (isOptionA(options)) {\n source = Array.isArray(_source) ? _source : [..._source];\n const minMax = scalar(extent(callbackFn))(source);\n if (minMax === undefined) {\n return undefined;\n }\n min = minMax[0];\n const max = minMax[1];\n const buckets = options.buckets;\n bucketSize = (max - min) / buckets;\n } else {\n source = _source;\n min = options.min;\n bucketSize = options.range;\n }\n\n const histogram: { [key: number]: T[] } = {};\n\n let maxBucketID = 0;\n for (const row of source) {\n const value = callbackFn(row);\n const bucketID = Math.floor((value - min) / bucketSize);\n if (maxBucketID < bucketID) {\n maxBucketID = bucketID;\n }\n if (histogram[bucketID] === undefined) {\n histogram[bucketID] = [];\n }\n histogram[bucketID].push(row);\n }\n\n const lastBucket = histogram[maxBucketID];\n const from = min + maxBucketID * bucketSize;\n\n for (let i = 0; i <= maxBucketID; ++i) {\n // If all items in the last bucket match the \"to\" of the previous bucket, put them in there...\n if (i === maxBucketID - 1 && lastBucket.every(row => from === callbackFn(row))) {\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: [...(histogram[i] || []), ...lastBucket]\n };\n break;\n }\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: histogram[i] || []\n };\n }\n };\n}\n\nexport function histogram<T>(histogramByFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>>;\nexport function histogram<T>(source: Source<T>, histogramByFn: HistogramFn<T>, options: Options): IterableIterator<HistogramRow<T>>;\nexport function histogram<T>(s_or_hf: Source<T> | HistogramFn<T>, hf_or_b: HistogramFn<T> | Options, options?: Options): IterableActivity<T, HistogramRow<T>> | IterableIterator<HistogramRow<T>> {\n return isSource(s_or_hf) ? histogramGen<T>(hf_or_b as HistogramFn<T>, options!)(s_or_hf) : histogramGen<T>(s_or_hf as HistogramFn<T>, hf_or_b as Options);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type JoinCallback<T, U, V> = (rowT: T, rowU: U, index: number) => V;\n\nfunction joinGen<T = any, U = any, V = any>(_sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V> {\n const sourceB = Array.isArray(_sourceU) ? _sourceU[Symbol.iterator]() : _sourceU;\n return function* (sourceT: Source<T>) {\n let i = -1;\n for (const item of sourceT) {\n yield callbackFn(item, sourceB.next().value, ++i);\n }\n };\n}\n\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V>;\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableIterator<V>;\nexport function join<T, U, V>(sT_or_sU: Source<T> | Source<U>, sU_or_cb: Source<U> | JoinCallback<T, U, V>, callbackFn?: JoinCallback<T, U, V>): IterableActivity<T, V> | IterableIterator<V> {\n return isSource(sU_or_cb) ? joinGen(sU_or_cb, callbackFn!)(sT_or_sU as Source<T>) : joinGen(sT_or_sU as Source<U>, sU_or_cb);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type MapCallback<T, U> = (row: T, index: number) => U;\n\nfunction mapGen<T = any, U = any>(callbackFn: MapCallback<T, U>): IterableActivity<T, U> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield callbackFn(item, ++i);\n }\n };\n}\n\nexport function map<T, U>(callbackFn: MapCallback<T, U>): IterableActivity<T, U>;\nexport function map<T, U>(source: Source<T>, callbackFn: MapCallback<T, U>): IterableIterator<U>;\nexport function map<T, U>(s_or_cb: Source<T> | MapCallback<T, U>, callbackFn?: MapCallback<T, U>): IterableActivity<T, U> | IterableIterator<U> {\n return isSource(s_or_cb) ? mapGen(callbackFn!)(s_or_cb) : mapGen(s_or_cb);\n}\n","import { Source, IterableActivity, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\nimport { map } from \"./map.ts\";\n\nfunction normalizeGen(): IterableActivity<number> {\n const calcExtent = scalar(extent());\n return function* (_source: Source<number>) {\n const source = Array.isArray(_source) ? _source : [..._source];\n const range = calcExtent(source);\n const divisor = (range[1] - range[0]) || 1;\n const normalizeMap = map((row: number) => (row - range[0]) / divisor);\n return yield* normalizeMap(source);\n };\n}\n\nexport function normalize(): IterableActivity<number>;\nexport function normalize(source: Source<number>): IterableIterator<number>;\nexport function normalize(s_or_undef?: Source<number>): IterableActivity<number> | IterableIterator<number> {\n return isSource(s_or_undef) ? normalizeGen()(s_or_undef) : normalizeGen();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nfunction skipGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (++i >= n) {\n yield item;\n }\n }\n };\n}\n\nexport function skip<T = any>(n: number): IterableActivity<T, T>;\nexport function skip<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function skip<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n return isSource(s_or_n) ? skipGen<T>(n!)(s_or_n) : skipGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type SortCallback<T> = (a: T, b: T) => number;\n\nfunction sortGen<T = any>(compareFn?: SortCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* (Array.isArray(source) ? source : [...source]).sort(compareFn);\n };\n}\n\nexport function sort<T = any>(callbackFn: SortCallback<T>): IterableActivity<T>;\nexport function sort<T = any>(source: Source<T>, callbackFn: SortCallback<T>): IterableIterator<T>;\nexport function sort<T = any>(s_or_cb: Source<T> | SortCallback<T>, callbackFn?: SortCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? sortGen(callbackFn!)(s_or_cb) : sortGen(s_or_cb);\n}\n\n","import { Observer } from \"./observer.ts\";\n\nexport function count<T = any>(): Observer<T, number> {\n let count: number;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n count = 0;\n }\n ++count;\n },\n peek: () => count\n };\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _variance(): Observer<number, number | undefined> {\n let count: number;\n let mean: number;\n let sum: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n count = 0;\n mean = 0;\n sum = 0;\n }\n const delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n },\n peek: () => count > 1 ? sum / (count - 1) : undefined\n };\n}\n\nexport type VarianceAccessor<T> = AccessorT<T, number>;\n\nexport function variance(): Observer<number, number | undefined>;\nexport function variance<T = any>(callbackFn: VarianceAccessor<T>): Observer<T, number | undefined>;\nexport function variance<T = any>(callbackFn?: VarianceAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_variance, callbackFn) : _variance();\n}\n","import { variance } from \"./variance.ts\";\nimport { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _deviation(): Observer<number, number | undefined> {\n const v = variance();\n\n return {\n observe: (value: number, idx: number) => {\n v.observe(value, idx);\n },\n peek: () => {\n const variance = v.peek();\n return variance !== undefined ? Math.sqrt(variance) : variance;\n }\n };\n}\n\nexport type DeviationAccessor<T> = AccessorT<T, number>;\n\nexport function deviation(): Observer<number, number | undefined>;\nexport function deviation<T = any>(callbackFn: DeviationAccessor<T>): Observer<T, number | undefined>;\nexport function deviation<T = any>(callbackFn?: DeviationAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_deviation, callbackFn) : _deviation();\n}\n","import { Observer, Accessor } from \"./observer.ts\";\n\nfunction _mean(): Observer<number, number> {\n let total: number;\n let count: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n total = value;\n } else {\n total += value;\n }\n count = idx;\n },\n peek: () => total / (count + 1)\n };\n}\n\nexport type MeanAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function mean(): Observer<number, number>;\nexport function mean<T = any>(callbackFn: MeanAccessor<T>): Observer<T, number>;\nexport function mean<T = any>(callbackFn?: MeanAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_mean, callbackFn) : _mean();\n}\n","import { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\nimport { mean } from \"./mean.ts\";\nimport { variance } from \"./variance.ts\";\nimport { Observer, Accessor } from \"./observer.ts\";\n\nexport type DistributionCallback<T> = (row: T, currentIndex: number) => number;\n\nexport type DistributionT = {\n min: number,\n mean: number,\n max: number,\n deviation: number | undefined,\n variance: number | undefined\n} | undefined;\n\nfunction _distribution(): Observer<number, DistributionT> {\n const minFO = min();\n const maxFO = max();\n const meanFO = mean();\n const varianceFO = variance();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n meanFO.observe(value, idx);\n varianceFO.observe(value, idx);\n },\n peek: () => {\n const minResult = minFO.peek();\n if (minResult === undefined) return undefined;\n const varianceResult = varianceFO.peek();\n return {\n min: minResult,\n max: maxFO.peek(),\n mean: meanFO.peek(),\n variance: varianceResult,\n deviation: varianceResult !== undefined ? Math.sqrt(varianceResult) : undefined\n };\n }\n };\n}\n\nexport type DistributionAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function distribution(): Observer<number, DistributionT>;\nexport function distribution<T = any>(callbackFn: DistributionAccessor<T>): Observer<T, DistributionT>;\nexport function distribution<T = any>(callbackFn?: DistributionAccessor<T>): Observer<number, DistributionT> | Observer<T, DistributionT> {\n return callbackFn ? Accessor(_distribution, callbackFn) : _distribution();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _median(): Observer<number, number> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n if (sorted.length % 2 === 0) {\n return (sorted[mid - 1] + sorted[mid]) / 2;\n } else {\n return sorted[Math.floor(mid)];\n }\n }\n };\n}\n\nexport type MedianAccessor<T> = AccessorT<T, number>;\n\nexport function median(): Observer<number, number>;\nexport function median<T = any>(callbackFn: MedianAccessor<T>): Observer<T, number>;\nexport function median<T = any>(callbackFn?: MedianAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_median, callbackFn) : _median();\n}","import { median } from \"./median.ts\";\nimport { AccessorT, Observer, Accessor, scalar } from \"./observer.ts\";\n\nexport type QuartileAccessor<T> = AccessorT<T, number>;\n\nexport type QuartileT = [number, number, number, number, number] | undefined;\n\nfunction _quartile(): Observer<number, QuartileT> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n let medianVal: number;\n let lower: number[];\n let upper: number[];\n if (sorted.length < 2) {\n return undefined;\n } else if (sorted.length % 2 === 0) {\n medianVal = (sorted[mid - 1] + sorted[mid]) / 2;\n lower = sorted.slice(0, mid);\n upper = sorted.slice(mid);\n } else {\n medianVal = sorted[Math.floor(mid)];\n lower = sorted.slice(0, Math.floor(mid));\n upper = sorted.slice(Math.ceil(mid));\n }\n return [sorted[0], scalar(median())(lower)!, medianVal, scalar(median())(upper)!, sorted[sorted.length - 1]];\n }\n };\n}\n\nexport function quartile(): Observer<number, QuartileT>;\nexport function quartile<T = any>(callbackFn: QuartileAccessor<T>): Observer<T, QuartileT>;\nexport function quartile<T = any>(callbackFn?: QuartileAccessor<T>): Observer<number, QuartileT> | Observer<T, QuartileT> {\n return callbackFn ? Accessor(_quartile, callbackFn) : _quartile();\n}","import { Observer } from \"./observer.ts\";\n\nexport type ReduceCallback<T, U> = (previousValue: U, currentValue: T, currentIndex: number) => U;\n\nfunction _reduce<T, U>(callback: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n let reduced: U;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n reduced = initialValue === undefined ? (value as unknown as U) : callback(initialValue, value, idx);\n } else {\n reduced = callback(reduced, value, idx);\n }\n },\n peek: () => reduced\n };\n}\n\nexport function reduce<T = any, U = any>(callbackFn: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n return _reduce(callbackFn, initialValue);\n}\n","export function* generate<U>(generatorFn: () => U, maxLen?: number): IterableIterator<U> {\n let i = -1;\n while (maxLen === undefined || ++i < maxLen) {\n yield generatorFn();\n }\n}\n","import { IterableActivity, Source, isSource, ScalarActivity } from \"../activities/activity.ts\";\n\nconst GeneratorFunction = (function* () { }).constructor;\n\nfunction chainGen<T, U>(...items: (IterableActivity<T, U> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> {\n if (items[items.length - 1] instanceof GeneratorFunction) {\n return function* (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n yield* tail;\n };\n } else {\n return function (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n return tail;\n };\n }\n}\n\n// TODO: Switch to TS Variadic Types in 4.0\nexport function pipe<T, U>(head: IterableActivity<T, U>): IterableActivity<T, U>;\nexport function pipe<T, U>(head: ScalarActivity<T, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>): IterableIterator<U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>, head: IterableActivity<T, U>): IterableIterator<U>;\nexport function pipe<T, U>(source: Source<T>, head: ScalarActivity<T, U>): U;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I2, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I2, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: IterableActivity<I9, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: ScalarActivity<I9, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): U;\nexport function pipe<T, U = any>(s_or_ia: Source<T> | IterableActivity<T, U>, ...items: (IterableActivity<unknown, unknown> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> | ScalarActivity<T, U> | IterableIterator<U> {\n return isSource<T>(s_or_ia) ? chainGen<T, U>(...items)(s_or_ia) : chainGen<T, U>(s_or_ia as IterableActivity<T, U>, ...items);\n}\n\n// Maintain backward compatibility\nexport const chain = pipe;\n"],"names":["group","max","min","histogram","count","mean","variance","activity"],"mappings":"+RAKO,SAAS,SAAY,OAA8C,CACtE,OAAO,SAAW,OAAO,OAAO,OAAO,QAAQ,GAAM,YAAc,MAAM,QAAQ,MAAM,EAC3F,CCLA,SAAS,UAAmB,aAA8C,CACtE,OAAO,UAAW,OAAmB,CACjC,MAAO,OACP,MAAO,YAAA,CAEf,CAIO,SAAS,OAAgB,OAAmB,aAAwE,CACvH,OAAO,eAAiB,OAAY,UAAa,YAAa,EAAE,MAAM,EAAI,UAAa,MAAM,CACjG,CCTA,SAAS,QAAiB,WAAkD,CACxE,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,GACR,UAAW,QAAQ,OACf,WAAW,KAAM,EAAE,CAAC,EACpB,MAAM,IACV,CAER,CAIO,SAAS,KAAQ,QAAsC,WAAyE,CACnI,OAAO,SAAS,OAAO,EAAI,QAAQ,UAAW,EAAE,OAAO,EAAI,QAAQ,OAAO,CAC9E,CCfA,SAAS,YAAwD,CAC7D,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,GACR,UAAW,QAAQ,OACf,KAAM,CAAC,EAAE,EAAG,IAAI,CACpB,CAER,CAIO,SAAS,QAAW,OAAsF,CAC7G,OAAO,OAAS,WAAA,EAAgB,MAAM,EAAI,WAAA,CAC9C,CCZA,SAAS,UAAmB,WAAoD,CAC5E,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,GACR,UAAW,QAAQ,OACX,WAAW,KAAM,EAAE,CAAC,IACpB,MAAM,KAEd,CAER,CAIO,SAAS,OAAU,QAAwC,WAA2E,CACzI,OAAO,SAAS,OAAO,EAAI,UAAU,UAAW,EAAE,OAAO,EAAI,UAAU,OAAO,CAClF,CCjBA,SAAS,SAAkB,EAAmC,CAC1D,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,EACR,UAAW,QAAQ,OAEf,GADA,MAAM,KACF,EAAE,GAAK,EACP,KAER,CAER,CAIO,SAAS,MAAe,OAA4B,EAA0D,CACjH,OAAK,SAAS,MAAM,EACb,SAAY,CAAE,EAAE,MAAM,EADC,SAAY,MAAM,CAEpD,CCdA,SAAS,SAAkB,QAAuD,CAC9E,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,GACR,MAAMA,OAAgC,CAAA,EACtC,UAAW,OAAO,OAAQ,CACtB,MAAM,IAAM,QAAQ,IAAK,EAAE,CAAC,EACvBA,OAAM,GAAG,IACVA,OAAM,GAAG,EAAI,CAAA,GAEjBA,OAAM,GAAG,EAAE,KAAK,GAAG,CAAA,CAEvB,UAAW,OAAOA,OACd,KAAM,CAAE,IAAK,MAAOA,OAAM,GAAG,CAAA,CACjC,CAER,CAIO,SAAS,MAAS,SAAkC,UAA0F,CACjJ,OAAO,SAAS,QAAQ,EAAI,SAAY,SAAU,EAAE,QAAQ,EAAI,SAAY,QAAQ,CACxF,CCZO,SAAS,SAAoC,IAA4B,QAA0C,CACtH,MAAM,EAAI,IAAA,EAEV,MAAO,CACH,QAAS,CAAC,EAAM,IAAc,CAC1B,EAAE,QAAQ,QAAQ,EAAG,CAAC,EAAG,CAAC,CAAA,EAE9B,KAAM,EAAE,IAAA,CAEhB,CAGO,SAAS,OAAmB,EAAmB,CAClD,OAAO,KAAK,CAAC,EAAG,IAAM,EAAE,QAAQ,EAAG,CAAC,CAAC,CACzC,CAGO,SAAS,SAAe,EAAmB,CAC9C,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,GACR,UAAW,OAAO,OACd,EAAE,QAAQ,IAAK,EAAE,CAAC,EAEtB,MAAM,EAAE,KAAA,CAAK,CAErB,CAGO,SAAS,OAAyB,EAAmB,CACxD,OAAO,SAAU,OAAmB,CAChC,IAAI,EAAI,GACR,UAAW,OAAO,OACd,EAAE,QAAQ,IAAK,EAAE,CAAC,EAEtB,OAAO,EAAE,KAAA,CAAK,CAEtB,CChDA,SAAS,MAAiC,CACtC,IAAIC,KAEJ,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,EACjC,MAAQ,GAEDA,KAAM,SACbA,KAAM,MACV,EAEJ,KAAM,IAAMA,IAAA,CAEpB,CAMO,SAAS,IAAa,WAA6E,CACtG,OAAO,WAAa,SAAS,KAAM,UAAU,EAAI,KAAA,CACrD,CCrBA,SAAS,MAAiC,CACtC,IAAIC,KAEJ,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,EACjC,MAAQ,GAEDA,KAAM,SACbA,KAAM,MACV,EAEJ,KAAM,IAAMA,IAAA,CAEpB,CAMO,SAAS,IAAa,WAA6E,CACtG,OAAO,WAAa,SAAS,KAAM,UAAU,EAAI,KAAA,CACrD,CCnBA,SAAS,SAA8C,CACnD,MAAM,MAAQ,IAAA,EACR,MAAQ,IAAA,EAEd,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,CACrC,MAAM,QAAQ,MAAO,GAAG,EACxB,MAAM,QAAQ,MAAO,GAAG,CAAA,EAE5B,KAAM,IAAM,CAAC,MAAM,OAAQ,MAAM,MAAM,CAAA,CAE/C,CAMO,SAAS,OAAgB,WAAoG,CAChI,OAAO,WAAa,SAAS,QAAS,UAAU,EAAI,QAAA,CACxD,CCbA,SAAS,UAAU,EAA0B,CACzC,OAAQ,EAAc,UAAY,MACtC,CAEA,SAAS,aAAsB,WAA4B,QAAwD,CAC/G,OAAO,UAAW,QAAoB,CAClC,IAAIA,KACA,WAEA,OACJ,GAAI,UAAU,OAAO,EAAG,CACpB,OAAS,MAAM,QAAQ,OAAO,EAAI,QAAU,CAAC,GAAG,OAAO,EACvD,MAAM,OAAS,OAAO,OAAO,UAAU,CAAC,EAAE,MAAM,EAChD,GAAI,SAAW,OACX,OAEJA,KAAM,OAAO,CAAC,EACd,MAAMD,KAAM,OAAO,CAAC,EACd,QAAU,QAAQ,QACxB,YAAcA,KAAMC,MAAO,OAAA,MAE3B,OAAS,QACTA,KAAM,QAAQ,IACd,WAAa,QAAQ,MAGzB,MAAMC,WAAoC,CAAA,EAE1C,IAAI,YAAc,EAClB,UAAW,OAAO,OAAQ,CACtB,MAAM,MAAQ,WAAW,GAAG,EACtB,SAAW,KAAK,OAAO,MAAQD,MAAO,UAAU,EAClD,YAAc,WACd,YAAc,UAEdC,WAAU,QAAQ,IAAM,SACxBA,WAAU,QAAQ,EAAI,CAAA,GAE1BA,WAAU,QAAQ,EAAE,KAAK,GAAG,CAAA,CAGhC,MAAM,WAAaA,WAAU,WAAW,EAClC,KAAOD,KAAM,YAAc,WAEjC,QAAS,EAAI,EAAG,GAAK,YAAa,EAAE,EAAG,CAEnC,GAAI,IAAM,YAAc,GAAK,WAAW,WAAa,OAAS,WAAW,GAAG,CAAC,EAAG,CAC5E,KAAM,CACF,KAAMA,KAAM,EAAI,WAChB,GAAIA,MAAO,EAAI,GAAK,WACpB,MAAO,CAAC,GAAIC,WAAU,CAAC,GAAK,CAAA,EAAK,GAAG,UAAU,CAAA,EAElD,KAAA,CAEJ,KAAM,CACF,KAAMD,KAAM,EAAI,WAChB,GAAIA,MAAO,EAAI,GAAK,WACpB,MAAOC,WAAU,CAAC,GAAK,CAAA,CAAC,CAC5B,CACJ,CAER,CAIO,SAAS,UAAa,QAAqC,QAAmC,QAA6F,CAC9L,OAAO,SAAS,OAAO,EAAI,aAAgB,QAA2B,OAAQ,EAAE,OAAO,EAAI,aAAgB,QAA2B,OAAkB,CAC5J,CCzEA,SAAS,QAAmC,SAAqB,WAA2D,CACxH,MAAM,QAAU,MAAM,QAAQ,QAAQ,EAAI,SAAS,OAAO,QAAQ,EAAA,EAAM,SACxE,OAAO,UAAW,QAAoB,CAClC,IAAI,EAAI,GACR,UAAW,QAAQ,QACf,MAAM,WAAW,KAAM,QAAQ,OAAO,MAAO,EAAE,CAAC,CACpD,CAER,CAIO,SAAS,KAAc,SAAiC,SAA6C,WAAkF,CAC1L,OAAO,SAAS,QAAQ,EAAI,QAAQ,SAAU,UAAW,EAAE,QAAqB,EAAI,QAAQ,SAAuB,QAAQ,CAC/H,CCdA,SAAS,OAAyB,WAAuD,CACrF,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,GACR,UAAW,QAAQ,OACf,MAAM,WAAW,KAAM,EAAE,CAAC,CAC9B,CAER,CAIO,SAAS,IAAU,QAAwC,WAA8E,CAC5I,OAAO,SAAS,OAAO,EAAI,OAAO,UAAW,EAAE,OAAO,EAAI,OAAO,OAAO,CAC5E,CCZA,SAAS,cAAyC,CAC9C,MAAM,WAAa,OAAO,QAAQ,EAClC,OAAO,UAAW,QAAyB,CACvC,MAAM,OAAS,MAAM,QAAQ,OAAO,EAAI,QAAU,CAAC,GAAG,OAAO,EACvD,MAAQ,WAAW,MAAM,EACzB,QAAW,MAAM,CAAC,EAAI,MAAM,CAAC,GAAM,EAEzC,OAAO,MADc,IAAK,MAAiB,IAAM,MAAM,CAAC,GAAK,OAAO,EACzC,MAAM,CAAA,CAEzC,CAIO,SAAS,UAAU,WAAkF,CACxG,OAAO,SAAS,UAAU,EAAI,eAAe,UAAU,EAAI,aAAA,CAC/D,CClBA,SAAS,QAAiB,EAAmC,CACzD,OAAO,UAAW,OAAmB,CACjC,IAAI,EAAI,GACR,UAAW,QAAQ,OACX,EAAE,GAAK,IACP,MAAM,KAEd,CAER,CAIO,SAAS,KAAc,OAA4B,EAA0D,CAChH,OAAO,SAAS,MAAM,EAAI,QAAW,CAAE,EAAE,MAAM,EAAI,QAAW,MAAM,CACxE,CCbA,SAAS,QAAiB,UAAkD,CACxE,OAAO,UAAW,OAAmB,CACjC,OAAQ,MAAM,QAAQ,MAAM,EAAI,OAAS,CAAC,GAAG,MAAM,GAAG,KAAK,SAAS,CAAA,CAE5E,CAIO,SAAS,KAAc,QAAsC,WAAyE,CACzI,OAAO,SAAS,OAAO,EAAI,QAAQ,UAAW,EAAE,OAAO,EAAI,QAAQ,OAAO,CAC9E,CCZO,SAAS,OAAsC,CAClD,IAAIC,OAEJ,MAAO,CACH,QAAS,CAAC,MAAU,MAAgB,CAC5B,MAAQ,IACRA,OAAQ,GAEZ,EAAEA,MAAA,EAEN,KAAM,IAAMA,MAAA,CAEpB,CCZA,SAAS,WAAkD,CACvD,IAAIA,OACAC,MACA,IAEJ,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,CACjC,MAAQ,IACRD,OAAQ,EACRC,MAAO,EACP,IAAM,GAEV,MAAM,MAAQ,MAAQA,MACtBA,OAAQ,MAAQ,EAAED,OAClB,KAAO,OAAS,MAAQC,MAAA,EAE5B,KAAM,IAAMD,OAAQ,EAAI,KAAOA,OAAQ,GAAK,MAAA,CAEpD,CAMO,SAAS,SAAkB,WAA0G,CACxI,OAAO,WAAa,SAAS,UAAW,UAAU,EAAI,UAAA,CAC1D,CCzBA,SAAS,YAAmD,CACxD,MAAM,EAAI,SAAA,EAEV,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,CACrC,EAAE,QAAQ,MAAO,GAAG,CAAA,EAExB,KAAM,IAAM,CACR,MAAME,UAAW,EAAE,KAAA,EACnB,OAAOA,YAAa,OAAY,KAAK,KAAKA,SAAQ,EAAIA,SAAA,CAC1D,CAER,CAMO,SAAS,UAAmB,WAA2G,CAC1I,OAAO,WAAa,SAAS,WAAY,UAAU,EAAI,WAAA,CAC3D,CCrBA,SAAS,OAAkC,CACvC,IAAI,MACAF,OAEJ,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,CACjC,MAAQ,EACR,MAAQ,MAER,OAAS,MAEbA,OAAQ,GAAA,EAEZ,KAAM,IAAM,OAASA,OAAQ,EAAA,CAErC,CAMO,SAAS,KAAc,WAA8E,CACxG,OAAO,WAAa,SAAS,MAAO,UAAU,EAAI,MAAA,CACtD,CCTA,SAAS,eAAiD,CACtD,MAAM,MAAQ,IAAA,EACR,MAAQ,IAAA,EACR,OAAS,KAAA,EACT,WAAa,SAAA,EAEnB,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,CACrC,MAAM,QAAQ,MAAO,GAAG,EACxB,MAAM,QAAQ,MAAO,GAAG,EACxB,OAAO,QAAQ,MAAO,GAAG,EACzB,WAAW,QAAQ,MAAO,GAAG,CAAA,EAEjC,KAAM,IAAM,CACR,MAAM,UAAY,MAAM,KAAA,EACxB,GAAI,YAAc,OAAW,OAC7B,MAAM,eAAiB,WAAW,KAAA,EAClC,MAAO,CACH,IAAK,UACL,IAAK,MAAM,KAAA,EACX,KAAM,OAAO,KAAA,EACb,SAAU,eACV,UAAW,iBAAmB,OAAY,KAAK,KAAK,cAAc,EAAI,MAAA,CAC1E,CACJ,CAER,CAMO,SAAS,aAAsB,WAAoG,CACtI,OAAO,WAAa,SAAS,cAAe,UAAU,EAAI,cAAA,CAC9D,CChDA,SAAS,SAAoC,CACzC,IAAI,OAEJ,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,CACjC,MAAQ,IACR,OAAS,CAAA,GAEb,OAAO,KAAK,KAAK,CAAA,EAErB,KAAM,IAAM,CACR,MAAM,OAAS,OAAO,KAAK,CAAC,EAAG,IAAM,EAAI,CAAC,EACpC,IAAM,OAAO,OAAS,EAC5B,OAAI,OAAO,OAAS,IAAM,GACd,OAAO,IAAM,CAAC,EAAI,OAAO,GAAG,GAAK,EAElC,OAAO,KAAK,MAAM,GAAG,CAAC,CACjC,CACJ,CAER,CAMO,SAAS,OAAgB,WAAgF,CAC5G,OAAO,WAAa,SAAS,QAAS,UAAU,EAAI,QAAA,CACxD,CCvBA,SAAS,WAAyC,CAC9C,IAAI,OAEJ,MAAO,CACH,QAAS,CAAC,MAAe,MAAgB,CACjC,MAAQ,IACR,OAAS,CAAA,GAEb,OAAO,KAAK,KAAK,CAAA,EAErB,KAAM,IAAM,CACR,MAAM,OAAS,OAAO,KAAK,CAAC,EAAG,IAAM,EAAI,CAAC,EACpC,IAAM,OAAO,OAAS,EAC5B,IAAI,UACA,MACA,MACJ,GAAI,SAAO,OAAS,GAEpB,OAAW,OAAO,OAAS,IAAM,GAC7B,WAAa,OAAO,IAAM,CAAC,EAAI,OAAO,GAAG,GAAK,EAC9C,MAAQ,OAAO,MAAM,EAAG,GAAG,EAC3B,MAAQ,OAAO,MAAM,GAAG,IAExB,UAAY,OAAO,KAAK,MAAM,GAAG,CAAC,EAClC,MAAQ,OAAO,MAAM,EAAG,KAAK,MAAM,GAAG,CAAC,EACvC,MAAQ,OAAO,MAAM,KAAK,KAAK,GAAG,CAAC,GAEhC,CAAC,OAAO,CAAC,EAAG,OAAO,OAAA,CAAQ,EAAE,KAAK,EAAI,UAAW,OAAO,OAAA,CAAQ,EAAE,KAAK,EAAI,OAAO,OAAO,OAAS,CAAC,CAAC,CAAA,CAC/G,CAER,CAIO,SAAS,SAAkB,WAAwF,CACtH,OAAO,WAAa,SAAS,UAAW,UAAU,EAAI,UAAA,CAC1D,CCvCA,SAAS,QAAc,SAAgC,aAAkC,CACrF,IAAI,QAEJ,MAAO,CACH,QAAS,CAAC,MAAU,MAAgB,CAC5B,MAAQ,EACR,QAAU,eAAiB,OAAa,MAAyB,SAAS,aAAc,MAAO,GAAG,EAElG,QAAU,SAAS,QAAS,MAAO,GAAG,CAC1C,EAEJ,KAAM,IAAM,OAAA,CAEpB,CAEO,SAAS,OAAyB,WAAkC,aAAkC,CACzG,OAAO,QAAQ,WAAY,YAAY,CAC3C,CCrBO,SAAU,SAAY,YAAsB,OAAsC,CACrF,IAAI,EAAI,GACR,KAAO,SAAW,QAAa,EAAE,EAAI,QACjC,MAAM,YAAA,CAEd,CCHA,MAAM,mBAAqB,WAAa,CAAE,GAAG,YAE7C,SAAS,YAAkB,MAA8F,CACrH,OAAI,MAAM,MAAM,OAAS,CAAC,YAAa,kBAC5B,UAAW,OAAQ,CAEtB,IAAI,KAA4B,OAChC,UAAWG,aAAY,MAEnB,KAAOA,UAAS,IAAI,EAExB,MAAO,IAAA,EAGJ,SAAU,OAAQ,CAErB,IAAI,KAA4B,OAChC,UAAWA,aAAY,MAEnB,KAAOA,UAAS,IAAI,EAExB,OAAO,IAAA,CAGnB,CA0CO,SAAS,KAAiB,WAAgD,MAAuJ,CACpO,OAAO,SAAY,OAAO,EAAI,SAAe,GAAG,KAAK,EAAE,OAAO,EAAI,SAAe,QAAmC,GAAG,KAAK,CAChI,CAGO,MAAM,MAAQ"}
|
|
1
|
+
{"version":3,"file":"index.umd.cjs","sources":["../src/activities/activity.ts","../src/activities/concat.ts","../src/activities/each.ts","../src/activities/entries.ts","../src/activities/filter.ts","../src/activities/first.ts","../src/activities/group.ts","../src/observers/observer.ts","../src/observers/max.ts","../src/observers/min.ts","../src/observers/extent.ts","../src/activities/histogram.ts","../src/activities/join.ts","../src/activities/map.ts","../src/activities/normalize.ts","../src/activities/skip.ts","../src/activities/sort.ts","../src/observers/count.ts","../src/observers/variance.ts","../src/observers/deviation.ts","../src/observers/mean.ts","../src/observers/distribution.ts","../src/observers/median.ts","../src/observers/quartile.ts","../src/observers/reduce.ts","../src/utils/generate.ts","../src/utils/pipe.ts"],"sourcesContent":["export type Source<T> = IterableIterator<T> | T[];\nexport type IterableActivity<T, U = T> = (source: Source<T>) => IterableIterator<U>;\nexport type ScalarActivity<T, U = T> = (source: Source<T>) => U;\nexport type Activity<T, U = T> = IterableActivity<T, U> | ScalarActivity<T, U>;\n\nexport function isSource<T>(source: Source<T> | any): source is Source<T> {\n return source && (typeof source[Symbol.iterator] === \"function\" || Array.isArray(source));\n}\n","import { Source, IterableActivity } from \"./activity.ts\";\n\nfunction concatGen<T = any>(concatSource: Source<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* source;\n yield* concatSource;\n };\n}\n\nexport function concat<T = any>(concatSource: Source<T>): IterableActivity<T, T>;\nexport function concat<T>(source: Source<T>, concatSource: Source<T>): IterableIterator<T>;\nexport function concat<T = any>(s_or_n: Source<T>, concatSource?: Source<T>): IterableActivity<T, T> | IterableIterator<T> {\n return concatSource !== undefined ? concatGen<T>(concatSource!)(s_or_n) : concatGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type EachCallback<T> = (value: T, index: number) => void;\n\nfunction eachGen<T = any>(callbackFn: EachCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n callbackFn(item, ++i);\n yield item;\n }\n };\n}\n\nexport function each<T = any>(callbackFn: EachCallback<T>): IterableActivity<T>;\nexport function each<T>(source: Source<T>, callbackFn: EachCallback<T>): IterableIterator<T>;\nexport function each<T>(s_or_cb: Source<T> | EachCallback<T>, callbackFn?: EachCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? eachGen(callbackFn!)(s_or_cb) : eachGen(s_or_cb);\n}\n","import { IterableActivity, Source } from \"./activity.ts\";\n\n// Array.entries\nfunction entriesGen<T = any>(): IterableActivity<T, [number, T]> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield [++i, item];\n }\n };\n}\n\nexport function entries<T = any>(): IterableActivity<T, [number, T]>;\nexport function entries<T>(source: Source<T>): IterableIterator<[number, T]>;\nexport function entries<T>(source?: Source<T>): IterableActivity<T, [number, T]> | IterableIterator<[number, T]> {\n return source ? entriesGen<T>()(source) : entriesGen<T>();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type FilterCallback<T> = (value: T, index: number) => boolean;\n\nfunction filterGen<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (callbackFn(item, ++i)) {\n yield item;\n }\n }\n };\n}\n\nexport function filter<T = any>(callbackFn: FilterCallback<T>): IterableActivity<T>;\nexport function filter<T>(source: Source<T>, callbackFn: FilterCallback<T>): IterableIterator<T>;\nexport function filter<T>(s_or_cb: Source<T> | FilterCallback<T>, callbackFn?: FilterCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? filterGen(callbackFn!)(s_or_cb) : filterGen(s_or_cb);\n}\n","import { IterableActivity, isSource, Source } from \"./activity.ts\";\n\nfunction firstGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = 0;\n for (const item of source) {\n yield item;\n if (++i >= n) {\n break;\n }\n }\n };\n}\n\nexport function first<T = any>(n: number): IterableActivity<T, T>;\nexport function first<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function first<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n if (!isSource(s_or_n)) return firstGen<T>(s_or_n);\n return firstGen<T>(n!)(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type GroupFn<T> = (row: T, index: number) => number | string;\nexport type GroupRow<T> = { key: string, value: T[] };\n\nfunction groupGen<T = any>(groupFn: GroupFn<T>): IterableActivity<T, GroupRow<T>> {\n return function* (source: Source<T>) {\n let i = -1;\n const group: { [key: string]: T[] } = {};\n for (const row of source) {\n const key = groupFn(row, ++i);\n if (!group[key]) {\n group[key] = [];\n }\n group[key].push(row);\n }\n for (const key in group) {\n yield { key, value: group[key] };\n }\n };\n}\n\nexport function group<T>(groupByFn: GroupFn<T>): IterableActivity<T, GroupRow<T>>;\nexport function group<T>(source: Source<T>, groupByFn: GroupFn<T>): IterableIterator<GroupRow<T>>;\nexport function group<T>(s_or_gbf: Source<T> | GroupFn<T>, groupByFn?: GroupFn<T>): IterableActivity<T, GroupRow<T>> | IterableIterator<GroupRow<T>> {\n return isSource(s_or_gbf) ? groupGen<T>(groupByFn!)(s_or_gbf) : groupGen<T>(s_or_gbf);\n}\n","import { Source } from \"../activities/activity.ts\";\nimport { each } from \"../activities/each.ts\";\n\nexport type AccessorT<T, U> = (row: T, currentIndex: number) => U;\n\nexport interface ObserverFactory<T, U> {\n (): Observer<T, U>;\n}\n\nexport interface Observer<T, U> {\n observe(r: T, idx: number): void;\n peek(): U;\n}\n\nexport function Accessor<T = any, U = any, V = any>(fof: ObserverFactory<V, U>, accesor: AccessorT<T, V>): Observer<T, U> {\n const s = fof();\n\n return {\n observe: (_: T, i: number) => {\n s.observe(accesor(_, i), i);\n },\n peek: s.peek\n };\n}\n\n// This is an pass through activity so a FlowObserver can be inserted into a pipeline ---\nexport function sensor<T, U = any>(s: Observer<T, U>) {\n return each((r, i) => s.observe(r, i));\n}\n\n// This converts a FlowObserver to an Activity ---\nexport function activity<T, U>(s: Observer<T, U>) {\n return function* (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n yield s.peek();\n };\n}\n\n// This converts a FlowObserver to an ScalarActivity ---\nexport function scalar<T = any, U = any>(s: Observer<T, U>) {\n return function (source: Source<T>) {\n let i = -1;\n for (const row of source) {\n s.observe(row, ++i);\n }\n return s.peek();\n };\n}\n\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _max(): Observer<number, number> {\n let max: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n max = value;\n } else if (max < value) {\n max = value;\n }\n },\n peek: () => max\n };\n}\n\nexport type MaxAccessor<T> = AccessorT<T, number>;\n\nexport function max(): Observer<number, number>;\nexport function max<T = any>(callbackFn: MaxAccessor<T>): Observer<T, number>;\nexport function max<T = any>(callbackFn?: MaxAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_max, callbackFn) : _max();\n}\n","import { Observer, Accessor, AccessorT } from \"./observer.ts\";\n\nfunction _min(): Observer<number, number> {\n let min: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n min = value;\n } else if (min > value) {\n min = value;\n }\n },\n peek: () => min\n };\n}\n\nexport type MinAccessor<T> = AccessorT<T, number>;\n\nexport function min(): Observer<number, number>;\nexport function min<T = any>(callbackFn: MinAccessor<T>): Observer<T, number>;\nexport function min<T = any>(callbackFn?: MinAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_min, callbackFn) : _min();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\nimport { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\n\nfunction _extent(): Observer<number, [number, number]> {\n const minFO = min();\n const maxFO = max();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n },\n peek: () => [minFO.peek(), maxFO.peek()]\n };\n}\n\nexport type ExtentAccessor<T> = AccessorT<T, number>;\n\nexport function extent(): Observer<number, [number, number]>;\nexport function extent<T = any>(callbackFn: ExtentAccessor<T>): Observer<T, [number, number]>;\nexport function extent<T = any>(callbackFn?: ExtentAccessor<T>): Observer<number, [number, number]> | Observer<T, [number, number]> {\n return callbackFn ? Accessor(_extent, callbackFn) : _extent();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\n\nexport type HistogramFn<T> = (row: T) => number;\nexport type HistogramRow<T> = { from: number, to: number, value: T[] };\nexport type OptionA = { buckets: number };\nexport type OptionB = { min: number, range: number };\nexport type Options = OptionA | OptionB;\n\nfunction isOptionA(_: Options): _ is OptionA {\n return (_ as OptionA).buckets !== undefined;\n}\n\nfunction histogramGen<T = any>(callbackFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>> {\n return function* (_source: Source<T>) {\n let min: number;\n let bucketSize: number;\n\n let source;\n if (isOptionA(options)) {\n source = Array.isArray(_source) ? _source : [..._source];\n const minMax = scalar(extent(callbackFn))(source);\n if (minMax === undefined) {\n return undefined;\n }\n min = minMax[0];\n const max = minMax[1];\n const buckets = options.buckets;\n bucketSize = (max - min) / buckets;\n } else {\n source = _source;\n min = options.min;\n bucketSize = options.range;\n }\n\n const histogram: { [key: number]: T[] } = {};\n\n let maxBucketID = 0;\n for (const row of source) {\n const value = callbackFn(row);\n const bucketID = Math.floor((value - min) / bucketSize);\n if (maxBucketID < bucketID) {\n maxBucketID = bucketID;\n }\n if (histogram[bucketID] === undefined) {\n histogram[bucketID] = [];\n }\n histogram[bucketID].push(row);\n }\n\n const lastBucket = histogram[maxBucketID];\n const from = min + maxBucketID * bucketSize;\n\n for (let i = 0; i <= maxBucketID; ++i) {\n // If all items in the last bucket match the \"to\" of the previous bucket, put them in there...\n if (i === maxBucketID - 1 && lastBucket.every(row => from === callbackFn(row))) {\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: [...(histogram[i] || []), ...lastBucket]\n };\n break;\n }\n yield {\n from: min + i * bucketSize,\n to: min + (i + 1) * bucketSize,\n value: histogram[i] || []\n };\n }\n };\n}\n\nexport function histogram<T>(histogramByFn: HistogramFn<T>, options: Options): IterableActivity<T, HistogramRow<T>>;\nexport function histogram<T>(source: Source<T>, histogramByFn: HistogramFn<T>, options: Options): IterableIterator<HistogramRow<T>>;\nexport function histogram<T>(s_or_hf: Source<T> | HistogramFn<T>, hf_or_b: HistogramFn<T> | Options, options?: Options): IterableActivity<T, HistogramRow<T>> | IterableIterator<HistogramRow<T>> {\n return isSource(s_or_hf) ? histogramGen<T>(hf_or_b as HistogramFn<T>, options!)(s_or_hf) : histogramGen<T>(s_or_hf as HistogramFn<T>, hf_or_b as Options);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type JoinCallback<T, U, V> = (rowT: T, rowU: U, index: number) => V;\n\nfunction joinGen<T = any, U = any, V = any>(_sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V> {\n const sourceB = Array.isArray(_sourceU) ? _sourceU[Symbol.iterator]() : _sourceU;\n return function* (sourceT: Source<T>) {\n let i = -1;\n for (const item of sourceT) {\n yield callbackFn(item, sourceB.next().value, ++i);\n }\n };\n}\n\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableActivity<T, V>;\nexport function join<T, U, V>(sourceU: Source<U>, callbackFn: JoinCallback<T, U, V>): IterableIterator<V>;\nexport function join<T, U, V>(sT_or_sU: Source<T> | Source<U>, sU_or_cb: Source<U> | JoinCallback<T, U, V>, callbackFn?: JoinCallback<T, U, V>): IterableActivity<T, V> | IterableIterator<V> {\n return isSource(sU_or_cb) ? joinGen(sU_or_cb, callbackFn!)(sT_or_sU as Source<T>) : joinGen(sT_or_sU as Source<U>, sU_or_cb);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type MapCallback<T, U> = (row: T, index: number) => U;\n\nfunction mapGen<T = any, U = any>(callbackFn: MapCallback<T, U>): IterableActivity<T, U> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n yield callbackFn(item, ++i);\n }\n };\n}\n\nexport function map<T, U>(callbackFn: MapCallback<T, U>): IterableActivity<T, U>;\nexport function map<T, U>(source: Source<T>, callbackFn: MapCallback<T, U>): IterableIterator<U>;\nexport function map<T, U>(s_or_cb: Source<T> | MapCallback<T, U>, callbackFn?: MapCallback<T, U>): IterableActivity<T, U> | IterableIterator<U> {\n return isSource(s_or_cb) ? mapGen(callbackFn!)(s_or_cb) : mapGen(s_or_cb);\n}\n","import { Source, IterableActivity, isSource } from \"./activity.ts\";\nimport { extent } from \"../observers/extent.ts\";\nimport { scalar } from \"../observers/observer.ts\";\nimport { map } from \"./map.ts\";\n\nfunction normalizeGen(): IterableActivity<number> {\n const calcExtent = scalar(extent());\n return function* (_source: Source<number>) {\n const source = Array.isArray(_source) ? _source : [..._source];\n const range = calcExtent(source);\n const divisor = (range[1] - range[0]) || 1;\n const normalizeMap = map((row: number) => (row - range[0]) / divisor);\n return yield* normalizeMap(source);\n };\n}\n\nexport function normalize(): IterableActivity<number>;\nexport function normalize(source: Source<number>): IterableIterator<number>;\nexport function normalize(s_or_undef?: Source<number>): IterableActivity<number> | IterableIterator<number> {\n return isSource(s_or_undef) ? normalizeGen()(s_or_undef) : normalizeGen();\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nfunction skipGen<T = any>(n: number): IterableActivity<T, T> {\n return function* (source: Source<T>) {\n let i = -1;\n for (const item of source) {\n if (++i >= n) {\n yield item;\n }\n }\n };\n}\n\nexport function skip<T = any>(n: number): IterableActivity<T, T>;\nexport function skip<T>(source: Source<T>, n: number): IterableIterator<T>;\nexport function skip<T = any>(s_or_n: Source<T> | number, n?: number): IterableActivity<T, T> | IterableIterator<T> {\n return isSource(s_or_n) ? skipGen<T>(n!)(s_or_n) : skipGen<T>(s_or_n);\n}\n","import { IterableActivity, Source, isSource } from \"./activity.ts\";\n\nexport type SortCallback<T> = (a: T, b: T) => number;\n\nfunction sortGen<T = any>(compareFn?: SortCallback<T>): IterableActivity<T> {\n return function* (source: Source<T>) {\n yield* (Array.isArray(source) ? source : [...source]).sort(compareFn);\n };\n}\n\nexport function sort<T = any>(callbackFn: SortCallback<T>): IterableActivity<T>;\nexport function sort<T = any>(source: Source<T>, callbackFn: SortCallback<T>): IterableIterator<T>;\nexport function sort<T = any>(s_or_cb: Source<T> | SortCallback<T>, callbackFn?: SortCallback<T>): IterableActivity<T> | IterableIterator<T> {\n return isSource(s_or_cb) ? sortGen(callbackFn!)(s_or_cb) : sortGen(s_or_cb);\n}\n\n","import { Observer } from \"./observer.ts\";\n\nexport function count<T = any>(): Observer<T, number> {\n let count: number;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n count = 0;\n }\n ++count;\n },\n peek: () => count\n };\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _variance(): Observer<number, number | undefined> {\n let count: number;\n let mean: number;\n let sum: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n count = 0;\n mean = 0;\n sum = 0;\n }\n const delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n },\n peek: () => count > 1 ? sum / (count - 1) : undefined\n };\n}\n\nexport type VarianceAccessor<T> = AccessorT<T, number>;\n\nexport function variance(): Observer<number, number | undefined>;\nexport function variance<T = any>(callbackFn: VarianceAccessor<T>): Observer<T, number | undefined>;\nexport function variance<T = any>(callbackFn?: VarianceAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_variance, callbackFn) : _variance();\n}\n","import { variance } from \"./variance.ts\";\nimport { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _deviation(): Observer<number, number | undefined> {\n const v = variance();\n\n return {\n observe: (value: number, idx: number) => {\n v.observe(value, idx);\n },\n peek: () => {\n const variance = v.peek();\n return variance !== undefined ? Math.sqrt(variance) : variance;\n }\n };\n}\n\nexport type DeviationAccessor<T> = AccessorT<T, number>;\n\nexport function deviation(): Observer<number, number | undefined>;\nexport function deviation<T = any>(callbackFn: DeviationAccessor<T>): Observer<T, number | undefined>;\nexport function deviation<T = any>(callbackFn?: DeviationAccessor<T>): Observer<number, number | undefined> | Observer<T, number | undefined> {\n return callbackFn ? Accessor(_deviation, callbackFn) : _deviation();\n}\n","import { Observer, Accessor } from \"./observer.ts\";\n\nfunction _mean(): Observer<number, number> {\n let total: number;\n let count: number;\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n total = value;\n } else {\n total += value;\n }\n count = idx;\n },\n peek: () => total / (count + 1)\n };\n}\n\nexport type MeanAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function mean(): Observer<number, number>;\nexport function mean<T = any>(callbackFn: MeanAccessor<T>): Observer<T, number>;\nexport function mean<T = any>(callbackFn?: MeanAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_mean, callbackFn) : _mean();\n}\n","import { max } from \"./max.ts\";\nimport { min } from \"./min.ts\";\nimport { mean } from \"./mean.ts\";\nimport { variance } from \"./variance.ts\";\nimport { Observer, Accessor } from \"./observer.ts\";\n\nexport type DistributionCallback<T> = (row: T, currentIndex: number) => number;\n\nexport type DistributionT = {\n min: number,\n mean: number,\n max: number,\n deviation: number | undefined,\n variance: number | undefined\n} | undefined;\n\nfunction _distribution(): Observer<number, DistributionT> {\n const minFO = min();\n const maxFO = max();\n const meanFO = mean();\n const varianceFO = variance();\n\n return {\n observe: (value: number, idx: number) => {\n minFO.observe(value, idx);\n maxFO.observe(value, idx);\n meanFO.observe(value, idx);\n varianceFO.observe(value, idx);\n },\n peek: () => {\n const minResult = minFO.peek();\n if (minResult === undefined) return undefined;\n const varianceResult = varianceFO.peek();\n return {\n min: minResult,\n max: maxFO.peek(),\n mean: meanFO.peek(),\n variance: varianceResult,\n deviation: varianceResult !== undefined ? Math.sqrt(varianceResult) : undefined\n };\n }\n };\n}\n\nexport type DistributionAccessor<T> = (row: T, currentIndex: number) => number;\n\nexport function distribution(): Observer<number, DistributionT>;\nexport function distribution<T = any>(callbackFn: DistributionAccessor<T>): Observer<T, DistributionT>;\nexport function distribution<T = any>(callbackFn?: DistributionAccessor<T>): Observer<number, DistributionT> | Observer<T, DistributionT> {\n return callbackFn ? Accessor(_distribution, callbackFn) : _distribution();\n}\n","import { AccessorT, Observer, Accessor } from \"./observer.ts\";\n\nfunction _median(): Observer<number, number> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n if (sorted.length % 2 === 0) {\n return (sorted[mid - 1] + sorted[mid]) / 2;\n } else {\n return sorted[Math.floor(mid)];\n }\n }\n };\n}\n\nexport type MedianAccessor<T> = AccessorT<T, number>;\n\nexport function median(): Observer<number, number>;\nexport function median<T = any>(callbackFn: MedianAccessor<T>): Observer<T, number>;\nexport function median<T = any>(callbackFn?: MedianAccessor<T>): Observer<number, number> | Observer<T, number> {\n return callbackFn ? Accessor(_median, callbackFn) : _median();\n}","import { median } from \"./median.ts\";\nimport { AccessorT, Observer, Accessor, scalar } from \"./observer.ts\";\n\nexport type QuartileAccessor<T> = AccessorT<T, number>;\n\nexport type QuartileT = [number, number, number, number, number] | undefined;\n\nfunction _quartile(): Observer<number, QuartileT> {\n let values: number[];\n\n return {\n observe: (value: number, idx: number) => {\n if (idx === 0) {\n values = [];\n }\n values.push(value);\n },\n peek: () => {\n const sorted = values.sort((l, r) => l - r);\n const mid = sorted.length / 2;\n let medianVal: number;\n let lower: number[];\n let upper: number[];\n if (sorted.length < 2) {\n return undefined;\n } else if (sorted.length % 2 === 0) {\n medianVal = (sorted[mid - 1] + sorted[mid]) / 2;\n lower = sorted.slice(0, mid);\n upper = sorted.slice(mid);\n } else {\n medianVal = sorted[Math.floor(mid)];\n lower = sorted.slice(0, Math.floor(mid));\n upper = sorted.slice(Math.ceil(mid));\n }\n return [sorted[0], scalar(median())(lower)!, medianVal, scalar(median())(upper)!, sorted[sorted.length - 1]];\n }\n };\n}\n\nexport function quartile(): Observer<number, QuartileT>;\nexport function quartile<T = any>(callbackFn: QuartileAccessor<T>): Observer<T, QuartileT>;\nexport function quartile<T = any>(callbackFn?: QuartileAccessor<T>): Observer<number, QuartileT> | Observer<T, QuartileT> {\n return callbackFn ? Accessor(_quartile, callbackFn) : _quartile();\n}","import { Observer } from \"./observer.ts\";\n\nexport type ReduceCallback<T, U> = (previousValue: U, currentValue: T, currentIndex: number) => U;\n\nfunction _reduce<T, U>(callback: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n let reduced: U;\n\n return {\n observe: (value: T, idx: number) => {\n if (idx === 0) {\n reduced = initialValue === undefined ? (value as unknown as U) : callback(initialValue, value, idx);\n } else {\n reduced = callback(reduced, value, idx);\n }\n },\n peek: () => reduced\n };\n}\n\nexport function reduce<T = any, U = any>(callbackFn: ReduceCallback<T, U>, initialValue?: U): Observer<T, U> {\n return _reduce(callbackFn, initialValue);\n}\n","export function* generate<U>(generatorFn: () => U, maxLen?: number): IterableIterator<U> {\n let i = -1;\n while (maxLen === undefined || ++i < maxLen) {\n yield generatorFn();\n }\n}\n","import { IterableActivity, Source, isSource, ScalarActivity } from \"../activities/activity.ts\";\n\nconst GeneratorFunction = (function* () { }).constructor;\n\nfunction chainGen<T, U>(...items: (IterableActivity<T, U> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> {\n if (items[items.length - 1] instanceof GeneratorFunction) {\n return function* (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n yield* tail;\n };\n } else {\n return function (source) {\n // @ts-ignore\n let tail: IterableIterator<U> = source;\n for (const activity of items) {\n // @ts-ignore\n tail = activity(tail);\n }\n return tail;\n };\n }\n}\n\n// TODO: Switch to TS Variadic Types in 4.0\nexport function pipe<T, U>(head: IterableActivity<T, U>): IterableActivity<T, U>;\nexport function pipe<T, U>(head: ScalarActivity<T, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>): IterableIterator<U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, U>(head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): ScalarActivity<T, U>;\nexport function pipe<T, U>(source: Source<T>, head: IterableActivity<T, U>): IterableIterator<U>;\nexport function pipe<T, U>(source: Source<T>, head: ScalarActivity<T, U>): U;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I2, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I2, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, U>(source: Source<T>, head: IterableActivity<T, I1>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: IterableActivity<I1, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, tail: ScalarActivity<I1, U>): U;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: IterableActivity<I3, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, tail: ScalarActivity<I3, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: IterableActivity<I4, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, tail: ScalarActivity<I4, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: IterableActivity<I5, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, tail: ScalarActivity<I5, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: IterableActivity<I6, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, tail: ScalarActivity<I6, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: IterableActivity<I7, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, tail: ScalarActivity<I7, U>): U;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: IterableActivity<I9, U>): IterableActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, I9, U>(head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, i8: IterableActivity<I8, I9>, tail: ScalarActivity<I9, U>): ScalarActivity<T, U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: IterableActivity<I8, U>): IterableIterator<U>;\nexport function pipe<T, I1, I2, I3, I4, I5, I6, I7, I8, U>(source: Source<T>, head: IterableActivity<T, I1>, i1: IterableActivity<I1, I2>, i2: IterableActivity<I2, I3>, i3: IterableActivity<I3, I4>, i4: IterableActivity<I4, I5>, i5: IterableActivity<I5, I6>, i6: IterableActivity<I6, I7>, i7: IterableActivity<I7, I8>, tail: ScalarActivity<I8, U>): U;\nexport function pipe<T, U = any>(s_or_ia: Source<T> | IterableActivity<T, U>, ...items: (IterableActivity<unknown, unknown> | ScalarActivity<unknown, unknown>)[]): IterableActivity<T, U> | ScalarActivity<T, U> | IterableIterator<U> {\n return isSource<T>(s_or_ia) ? chainGen<T, U>(...items)(s_or_ia) : chainGen<T, U>(s_or_ia as IterableActivity<T, U>, ...items);\n}\n\n// Maintain backward compatibility\nexport const chain = pipe;\n"],"names":["isSource","source","Symbol","iterator","Array","isArray","concatGen","concatSource","concat","s_or_n","eachGen","callbackFn","i","item","each","s_or_cb","entriesGen","entries","filterGen","filter","firstGen","n","first","groupGen","groupFn","group","row","key","push","value","s_or_gbf","groupByFn","Accessor","fof","accesor","s","observe","__name","_","peek","sensor","r","activity","scalar","_max","max","idx","_min","min","_extent","minFO","maxFO","extent","isOptionA","buckets","histogramGen","options","_source","bucketSize","minMax","range","histogram","maxBucketID","bucketID","Math","floor","lastBucket","from","every","to","s_or_hf","hf_or_b","joinGen","_sourceU","sourceB","sourceT","next","join","sT_or_sU","sU_or_cb","mapGen","map","normalizeGen","calcExtent","divisor","normalizeMap","normalize","s_or_undef","skipGen","skip","sortGen","compareFn","sort","count","_variance","mean","sum","delta","variance","_deviation","v","sqrt","deviation","_mean","total","_distribution","meanFO","varianceFO","minResult","varianceResult","distribution","_median","values","sorted","l","mid","length","median","_quartile","medianVal","lower","upper","slice","ceil","quartile","_reduce","callback","initialValue","reduced","reduce","generate","generatorFn","maxLen","GeneratorFunction","constructor","chainGen","items","tail","pipe","s_or_ia","chain"],"mappings":"sUAKO,SAASA,EAAYC,GACxB,OAAOA,IAA8C,mBAA5BA,EAAOC,OAAOC,WAA4BC,MAAMC,QAAQJ,GACrF,CCLA,SAASK,EAAmBC,GACxB,OAAO,UAAWN,SACPA,QACAM,CACX,CACJ,CAIO,SAASC,EAAgBC,EAAmBF,GAC/C,YAAwB,IAAjBA,EAA6BD,EAAaC,EAAbD,CAA4BG,GAAUH,EAAaG,EAC3F,CCTA,SAASC,EAAiBC,GACtB,OAAO,UAAWV,GACd,IAAIW,GAAI,EACR,IAAA,MAAWC,KAAQZ,EACfU,EAAWE,IAAQD,SACbC,CAEd,CACJ,CAIO,SAASC,EAAQC,EAAsCJ,GAC1D,OAAOX,EAASe,GAAWL,EAAQC,EAARD,CAAqBK,GAAWL,EAAQK,EACvE,CCfA,SAASC,IACL,OAAO,UAAWf,GACd,IAAIW,GAAI,EACR,IAAA,MAAWC,KAAQZ,OACT,GAAGW,EAAGC,EAEpB,CACJ,CAIO,SAASI,EAAWhB,GACvB,OAAOA,EAXA,UAAWA,GACd,IAAIW,GAAI,EACR,IAAA,MAAWC,KAAQZ,OACT,GAAGW,EAAGC,EAEpB,CAMgBG,CAAgBf,GAXzB,UAAWA,GACd,IAAIW,GAAI,EACR,IAAA,MAAWC,KAAQZ,OACT,GAAGW,EAAGC,EAEpB,CAOJ,CCZA,SAASK,EAAmBP,GACxB,OAAO,UAAWV,GACd,IAAIW,GAAI,EACR,IAAA,MAAWC,KAAQZ,EACXU,EAAWE,IAAQD,WACbC,EAGlB,CACJ,CAIO,SAASM,EAAUJ,EAAwCJ,GAC9D,OAAOX,EAASe,GAAWG,EAAUP,EAAVO,CAAuBH,GAAWG,EAAUH,EAC3E,CCjBA,SAASK,EAAkBC,GACvB,OAAO,UAAWpB,GACd,IAAIW,EAAI,EACR,IAAA,MAAWC,KAAQZ,EAEf,SADMY,IACAD,GAAKS,EACP,KAGZ,CACJ,CAIO,SAASC,EAAeb,EAA4BY,GACvD,OAAKrB,EAASS,GACPW,EAAYC,EAAZD,CAAgBX,GADOW,EAAYX,EAE9C,CCdA,SAASc,EAAkBC,GACvB,OAAO,UAAWvB,GACd,IAAIW,GAAI,EACR,MAAMa,EAAgC,CAAA,EACtC,IAAA,MAAWC,KAAOzB,EAAQ,CACtB,MAAM0B,EAAMH,EAAQE,IAAOd,GACtBa,EAAME,KACPF,EAAME,GAAO,IAEjBF,EAAME,GAAKC,KAAKF,EACpB,CACA,IAAA,MAAWC,KAAOF,OACR,CAAEE,MAAKE,MAAOJ,EAAME,GAElC,CACJ,CAIO,SAASF,EAASK,EAAkCC,GACvD,OAAO/B,EAAS8B,GAAYP,EAAYQ,EAAZR,CAAwBO,GAAYP,EAAYO,EAChF,CCZO,SAASE,EAAoCC,EAA4BC,GAC5E,MAAMC,EAAIF,IAEV,MAAO,CACHG,QAASC,EAAA,CAACC,EAAM1B,KACZuB,EAAEC,QAAQF,EAAQI,EAAG1B,GAAIA,IADpB,WAGT2B,KAAMJ,EAAEI,KAEhB,CAGO,SAASC,EAAmBL,GAC/B,OAAOrB,EAAK,CAAC2B,EAAG7B,IAAMuB,EAAEC,QAAQK,EAAG7B,GACvC,CAGO,SAAS8B,EAAeP,GAC3B,OAAO,UAAWlC,GACd,IAAIW,GAAI,EACR,IAAA,MAAWc,KAAOzB,EACdkC,EAAEC,QAAQV,IAAOd,SAEfuB,EAAEI,MACZ,CACJ,CAGO,SAASI,EAAyBR,GACrC,OAAO,SAAUlC,GACb,IAAIW,GAAI,EACR,IAAA,MAAWc,KAAOzB,EACdkC,EAAEC,QAAQV,IAAOd,GAErB,OAAOuB,EAAEI,MACb,CACJ,CChDA,SAASK,IACL,IAAIC,EAEJ,MAAO,CACHT,QAASC,EAAA,CAACR,EAAeiB,MACT,IAARA,GAEOD,EAAMhB,KADbgB,EAAMhB,IAFL,WAOTU,WAAYM,EAAN,QAEd,CAMO,SAASA,EAAalC,GACzB,OAAOA,EAAaqB,EAASY,EAAMjC,GAAciC,GACrD,CCrBA,SAASG,IACL,IAAIC,EAEJ,MAAO,CACHZ,QAASC,EAAA,CAACR,EAAeiB,MACT,IAARA,GAEOE,EAAMnB,KADbmB,EAAMnB,IAFL,WAOTU,WAAYS,EAAN,QAEd,CAMO,SAASA,EAAarC,GACzB,OAAOA,EAAaqB,EAASe,EAAMpC,GAAcoC,GACrD,CCnBA,SAASE,IACL,MAAMC,EAAQF,IACRG,EAAQN,IAEd,MAAO,CACHT,QAASC,EAAA,CAACR,EAAeiB,KACrBI,EAAMd,QAAQP,EAAOiB,GACrBK,EAAMf,QAAQP,EAAOiB,IAFhB,WAITP,WAAY,CAACW,EAAMX,OAAQY,EAAMZ,QAA3B,QAEd,CAMO,SAASa,EAAgBzC,GAC5B,OAAOA,EAAaqB,EAASiB,EAAStC,GAAcsC,GACxD,CCbA,SAASI,EAAUf,GACf,YAAkC,IAA1BA,EAAcgB,OAC1B,CAEA,SAASC,EAAsB5C,EAA4B6C,GACvD,OAAO,UAAWC,GACd,IAAIT,EACAU,EAEAzD,EACJ,GAAIoD,EAAUG,GAAU,CACpBvD,EAASG,MAAMC,QAAQoD,GAAWA,EAAU,IAAIA,GAChD,MAAME,EAAShB,EAAOS,EAAOzC,GAAdgC,CAA2B1C,GAC1C,QAAe,IAAX0D,EACA,OAEJX,EAAMW,EAAO,GAGbD,GAFYC,EAAO,GAECX,GADJQ,EAAQF,OAE5B,MACIrD,EAASwD,EACTT,EAAMQ,EAAQR,IACdU,EAAaF,EAAQI,MAGzB,MAAMC,EAAoC,CAAA,EAE1C,IAAIC,EAAc,EAClB,IAAA,MAAWpC,KAAOzB,EAAQ,CACtB,MAAM4B,EAAQlB,EAAWe,GACnBqC,EAAWC,KAAKC,OAAOpC,EAAQmB,GAAOU,GACxCI,EAAcC,IACdD,EAAcC,QAEU,IAAxBF,EAAUE,KACVF,EAAUE,GAAY,IAE1BF,EAAUE,GAAUnC,KAAKF,EAC7B,CAEA,MAAMwC,EAAaL,EAAUC,GACvBK,EAAOnB,EAAMc,EAAcJ,EAEjC,IAAA,IAAS9C,EAAI,EAAGA,GAAKkD,IAAelD,EAAG,CAEnC,GAAIA,IAAMkD,EAAc,GAAKI,EAAWE,SAAaD,IAASxD,EAAWe,IAAO,MACtE,CACFyC,KAAMnB,EAAMpC,EAAI8C,EAChBW,GAAIrB,GAAOpC,EAAI,GAAK8C,EACpB7B,MAAO,IAAKgC,EAAUjD,IAAM,MAAQsD,IAExC,KACJ,MACM,CACFC,KAAMnB,EAAMpC,EAAI8C,EAChBW,GAAIrB,GAAOpC,EAAI,GAAK8C,EACpB7B,MAAOgC,EAAUjD,IAAM,GAE/B,CACJ,CACJ,CAIO,SAASiD,EAAaS,EAAqCC,EAAmCf,GACjG,OAAOxD,EAASsE,GAAWf,EAAgBgB,EAA2Bf,EAA3CD,CAAqDe,GAAWf,EAAgBe,EAA2BC,EAC1I,CCzEA,SAASC,EAAmCC,EAAqB9D,GAC7D,MAAM+D,EAAUtE,MAAMC,QAAQoE,GAAYA,EAASvE,OAAOC,YAAcsE,EACxE,OAAO,UAAWE,GACd,IAAI/D,GAAI,EACR,IAAA,MAAWC,KAAQ8D,QACThE,EAAWE,EAAM6D,EAAQE,OAAO/C,QAASjB,EAEvD,CACJ,CAIO,SAASiE,EAAcC,EAAiCC,EAA6CpE,GACxG,OAAOX,EAAS+E,GAAYP,EAAQO,EAAUpE,EAAlB6D,CAA+BM,GAAyBN,EAAQM,EAAuBC,EACvH,CCdA,SAASC,EAAyBrE,GAC9B,OAAO,UAAWV,GACd,IAAIW,GAAI,EACR,IAAA,MAAWC,KAAQZ,QACTU,EAAWE,IAAQD,EAEjC,CACJ,CAIO,SAASqE,EAAUlE,EAAwCJ,GAC9D,OAAOX,EAASe,GAAWiE,EAAOrE,EAAPqE,CAAoBjE,GAAWiE,EAAOjE,EACrE,CCZA,SAASmE,IACL,MAAMC,EAAaxC,EAAOS,KAC1B,OAAO,UAAWK,GACd,MAAMxD,EAASG,MAAMC,QAAQoD,GAAWA,EAAU,IAAIA,GAChDG,EAAQuB,EAAWlF,GACnBmF,EAAWxB,EAAM,GAAKA,EAAM,IAAO,EACnCyB,EAAeJ,EAAKvD,IAAiBA,EAAMkC,EAAM,IAAMwB,GAC7D,aAAcC,EAAapF,EAC/B,CACJ,CAIO,SAASqF,EAAUC,GACtB,OAAOvF,EAASuF,GAAcL,IAAeK,GAAcL,GAC/D,CClBA,SAASM,EAAiBnE,GACtB,OAAO,UAAWpB,GACd,IAAIW,GAAI,EACR,IAAA,MAAWC,KAAQZ,IACTW,GAAKS,UACDR,EAGlB,CACJ,CAIO,SAAS4E,EAAchF,EAA4BY,GACtD,OAAOrB,EAASS,GAAU+E,EAAWnE,EAAXmE,CAAe/E,GAAU+E,EAAW/E,EAClE,CCbA,SAASiF,EAAiBC,GACtB,OAAO,UAAW1F,UACNG,MAAMC,QAAQJ,GAAUA,EAAS,IAAIA,IAAS2F,KAAKD,EAC/D,CACJ,CAIO,SAASC,EAAc7E,EAAsCJ,GAChE,OAAOX,EAASe,GAAW2E,EAAQ/E,EAAR+E,CAAqB3E,GAAW2E,EAAQ3E,EACvE,CCZO,SAAS8E,IACZ,IAAIA,EAEJ,MAAO,CACHzD,QAASC,EAAA,CAACR,EAAUiB,KACJ,IAARA,IACA+C,EAAQ,KAEVA,GAJG,WAMTtD,WAAYsD,EAAN,QAEd,CCZA,SAASC,IACL,IAAID,EACAE,EACAC,EAEJ,MAAO,CACH5D,QAASC,EAAA,CAACR,EAAeiB,KACT,IAARA,IACA+C,EAAQ,EACRE,EAAO,EACPC,EAAM,GAEV,MAAMC,EAAQpE,EAAQkE,EACtBA,GAAQE,IAAUJ,EAClBG,GAAOC,GAASpE,EAAQkE,IARnB,WAUTxD,KAAMF,EAAA,IAAMwD,EAAQ,EAAIG,GAAOH,EAAQ,QAAK,EAAtC,QAEd,CAMO,SAASK,EAAkBvF,GAC9B,OAAOA,EAAaqB,EAAS8D,EAAWnF,GAAcmF,GAC1D,CCzBA,SAASK,IACL,MAAMC,EAAIF,IAEV,MAAO,CACH9D,QAASC,EAAA,CAACR,EAAeiB,KACrBsD,EAAEhE,QAAQP,EAAOiB,IADZ,WAGTP,KAAMF,EAAA,KACF,MAAM6D,EAAWE,EAAE7D,OACnB,YAAoB,IAAb2D,EAAyBlC,KAAKqC,KAAKH,GAAYA,GAFpD,QAKd,CAMO,SAASI,EAAmB3F,GAC/B,OAAOA,EAAaqB,EAASmE,EAAYxF,GAAcwF,GAC3D,CCrBA,SAASI,IACL,IAAIC,EACAX,EAEJ,MAAO,CACHzD,QAASC,EAAA,CAACR,EAAeiB,KACT,IAARA,EACA0D,EAAQ3E,EAER2E,GAAS3E,EAEbgE,EAAQ/C,GANH,WAQTP,KAAMF,EAAA,IAAMmE,GAASX,EAAQ,GAAvB,QAEd,CAMO,SAASE,EAAcpF,GAC1B,OAAOA,EAAaqB,EAASuE,EAAO5F,GAAc4F,GACtD,CCTA,SAASE,IACL,MAAMvD,EAAQF,IACRG,EAAQN,IACR6D,EAASX,IACTY,EAAaT,IAEnB,MAAO,CACH9D,QAASC,EAAA,CAACR,EAAeiB,KACrBI,EAAMd,QAAQP,EAAOiB,GACrBK,EAAMf,QAAQP,EAAOiB,GACrB4D,EAAOtE,QAAQP,EAAOiB,GACtB6D,EAAWvE,QAAQP,EAAOiB,IAJrB,WAMTP,KAAMF,EAAA,KACF,MAAMuE,EAAY1D,EAAMX,OACxB,QAAkB,IAAdqE,EAAyB,OAC7B,MAAMC,EAAiBF,EAAWpE,OAClC,MAAO,CACHS,IAAK4D,EACL/D,IAAKM,EAAMZ,OACXwD,KAAMW,EAAOnE,OACb2D,SAAUW,EACVP,eAA8B,IAAnBO,EAA+B7C,KAAKqC,KAAKQ,QAAkB,IATxE,QAad,CAMO,SAASC,EAAsBnG,GAClC,OAAOA,EAAaqB,EAASyE,EAAe9F,GAAc8F,GAC9D,CChDA,SAASM,IACL,IAAIC,EAEJ,MAAO,CACH5E,QAASC,EAAA,CAACR,EAAeiB,KACT,IAARA,IACAkE,EAAS,IAEbA,EAAOpF,KAAKC,IAJP,WAMTU,KAAMF,EAAA,KACF,MAAM4E,EAASD,EAAOpB,KAAK,CAACsB,EAAGzE,IAAMyE,EAAIzE,GACnC0E,EAAMF,EAAOG,OAAS,EAC5B,OAAIH,EAAOG,OAAS,GAAM,GACdH,EAAOE,EAAM,GAAKF,EAAOE,IAAQ,EAElCF,EAAOjD,KAAKC,MAAMkD,KAN3B,QAUd,CAMO,SAASE,EAAgB1G,GAC5B,OAAOA,EAAaqB,EAAS+E,EAASpG,GAAcoG,GACxD,CCvBA,SAASO,IACL,IAAIN,EAEJ,MAAO,CACH5E,QAASC,EAAA,CAACR,EAAeiB,KACT,IAARA,IACAkE,EAAS,IAEbA,EAAOpF,KAAKC,IAJP,WAMTU,KAAMF,EAAA,KACF,MAAM4E,EAASD,EAAOpB,KAAK,CAACsB,EAAGzE,IAAMyE,EAAIzE,GACnC0E,EAAMF,EAAOG,OAAS,EAC5B,IAAIG,EACAC,EACAC,EACJ,KAAIR,EAAOG,OAAS,GAWpB,OATWH,EAAOG,OAAS,GAAM,GAC7BG,GAAaN,EAAOE,EAAM,GAAKF,EAAOE,IAAQ,EAC9CK,EAAQP,EAAOS,MAAM,EAAGP,GACxBM,EAAQR,EAAOS,MAAMP,KAErBI,EAAYN,EAAOjD,KAAKC,MAAMkD,IAC9BK,EAAQP,EAAOS,MAAM,EAAG1D,KAAKC,MAAMkD,IACnCM,EAAQR,EAAOS,MAAM1D,KAAK2D,KAAKR,KAE5B,CAACF,EAAO,GAAItE,EAAO0E,IAAP1E,CAAiB6E,GAASD,EAAW5E,EAAO0E,IAAP1E,CAAiB8E,GAASR,EAAOA,EAAOG,OAAS,KAjBvG,QAoBd,CAIO,SAASQ,EAAkBjH,GAC9B,OAAOA,EAAaqB,EAASsF,EAAW3G,GAAc2G,GAC1D,CCvCA,SAASO,EAAcC,EAAgCC,GACnD,IAAIC,EAEJ,MAAO,CACH5F,QAASC,EAAA,CAACR,EAAUiB,KAEZkF,EADQ,IAARlF,OAC2B,IAAjBiF,EAA8BlG,EAAyBiG,EAASC,EAAclG,EAAOiB,GAErFgF,EAASE,EAASnG,EAAOiB,IAJlC,WAOTP,WAAYyF,EAAN,QAEd,CAEO,SAASC,EAAyBtH,EAAkCoH,GACvE,OAAOF,EAAQlH,EAAYoH,EAC/B,CCrBO,SAAUG,GAAYC,EAAsBC,GAC/C,IAAIxH,GAAI,EACR,UAAkB,IAAXwH,KAA0BxH,EAAIwH,SAC3BD,GAEd,CzBAgB9F,EAAArC,EAAA,YCHPqC,EAAA/B,EAAA,aASO+B,EAAA7B,EAAA,UCPP6B,EAAA3B,EAAA,WAYO2B,EAAAvB,EAAA,QCbPuB,EAAArB,EAAA,cAWOqB,EAAApB,EAAA,WCVPoB,EAAAnB,EAAA,aAaOmB,EAAAlB,EAAA,UCfPkB,EAAAjB,EAAA,YAcOiB,EAAAf,EAAA,SCXPe,EAAAd,EAAA,YAmBOc,EAAAZ,EAAA,SCVAY,EAAAL,EAAA,YAYAK,EAAAG,EAAA,UAKAH,EAAAK,EAAA,YAWAL,EAAAM,EAAA,UCxCPN,EAAAO,EAAA,QAmBOP,EAAAQ,EAAA,OCnBPR,EAAAU,EAAA,QAmBOV,EAAAW,EAAA,OCjBPX,EAAAY,EAAA,WAiBOZ,EAAAe,EAAA,UCXPf,EAAAgB,EAAA,aAIAhB,EAAAkB,EAAA,gBA6DOlB,EAAAwB,EAAA,aCvEPxB,EAAAmC,EAAA,WAYOnC,EAAAwC,EAAA,QCZPxC,EAAA2C,EAAA,UAWO3C,EAAA4C,EAAA,OCVP5C,EAAA6C,EAAA,gBAaO7C,EAAAiD,EAAA,aChBPjD,EAAAmD,EAAA,WAaOnD,EAAAoD,EAAA,QCXPpD,EAAAqD,EAAA,WAQOrD,EAAAuD,EAAA,QCVAvD,EAAAwD,EAAA,SCAPxD,EAAAyD,EAAA,aAwBOzD,EAAA6D,EAAA,YCvBP7D,EAAA8D,EAAA,cAkBO9D,EAAAiE,EAAA,aCnBPjE,EAAAkE,EAAA,SAqBOlE,EAAA0D,EAAA,QCPP1D,EAAAoE,EAAA,iBAgCOpE,EAAAyE,EAAA,gBC9CPzE,EAAA0E,EAAA,WA0BO1E,EAAAgF,EAAA,UCrBPhF,EAAAiF,EAAA,aAkCOjF,EAAAuF,EAAA,YCrCPvF,EAAAwF,EAAA,WAeOxF,EAAA4F,EAAA,UCnBC5F,EAAA6F,GAAA,YCEjB,MAAMG,eAAoC,EAAGC,YAE7C,SAASC,MAAkBC,GACvB,OAAIA,EAAMA,EAAMpB,OAAS,aAAciB,GAC5B,UAAWpI,GAEd,IAAIwI,EAA4BxI,EAChC,IAAA,MAAWyC,KAAY8F,EAEnBC,EAAO/F,EAAS+F,SAEbA,CACX,EAEO,SAAUxI,GAEb,IAAIwI,EAA4BxI,EAChC,IAAA,MAAWyC,KAAY8F,EAEnBC,EAAO/F,EAAS+F,GAEpB,OAAOA,CACX,CAER,CA0CO,SAASC,GAAiBC,KAAgDH,GAC7E,OAAOxI,EAAY2I,GAAWJ,MAAkBC,EAAlBD,CAAyBI,GAAWJ,GAAeI,KAAsCH,EAC3H,CAlESnG,EAAAkG,GAAA,YAgEOlG,EAAAqG,GAAA,QAKT,MAAME,GAAQF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hpcc-js/dataflow",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.0",
|
|
4
4
|
"description": "hpcc-js - Data Flow",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.umd.cjs",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"update-major": "npx --yes npm-check-updates -u"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@hpcc-js/esbuild-plugins": "^1.
|
|
41
|
+
"@hpcc-js/esbuild-plugins": "^1.5.0",
|
|
42
42
|
"@types/faker": "4.1.12",
|
|
43
|
-
"@types/jasmine": "5.1.
|
|
43
|
+
"@types/jasmine": "5.1.9",
|
|
44
44
|
"faker": "4.1.0"
|
|
45
45
|
},
|
|
46
46
|
"repository": {
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"url": "https://github.com/hpcc-systems/Visualization/issues"
|
|
55
55
|
},
|
|
56
56
|
"homepage": "https://github.com/hpcc-systems/Visualization/tree/trunk/packages/dataflow",
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "e0dd2c2201ba3d9bd92665026ef38e3220065a9c"
|
|
58
58
|
}
|