@hpcc-js/dataflow 9.4.2 → 9.5.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.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":";;AAKO,SAAS,SAAY,QAA8C;AACtE,SAAO,WAAW,OAAO,OAAO,OAAO,QAAQ,MAAM,cAAc,MAAM,QAAQ,MAAM;AAC3F;AAFgB;ACHhB,SAAS,UAAmB,cAA8C;AACtE,SAAO,WAAW,QAAmB;AACjC,WAAO;AACP,WAAO;AAAA,EACX;AACJ;AALS;AASF,SAAS,OAAgB,QAAmB,cAAwE;AACvH,SAAO,iBAAiB,SAAY,UAAa,YAAa,EAAE,MAAM,IAAI,UAAa,MAAM;AACjG;AAFgB;ACPhB,SAAS,QAAiB,YAAkD;AACxE,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,eAAW,QAAQ,QAAQ;AACvB,iBAAW,MAAM,EAAE,CAAC;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;AARS;AAYF,SAAS,KAAQ,SAAsC,YAAyE;AACnI,SAAO,SAAS,OAAO,IAAI,QAAQ,UAAW,EAAE,OAAO,IAAI,QAAQ,OAAO;AAC9E;AAFgB;ACbhB,SAAS,aAAwD;AAC7D,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,eAAW,QAAQ,QAAQ;AACvB,YAAM,CAAC,EAAE,GAAG,IAAI;AAAA,IACpB;AAAA,EACJ;AACJ;AAPS;AAWF,SAAS,QAAW,QAAsF;AAC7G,SAAO,SAAS,WAAA,EAAgB,MAAM,IAAI,WAAA;AAC9C;AAFgB;ACVhB,SAAS,UAAmB,YAAoD;AAC5E,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,eAAW,QAAQ,QAAQ;AACvB,UAAI,WAAW,MAAM,EAAE,CAAC,GAAG;AACvB,cAAM;AAAA,MACV;AAAA,IACJ;AAAA,EACJ;AACJ;AATS;AAaF,SAAS,OAAU,SAAwC,YAA2E;AACzI,SAAO,SAAS,OAAO,IAAI,UAAU,UAAW,EAAE,OAAO,IAAI,UAAU,OAAO;AAClF;AAFgB;ACfhB,SAAS,SAAkB,GAAmC;AAC1D,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,eAAW,QAAQ,QAAQ;AACvB,YAAM;AACN,UAAI,EAAE,KAAK,GAAG;AACV;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAVS;AAcF,SAAS,MAAe,QAA4B,GAA0D;AACjH,MAAI,CAAC,SAAS,MAAM,EAAG,QAAO,SAAY,MAAM;AAChD,SAAO,SAAY,CAAE,EAAE,MAAM;AACjC;AAHgB;ACXhB,SAAS,SAAkB,SAAuD;AAC9E,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,UAAMA,SAAgC,CAAA;AACtC,eAAW,OAAO,QAAQ;AACtB,YAAM,MAAM,QAAQ,KAAK,EAAE,CAAC;AAC5B,UAAI,CAACA,OAAM,GAAG,GAAG;AACbA,eAAM,GAAG,IAAI,CAAA;AAAA,MACjB;AACAA,aAAM,GAAG,EAAE,KAAK,GAAG;AAAA,IACvB;AACA,eAAW,OAAOA,QAAO;AACrB,YAAM,EAAE,KAAK,OAAOA,OAAM,GAAG,EAAA;AAAA,IACjC;AAAA,EACJ;AACJ;AAfS;AAmBF,SAAS,MAAS,UAAkC,WAA0F;AACjJ,SAAO,SAAS,QAAQ,IAAI,SAAY,SAAU,EAAE,QAAQ,IAAI,SAAY,QAAQ;AACxF;AAFgB;ACVT,SAAS,SAAoC,KAA4B,SAA0C;AACtH,QAAM,IAAI,IAAA;AAEV,SAAO;AAAA,IACH,SAAS,wBAAC,GAAM,MAAc;AAC1B,QAAE,QAAQ,QAAQ,GAAG,CAAC,GAAG,CAAC;AAAA,IAC9B,GAFS;AAAA,IAGT,MAAM,EAAE;AAAA,EAAA;AAEhB;AATgB;AAYT,SAAS,OAAmB,GAAmB;AAClD,SAAO,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AACzC;AAFgB;AAKT,SAAS,SAAe,GAAmB;AAC9C,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,eAAW,OAAO,QAAQ;AACtB,QAAE,QAAQ,KAAK,EAAE,CAAC;AAAA,IACtB;AACA,UAAM,EAAE,KAAA;AAAA,EACZ;AACJ;AARgB;AAWT,SAAS,OAAyB,GAAmB;AACxD,SAAO,SAAU,QAAmB;AAChC,QAAI,IAAI;AACR,eAAW,OAAO,QAAQ;AACtB,QAAE,QAAQ,KAAK,EAAE,CAAC;AAAA,IACtB;AACA,WAAO,EAAE,KAAA;AAAA,EACb;AACJ;AARgB;ACxChB,SAAS,OAAiC;AACtC,MAAIC;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,UAAI,QAAQ,GAAG;AACXA,eAAM;AAAA,MACV,WAAWA,OAAM,OAAO;AACpBA,eAAM;AAAA,MACV;AAAA,IACJ,GANS;AAAA,IAOT,MAAM,6BAAMA,MAAN;AAAA,EAAM;AAEpB;AAbS;AAmBF,SAAS,IAAa,YAA6E;AACtG,SAAO,aAAa,SAAS,MAAM,UAAU,IAAI,KAAA;AACrD;AAFgB;ACnBhB,SAAS,OAAiC;AACtC,MAAIC;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,UAAI,QAAQ,GAAG;AACXA,eAAM;AAAA,MACV,WAAWA,OAAM,OAAO;AACpBA,eAAM;AAAA,MACV;AAAA,IACJ,GANS;AAAA,IAOT,MAAM,6BAAMA,MAAN;AAAA,EAAM;AAEpB;AAbS;AAmBF,SAAS,IAAa,YAA6E;AACtG,SAAO,aAAa,SAAS,MAAM,UAAU,IAAI,KAAA;AACrD;AAFgB;ACjBhB,SAAS,UAA8C;AACnD,QAAM,QAAQ,IAAA;AACd,QAAM,QAAQ,IAAA;AAEd,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,YAAM,QAAQ,OAAO,GAAG;AACxB,YAAM,QAAQ,OAAO,GAAG;AAAA,IAC5B,GAHS;AAAA,IAIT,MAAM,6BAAM,CAAC,MAAM,QAAQ,MAAM,MAAM,GAAjC;AAAA,EAAiC;AAE/C;AAXS;AAiBF,SAAS,OAAgB,YAAoG;AAChI,SAAO,aAAa,SAAS,SAAS,UAAU,IAAI,QAAA;AACxD;AAFgB;ACXhB,SAAS,UAAU,GAA0B;AACzC,SAAQ,EAAc,YAAY;AACtC;AAFS;AAIT,SAAS,aAAsB,YAA4B,SAAwD;AAC/G,SAAO,WAAW,SAAoB;AAClC,QAAIA;AACJ,QAAI;AAEJ,QAAI;AACJ,QAAI,UAAU,OAAO,GAAG;AACpB,eAAS,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO;AACvD,YAAM,SAAS,OAAO,OAAO,UAAU,CAAC,EAAE,MAAM;AAChD,UAAI,WAAW,QAAW;AACtB,eAAO;AAAA,MACX;AACA,MAAAA,OAAM,OAAO,CAAC;AACd,YAAMD,OAAM,OAAO,CAAC;AACpB,YAAM,UAAU,QAAQ;AACxB,oBAAcA,OAAMC,QAAO;AAAA,IAC/B,OAAO;AACH,eAAS;AACT,MAAAA,OAAM,QAAQ;AACd,mBAAa,QAAQ;AAAA,IACzB;AAEA,UAAMC,aAAoC,CAAA;AAE1C,QAAI,cAAc;AAClB,eAAW,OAAO,QAAQ;AACtB,YAAM,QAAQ,WAAW,GAAG;AAC5B,YAAM,WAAW,KAAK,OAAO,QAAQD,QAAO,UAAU;AACtD,UAAI,cAAc,UAAU;AACxB,sBAAc;AAAA,MAClB;AACA,UAAIC,WAAU,QAAQ,MAAM,QAAW;AACnCA,mBAAU,QAAQ,IAAI,CAAA;AAAA,MAC1B;AACAA,iBAAU,QAAQ,EAAE,KAAK,GAAG;AAAA,IAChC;AAEA,UAAM,aAAaA,WAAU,WAAW;AACxC,UAAM,OAAOD,OAAM,cAAc;AAEjC,aAAS,IAAI,GAAG,KAAK,aAAa,EAAE,GAAG;AAEnC,UAAI,MAAM,cAAc,KAAK,WAAW,MAAM,SAAO,SAAS,WAAW,GAAG,CAAC,GAAG;AAC5E,cAAM;AAAA,UACF,MAAMA,OAAM,IAAI;AAAA,UAChB,IAAIA,QAAO,IAAI,KAAK;AAAA,UACpB,OAAO,CAAC,GAAIC,WAAU,CAAC,KAAK,CAAA,GAAK,GAAG,UAAU;AAAA,QAAA;AAElD;AAAA,MACJ;AACA,YAAM;AAAA,QACF,MAAMD,OAAM,IAAI;AAAA,QAChB,IAAIA,QAAO,IAAI,KAAK;AAAA,QACpB,OAAOC,WAAU,CAAC,KAAK,CAAA;AAAA,MAAC;AAAA,IAEhC;AAAA,EACJ;AACJ;AAzDS;AA6DF,SAAS,UAAa,SAAqC,SAAmC,SAA6F;AAC9L,SAAO,SAAS,OAAO,IAAI,aAAgB,SAA2B,OAAQ,EAAE,OAAO,IAAI,aAAgB,SAA2B,OAAkB;AAC5J;AAFgB;ACvEhB,SAAS,QAAmC,UAAqB,YAA2D;AACxH,QAAM,UAAU,MAAM,QAAQ,QAAQ,IAAI,SAAS,OAAO,QAAQ,EAAA,IAAM;AACxE,SAAO,WAAW,SAAoB;AAClC,QAAI,IAAI;AACR,eAAW,QAAQ,SAAS;AACxB,YAAM,WAAW,MAAM,QAAQ,OAAO,OAAO,EAAE,CAAC;AAAA,IACpD;AAAA,EACJ;AACJ;AARS;AAYF,SAAS,KAAc,UAAiC,UAA6C,YAAkF;AAC1L,SAAO,SAAS,QAAQ,IAAI,QAAQ,UAAU,UAAW,EAAE,QAAqB,IAAI,QAAQ,UAAuB,QAAQ;AAC/H;AAFgB;ACZhB,SAAS,OAAyB,YAAuD;AACrF,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,eAAW,QAAQ,QAAQ;AACvB,YAAM,WAAW,MAAM,EAAE,CAAC;AAAA,IAC9B;AAAA,EACJ;AACJ;AAPS;AAWF,SAAS,IAAU,SAAwC,YAA8E;AAC5I,SAAO,SAAS,OAAO,IAAI,OAAO,UAAW,EAAE,OAAO,IAAI,OAAO,OAAO;AAC5E;AAFgB;ACVhB,SAAS,eAAyC;AAC9C,QAAM,aAAa,OAAO,QAAQ;AAClC,SAAO,WAAW,SAAyB;AACvC,UAAM,SAAS,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO;AAC7D,UAAM,QAAQ,WAAW,MAAM;AAC/B,UAAM,UAAW,MAAM,CAAC,IAAI,MAAM,CAAC,KAAM;AACzC,UAAM,eAAe,IAAI,CAAC,SAAiB,MAAM,MAAM,CAAC,KAAK,OAAO;AACpE,WAAO,OAAO,aAAa,MAAM;AAAA,EACrC;AACJ;AATS;AAaF,SAAS,UAAU,YAAkF;AACxG,SAAO,SAAS,UAAU,IAAI,eAAe,UAAU,IAAI,aAAA;AAC/D;AAFgB;AChBhB,SAAS,QAAiB,GAAmC;AACzD,SAAO,WAAW,QAAmB;AACjC,QAAI,IAAI;AACR,eAAW,QAAQ,QAAQ;AACvB,UAAI,EAAE,KAAK,GAAG;AACV,cAAM;AAAA,MACV;AAAA,IACJ;AAAA,EACJ;AACJ;AATS;AAaF,SAAS,KAAc,QAA4B,GAA0D;AAChH,SAAO,SAAS,MAAM,IAAI,QAAW,CAAE,EAAE,MAAM,IAAI,QAAW,MAAM;AACxE;AAFgB;ACXhB,SAAS,QAAiB,WAAkD;AACxE,SAAO,WAAW,QAAmB;AACjC,YAAQ,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,GAAG,MAAM,GAAG,KAAK,SAAS;AAAA,EACxE;AACJ;AAJS;AAQF,SAAS,KAAc,SAAsC,YAAyE;AACzI,SAAO,SAAS,OAAO,IAAI,QAAQ,UAAW,EAAE,OAAO,IAAI,QAAQ,OAAO;AAC9E;AAFgB;ACVT,SAAS,QAAsC;AAClD,MAAIC;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAU,QAAgB;AAChC,UAAI,QAAQ,GAAG;AACXA,iBAAQ;AAAA,MACZ;AACA,QAAEA;AAAAA,IACN,GALS;AAAA,IAMT,MAAM,6BAAMA,QAAN;AAAA,EAAM;AAEpB;AAZgB;ACAhB,SAAS,YAAkD;AACvD,MAAIA;AACJ,MAAIC;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,UAAI,QAAQ,GAAG;AACX,QAAAD,SAAQ;AACR,QAAAC,QAAO;AACP,cAAM;AAAA,MACV;AACA,YAAM,QAAQ,QAAQA;AACtB,MAAAA,SAAQ,QAAQ,EAAED;AAClB,aAAO,SAAS,QAAQC;AAAA,IAC5B,GATS;AAAA,IAUT,MAAM,6BAAMD,SAAQ,IAAI,OAAOA,SAAQ,KAAK,QAAtC;AAAA,EAAsC;AAEpD;AAlBS;AAwBF,SAAS,SAAkB,YAA0G;AACxI,SAAO,aAAa,SAAS,WAAW,UAAU,IAAI,UAAA;AAC1D;AAFgB;ACvBhB,SAAS,aAAmD;AACxD,QAAM,IAAI,SAAA;AAEV,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,QAAE,QAAQ,OAAO,GAAG;AAAA,IACxB,GAFS;AAAA,IAGT,MAAM,6BAAM;AACR,YAAME,YAAW,EAAE,KAAA;AACnB,aAAOA,cAAa,SAAY,KAAK,KAAKA,SAAQ,IAAIA;AAAAA,IAC1D,GAHM;AAAA,EAGN;AAER;AAZS;AAkBF,SAAS,UAAmB,YAA2G;AAC1I,SAAO,aAAa,SAAS,YAAY,UAAU,IAAI,WAAA;AAC3D;AAFgB;ACnBhB,SAAS,QAAkC;AACvC,MAAI;AACJ,MAAIF;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,UAAI,QAAQ,GAAG;AACX,gBAAQ;AAAA,MACZ,OAAO;AACH,iBAAS;AAAA,MACb;AACA,MAAAA,SAAQ;AAAA,IACZ,GAPS;AAAA,IAQT,MAAM,6BAAM,SAASA,SAAQ,IAAvB;AAAA,EAAuB;AAErC;AAfS;AAqBF,SAAS,KAAc,YAA8E;AACxG,SAAO,aAAa,SAAS,OAAO,UAAU,IAAI,MAAA;AACtD;AAFgB;ACPhB,SAAS,gBAAiD;AACtD,QAAM,QAAQ,IAAA;AACd,QAAM,QAAQ,IAAA;AACd,QAAM,SAAS,KAAA;AACf,QAAM,aAAa,SAAA;AAEnB,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,YAAM,QAAQ,OAAO,GAAG;AACxB,YAAM,QAAQ,OAAO,GAAG;AACxB,aAAO,QAAQ,OAAO,GAAG;AACzB,iBAAW,QAAQ,OAAO,GAAG;AAAA,IACjC,GALS;AAAA,IAMT,MAAM,6BAAM;AACR,YAAM,YAAY,MAAM,KAAA;AACxB,UAAI,cAAc,OAAW,QAAO;AACpC,YAAM,iBAAiB,WAAW,KAAA;AAClC,aAAO;AAAA,QACH,KAAK;AAAA,QACL,KAAK,MAAM,KAAA;AAAA,QACX,MAAM,OAAO,KAAA;AAAA,QACb,UAAU;AAAA,QACV,WAAW,mBAAmB,SAAY,KAAK,KAAK,cAAc,IAAI;AAAA,MAAA;AAAA,IAE9E,GAXM;AAAA,EAWN;AAER;AA1BS;AAgCF,SAAS,aAAsB,YAAoG;AACtI,SAAO,aAAa,SAAS,eAAe,UAAU,IAAI,cAAA;AAC9D;AAFgB;AC9ChB,SAAS,UAAoC;AACzC,MAAI;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,UAAI,QAAQ,GAAG;AACX,iBAAS,CAAA;AAAA,MACb;AACA,aAAO,KAAK,KAAK;AAAA,IACrB,GALS;AAAA,IAMT,MAAM,6BAAM;AACR,YAAM,SAAS,OAAO,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAC1C,YAAM,MAAM,OAAO,SAAS;AAC5B,UAAI,OAAO,SAAS,MAAM,GAAG;AACzB,gBAAQ,OAAO,MAAM,CAAC,IAAI,OAAO,GAAG,KAAK;AAAA,MAC7C,OAAO;AACH,eAAO,OAAO,KAAK,MAAM,GAAG,CAAC;AAAA,MACjC;AAAA,IACJ,GARM;AAAA,EAQN;AAER;AApBS;AA0BF,SAAS,OAAgB,YAAgF;AAC5G,SAAO,aAAa,SAAS,SAAS,UAAU,IAAI,QAAA;AACxD;AAFgB;ACrBhB,SAAS,YAAyC;AAC9C,MAAI;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAe,QAAgB;AACrC,UAAI,QAAQ,GAAG;AACX,iBAAS,CAAA;AAAA,MACb;AACA,aAAO,KAAK,KAAK;AAAA,IACrB,GALS;AAAA,IAMT,MAAM,6BAAM;AACR,YAAM,SAAS,OAAO,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAC1C,YAAM,MAAM,OAAO,SAAS;AAC5B,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI,OAAO,SAAS,GAAG;AACnB,eAAO;AAAA,MACX,WAAW,OAAO,SAAS,MAAM,GAAG;AAChC,qBAAa,OAAO,MAAM,CAAC,IAAI,OAAO,GAAG,KAAK;AAC9C,gBAAQ,OAAO,MAAM,GAAG,GAAG;AAC3B,gBAAQ,OAAO,MAAM,GAAG;AAAA,MAC5B,OAAO;AACH,oBAAY,OAAO,KAAK,MAAM,GAAG,CAAC;AAClC,gBAAQ,OAAO,MAAM,GAAG,KAAK,MAAM,GAAG,CAAC;AACvC,gBAAQ,OAAO,MAAM,KAAK,KAAK,GAAG,CAAC;AAAA,MACvC;AACA,aAAO,CAAC,OAAO,CAAC,GAAG,OAAO,OAAA,CAAQ,EAAE,KAAK,GAAI,WAAW,OAAO,OAAA,CAAQ,EAAE,KAAK,GAAI,OAAO,OAAO,SAAS,CAAC,CAAC;AAAA,IAC/G,GAlBM;AAAA,EAkBN;AAER;AA9BS;AAkCF,SAAS,SAAkB,YAAwF;AACtH,SAAO,aAAa,SAAS,WAAW,UAAU,IAAI,UAAA;AAC1D;AAFgB;ACrChB,SAAS,QAAc,UAAgC,cAAkC;AACrF,MAAI;AAEJ,SAAO;AAAA,IACH,SAAS,wBAAC,OAAU,QAAgB;AAChC,UAAI,QAAQ,GAAG;AACX,kBAAU,iBAAiB,SAAa,QAAyB,SAAS,cAAc,OAAO,GAAG;AAAA,MACtG,OAAO;AACH,kBAAU,SAAS,SAAS,OAAO,GAAG;AAAA,MAC1C;AAAA,IACJ,GANS;AAAA,IAOT,MAAM,6BAAM,SAAN;AAAA,EAAM;AAEpB;AAbS;AAeF,SAAS,OAAyB,YAAkC,cAAkC;AACzG,SAAO,QAAQ,YAAY,YAAY;AAC3C;AAFgB;ACnBT,UAAU,SAAY,aAAsB,QAAsC;AACrF,MAAI,IAAI;AACR,SAAO,WAAW,UAAa,EAAE,IAAI,QAAQ;AACzC,UAAM,YAAA;AAAA,EACV;AACJ;AALiB;ACEjB,MAAM,qBAAqB,aAAa;AAAE,GAAG;AAE7C,SAAS,YAAkB,OAA8F;AACrH,MAAI,MAAM,MAAM,SAAS,CAAC,aAAa,mBAAmB;AACtD,WAAO,WAAW,QAAQ;AAEtB,UAAI,OAA4B;AAChC,iBAAWG,aAAY,OAAO;AAE1B,eAAOA,UAAS,IAAI;AAAA,MACxB;AACA,aAAO;AAAA,IACX;AAAA,EACJ,OAAO;AACH,WAAO,SAAU,QAAQ;AAErB,UAAI,OAA4B;AAChC,iBAAWA,aAAY,OAAO;AAE1B,eAAOA,UAAS,IAAI;AAAA,MACxB;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;AAtBS;AAgEF,SAAS,KAAiB,YAAgD,OAAuJ;AACpO,SAAO,SAAY,OAAO,IAAI,SAAe,GAAG,KAAK,EAAE,OAAO,IAAI,SAAe,SAAmC,GAAG,KAAK;AAChI;AAFgB;AAKT,MAAM,QAAQ;"}
1
+ {"version":3,"file":"index.js","names":["group: { [key: string]: T[] }","max: number","min: number","min: number","bucketSize: number","histogram: { [key: number]: T[] }","count: number","count: number","mean: number","sum: number","total: number","count: number","values: number[]","values: number[]","medianVal: number","lower: number[]","upper: number[]","reduced: U","tail: IterableIterator<U>"],"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"],"mappings":"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"}
@@ -1,2 +1,2 @@
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
- //# sourceMappingURL=index.umd.cjs.map
1
+ !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self)["@hpcc-js/dataflow"]={})}(this,function(n){function e(n){return n&&("function"==typeof n[Symbol.iterator]||Array.isArray(n))}function t(n){return function*(e){yield*e,yield*n}}function o(n){return function*(e){let t=-1;for(const o of e)n(o,++t),yield o}}function r(n,t){return e(n)?o(t)(n):o(n)}function i(n){return function*(e){let t=-1;for(const o of e)n(o,++t)&&(yield o)}}function u(n){return function*(e){let t=0;for(const o of e)if(yield o,++t>=n)break}}function c(n){return function*(e){let t=-1;const o={};for(const r of e){const e=n(r,++t);o[e]||(o[e]=[]),o[e].push(r)}for(const n in o)yield{key:n,value:o[n]}}}function f(n,e){const t=n();return{observe:(n,o)=>{t.observe(e(n,o),o)},peek:t.peek}}function s(n){return function(e){let t=-1;for(const o of e)n.observe(o,++t);return n.peek()}}function l(){let n;return{observe:(e,t)=>{(0===t||n<e)&&(n=e)},peek:()=>n}}function a(n){return n?f(l,n):l()}function v(){let n;return{observe:(e,t)=>{(0===t||n>e)&&(n=e)},peek:()=>n}}function d(n){return n?f(v,n):v()}function p(){const n=d(),e=a();return{observe:(t,o)=>{n.observe(t,o),e.observe(t,o)},peek:()=>[n.peek(),e.peek()]}}function y(n){return n?f(p,n):p()}function b(n,e){return function*(t){let o,r,i;if(void 0!==e.buckets){i=Array.isArray(t)?t:[...t];const u=s(y(n))(i);if(void 0===u)return;o=u[0];r=(u[1]-o)/e.buckets}else i=t,o=e.min,r=e.range;const u={};let c=0;for(const e of i){const t=n(e),i=Math.floor((t-o)/r);c<i&&(c=i),void 0===u[i]&&(u[i]=[]),u[i].push(e)}const f=u[c],l=o+c*r;for(let e=0;e<=c;++e){if(e===c-1&&f.every(e=>l===n(e))){yield{from:o+e*r,to:o+(e+1)*r,value:[...u[e]||[],...f]};break}yield{from:o+e*r,to:o+(e+1)*r,value:u[e]||[]}}}}function k(n,e){const t=Array.isArray(n)?n[Symbol.iterator]():n;return function*(n){let o=-1;for(const r of n)yield e(r,t.next().value,++o)}}function h(n){return function*(e){let t=-1;for(const o of e)yield n(o,++t)}}function m(n,t){return e(n)?h(t)(n):h(n)}function g(){const n=s(y());return function*(e){const t=Array.isArray(e)?e:[...e],o=n(t),r=o[1]-o[0]||1;return yield*m(n=>(n-o[0])/r)(t)}}function A(n){return function*(e){let t=-1;for(const o of e)++t>=n&&(yield o)}}function x(n){return function*(e){yield*(Array.isArray(e)?e:[...e]).sort(n)}}function M(){let n,e,t;return{observe:(o,r)=>{0===r&&(n=0,e=0,t=0);const i=o-e;e+=i/++n,t+=i*(o-e)},peek:()=>n>1?t/(n-1):void 0}}function j(n){return n?f(M,n):M()}function q(){const n=j();return{observe:(e,t)=>{n.observe(e,t)},peek:()=>{const e=n.peek();return void 0!==e?Math.sqrt(e):e}}}function S(){let n,e;return{observe:(t,o)=>{0===o?n=t:n+=t,e=o},peek:()=>n/(e+1)}}function T(n){return n?f(S,n):S()}function w(){const n=d(),e=a(),t=T(),o=j();return{observe:(r,i)=>{n.observe(r,i),e.observe(r,i),t.observe(r,i),o.observe(r,i)},peek:()=>{const r=n.peek();if(void 0===r)return;const i=o.peek();return{min:r,max:e.peek(),mean:t.peek(),variance:i,deviation:void 0!==i?Math.sqrt(i):void 0}}}}function z(){let n;return{observe:(e,t)=>{0===t&&(n=[]),n.push(e)},peek:()=>{const e=n.sort((n,e)=>n-e),t=e.length/2;return e.length%2==0?(e[t-1]+e[t])/2:e[Math.floor(t)]}}}function B(n){return n?f(z,n):z()}function C(){let n;return{observe:(e,t)=>{0===t&&(n=[]),n.push(e)},peek:()=>{const e=n.sort((n,e)=>n-e),t=e.length/2;let o,r,i;if(!(e.length<2))return e.length%2==0?(o=(e[t-1]+e[t])/2,r=e.slice(0,t),i=e.slice(t)):(o=e[Math.floor(t)],r=e.slice(0,Math.floor(t)),i=e.slice(Math.ceil(t))),[e[0],s(B())(r),o,s(B())(i),e[e.length-1]]}}}var D=function*(){}.constructor;function E(...n){return n[n.length-1]instanceof D?function*(e){let t=e;for(const o of n)t=o(t);yield*t}:function(e){let t=e;for(const o of n)t=o(t);return t}}function F(n,...t){return e(n)?E(...t)(n):E(n,...t)}const G=F;n.Accessor=f,n.activity=function(n){return function*(e){let t=-1;for(const o of e)n.observe(o,++t);yield n.peek()}},n.chain=G,n.concat=function(n,e){return void 0!==e?t(e)(n):t(n)},n.count=function(){let n;return{observe:(e,t)=>{0===t&&(n=0),++n},peek:()=>n}},n.deviation=function(n){return n?f(q,n):q()},n.distribution=function(n){return n?f(w,n):w()},n.each=r,n.entries=function(n){return n?function*(n){let e=-1;for(const t of n)yield[++e,t]}(n):function*(n){let e=-1;for(const t of n)yield[++e,t]}},n.extent=y,n.filter=function(n,t){return e(n)?i(t)(n):i(n)},n.first=function(n,t){return e(n)?u(t)(n):u(n)},n.generate=function*(n,e){let t=-1;for(;void 0===e||++t<e;)yield n()},n.group=function(n,t){return e(n)?c(t)(n):c(n)},n.histogram=function(n,t,o){return e(n)?b(t,o)(n):b(n,t)},n.isSource=e,n.join=function(n,t,o){return e(t)?k(t,o)(n):k(n,t)},n.map=m,n.max=a,n.mean=T,n.median=B,n.min=d,n.normalize=function(n){return e(n)?g()(n):g()},n.pipe=F,n.quartile=function(n){return n?f(C,n):C()},n.reduce=function(n,e){return function(n,e){let t;return{observe:(o,r)=>{t=0===r?void 0===e?o:n(e,o,r):n(t,o,r)},peek:()=>t}}(n,e)},n.scalar=s,n.sensor=function(n){return r((e,t)=>n.observe(e,t))},n.skip=function(n,t){return e(n)?A(t)(n):A(n)},n.sort=function(n,t){return e(n)?x(t)(n):x(n)},n.variance=j});
2
+ //# sourceMappingURL=index.umd.cjs.map
@@ -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":["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":"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"}
1
+ {"version":3,"file":"index.umd.cjs","names":["group: { [key: string]: T[] }","max: number","min: number","min: number","bucketSize: number","histogram: { [key: number]: T[] }","count: number","count: number","mean: number","sum: number","total: number","count: number","values: number[]","values: number[]","medianVal: number","lower: number[]","upper: number[]","reduced: U","tail: IterableIterator<U>"],"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"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hpcc-js/dataflow",
3
- "version": "9.4.2",
3
+ "version": "9.5.0",
4
4
  "description": "hpcc-js - Data Flow",
5
5
  "type": "module",
6
6
  "main": "./dist/index.umd.cjs",
@@ -38,9 +38,8 @@
38
38
  "update-major": "npx --yes npm-check-updates -u"
39
39
  },
