{"_id":"stream-chain","_rev":"4285816","name":"stream-chain","description":"Chain functions, generators, and streams into a pipeline with backpressure support.","dist-tags":{"latest":"3.6.1"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"time":{"modified":"2026-04-07T20:25:43.000Z","created":"2018-05-21T01:20:03.625Z","3.6.1":"2026-03-31T03:35:39.559Z","3.6.0":"2026-03-26T00:46:46.279Z","3.5.1":"2026-03-20T22:11:20.429Z","3.5.0":"2026-03-18T05:15:06.560Z","3.4.1":"2026-03-10T03:18:07.440Z","3.4.0":"2025-01-20T03:15:09.434Z","3.3.2":"2024-10-09T20:51:18.929Z","3.3.1":"2024-09-30T18:16:21.136Z","3.3.0":"2024-09-28T01:48:34.780Z","3.2.0":"2024-09-18T04:34:23.395Z","3.1.0":"2024-08-24T22:08:42.355Z","3.0.1":"2024-08-21T05:19:12.261Z","2.2.5":"2022-02-17T23:44:54.456Z","2.2.4":"2020-12-30T03:12:43.769Z","2.2.3":"2020-07-10T16:51:02.364Z","2.2.2":"2020-07-09T21:48:37.878Z","2.2.1":"2019-10-07T04:34:54.021Z","2.1.0":"2018-12-08T01:05:34.233Z","2.0.3":"2018-06-27T01:47:23.303Z","2.0.2":"2018-06-11T02:35:30.366Z","2.0.1":"2018-06-04T03:33:34.905Z","2.0.0":"2018-06-04T03:22:20.851Z","1.0.3":"2018-06-02T22:18:28.808Z","1.0.2":"2018-05-21T01:42:12.267Z","1.0.1":"2018-05-21T01:24:26.949Z","1.0.0":"2018-05-21T01:20:03.625Z"},"users":{},"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"versions":{"3.6.1":{"name":"stream-chain","version":"3.6.1","description":"Chain functions, generators, and streams into a pipeline with backpressure support.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","test:deno":"tape6-deno --flags FO","test:proc":"tape6-proc --flags FO","test:proc:bun":"bun run `tape6-proc --self` --flags FO","test:proc:deno":"deno run -A `tape6-proc --self` --flags FO -r -A","test:seq":"tape6-seq --flags FO","test:seq:bun":"bun run `tape6-seq --self` --flags FO","test:seq:deno":"deno run -A `tape6-seq --self` --flags FO","ts-check":"tsc --noEmit","ts-test":"tape6 --flags FO 'tests/test-*.*ts'","ts-test:bun":"tape6-bun --flags FO 'tests/test-*.*ts'","ts-test:deno":"tape6-deno --flags FO 'tests/test-*.*ts'","bench":"nano-bench","lint":"prettier --check .","lint:fix":"prettier --write ."},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain","pipeline","transform","backpressure","duplex","generator","async","object-mode","functional"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.*js"]},"devDependencies":{"@types/node":"^25.5.0","nano-benchmark":"^1.0.15","prettier":"^3.8.1","tape-six":"^1.7.13","tape-six-proc":"^1.2.8","typescript":"^6.0.2"},"gitHead":"4e6c5795bb235c152e9694c341e6557fcb1c2562","_id":"stream-chain@3.6.1","_nodeVersion":"25.8.2","_npmVersion":"11.11.1","dist":{"shasum":"907d7f8b9cdc8377cdfb9d5fce6400e685de27dc","size":27681,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.6.1.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stream-chain_3.6.1_1774928139428_0.02051833890368915"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-31T03:35:39.559Z","publish_time":1774928139559,"_source_registry_name":"default","_cnpm_publish_time":1774928139559},"3.6.0":{"name":"stream-chain","version":"3.6.0","description":"Chain functions, generators, and streams into a pipeline with backpressure support.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","test:deno":"tape6-deno --flags FO","test:proc":"tape6-proc --flags FO","test:proc:bun":"bun run `tape6-proc --self` --flags FO","test:proc:deno":"deno run -A `tape6-proc --self` --flags FO -r -A","test:seq":"tape6-seq --flags FO","test:seq:bun":"bun run `tape6-seq --self` --flags FO","test:seq:deno":"deno run -A `tape6-seq --self` --flags FO","ts-check":"tsc --noEmit","ts-test":"tape6 --flags FO 'tests/test-*.*ts'","ts-test:bun":"tape6-bun --flags FO 'tests/test-*.*ts'","ts-test:deno":"tape6-deno --flags FO 'tests/test-*.*ts'","bench":"nano-bench","lint":"prettier --check .","lint:fix":"prettier --write ."},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain","pipeline","transform","backpressure","duplex","generator","async","object-mode","functional"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.*js"]},"devDependencies":{"@types/node":"^25.5.0","nano-benchmark":"^1.0.14","prettier":"^3.8.1","tape-six":"^1.7.12","tape-six-proc":"^1.2.7","typescript":"^6.0.2"},"gitHead":"c235930d1403adaf4d0e6838af70358b86333854","_id":"stream-chain@3.6.0","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"shasum":"32530dab3f048daf9ffb4e27ea5fceb54528e0d2","size":27679,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.6.0.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stream-chain_3.6.0_1774486006116_0.5087439729776937"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-26T00:46:46.279Z","publish_time":1774486006279,"_source_registry_name":"default","_cnpm_publish_time":1774486006279},"3.5.1":{"name":"stream-chain","version":"3.5.1","description":"Chain functions, generators, and streams into a pipeline with backpressure support.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","test:deno":"tape6-deno --flags FO","test:proc":"tape6-proc --flags FO","test:proc:bun":"bun run `tape6-proc --self` --flags FO","test:proc:deno":"deno run -A `tape6-proc --self` --flags FO -r -A","test:seq":"tape6-seq --flags FO","test:seq:bun":"bun run `tape6-seq --self` --flags FO","test:seq:deno":"deno run -A `tape6-seq --self` --flags FO","ts-check":"tsc --noEmit","ts-test":"tape6 --flags FO 'tests/test-*.*ts'","ts-test:bun":"tape6-bun --flags FO 'tests/test-*.*ts'","ts-test:deno":"tape6-deno --flags FO 'tests/test-*.*ts'","lint":"prettier --check .","lint:fix":"prettier --write ."},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain","pipeline","transform","backpressure","duplex","generator","async","object-mode","functional"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.*js"]},"devDependencies":{"@types/node":"^25.5.0","nano-benchmark":"^1.0.13","prettier":"^3.8.1","tape-six":"^1.7.12","tape-six-proc":"^1.2.7","typescript":"^5.9.3"},"gitHead":"4762c803c2998ec49fceffccbe039976d6dce234","_id":"stream-chain@3.5.1","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"shasum":"8fe7a491e2cd245d29c63e57a63950bb9fe0aef5","size":27074,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.5.1.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stream-chain_3.5.1_1774044680286_0.9933323977119259"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-20T22:11:20.429Z","publish_time":1774044680429,"_source_registry_name":"default","_cnpm_publish_time":1774044680429},"3.5.0":{"name":"stream-chain","version":"3.5.0","description":"Chain functions, generators, and streams into a pipeline with backpressure support.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","test:deno":"tape6-deno --flags FO","test:proc":"tape6-proc --flags FO","test:proc:bun":"bun run `tape6-proc --self` --flags FO","test:proc:deno":"deno run -A `tape6-proc --self` --flags FO -r -A","test:seq":"tape6-seq --flags FO","test:seq:bun":"bun run `tape6-seq --self` --flags FO","test:seq:deno":"deno run -A `tape6-seq --self` --flags FO","ts-check":"tsc --noEmit","ts-test":"tape6 --flags FO 'tests/test-*.*ts'","ts-test:bun":"tape6-bun --flags FO 'tests/test-*.*ts'","ts-test:deno":"tape6-deno --flags FO 'tests/test-*.*ts'","lint":"prettier --check .","lint:fix":"prettier --write ."},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain","pipeline","transform","backpressure","duplex","generator","async","object-mode","functional"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.*js"]},"devDependencies":{"@types/node":"^25.5.0","nano-benchmark":"^1.0.13","prettier":"^3.8.1","tape-six":"^1.7.12","tape-six-proc":"^1.2.7","typescript":"^5.9.3"},"gitHead":"3453031f9a715674a5801bec1a44d6dc77683a60","_id":"stream-chain@3.5.0","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"shasum":"4e2d17c85376b4eb5e1cb587fc9a0cab0e7f100b","size":25676,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.5.0.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stream-chain_3.5.0_1773810906410_0.5069504048676905"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-18T05:15:06.560Z","publish_time":1773810906560,"_source_registry_name":"default","_cnpm_publish_time":1773810906560},"3.4.1":{"name":"stream-chain","version":"3.4.1","description":"Chain functions as transform streams.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","test:deno":"tape6-deno --flags FO","test:proc":"tape6-proc --flags FO","test:proc:bun":"bun run `tape6-proc --self` --flags FO","test:proc:deno":"deno run -A `tape6-proc --self` --flags FO -r -A","test:seq":"tape6-seq --flags FO","test:seq:bun":"bun run `tape6-seq --self` --flags FO","test:seq:deno":"deno run -A `tape6-seq --self` --flags FO","ts-check":"tsc --noEmit","ts-test":"tape6 --flags FO 'tests/test-*.*ts'","ts-test:bun":"tape6-bun --flags FO 'tests/test-*.*ts'","ts-test:deno":"tape6-deno --flags FO 'tests/test-*.*ts'","lint":"prettier --check .","lint:fix":"prettier --write ."},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.*js"]},"devDependencies":{"@types/node":"^25.3.5","nano-benchmark":"^1.0.11","prettier":"^3.8.1","tape-six":"^1.7.10","tape-six-proc":"^1.2.5","typescript":"^5.9.3"},"gitHead":"a5282b82787114bf78c04fc7de83e4f1c43634f7","_id":"stream-chain@3.4.1","_nodeVersion":"25.8.0","_npmVersion":"11.11.0","dist":{"shasum":"4b1a3c48c8fe4bde9297b76d55ed7b34d0e8514e","size":25559,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.4.1.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stream-chain_3.4.1_1773112687282_0.5690026365523582"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-10T03:18:07.440Z","publish_time":1773112687440,"_source_registry_name":"default","_cnpm_publish_time":1773112687440},"3.4.0":{"name":"stream-chain","version":"3.4.0","description":"Chain functions as transform streams.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"debug":"node --inspect-brk tests/tests.js","test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","test:proc":"tape6-proc --flags FO","test:proc:bun":"bun run `npx tape6-proc --self` --flags FO","ts-check":"tsc --noEmit","ts-demo":"node --experimental-strip-types ts-test/demo.mts"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.mjs"]},"devDependencies":{"@types/node":"^22.10.7","nano-benchmark":"^1.0.4","tape-six":"^1.0.3","tape-six-proc":"^1.0.1","typescript":"^5.7.3"},"_id":"stream-chain@3.4.0","gitHead":"86fed5bacbd2591085a7f9546dd51e30bc923659","_nodeVersion":"23.6.0","_npmVersion":"10.9.2","dist":{"shasum":"574b82f493850aaf6920a6043a2c2a3da923898c","size":18855,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.4.0.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stream-chain_3.4.0_1737342909252_0.9567714657765933"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-20T03:15:09.434Z","publish_time":1737342909434,"_source_registry_name":"default","_cnpm_publish_time":1737342909434},"3.3.2":{"name":"stream-chain","version":"3.3.2","description":"Chain functions as transform streams.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"debug":"node --inspect-brk tests/tests.js","test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","test:proc":"tape6-proc --flags FO","test:proc:bun":"bun run `npx tape6-proc --self` --flags FO","ts-check":"tsc --noEmit","ts-demo":"node --experimental-strip-types ts-test/demo.mts"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.mjs"]},"devDependencies":{"@types/node":"^22.7.5","nano-benchmark":"^1.0.4","tape-six":"^1.0.2","tape-six-proc":"^1.0.0","typescript":"^5.6.3"},"_id":"stream-chain@3.3.2","gitHead":"7d0b6ce76efa979d6798b9d253abcf4d856c4cfe","_nodeVersion":"22.9.0","_npmVersion":"10.8.3","dist":{"shasum":"863590588993d01c5828a0390b14777a3e8beefa","size":18182,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.3.2.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_3.3.2_1728507078753_0.2141889289005321"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-10-09T20:51:18.929Z","publish_time":1728507078929,"_source_registry_name":"default","_cnpm_publish_time":1728507078929},"3.3.1":{"name":"stream-chain","version":"3.3.1","description":"Chain functions as transform streams.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"debug":"node --inspect-brk tests/tests.js","test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","ts-check":"tsc --noEmit","ts-demo":"node --experimental-strip-types ts-test/demo.mts"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"funding":"https://github.com/sponsors/uhop","license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.mjs"]},"devDependencies":{"@types/node":"^22.7.4","nano-benchmark":"^1.0.3","tape-six":"^0.12.3","typescript":"^5.6.2"},"_id":"stream-chain@3.3.1","gitHead":"cf735c9f88f59021a134aedbe07128c7ecc6c304","_nodeVersion":"22.9.0","_npmVersion":"10.8.3","dist":{"shasum":"752d02b42642d5a79ffff29a96477d200311d034","size":18133,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.3.1.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_3.3.1_1727720180826_0.602374695737508"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-09-30T18:16:21.136Z","publish_time":1727720181136,"_source_registry_name":"default","_cnpm_publish_time":1727720181136},"3.3.0":{"name":"stream-chain","version":"3.3.0","description":"Chain functions as transform streams.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"debug":"node --inspect-brk tests/tests.js","test":"tape6 --flags FO","test:bun":"tape6-bun --flags FO","ts-check":"tsc --noEmit","ts-demo":"node --experimental-strip-types ts-test/demo.mts"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.mjs"]},"devDependencies":{"@types/node":"^22.7.4","nano-benchmark":"^1.0.3","tape-six":"^0.12.2","typescript":"^5.6.2"},"_id":"stream-chain@3.3.0","gitHead":"19715dac14c3cc77541300ae894c9279f93be41b","_nodeVersion":"22.9.0","_npmVersion":"10.8.3","dist":{"shasum":"4abfc0477afcc1a8b08ab1277431897807abb9c6","size":18070,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.3.0.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_3.3.0_1727488114593_0.37855619471062374"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-09-28T01:48:34.780Z","publish_time":1727488114780,"_source_registry_name":"default","_cnpm_publish_time":1727488114780},"3.2.0":{"name":"stream-chain","version":"3.2.0","description":"Chain functions as transform streams.","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"debug":"node --inspect-brk tests/tests.js","test":"tape6 --flags FO","ts-check":"tsc --noEmit","ts-demo":"node --experimental-strip-types ts-test/demo.mts"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.mjs"]},"devDependencies":{"@types/node":"^22.5.5","tape-six":"^0.9.6","typescript":"^5.6.2"},"_id":"stream-chain@3.2.0","gitHead":"57df5c667a27fa7d22f295c15c0d43f924303dd5","_nodeVersion":"22.8.0","_npmVersion":"10.8.2","dist":{"shasum":"cd2d7c0bd114e4bb5f88dfd7e14cc49c167d6612","size":17853,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.2.0.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_3.2.0_1726634063200_0.7321674625950831"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-09-18T04:34:23.395Z","publish_time":1726634063395,"_source_registry_name":"default","_cnpm_publish_time":1726634063395},"3.1.0":{"name":"stream-chain","version":"3.1.0","description":"Chain functions as transform streams.","type":"commonjs","main":"src/index.js","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"debug":"node --inspect-brk tests/tests.js","test":"tape6 --flags FO"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.mjs"]},"devDependencies":{"tape-six":"^0.9.6"},"_id":"stream-chain@3.1.0","gitHead":"d1eba8d3d01f74688b948c6f2ab912107fedf0d2","_nodeVersion":"22.7.0","_npmVersion":"10.8.2","dist":{"shasum":"af55d5f87735adb2db182e65a3047f9ad07c9dbd","size":11222,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.1.0.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_3.1.0_1724537322236_0.9943068249792357"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-08-24T22:08:42.355Z","publish_time":1724537322355,"_source_registry_name":"default","_cnpm_publish_time":1724537322355},"3.0.1":{"name":"stream-chain","version":"3.0.1","description":"Chain functions as transform streams.","type":"commonjs","main":"src/index.js","exports":{".":"./src/index.js","./*":"./src/*"},"scripts":{"debug":"node --inspect-brk tests/tests.js","test":"tape6 --flags FO"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"https://www.lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","tape6":{"tests":["/tests/test-*.mjs"]},"devDependencies":{"tape-six":"^0.9.6"},"_id":"stream-chain@3.0.1","gitHead":"d2bbe9ddeb05da44de08ba8dfd5d1be098d4bc6c","_nodeVersion":"22.6.0","_npmVersion":"10.8.2","dist":{"shasum":"389a4348129d818834097fe9b6e38e502cefe2cc","size":10937,"noattachment":false,"key":"/stream-chain/-/stream-chain-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-3.0.1.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_3.0.1_1724217552081_0.38655350825560264"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-08-21T05:19:12.261Z","publish_time":1724217552261,"_source_registry_name":"default","_cnpm_publish_time":1724217552261},"2.2.5":{"name":"stream-chain","version":"2.2.5","description":"Chain functions as transform streams.","main":"index.js","scripts":{"debug":"node --inspect-brk tests/tests.js","test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"e0f515d1a306ce037e6b0f3aca9b21e89a08ff69","_id":"stream-chain@2.2.5","_nodeVersion":"17.5.0","_npmVersion":"8.4.1","dist":{"shasum":"b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09","size":9889,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.2.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.2.5.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.2.5_1645141494334_0.39002312913539416"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-17T23:44:57.498Z","publish_time":1645141494456,"_cnpm_publish_time":1645141494456},"2.2.4":{"name":"stream-chain","version":"2.2.4","description":"Chain functions as transform streams.","main":"index.js","scripts":{"debug":"node --inspect-brk tests/tests.js","test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"459f5a1708c138b6e0abaae4cf103c3488e1e78e","_id":"stream-chain@2.2.4","_nodeVersion":"15.5.0","_npmVersion":"7.3.0","dist":{"shasum":"2e5e9858e00d25ebaf7e4339e8328ddcab5facad","size":9738,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.2.4.tgz"},"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.2.4_1609297963601_0.20668493742214733"},"_hasShrinkwrap":false,"publish_time":1609297963769,"_cnpm_publish_time":1609297963769},"2.2.3":{"name":"stream-chain","version":"2.2.3","description":"Chain functions as transform streams.","main":"index.js","scripts":{"debug":"node --inspect-brk tests/tests.js","test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"ba8008379f1877ead48e2b61115eab71a8e475ff","_id":"stream-chain@2.2.3","_nodeVersion":"14.5.0","_npmVersion":"6.14.6","dist":{"shasum":"44cfa21ab673e53a3f1691b3d1665c3aceb1983b","size":9681,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.2.3.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.2.3_1594399862218_0.14098905279717133"},"_hasShrinkwrap":false,"publish_time":1594399862364,"_cnpm_publish_time":1594399862364},"2.2.2":{"name":"stream-chain","version":"2.2.2","description":"Chain functions as transform streams.","main":"index.js","scripts":{"debug":"node --inspect-brk tests/tests.js","test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"8dbde3d78efe6ad4e655a4825998d0bd4f037ff7","_id":"stream-chain@2.2.2","_nodeVersion":"14.5.0","_npmVersion":"6.14.6","dist":{"shasum":"899877f19a86c535681aebc36d6c31c19d8e5401","size":13618,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.2.2.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.2.2_1594331317745_0.13889252985893985"},"_hasShrinkwrap":false,"publish_time":1594331317878,"_cnpm_publish_time":1594331317878},"2.2.1":{"name":"stream-chain","version":"2.2.1","description":"Chain functions as transform streams.","main":"index.js","scripts":{"debug":"node --inspect-brk tests/tests.js","test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"e0a041ec0b2927e724fa536574fe389f9848c8c9","_id":"stream-chain@2.2.1","_nodeVersion":"12.11.1","_npmVersion":"6.11.3","dist":{"shasum":"e6efdee89eef81481d888181ca175f3abe03f396","size":13331,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.2.1.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.2.1_1570422893903_0.5877819539391371"},"_hasShrinkwrap":false,"publish_time":1570422894021,"_cnpm_publish_time":1570422894021},"2.1.0":{"name":"stream-chain","version":"2.1.0","description":"Chain functions as transform streams.","main":"index.js","scripts":{"debug":"node --inspect-brk tests/tests.js","test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"bd526243a613e570141d1074ec77c31b5f12c6ca","_id":"stream-chain@2.1.0","_npmVersion":"6.4.1","_nodeVersion":"11.1.0","_npmUser":{"name":"elazutkin","email":"eugene.lazutkin@gmail.com"},"dist":{"shasum":"a058a7104d7261a71bf7eb4c5f496f13dc665320","size":7810,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.1.0.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.1.0_1544231134034_0.8636151165909087"},"_hasShrinkwrap":false,"publish_time":1544231134233,"_cnpm_publish_time":1544231134233},"2.0.3":{"name":"stream-chain","version":"2.0.3","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"bf8547cc254acbd864d3bc648564241cbd8dfe61","_id":"stream-chain@2.0.3","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"9155237a719c8bb2de883c2d1af66d1546f910c9","size":7092,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.0.3.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.0.3_1530064043222_0.3340757621438677"},"_hasShrinkwrap":false,"publish_time":1530064043303,"_cnpm_publish_time":1530064043303},"2.0.2":{"name":"stream-chain","version":"2.0.2","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"6afa1fd055aba1a58ba76b859b0eb1da66e45bdf","_id":"stream-chain@2.0.2","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"d99b560ad8b26879325fa5ed5f28bd62a3bab6f9","size":6992,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.0.2.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.0.2_1528684530307_0.16677867452698525"},"_hasShrinkwrap":false,"publish_time":1528684530366,"_cnpm_publish_time":1528684530366},"2.0.1":{"name":"stream-chain","version":"2.0.1","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"de39da88274d79f662e6affcdfbc634a32cc7c76","_id":"stream-chain@2.0.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"26c92892011aa165828c0bb8575f8a6cad79addb","size":6906,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.0.1.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.0.1_1528083214724_0.5615387361596258"},"_hasShrinkwrap":false,"publish_time":1528083214905,"_cnpm_publish_time":1528083214905},"2.0.0":{"name":"stream-chain","version":"2.0.0","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"6c05c1d88da3b4a7163527b0714b2ed64f4e3b15","_id":"stream-chain@2.0.0","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"c0f3281c20eb53312b9a66f248bf4c3d47b89f5d","size":6876,"noattachment":false,"key":"/stream-chain/-/stream-chain-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-2.0.0.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_2.0.0_1528082540771_0.042397703692743205"},"_hasShrinkwrap":false,"publish_time":1528082540851,"_cnpm_publish_time":1528082540851},"1.0.3":{"name":"stream-chain","version":"1.0.3","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"64289ab75a09459d5df03eb8b5294e8d00b43713","_id":"stream-chain@1.0.3","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"c9a4c7900b000b171973fe8a4c5b3ef40bfb991c","size":5582,"noattachment":false,"key":"/stream-chain/-/stream-chain-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-1.0.3.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_1.0.3_1527977908747_0.6735283865827881"},"_hasShrinkwrap":false,"publish_time":1527977908808,"_cnpm_publish_time":1527977908808},"1.0.2":{"name":"stream-chain","version":"1.0.2","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"95bb678bca8b184fc85220f450ca2bd8365060f3","_id":"stream-chain@1.0.2","_npmVersion":"6.0.1","_nodeVersion":"10.1.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"dc57da5dfdd78b2c886cf5f6f36973aed0fc6940","size":4811,"noattachment":false,"key":"/stream-chain/-/stream-chain-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-1.0.2.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_1.0.2_1526866932166_0.540148034414782"},"_hasShrinkwrap":false,"publish_time":1526866932267,"_cnpm_publish_time":1526866932267},"1.0.1":{"name":"stream-chain","version":"1.0.1","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"ae418d3a56a533ca2aeb41f31a5b62778dc9a555","_id":"stream-chain@1.0.1","_npmVersion":"6.0.1","_nodeVersion":"10.1.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"0c19ddfc7fef66a7fe4487653cac066df16aa14c","size":4534,"noattachment":false,"key":"/stream-chain/-/stream-chain-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-1.0.1.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_1.0.1_1526865866896_0.10205932081356317"},"_hasShrinkwrap":false,"publish_time":1526865866949,"_cnpm_publish_time":1526865866949},"1.0.0":{"name":"stream-chain","version":"1.0.0","description":"Chain functions as transform streams.","main":"main.js","scripts":{"test":"node tests/tests.js"},"repository":{"type":"git","url":"git+https://github.com/uhop/stream-chain.git"},"keywords":["stream","chain"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"homepage":"https://github.com/uhop/stream-chain#readme","devDependencies":{"heya-unit":"^0.3.0"},"gitHead":"590108e889b9a3bb05fc653c4e9186c5a5b3205b","_id":"stream-chain@1.0.0","_npmVersion":"6.0.1","_nodeVersion":"10.1.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"dist":{"shasum":"496510f7eb71abd76646aa5148f043d6fd73f87d","size":4523,"noattachment":false,"key":"/stream-chain/-/stream-chain-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-chain/download/stream-chain-1.0.0.tgz"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-chain_1.0.0_1526865603512_0.1256561593206802"},"_hasShrinkwrap":false,"publish_time":1526865603625,"_cnpm_publish_time":1526865603625}},"readme":"# stream-chain [![NPM version][npm-img]][npm-url]\n\n[npm-img]: https://img.shields.io/npm/v/stream-chain.svg\n[npm-url]: https://npmjs.org/package/stream-chain\n\n`stream-chain` creates a chain of streams out of regular functions, asynchronous functions, generator functions, existing Node streams, and Web streams, while properly handling [backpressure](https://nodejs.org/en/learn/modules/backpressuring-in-streams). The resulting chain is represented as a [Duplex](https://nodejs.org/api/stream.html#stream_class_stream_duplex) stream, which can be combined with other streams the usual way. It eliminates boilerplate helping to concentrate on functionality without losing performance, making it easy to build object mode data processing pipelines.\n\nOriginally `stream-chain` was used internally with [stream-fork](https://www.npmjs.com/package/stream-fork) and [stream-json](https://www.npmjs.com/package/stream-json) to create flexible data processing pipelines.\n\n`stream-chain` is a lightweight, no-dependencies micro-package with TS typings. It is distributed under New BSD license.\n\n## Intro\n\n```js\nimport chain from 'stream-chain';\n// or: const chain = require('stream-chain');\n\nimport fs from 'node:fs';\nimport zlib from 'node:zlib';\nimport {Transform} from 'node:stream';\n\n// this chain object will work on a stream of numbers\nconst pipeline = chain([\n  // transforms a value\n  x => x * x,\n\n  // returns several values\n  x => chain.many([x - 1, x, x + 1]),\n\n  // waits for an asynchronous operation\n  async x => await getTotalFromDatabaseByKey(x),\n\n  // returns multiple values with a generator\n  function* (x) {\n    for (let i = x; i > 0; --i) {\n      yield i;\n    }\n    return 0;\n  },\n\n  // filters out even values\n  x => (x % 2 ? x : null),\n\n  // uses an arbitrary transform stream\n  new Transform({\n    objectMode: true,\n    transform(x, _, callback) {\n      callback(null, x + 1);\n    }\n  }),\n\n  // transform to strings\n  x => '' + x,\n\n  // compress\n  zlib.createGzip()\n]);\n\n// the chain object is a regular stream\n// it can be used with normal stream methods\n\n// log errors\npipeline.on('error', error => console.log(error));\n\n// use the chain object, and save the result to a file\ndataSource.pipe(pipeline).pipe(fs.createWriteStream('output.txt.gz'));\n```\n\nMaking processing pipelines appears to be easy: just chain functions one after another, and we are done. Real life pipelines filter objects out and/or produce more objects out of a few ones. On top of that we have to deal with asynchronous operations, while processing or producing data: networking, databases, files, user responses, and so on. Unequal number of values per stage, and unequal throughput of stages introduced problems like [backpressure](https://nodejs.org/en/learn/modules/backpressuring-in-streams), which requires algorithms implemented by [streams](https://nodejs.org/api/stream.html).\n\nWhile a lot of API improvements were made to make streams easy to use, in reality, a lot of boilerplate is required when creating a pipeline. `stream-chain` eliminates most of it.\n\n## Installation\n\n```bash\nnpm i --save stream-chain\n# or: yarn add stream-chain\n```\n\n## Documentation\n\nAll documentation can be found in the [wiki](https://github.com/uhop/stream-chain/wiki). It documents in detail the main function and various utilities and helpers that can simplify stream programming. Additionally it includes a support for JSONL (line-separated JSON files).\n\nAn object that is returned by `chain()` is based on [Duplex](https://nodejs.org/api/stream.html#stream_class_stream_duplex). It chains its dependents in a single pipeline optionally binding `error` events.\n\nMany details about this package can be discovered by looking at test files located in `tests/` and in the source code (`src/`).\n\n### `chain(fns[, options])`\n\nThe factory function accepts the following arguments:\n\n- `fns` is an array of functions, arrays or stream instances.\n  - If a value is a function, it is a candidate for a [Transform](https://nodejs.org/api/stream.html#stream_class_stream_transform) stream (see below for more details), which calls this function with two parameters: `chunk` (an object), and an optional `encoding`. See [Node's documentation](https://nodejs.org/api/stream.html#stream_transform_transform_chunk_encoding_callback) for more details on those parameters.\n    - If it is a regular function, it can return:\n      - Regular value:\n        - If it is `undefined` or `null`, no value shall be passed.\n        - Otherwise, the value will be passed to the next stream.\n\n        ```js\n        // produces no values:\n        x => null;\n        x => undefined;\n        // produces one value:\n        x => x;\n        ```\n\n      - Special value:\n        - If it is an instance of [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) or \"thenable\" (an object with a method called `then()`), it will be waited for. Its result should be a regular value.\n\n          ```js\n          // delays by 0.5s:\n          x => new Promise(resolve => setTimeout(() => resolve(x), 500));\n          ```\n\n        - If it is an instance of a generator or \"nextable\" (an object with a method called `next()`), it will be iterated according to the [generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator) protocol. The results should be regular values.\n\n          ```js\n          // produces multiple values:\n          class Nextable {\n            constructor(x) {\n              this.x = x;\n              this.i = -1;\n            }\n            next() {\n              return {\n                done: this.i > 1,\n                value: this.x + this.i++\n              };\n            }\n          }\n          x => new Nextable(x);\n          ```\n\n          `next()` can return a `Promise` according to the [asynchronous generator](https://zaiste.net/nodejs_10_asynchronous_iteration_async_generators/) protocol.\n\n      - Any thrown exception will be caught and passed to a callback function effectively generating an error event.\n\n        ```js\n        // fails\n        x => {\n          throw new Error('Bad!');\n        };\n        ```\n\n  - If it is an asynchronous function, it can return a regular value.\n    - In essence, it is covered under \"special values\" as a function that returns a promise.\n\n    ```js\n    // delays by 0.5s:\n    async x => {\n      await new Promise(resolve => setTimeout(() => resolve(), 500));\n      return x;\n    };\n    ```\n\n  - If it is a generator function, each yield should produce a regular value.\n    - In essence, it is covered under \"special values\" as a function that returns a generator object.\n\n    ```js\n    // produces multiple values:\n    function* (x) {\n      for (let i = -1; i <= 1; ++i) {\n        if (i) yield x + i;\n      }\n      return x;\n    }\n    ```\n\n  - If it is an asynchronous generator function, each yield should produce a regular value.\n    - In essence, it is covered under \"special values\" as a function that returns a generator object.\n\n    ```js\n    // produces multiple values:\n    async function* (x) {\n      for (let i = -1; i <= 1; ++i) {\n        if (i) {\n          await new Promise(resolve => setTimeout(() => resolve(), 50));\n          yield x + i;\n        }\n      }\n      return x;\n    }\n    ```\n\n  - If a value is an array, its items are assumed to be functions, streams or other such arrays. The array is flattened, all individual items are included in a chain sequentially.\n    - It is a provision to create lightweight bundles from pipeline items.\n  - If a value is a valid stream, it is included as is in the pipeline.\n    - [Transform](https://nodejs.org/api/stream.html#stream_class_stream_transform).\n    - [Duplex](https://nodejs.org/api/stream.html#stream_class_stream_duplex).\n    - The very first stream can be [Readable](https://nodejs.org/api/stream.html#stream_class_stream_readable).\n      - In this case the pipeline ignores all possible writes to the front, and ends when the first stream ends.\n    - The very last stream can be [Writable](https://nodejs.org/api/stream.html#stream_class_stream_writable).\n      - In this case the pipeline does not produce any output, and finishes when the last stream finishes.\n      - Because `'data'` event is not used in this case, the instance resumes itself automatically. Read about it in Node's documentation:\n        - [Two reading modes](https://nodejs.org/api/stream.html#two-reading-modes).\n        - [Three states](https://nodejs.org/api/stream.html#three-states).\n        - [readable.resume()](https://nodejs.org/api/stream.html#stream_readable_resume).\n  - _(Since 3.1.0)_ If a value is a web stream object (like `ReadableStream` or `WritableStream`), it is adapted to a corresponding Node stream and included in the pipeline.\n    - Note that the support of web streams is still experimental in Node.\n\n- `options` is an optional object detailed in the [Node's documentation](https://nodejs.org/api/stream.html#stream_new_stream_duplex_options).\n  - The default options is this object:\n\n    ```js\n    {writableObjectMode: true, readableObjectMode: true}\n    ```\n\n    If `options` is specified it is copied over the default options.\n\n  - Always make sure that `writableObjectMode` is the same as the corresponding object mode of the first stream, and `readableObjectMode` is the same as the corresponding object mode of the last stream.\n    - Eventually both these modes can be deduced, but Node does not define the standard way to determine it, so currently it cannot be done reliably.\n  - Additionally the following custom properties are recognized:\n    - `skipEvents` is an optional boolean flag. If it is falsy (the default), `'error'` events from all streams are forwarded to the created instance. If it is truthy, no event forwarding is made. A user can always do so externally or in a constructor of derived classes.\n    - `noGrouping` is an optional boolean flag. If it is falsy (the default), all subsequent functions are grouped together using the `gen()` utility for improved performance. If it is specified and truthy, all functions will be wrapped as streams individually. This mode is compatible with how the 2.x version works.\n\nAn instance can be used to attach handlers for stream events.\n\n```js\nconst pipeline = chain([x => x * x, x => [x - 1, x, x + 1]]);\npipeline.on('error', error => console.error(error));\ndataSource.pipe(pipeline);\n```\n\n## License\n\nBSD-3-Clause\n\n## Release History\n\n- 3.6.1 _Technical release: updated deps._\n- 3.6.0 _Performance: sync-first `fun()` (~2.5× faster for sync pipelines, now returns `Many | Promise<Many>`). Sync fast path in `gen()` (~1.6× faster). Documented `null`/`undefined` handling differences. Wiki: renamed V2 files for Windows compatibility._\n- 3.5.1 _Fixed `finish` event not firing after `stop`. Web stream detection uses duck-typing instead of `instanceof` (supports non-standard web streams) (thx [Alex Yang](https://github.com/himself65)). Performance: unified fast path in `asStream()`._\n- 3.5.0 _Variadic `combineMany()` and `combineManyMut()`. Fixed `readableFrom()` unhandled rejection bug. Improved TS typings, docs, and `package.json` metadata._\n- 3.4.1 _Improved TS typings, added TypeScript typing tests, cleaned up dead code._\n- 3.4.0 _Added `Many`-related helpers and `chainUnchecked()` for TS._\n- 3.3.2 _Technical release: updated deps, more tests._\n- 3.3.1 _Minor enhancement: more flexible split on lines._\n- 3.3.0 _Added a way to ignore JSON parsing errors silently._\n- 3.2.0 _Added TS typings and `clearFunctionList()`._\n- 3.1.0 _Added a seamless support for web streams._\n- 3.0.1 _First release of 3.0. See [wiki](https://github.com/uhop/stream-chain/wiki) for details._\n- 3.0.0 _New major version. Unreleased._\n- 2.2.5 _Relaxed the definition of a stream (thx [Rich Hodgkins](https://github.com/rhodgkins))._\n- 2.2.4 _Bugfix: wrong `const`-ness in the async generator branch (thx [Patrick Pang](https://github.com/patrickpang))._\n- 2.2.3 _Technical release. No need to upgrade._\n- 2.2.2 _Technical release. No need to upgrade._\n- 2.2.1 _Technical release: new symbols namespace, explicit license (thx [Keen Yee Liau](https://github.com/kyliau)), added Greenkeeper._\n- 2.2.0 _Added utilities: `take`, `takeWhile`, `skip`, `skipWhile`, `fold`, `scan`, `Reduce`, `comp`._\n- 2.1.0 _Added simple transducers, dropped Node 6._\n- 2.0.3 _Added TypeScript typings and the badge._\n- 2.0.2 _Workaround for Node 6: use `'finish'` event instead of `_final()`._\n- 2.0.1 _Improved documentation._\n- 2.0.0 _Upgraded to use Duplex instead of EventEmitter as the base._\n- 1.0.3 _Improved documentation._\n- 1.0.2 _Better README._\n- 1.0.1 _Fixed the README._\n- 1.0.0 _The initial release._\n","_attachments":{},"homepage":"https://github.com/uhop/stream-chain#readme","bugs":{"url":"https://github.com/uhop/stream-chain/issues"},"license":"BSD-3-Clause"}