{"version":3,"sources":["../src/sync/pipe-sync.ts","../src/async/pipe-async.ts","../src/pipes/at.ts","../src/pipes/average.ts","../src/pipes/buffer-count.ts","../src/util/assert-sync.ts","../src/pipes/concat.ts","../src/pipes/count.ts","../src/pipes/default-if-empty.ts","../src/pipes/difference.ts","../src/pipes/distinct-until-changed.ts","../src/pipes/distinct-until-key-changed.ts","../src/pipes/distinct.ts","../src/pipes/drop.ts","../src/pipes/element-at.ts","../src/pipes/entries.ts","../src/pipes/end-with.ts","../src/pipes/every.ts","../src/pipes/fill.ts","../src/pipes/filter.ts","../src/pipes/find-index.ts","../src/pipes/find-last-index.ts","../src/pipes/find-last.ts","../src/pipes/find.ts","../src/pipes/first.ts","../src/pipes/flat.ts","../src/pipes/ignore-elements.ts","../src/pipes/includes.ts","../src/pipes/index-of.ts","../src/pipes/intersection.ts","../src/pipes/is-disjoint-from.ts","../src/pipes/is-empty.ts","../src/pipes/is-subset-of.ts","../src/pipes/is-superset-of.ts","../src/pipes/keys.ts","../src/pipes/last-index-of.ts","../src/pipes/last.ts","../src/pipes/map-to.ts","../src/pipes/map.ts","../src/pipes/max.ts","../src/pipes/min.ts","../src/pipes/pop.ts","../src/pipes/reduce.ts","../src/pipes/reverse.ts","../src/pipes/scan.ts","../src/pipes/size.ts","../src/pipes/skip-last.ts","../src/pipes/skip.ts","../src/pipes/slice.ts","../src/pipes/some.ts","../src/pipes/splice.ts","../src/pipes/start-with.ts","../src/pipes/sum.ts","../src/pipes/symmetric-difference.ts","../src/pipes/take-last.ts","../src/pipes/take-while.ts","../src/pipes/take.ts","../src/pipes/to-array.ts","../src/pipes/to-set.ts","../src/pipes/union.ts","../src/pipes/values.ts"],"names":["count","sum","every","last","max","min"],"mappings":"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","file":"index.cjs","sourcesContent":["import { Pipe, PipeIterator, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function pipeSync<TSource, T1>(\r\n    source: Iterable<TSource>\r\n): Iterable<TSource>;\r\n\r\nexport function pipeSync<TSource, T1>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>\r\n): Iterable<T1>;\r\n\r\nexport function pipeSync<TSource, T1, T2>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>\r\n): Iterable<T2>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>\r\n): Iterable<T3>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3, T4>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>\r\n): Iterable<T4>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3, T4, T5>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>\r\n): Iterable<T5>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3, T4, T5, T6>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>\r\n): Iterable<T6>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3, T4, T5, T6, T7>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>\r\n): Iterable<T7>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3, T4, T5, T6, T7, T8>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>,\r\n    p8: Pipe<T7, T8>\r\n): Iterable<T8>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3, T4, T5, T6, T7, T8, T9>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>,\r\n    p8: Pipe<T7, T8>,\r\n    p9: Pipe<T8, T9>\r\n): Iterable<T9>;\r\n\r\nexport function pipeSync<TSource, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(\r\n    source: Iterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>,\r\n    p8: Pipe<T7, T8>,\r\n    p9: Pipe<T8, T9>,\r\n    p10: Pipe<T9, T10>\r\n): Iterable<T10>;\r\n\r\nexport function pipeSync(\r\n    source: Iterable<any>,\r\n    ...pipes: Array<Pipe<any, any>>\r\n): Iterable<any>;\r\n\r\nexport function* pipeSync(source: Iterable<any>, ...pipes: Array<Pipe>): Iterable<any> {\r\n    if (!source || typeof source[Symbol.iterator] !== 'function') {\r\n        throw new Error(`Source ${source} not a sync iterator!`);\r\n    }\r\n\r\n    if (!Array.isArray(pipes) || (pipes = pipes.filter(p => typeof p === 'function')).length === 0) {\r\n        yield* source;\r\n        return;\r\n    }\r\n\r\n    const pipeIterators: Array<PipeIterator> = new Array<PipeIterator>();\r\n\r\n    for (const pipe of pipes) {\r\n        pipeIterators.push(pipe());\r\n    }\r\n\r\n    const length = pipeIterators.length;\r\n\r\n    const iterator = source[Symbol.iterator]();\r\n\r\n    let iteratorResult: IteratorResult<any> = iterator.next();\r\n\r\n    while (true) {\r\n\r\n        let done: boolean | undefined = iteratorResult.done;\r\n\r\n        let results: Array<IteratorResult<any>> = new Array<IteratorResult<any>>(iteratorResult);\r\n\r\n        for (let i = 0; i < length; i++) {\r\n            const allpipeResults: Array<IteratorResult<any>> = new Array<IteratorResult<any>>();\r\n            const isLastPipe: boolean = i === pipes.length - 1;\r\n\r\n            for (let j = 0; j < results.length; j++) {\r\n                const piperesult: PipeIteratorResult = pipeIterators[i](results[j]);\r\n\r\n                if (piperesult === undefined) continue;\r\n\r\n                if (Array.isArray(piperesult)) {\r\n                    for (let e = 0; e < piperesult.length; e++) {\r\n                        const item: IteratorResult<any> = piperesult[e];\r\n\r\n                        if (item === undefined) continue;\r\n\r\n                        if (!isLastPipe) {\r\n                            allpipeResults.push(item);\r\n                        } else {\r\n                            if (item.done) return;\r\n                            if ('value' in item) yield item.value;\r\n                        }\r\n                    }\r\n                } else if (!isLastPipe) {\r\n                    allpipeResults.push(piperesult);\r\n                } else {\r\n                    if (piperesult.done) return;\r\n                    if ('value' in piperesult) yield piperesult.value;\r\n                }\r\n            }\r\n            results = allpipeResults;\r\n        }\r\n\r\n        if (done) break;\r\n\r\n        iteratorResult = iterator.next();\r\n    }\r\n}\r\n\r\n// export function* pipeSync(source: Iterable<any>, ...pipes: Array<Pipe>): Iterable<any> {\r\n//     if (!source || typeof source[Symbol.iterator] !== 'function') {\r\n//         throw new Error(`Source ${source} not a sync iterator!`);\r\n//     }\r\n\r\n//     if (!Array.isArray(pipes) || (pipes = pipes.filter(p => typeof p === 'function')).length === 0) {\r\n//         yield* source;\r\n//         return;\r\n//     }\r\n\r\n//     const pipeIterators: Array<PipeIterator> = new Array<PipeIterator>();\r\n\r\n//     for (const pipe of pipes) {\r\n//         pipeIterators.push(pipe());\r\n//     }\r\n\r\n//     const all = [];\r\n\r\n//     const length = pipeIterators.length;\r\n\r\n//     const iterator = source[Symbol.iterator]();\r\n\r\n//     let iteratorResult: IteratorResult<any> = iterator.next();\r\n\r\n//     while (true) {\r\n\r\n//         let done: boolean | undefined = iteratorResult.done;\r\n\r\n//         let results: Array<IteratorResult<any>> = new Array<IteratorResult<any>>(iteratorResult);\r\n\r\n//         for (let i = 0; i < length; i++) {\r\n//             const allpipeResults: Array<IteratorResult<any>> = new Array<IteratorResult<any>>();\r\n//             const isLastPipe: boolean = i === pipes.length - 1;\r\n\r\n//             for (let j = 0; j < results.length; j++) {\r\n//                 const piperesult: PipeIteratorResult = pipeIterators[i](results[j]);\r\n\r\n//                 if (piperesult === undefined) continue;\r\n\r\n//                 if (Array.isArray(piperesult)) {\r\n//                     for (let e = 0; e < piperesult.length; e++) {\r\n//                         const item: IteratorResult<any> = piperesult[e];\r\n\r\n//                         if (item === undefined) continue;\r\n\r\n//                         if (!isLastPipe) {\r\n//                             allpipeResults.push(item);\r\n//                         } else {\r\n//                             if (item.done) break;\r\n//                             if ('value' in item) all.push(item.value);\r\n//                         }\r\n//                     }\r\n//                 } else if (!isLastPipe) {\r\n//                     allpipeResults.push(piperesult);\r\n//                 } else {\r\n//                     if (piperesult.done) break;\r\n//                     if ('value' in piperesult) all.push(piperesult.value);\r\n//                 }\r\n//             }\r\n//             results = allpipeResults;\r\n//         }\r\n\r\n//         if (done) break;\r\n\r\n//         iteratorResult = iterator.next();\r\n//     }\r\n\r\n//     yield* all;\r\n// }\r\n\r\n// export function* pipeSync(source: Iterable<any>, ...pipes: Array<Pipe>): Iterable<any> {\r\n//     if (!source || typeof source[Symbol.iterator] !== 'function') {\r\n//         throw new Error(`Source ${source} not a sync iterator!`);\r\n//     }\r\n\r\n//     const filteredPipes = Array.isArray(pipes) ? pipes.filter(p => typeof p === 'function') : [];\r\n\r\n//     if (filteredPipes.length === 0) {\r\n//         yield* source;\r\n//         return;\r\n//     }\r\n\r\n//     const pipeIterators = filteredPipes.map(pipe => pipe());\r\n//     const all: Array<any> = [];\r\n\r\n//     // Using for...of replaces the manual 'while(true)' and 'iterator.next()'\r\n//     for (const value of source) {\r\n//         let results: Array<IteratorResult<any>> = [{ value, done: false }];\r\n\r\n//         for (let i = 0; i < pipeIterators.length; i++) {\r\n//             const allpipeResults: Array<IteratorResult<any>> = [];\r\n//             const isLastPipe = i === pipeIterators.length - 1;\r\n\r\n//             for (const res of results) {\r\n//                 const piperesult = pipeIterators[i](res);\r\n\r\n//                 if (piperesult === undefined) continue;\r\n\r\n//                 const items = Array.isArray(piperesult) ? piperesult : [piperesult];\r\n\r\n//                 for (const item of items) {\r\n//                     if (item === undefined) continue;\r\n\r\n//                     if (item.done) {\r\n//                         // Yield everything collected so far and terminate\r\n//                         for (const element of all) yield element;\r\n//                         return;\r\n//                     }\r\n\r\n//                     if (isLastPipe) {\r\n//                         if ('value' in item) all.push(item.value);\r\n//                     } else {\r\n//                         allpipeResults.push(item);\r\n//                     }\r\n//                 }\r\n//             }\r\n//             results = allpipeResults;\r\n//         }\r\n//     }\r\n\r\n//     // Final yield of all collected items once source is exhausted\r\n//     for (const element of all) {\r\n//         yield element;\r\n//     }\r\n// }\r\n","import { Pipe, PipeIterator, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function pipeAsync<TSource, T1>(\r\n    source: AsyncIterable<TSource>\r\n): AsyncIterable<TSource>;\r\n\r\nexport function pipeAsync<TSource, T1>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>\r\n): AsyncIterable<T1>;\r\n\r\nexport function pipeAsync<TSource, T1, T2>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>\r\n): AsyncIterable<T2>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>\r\n): AsyncIterable<T3>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3, T4>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>\r\n): AsyncIterable<T4>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3, T4, T5>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>\r\n): AsyncIterable<T5>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3, T4, T5, T6>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>\r\n): AsyncIterable<T6>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3, T4, T5, T6, T7>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>\r\n): AsyncIterable<T7>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3, T4, T5, T6, T7, T8>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>,\r\n    p8: Pipe<T7, T8>\r\n): AsyncIterable<T8>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3, T4, T5, T6, T7, T8, T9>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>,\r\n    p8: Pipe<T7, T8>,\r\n    p9: Pipe<T8, T9>\r\n): AsyncIterable<T9>;\r\n\r\nexport function pipeAsync<TSource, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(\r\n    source: AsyncIterable<TSource>,\r\n    p1: Pipe<TSource, T1>,\r\n    p2: Pipe<T1, T2>,\r\n    p3: Pipe<T2, T3>,\r\n    p4: Pipe<T3, T4>,\r\n    p5: Pipe<T4, T5>,\r\n    p6: Pipe<T5, T6>,\r\n    p7: Pipe<T6, T7>,\r\n    p8: Pipe<T7, T8>,\r\n    p9: Pipe<T8, T9>,\r\n    p10: Pipe<T9, T10>\r\n): AsyncIterable<T10>;\r\n\r\nexport function pipeAsync(\r\n    source: AsyncIterable<any>,\r\n    ...pipes: Array<Pipe<any, any>>\r\n): AsyncIterable<any>;\r\n\r\nexport async function* pipeAsync(source: AsyncIterable<any>, ...pipes: Array<Pipe>): AsyncIterable<any> {\r\n    if (!source || typeof source[Symbol.asyncIterator] !== 'function') {\r\n        throw new Error(`Source ${source} not an async iterator!`);\r\n    }\r\n\r\n    if (!Array.isArray(pipes) || pipes.length === 0) {\r\n        yield* source;\r\n        return;\r\n    }\r\n\r\n    let pipeIterators: Array<PipeIterator> = new Array<PipeIterator>();\r\n\r\n    for (const pipe of pipes) {\r\n        pipeIterators.push(pipe());\r\n    }\r\n\r\n    const length = pipeIterators.length;\r\n\r\n    let iterator = source[Symbol.asyncIterator]();\r\n\r\n    let iteratorResult: IteratorResult<any> = await iterator.next();\r\n\r\n    while (true) {\r\n\r\n        let done: boolean | undefined = iteratorResult.done;\r\n\r\n        let results: Array<IteratorResult<any>> = new Array<IteratorResult<any>>(iteratorResult);\r\n\r\n        for (let i = 0; i < length; i++) {\r\n            const allpipeResults: Array<IteratorResult<any>> = new Array<IteratorResult<any>>();\r\n            const isLastPipe: boolean = i === pipes.length - 1;\r\n\r\n            for (let j = 0; j < results.length; j++) {\r\n                const piperesult: PipeIteratorResult = pipeIterators[i](results[j]);\r\n\r\n                if (piperesult === undefined) continue;\r\n\r\n                if (Array.isArray(piperesult)) {\r\n                    for (let e = 0; e < piperesult.length; e++) {\r\n                        const item: IteratorResult<any> = piperesult[e];\r\n\r\n                        if (item === undefined) continue;\r\n\r\n                        if (!isLastPipe) {\r\n                            allpipeResults.push(item);\r\n                        } else {\r\n                            if (item.done) return;\r\n                            if ('value' in item) yield item.value;\r\n                        }\r\n                    }\r\n                } else if (!isLastPipe) {\r\n                    allpipeResults.push(piperesult);\r\n                } else {\r\n                    if (piperesult.done) return;\r\n                    if ('value' in piperesult) yield piperesult.value;\r\n                }\r\n            }\r\n            results = allpipeResults;\r\n        }\r\n\r\n        if (done) break;\r\n\r\n        iteratorResult = await iterator.next();\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function at<I>(index: number): Pipe<I, I> {\r\n    return () => {\r\n        let i: number = -1;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (i === index) {\r\n                return [result, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function average<I>(): Pipe<I, number> {\r\n    return () => {\r\n        let count: number = 0;\r\n        let sum: number = 0;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<number> => {\r\n            if (result?.done) {\r\n                return count === 0 ? result : [{ value: sum / count }, result];\r\n            }\r\n\r\n            if (typeof result.value === 'number') {\r\n                ++count;\r\n                sum += result.value;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function bufferCount<I>(count: number, every?: number): Pipe<I, I[]> {\r\n    return () => {\r\n        let buffer: Array<I> = new Array<I>();\r\n        const c = (typeof count === 'number' && count > 1) ? count : 1;\r\n        const e = (typeof every === 'number' && every > 1) ? every : c;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I[]> => {\r\n            if (result?.done) {\r\n                return buffer.length > 0 ? [{ value: buffer }, result] : result;\r\n            }\r\n            buffer.push(result.value);\r\n            if (buffer.length === c) {\r\n                (result as IteratorResult<I[]>).value = new Array<I>(...buffer);\r\n                buffer.splice(0, e);\r\n                return result as IteratorResult<I[]>;\r\n            }\r\n        };\r\n    }\r\n}","export const assertSync = (value?: Iterable<any>) => {\r\n    if (!value || typeof value[Symbol.iterator] !== 'function') {\r\n        throw new Error(`Value not a sync iterator: ${value}`);\r\n    }\r\n};\r\n\r\nexport const assertSyncs = (sources: Array<Iterable<any>>) => {\r\n    for (const source of sources) {\r\n        assertSync(source);\r\n    }\r\n};","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function concat<I, T1>(\r\n    source1: Iterable<T1>\r\n): Pipe<I, I | T1>;\r\n\r\nexport function concat<I, T1, T2>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>\r\n): Pipe<I, I | T1 | T2>;\r\n\r\nexport function concat<I, T1, T2, T3>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>\r\n): Pipe<I, I | T1 | T2 | T3>;\r\n\r\nexport function concat<I, T1, T2, T3, T4>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>,\r\n    source4: Iterable<T4>\r\n): Pipe<I, I | T1 | T2 | T3 | T4>;\r\n\r\nexport function concat<I, T1, T2, T3, T4, T5>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>,\r\n    source4: Iterable<T4>,\r\n    source5: Iterable<T5>\r\n): Pipe<I, I | T1 | T2 | T3 | T4 | T5>;\r\n\r\nexport function concat<I>(...sources: Array<Iterable<any>>): Pipe<I, I | any> {\r\n    assertSyncs(sources);\r\n\r\n    return () => {\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | any> => {\r\n            if (result?.done) {\r\n\r\n                let results: PipeIteratorResult<I | any> = new Array<IteratorResult<I | any>>();\r\n\r\n                for (const source of sources) {\r\n                    for (const item of source) {\r\n                        results.push(Object({ value: item }));\r\n                    }\r\n                }\r\n\r\n                results.push(result);\r\n\r\n                return results;\r\n            }\r\n\r\n            return result;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function count<I>(): Pipe<I, number> {\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<number> => {\r\n            ++i;\r\n            if (result?.done) {\r\n                return [{ value: i }, result];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function defaultIfEmpty<I, T>(value: T): Pipe<I, I | T> {\r\n    return () => {\r\n        let isempty: boolean = true;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | T> => {\r\n            if (result?.done) {\r\n                if (isempty) {\r\n                    return [{ value }, result];\r\n                }\r\n            } else {\r\n                isempty = false;\r\n            }\r\n            return result as IteratorResult<I | T>;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function difference<I>(...sources: Array<Iterable<any>>): Pipe<I, I> {\r\n    assertSyncs(sources);\r\n\r\n    return () => {\r\n        let allSourcesItems: Array<any> = new Array<any>();\r\n\r\n        for (const source of sources) {\r\n            allSourcesItems.push(...source);\r\n        }\r\n\r\n        const sourceSet: Set<any> = new Set<any>(allSourcesItems);\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            if (!sourceSet.has(result.value)) {\r\n                sourceSet.add(result.value);\r\n                return result;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function distinctUntilChanged<I>(comparator?: (previous: I, current: I) => boolean): Pipe<I, I> {\r\n    const comp = typeof comparator === 'function' ? comparator : (a: I, b: I) => a === b;\r\n\r\n    return () => {\r\n        let lastValue: I;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done || !comp(lastValue, result.value)) {\r\n                lastValue = result.value;\r\n                return result;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function distinctUntilKeyChanged<I extends Record<string, any>, K extends keyof I>(\r\n    key: K,\r\n    comparator?: (previous: I[K], current: I[K]) => boolean\r\n): Pipe<I, I> {\r\n    const comp = typeof comparator === 'function' ? comparator : (a: any, b: any) => a === b;\r\n\r\n    return () => {\r\n        let lastValue: I | undefined;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result.done) return result;\r\n\r\n            const currentValue = result.value;\r\n\r\n            if (lastValue !== undefined && comp(lastValue[key], currentValue[key])) {\r\n                return;\r\n            }\r\n\r\n            lastValue = currentValue;\r\n            return result;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function distinct<I, K = I>(keyselector?: (element: I) => K): Pipe<I, I> {\r\n    const selector = typeof keyselector === 'function' ? keyselector : (e: I) => e as unknown as K;\r\n\r\n    return () => {\r\n        const elements = new Set<K>();\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            const key = selector(result.value);\r\n\r\n            if (!elements.has(key)) {\r\n                elements.add(key);\r\n                return result;\r\n            }\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function drop<I>(count: number): Pipe<I, I> {\r\n    const skipCount = (typeof count === 'number' && count > 0) ? count : 0;\r\n\r\n    return () => {\r\n        let i = 0;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            if (i >= skipCount) {\r\n                return result;\r\n            }\r\n\r\n            i++;\r\n        };\r\n    }\r\n}","import { at } from \"./at.js\";\r\n\r\nexport const elementAt = at;","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function entries<I>(): Pipe<I, [number, I]> {\r\n    return () => {\r\n        let i: number = -1;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<[number, I]> => {\r\n\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            ++i;\r\n\r\n            (result as IteratorResult<[number, I]>).value = [i, result.value];\r\n\r\n            return result as IteratorResult<[number, I]>;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function endWith<I, T>(...elements: Array<T>): Pipe<I, I | T> {\r\n    return () => {\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | T> => {\r\n            if (result.done) {\r\n                const results = Array.from(elements).map((s) => Object({ value: s }))\r\n                results.push(result);\r\n                return results;\r\n            } else {\r\n                return result;\r\n            }\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function every<I>(predicate: (element: I, index: number) => boolean): Pipe<I, boolean> {\r\n    return () => {\r\n        let i: number = -1;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<boolean> => {\r\n            if (result?.done) {\r\n                return [{ value: true }, result];\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (!predicate(result.value, i)) {\r\n                return [{ value: false }, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function fill<I, T>(value: T, start?: number, end?: number): Pipe<I, I | T> {\r\n    const s = typeof start === 'number' ? start : 0;\r\n    const e = typeof end === 'number' ? end : Infinity;\r\n    return () => {\r\n        let i = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | T> => {\r\n            ++i;\r\n            if (!result?.done && i >= s && i < e) {\r\n                (result as IteratorResult<I | T>).value = value;\r\n            }\r\n            return result as IteratorResult<I | T>;\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function filter<I>(predicate: (element: I, index: number) => boolean): Pipe<I, I> {\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (!predicate(result.value, i)) return;\r\n\r\n            return result;\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function findIndex<I>(predicate: (element: I, index: number) => boolean, fromIndex?: number): Pipe<I, number> {\r\n    const start = typeof fromIndex === 'number' ? fromIndex : 0;\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<number> => {\r\n            if (result?.done) {\r\n                return result as any;\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (i >= start && predicate(result.value, i)) {\r\n                return [{ value: i }, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function findLastIndex<I>(predicate: (element: I, index: number) => boolean, fromIndex?: number): Pipe<I, number> {\r\n    const start = typeof fromIndex === 'number' ? fromIndex : 0;\r\n    return () => {\r\n        let i: number = -1;\r\n        let lastIndex: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<number> => {\r\n            if (result?.done) {\r\n                return [{ value: lastIndex }, result];\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (i >= start && predicate(result.value, i)) {\r\n                lastIndex = i;\r\n            }\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function findLast<I>(predicate: (element: I, index: number) => boolean): Pipe<I, I> {\r\n    return () => {\r\n        let i: number = -1;\r\n        let last: I | undefined;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return typeof last === 'undefined' ? result : [{ value: last }, result];\r\n            }\r\n            ++i;\r\n            if (predicate(result.value, i)) {\r\n                last = result.value;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function find<I>(predicate: (element: I, index: number) => boolean): Pipe<I, I> {\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (predicate(result.value, i)) {\r\n                return [result, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function first<I>(): Pipe<I, I> {\r\n    return () => {\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n            return [result, { done: true, value: undefined }];\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function flat<I>(depth?: number): Pipe<I, any> {\r\n    const d = (typeof depth === 'number' && depth >= 1) ? depth : 1;\r\n    return () => {\r\n        return (result: IteratorResult<any>): PipeIteratorResult => {\r\n            if (result?.done || !result.value || typeof result.value[Symbol.iterator] !== 'function') {\r\n                return result;\r\n            }\r\n\r\n            return Array.from(result.value).flat(d).map((s) => Object({ value: s }));\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function ignoreElements<I>(): Pipe<I, never> {\r\n    return () => {\r\n        return (result: IteratorResult<I>): PipeIteratorResult<never> => {\r\n            if (result?.done) {\r\n                return result as IteratorResult<never>;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function includes<I>(value: I, fromIndex?: number): Pipe<I, boolean> {\r\n    const start = typeof fromIndex === 'number' ? fromIndex : 0;\r\n    return () => {\r\n        let i: number = -1;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<boolean> => {\r\n            if (result?.done) {\r\n                return [{ value: false }, result];\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (i >= start && result.value === value) {\r\n                return [{ value: true }, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function indexOf<I>(value: I, fromIndex?: number): Pipe<I, number> {\r\n    const start = typeof fromIndex === 'number' ? fromIndex : 0;\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<number> => {\r\n            if (result?.done) {\r\n                return [{ value: -1 }, result];\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (i >= start && value === result.value) {\r\n                return [{ value: i }, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function intersection<I, T1>(\r\n    source1: Iterable<T1>\r\n): Pipe<I, I | T1>;\r\n\r\nexport function intersection<I, T1, T2>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>\r\n): Pipe<I, I | T1 | T2>;\r\n\r\nexport function intersection<I, T1, T2, T3>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>\r\n): Pipe<I, I | T1 | T2 | T3>;\r\n\r\nexport function intersection<I, T1, T2, T3, T4>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>,\r\n    source4: Iterable<T4>\r\n): Pipe<I, I | T1 | T2 | T3 | T4>;\r\n\r\nexport function intersection<I, T1, T2, T3, T4, T5>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>,\r\n    source4: Iterable<T4>,\r\n    source5: Iterable<T5>\r\n): Pipe<I, I | T1 | T2 | T3 | T4 | T5>;\r\n\r\nexport function intersection<I>(\r\n    ...sources: Array<Iterable<any>>\r\n): Pipe<I, I | any>;\r\n\r\nexport function intersection<I>(...sources: Array<Iterable<any>>): Pipe<I, I | any> {\r\n    assertSyncs(sources);\r\n\r\n    return () => {\r\n        let allSourcesItems: Array<any> = [];\r\n\r\n        for (const source of sources) {\r\n            allSourcesItems.push(...source);\r\n        }\r\n\r\n        const sourceSet: Set<any> = new Set<any>(allSourcesItems);\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | any> => {\r\n            if (result?.done) {\r\n                return result as IteratorResult<I | any>;\r\n            }\r\n\r\n            if (sourceSet.has(result.value)) {\r\n                sourceSet.delete(result.value);\r\n                return result as IteratorResult<I | any>;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function isDisjointFrom<I>(...sources: Array<Iterable<any>>): Pipe<I, boolean> {\r\n    assertSyncs(sources);\r\n\r\n    return () => {\r\n\r\n        let allSourcesItems: Array<any> = [];\r\n\r\n        for (const source of sources) {\r\n            allSourcesItems.push(...source);\r\n        }\r\n\r\n        const sourceSet: Set<any> = new Set<any>(allSourcesItems);\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<boolean> => {\r\n            if (result?.done) {\r\n                return [{ value: true }, result];\r\n            }\r\n\r\n            if (sourceSet.has(result.value)) {\r\n                return [{ value: false }, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function isEmpty<I>(): Pipe<I, boolean> {\r\n    return () => {\r\n        return (result: IteratorResult<I>): PipeIteratorResult<boolean> => {\r\n            return result?.done ? [{ value: true }, result] : [{ value: false }, { done: true, value: undefined }];\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function isSubsetOf<I>(...sources: Array<Iterable<any>>): Pipe<I, boolean> {\r\n    assertSyncs(sources);\r\n\r\n    return () => {\r\n        let allSourcesItems: Array<any> = [];\r\n\r\n        for (const source of sources) {\r\n            allSourcesItems.push(...source);\r\n        }\r\n\r\n        const sourceSet: Set<any> = new Set<any>(allSourcesItems);\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<boolean> => {\r\n            if (result?.done) {\r\n                return [{ value: true }, result];\r\n            }\r\n\r\n            if (!sourceSet.has(result.value)) return [{ value: false }, { done: true, value: undefined }];\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function isSupersetOf<I>(...sources: Array<Iterable<any>>): Pipe<I, boolean> {\r\n    assertSyncs(sources);\r\n\r\n    return () => {\r\n        let allSourcesItems: Array<any> = [];\r\n\r\n        for (const source of sources) {\r\n            allSourcesItems.push(...source);\r\n        }\r\n\r\n        const sourceSet: Set<any> = new Set<any>(allSourcesItems);\r\n\r\n        let found: number = 0;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<boolean> => {\r\n            if (result?.done) {\r\n                return found === sourceSet.size ? [{ value: true }, result] : [{ value: false }, result];\r\n            }\r\n\r\n            if (sourceSet.has(result.value)) {\r\n                ++found;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function keys<I>(): Pipe<I, I extends [infer K, any] ? K : number> {\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I extends [infer K, any] ? K : number> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (Array.isArray(result.value) && result.value.length == 2) {\r\n                result.value = result.value[0];\r\n            } else {\r\n                (result as IteratorResult<number>).value = i;\r\n            }\r\n\r\n            return result as IteratorResult<I extends [infer K, any] ? K : number>;\r\n        };\r\n    }\r\n}\r\n","import { findLastIndex } from \"./find-last-index.js\";\r\n\r\nexport const lastIndexOf = (value: any, fromIndex?: number) => findLastIndex((element) => element === value, fromIndex);","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function last<T>(): Pipe<T, T> {\r\n    return () => {\r\n        let i: number = -1;\r\n        let last: T;\r\n        return (result: IteratorResult<T>): PipeIteratorResult<T> => {\r\n            ++i;\r\n            if (result?.done) {\r\n                return i === 0 ? result : [{ value: last }, result];\r\n            }\r\n            last = result.value;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function mapTo<I, T>(value: T): Pipe<I, T> {\r\n    return () => {\r\n        return (result: IteratorResult<I>): PipeIteratorResult<T> => {\r\n            (result as IteratorResult<I>).value = value;\r\n            return result as IteratorResult<T>;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function map<I, T>(callbackFn: (element: I, index: number) => T): Pipe<I, T> {\r\n    const fn = typeof callbackFn === 'function' ? callbackFn : (e: any) => e;\r\n\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<T> => {\r\n            ++i;\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            (result as any).value = fn(result.value, i);\r\n            return result as unknown as IteratorResult<T>;\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function max(): Pipe<number, number> {\r\n    return () => {\r\n        let max: number = -Infinity;\r\n\r\n        return (result: IteratorResult<number>): PipeIteratorResult<number> => {\r\n            if (result?.done) {\r\n                return max === (-Infinity) ? result : [{ value: max }, result];\r\n            }\r\n\r\n            if (typeof result.value === 'number' && !isNaN(result.value) && result.value > max) {\r\n                max = result.value;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function min(): Pipe<number, number> {\r\n    return () => {\r\n        let min: number = Infinity;\r\n        return (result: IteratorResult<number>): PipeIteratorResult<number> => {\r\n            if (result?.done) {\r\n                return min === Infinity ? result : [{ value: min }, result];\r\n            }\r\n\r\n            if (typeof result.value === 'number' && !isNaN(result.value) && result.value < min) {\r\n                min = result.value;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function pop<I>(): Pipe<I, I> {\r\n    return () => {\r\n        let last: IteratorResult<I>;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n            let lastResult = last;\r\n            last = result;\r\n            if (typeof lastResult !== \"undefined\") {\r\n                return lastResult;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function reduce<I, T>(\r\n    accumulator: (acc: T, currentValue: I, index: number) => T,\r\n    initialValue?: T\r\n): Pipe<I, T> {\r\n    return () => {\r\n        let i: number = -1;\r\n        let value: T;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<T> => {\r\n            ++i;\r\n            if (i === 0) {\r\n                value = initialValue ?? (result.value as unknown as T);\r\n            }\r\n\r\n            if (result?.done) {\r\n                return [{ value }, result];\r\n            }\r\n\r\n            value = accumulator(value, result.value, i);\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function reverse<I>(): Pipe<I, I> {\r\n    return () => {\r\n        let buffer: Array<IteratorResult<I>> = new Array<IteratorResult<I>>();\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                buffer = buffer.reverse();\r\n                buffer.push(result);\r\n                return buffer;\r\n            }\r\n\r\n            buffer.push(result);\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function scan<I, T>(accumulator: (acc: T, currentValue: I, index: number) => T, initialValue?: T): Pipe<I, T> {\r\n    return () => {\r\n        let i: number = -1;\r\n        let value: T;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<T> => {\r\n\r\n            if (result?.done) {\r\n                return result as unknown as IteratorResult<T>;\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (i === 0) {\r\n                value = initialValue ?? (result.value as unknown as T);\r\n            }\r\n\r\n            value = accumulator(value, result.value, i);\r\n\r\n            (result as unknown as IteratorResult<T>).value = value;\r\n\r\n            return result as unknown as IteratorResult<T>;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function size<I>(): Pipe<I, number> {\r\n    return () => {\r\n        let i: number = -1;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<number> => {\r\n            ++i;\r\n            if (result?.done) {\r\n                return [{ value: i }, result];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function skipLast<I>(count: number): Pipe<I, I> {\r\n    const skipCount = (typeof count === \"number\" && count > 0) ? count : 0;\r\n    return () => {\r\n        let items: Array<IteratorResult<I>> = new Array<IteratorResult<I>>();\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            items.push(result);\r\n\r\n            if (items.length > skipCount) {\r\n                return items.shift();\r\n            }\r\n        };\r\n    }\r\n}","import { drop } from \"./drop.js\";\r\n\r\nexport const skip = drop;","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function slice<I>(start: number, end?: number): Pipe<I, I> {\r\n    const s = (typeof start === 'number' && start >= 0) ? start : 0;\r\n    const e = (typeof end === 'number' && end > s) ? end : Infinity;\r\n    return () => {\r\n        let i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            ++i;\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            if (i >= s && i < e) {\r\n                return result;\r\n            } else if (i === e) {\r\n                return { done: true, value: undefined };\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function some<I>(predicate: (element: I, index: number) => boolean): Pipe<I, boolean> {\r\n    return () => {\r\n        let i = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<boolean> => {\r\n            if (result?.done) {\r\n                return [{ value: false }, result];\r\n            }\r\n\r\n            i++;\r\n\r\n            if (predicate(result.value, i)) {\r\n                return [{ value: true }, { done: true, value: undefined }];\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function splice<I, T>(start: number, deleteCount: number, ...elements: Array<T>): Pipe<I, I | T> {\r\n    const s = (typeof start === 'number' && start >= 0) ? start : 0;\r\n    const dc = (typeof deleteCount === 'number' && deleteCount >= 0) ? deleteCount : 0;\r\n    return () => {\r\n        let i: number = -1;\r\n        let spliced: boolean = false;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | T> => {\r\n            if (result?.done) {\r\n                if (!spliced) {\r\n                    spliced = true;\r\n                    const results = elements.map(e => Object({ value: e }));\r\n                    results.push(result);\r\n                    return results;\r\n                }\r\n                return result;\r\n            }\r\n\r\n            ++i;\r\n\r\n            if (i < s) {\r\n                return result as IteratorResult<I | T>;\r\n            }\r\n\r\n            if (i === s) {\r\n                spliced = true;\r\n                const results = elements.map(e => Object({ value: e }));\r\n\r\n                if (dc === 0) {\r\n                    results.push(result);\r\n                    return results;\r\n                }\r\n\r\n                return results;\r\n            }\r\n\r\n            if (i >= s + dc) {\r\n                return result as IteratorResult<I | T>;\r\n            }\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function startWith<I, T>(...elements: Array<T>): Pipe<I, I | T> {\r\n    return () => {\r\n        let sent: boolean = false;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | T> => {\r\n            if (!sent) {\r\n                sent = true;\r\n                const results = elements.map(e => Object({ value: e }));\r\n                results.push(result);\r\n                return results;\r\n            }\r\n\r\n            return result as IteratorResult<I | T>;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function sum<I>(): Pipe<I, number> {\r\n    return () => {\r\n        let sum: number = 0;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<number> => {\r\n            if (result?.done) {\r\n                return [{ value: sum }, result];\r\n            }\r\n            if (typeof result.value === 'number' && !isNaN(result.value)) {\r\n                sum += result.value;\r\n            }\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function symmetricDifference<I, T1>(\r\n    source1: Iterable<T1>\r\n): Pipe<I, I | T1>;\r\n\r\nexport function symmetricDifference<I, T1, T2>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>\r\n): Pipe<I, I | T1 | T2>;\r\n\r\nexport function symmetricDifference<I, T1, T2, T3>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>\r\n): Pipe<I, I | T1 | T2 | T3>;\r\n\r\nexport function symmetricDifference<I, T1, T2, T3, T4>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>,\r\n    source4: Iterable<T4>\r\n): Pipe<I, I | T1 | T2 | T3 | T4>;\r\n\r\nexport function symmetricDifference<I, T1, T2, T3, T4, T5>(\r\n    source1: Iterable<T1>,\r\n    source2: Iterable<T2>,\r\n    source3: Iterable<T3>,\r\n    source4: Iterable<T4>,\r\n    source5: Iterable<T5>\r\n): Pipe<I, I | T1 | T2 | T3 | T4 | T5>;\r\n\r\nexport function symmetricDifference<I>(\r\n    ...sources: Array<Iterable<any>>\r\n): Pipe<I, I | any>;\r\n\r\nexport function symmetricDifference<I>(...sources: Array<Iterable<any>>): Pipe<I, I | any> {\r\n    assertSyncs(sources);\r\n\r\n    let buffer: Set<I | any> = new Set<I | any>();\r\n\r\n    return () => (result: IteratorResult<I>): PipeIteratorResult<I | any> => {\r\n        if (result?.done) {\r\n            let results: Array<any> = new Array<any>();\r\n\r\n            for (const source of sources) {\r\n                for (const item of source) {\r\n                    if (!buffer.has(item)) {\r\n                        buffer.add(item);\r\n                        results.push({ value: item });\r\n                    }\r\n                }\r\n            }\r\n\r\n            results.push(result);\r\n            return results;\r\n        }\r\n\r\n        if (!buffer.has(result.value)) {\r\n            buffer.add(result.value);\r\n            return result;\r\n        }\r\n    };\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function takeLast<I>(count: number): Pipe<I, I> {\r\n    count = (typeof count === \"number\" && count > 0) ? count : 0;\r\n\r\n    return () => {\r\n        let last: Array<IteratorResult<I>> = new Array<IteratorResult<I>>();\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            if (result?.done) {\r\n                last.push(result);\r\n                return last;\r\n            }\r\n\r\n            if (last.length === count) {\r\n                last.shift();\r\n            }\r\n\r\n            last.push(result);\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function takeWhile<I>(predicate: (element: I, index: number) => boolean, inclusive?: boolean): Pipe<I, I> {\r\n    const inc = typeof inclusive === 'boolean' ? inclusive : false;\r\n\r\n    return () => {\r\n        var i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            ++i;\r\n\r\n            if (result?.done) {\r\n                return result;\r\n            }\r\n\r\n            if (!predicate(result.value, i)) {\r\n                if (inc) {\r\n                    return [result, { done: true, value: undefined }];\r\n                }\r\n\r\n                return { done: true, value: undefined };\r\n            }\r\n\r\n            return result;\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function take<I>(count: number): Pipe<I, I> {\r\n    const limit = (typeof count === \"number\" && count > 0) ? count : Infinity;\r\n    return () => {\r\n        var i: number = -1;\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I> => {\r\n            ++i;\r\n            if (i >= limit) {\r\n                return { done: true, value: undefined };\r\n            }\r\n            return result;\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function toArray<I>(): Pipe<I, I[]> {\r\n    return () => {\r\n        let buffer: Array<I> = new Array<I>();\r\n        var i: number = -1;\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I[]> => {\r\n            ++i;\r\n            if (result?.done) {\r\n                return [{ value: buffer }, result];\r\n            }\r\n\r\n            buffer.push(result.value);\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function toSet<I>(): Pipe<I, Set<I>> {\r\n    return () => {\r\n        let buffer: Set<I> = new Set<I>();\r\n        return (result: IteratorResult<I>): PipeIteratorResult<Set<I>> => {\r\n            if (result?.done) {\r\n                return [{ value: buffer }, result];\r\n            }\r\n\r\n            buffer.add(result.value);\r\n        };\r\n    }\r\n}","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\nimport { assertSyncs } from \"../util/index.js\";\r\n\r\nexport function union<I>(...sources: Array<Iterable<any>>): Pipe<I, I | any> {\r\n    assertSyncs(sources);\r\n\r\n    return () => {\r\n        let buffer: Set<I | any> = new Set<I | any>();\r\n\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I | any> => {\r\n            if (result?.done) {\r\n                let results: Array<any> = new Array<any>();\r\n\r\n                for (const source of sources) {\r\n                    for (const item of source) {\r\n                        if (!buffer.has(item as any)) {\r\n                            buffer.add(item as any);\r\n                            results.push({ value: item });\r\n                        }\r\n                    }\r\n                }\r\n\r\n                results.push(result);\r\n                return results;\r\n            }\r\n\r\n            if (!buffer.has(result.value)) {\r\n                buffer.add(result.value);\r\n                return result;\r\n            }\r\n        };\r\n    }\r\n}\r\n","import { Pipe, PipeIteratorResult } from \"../pipe.js\";\r\n\r\nexport function values<I>(): Pipe<I, I extends [any, infer V] ? V : I> {\r\n    return () => {\r\n        return (result: IteratorResult<I>): PipeIteratorResult<I extends [any, infer V] ? V : I> => {\r\n            if (!result.done) {\r\n                if (Array.isArray(result.value) && result.value.length == 2)\r\n                    (result).value = result.value[1];\r\n            }\r\n            return result as PipeIteratorResult<I extends [any, infer V] ? V : I>;\r\n        };\r\n    }\r\n}"]}