40
40
  "devDependencies": {
41
- "@hpcc-js/esbuild-plugins": "^1.5.2",
41
+ "@hpcc-js/esbuild-plugins": "^1.6.0",
42
42
  "@types/faker": "4.1.12",
43
- "@types/jasmine": "5.1.9",
44
43
  "faker": "4.1.0"
45
44
  },
46
45
  "repository": {
@@ -54,5 +53,5 @@
54
53
  "url": "https://github.com/hpcc-systems/Visualization/issues"
55
54
  },
56
55
  "homepage": "https://github.com/hpcc-systems/Visualization/tree/trunk/packages/dataflow",
57
- "gitHead": "0d1e42fc5b7abe6c486d1a2e11c1460596f7af55"
56
+ "gitHead": "bfefa70bf4e4232dcdaaa8498a2985a4e9aaadb5"
58
57
  }
@@ -1,3 +1,3 @@
1
- export const PKG_NAME = "@hpcc-js/dataflow";
2
- export const PKG_VERSION = "9.2.0";
3
- export const BUILD_VERSION = "3.2.1";
1
+ export const PKG_NAME = "__PACKAGE_NAME__";
2
+ export const PKG_VERSION = "__PACKAGE_VERSION__";
3
+ export const BUILD_VERSION = "__BUILD_VERSION__";