{"_id":"process-streams","_rev":"37-fe8542637009199a434a79d858e78469","name":"process-streams","dist-tags":{"latest":"1.0.3"},"versions":{"0.0.1":{"name":"process-streams","version":"0.0.1","_id":"process-streams@0.0.1","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"dist":{"shasum":"7004f484d7cc487ecdd5db5d209f60738cb13aea","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.0.1.tgz","integrity":"sha512-9MwbwuesjknvE+HBnk/I+g+6k79dr+dkn0inne+BsPToUQEDnt/zK0KUfURwT8wcOCJyMngR34wsdb93UqMRGw==","signatures":[{"sig":"MEYCIQCDB+4kohUNZYfeIRL/Xb53UbENrbLhNHb/HRoYzFu+5QIhAImlaDzA/1AJ6S/jl4FFUJn3/PGT6LhiuTfCTrqHkspQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"7004f484d7cc487ecdd5db5d209f60738cb13aea","gitHead":"bdc27c26beca313b61d4e00d58f3835ff3274948","scripts":{},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"_npmVersion":"1.4.28","description":"Usage","dependencies":{"duplexer":"^0.1.1","tempfile":"^1.1.0","duplexer2":"0.0.2","duplex-combination":"^1.2.0"},"directories":{}},"0.0.2":{"name":"process-streams","version":"0.0.2","_id":"process-streams@0.0.2","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"dist":{"shasum":"095712bf0964ee9cdc5f2f95a8b46af6ec61be75","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.0.2.tgz","integrity":"sha512-eKq7IQhwaBhYEhbMC8aYF241Oo/+qLRCqirWZhF1FMiCQ5NJORSYAR3tjX755DGZTloNX5U3dvpjXZlf3D74gA==","signatures":[{"sig":"MEYCIQCpTowQlOMF3KAEe8Ld1nXgyeKcVhKqa6DMbHLf36hiXAIhAORz/oTCDV90OCD77e5D+NGcAGpas47gfU1YjxFfS+qE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"095712bf0964ee9cdc5f2f95a8b46af6ec61be75","gitHead":"403bac88246d286a3e72e48027b187b5a6ecb422","scripts":{},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"_npmVersion":"1.4.28","description":"Usage","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2"},"directories":{}},"0.0.3":{"name":"process-streams","version":"0.0.3","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.0.3","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"51da8e5a080a31f3764791ec26f788ad3ac9e2b2","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.0.3.tgz","integrity":"sha512-0FAhk0y9da5H186cMZXKqP84iBTCJXDYL1iMR881ye3eDd2NZSawBmQ5ukQqs5FztiUTBB45f1sJ2rQcjsCO2g==","signatures":[{"sig":"MEUCIQDDL7iGfNSd+H+iKy/DRs2feivgFbSWtLXNf/uEeuRvpQIgLtsi1FlSpgcMGb/qnUlpFNG2M7kwIdPkxfYzK0d/I0s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","_from":".","_shasum":"51da8e5a080a31f3764791ec26f788ad3ac9e2b2","gitHead":"2b0870f3a3e8fd9b7f6276a4d092a06472725586","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2"},"devDependencies":{"nodeunit":"^0.9.0"},"directories":{}},"0.0.4":{"name":"process-streams","version":"0.0.4","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.0.4","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-stream","bugs":{"url":"https://github.com/nknapp/process-stream/issues"},"dist":{"shasum":"947d24ad0719cc4b25bc2b4110c2bb0bbe2c2840","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.0.4.tgz","integrity":"sha512-0dtr635Kn0XTjr5HlVVIsdoM9HNDRPQYgKFpWcgFtBnRcGBM/iFRStCl+/8itD10q0QIgm/6MHH7XLLMl3++Iw==","signatures":[{"sig":"MEYCIQCR4LrxKTEySK0r7yIU18M88CfM9G0w54OSjj7bUiko5gIhANb+THMIPu86Cv8bQzZgNnIQWrzczQjFfbOwOhd1Gl2q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/index.js","_from":".","_shasum":"947d24ad0719cc4b25bc2b4110c2bb0bbe2c2840","gitHead":"0871f67506dca189622a74624f52e4e81f2bc469","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-stream.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2"},"devDependencies":{"nodeunit":"^0.9.0"},"directories":{}},"0.1.0":{"name":"process-streams","version":"0.1.0","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.1.0","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"e0e82fedc0c8a9c8e57af67ea9dd8a2b425c1161","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.1.0.tgz","integrity":"sha512-DGSf1jhUt87dOy6wG1NjC1hw0Hc6wSgJut1al0+M7fZDyl5XVCI+QjVcA1O/Z4FG/4sLgTKAnj+z0OPiaLoRoQ==","signatures":[{"sig":"MEQCIF2QJ2pE3apKOGqvJYsqMI38jYhgJ58ZWjFSB3XistVPAiA0ZrOko4fTumUvL7xdORQWgHI27FrE6p6LZXc44vfxrg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"e0e82fedc0c8a9c8e57af67ea9dd8a2b425c1161","gitHead":"ee9715eb621eae5c66a062614395f3e3029b5ff0","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.2.0":{"name":"process-streams","version":"0.2.0","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.2.0","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"1cfec1be9fe7aead2d923d7ed19c83b3fbd8bd00","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.2.0.tgz","integrity":"sha512-EUGVYs8AHNG8Tj5aDhPDQXtii78QmsRP/3372dsEiH7W9jQ3ttXDIQVn8h+OVsek3/8zwmSu/VOOC50ecLge5Q==","signatures":[{"sig":"MEUCIHRCDbPV58NQBu5MgYQET0UqcybI4nMqJfx0tAWxCq4QAiEA2uulTq2YRlBISh/npv4onB28u5YxM+e8MLThf6CbvPw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"1cfec1be9fe7aead2d923d7ed19c83b3fbd8bd00","gitHead":"7ff67642308fee29fb8b11d9ec5769883a68344e","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.3.1":{"name":"process-streams","version":"0.3.1","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.3.1","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"110384c8b6f6b29165f9c4c0d04ef114aa1d4851","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.3.1.tgz","integrity":"sha512-+ZQ9BIHyqrt/kVhe3Y3RHrdG4e9HRHbjFMEF2b0antoCCQOE3WxP0/VBH9S5rvak/z7uVlcWeXOfXkRfs2toIA==","signatures":[{"sig":"MEQCIH8hkYtQyXx3wgOQMCaNw8ukCWQ+b5lnZC3x2LDFVe2pAiAOULEJHmAFjdPhVk/LVK04iaNwO0hiwQGDfbhpYIEAEA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"110384c8b6f6b29165f9c4c0d04ef114aa1d4851","gitHead":"9c76973643c5b66be73d408799659c5986413d25","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.4.0":{"name":"process-streams","version":"0.4.0","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.4.0","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"52947e692ca1a9577b96ea6d835d4dc86c4d8e2d","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.4.0.tgz","integrity":"sha512-3u3Qd5Ib272OEt9Oc0RvrZkjzd8o5qprbLlwNbZ6q3k6kHfGJtG6ERB/PjByvYMN65Pgty87ub4Imz1E1ljYHw==","signatures":[{"sig":"MEYCIQCvkRGiMjRBJ8VBcEMSGJyqsRXeF+cQss4zGdtjFoNjyAIhAJ4INbf5/v5hrYAxb7qu8gVw28SPctMTbfqegdImA4UI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"52947e692ca1a9577b96ea6d835d4dc86c4d8e2d","gitHead":"30c46b2987c1a148c7153b41d0330387a7ad367f","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.4.1":{"name":"process-streams","version":"0.4.1","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.4.1","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"eb8cf5216cfca09163d14fb3f3241a59e7929b94","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.4.1.tgz","integrity":"sha512-Syc89WSxU0SmWy6ZZhTWscI/r0PXkMm5mHFd3hKGJF1JsXC9zs9uMBLt1M4bbkLTEJMesqRLfPou0Zp5EUoXYQ==","signatures":[{"sig":"MEQCIBuq4ukUcjqc4cHczvA+DBGp8gu6pE+ZE4OXmhb/OFk2AiBVpWkAeL1fctyP9JyVPGUDw7irvWhqvqTUan4+dQqPig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"eb8cf5216cfca09163d14fb3f3241a59e7929b94","gitHead":"1660664342d47265d61a7aeee99da10153ecd461","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.4.2":{"name":"process-streams","version":"0.4.2","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.4.2","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"95b965879e1983921597ef59c6dfcd874b59a381","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.4.2.tgz","integrity":"sha512-6pxoidAzO5IUkkFU9dKcRg6XYCnbmeISB3QAQ8KNjK7o7aE2VbF/rLKn3j8oA+3PSWrpMa1EAkmHUMab2MtMUA==","signatures":[{"sig":"MEUCIQC/xqkKPaSkSwSEmaUnBuvLIxN1P3mtJSOeBeaHdtqefQIgGsJ5bltuo0M+dgL1XrzCjnKHZES/JZwDLsAdWOKENHE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"95b965879e1983921597ef59c6dfcd874b59a381","gitHead":"b6cede9447c3c8df669d4800163f2fd2fb74a195","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"request":"^2.51.0","nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.4.3":{"name":"process-streams","version":"0.4.3","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"_id":"process-streams@0.4.3","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"36b92d1b5f06ffa903b3f8a836b6e76ad6737bbd","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.4.3.tgz","integrity":"sha512-aMn5t02CN554IZR4yPpxi66Fn1JVfs1+eV349AsIhdPiF9sft6nv5hHY1dQKp0C6uGAKtw8BaUdN1odLXQ4uQQ==","signatures":[{"sig":"MEUCIExBf6w83KzA/MQU9EF6dEV97XXNuUqorcrgf44vIyI0AiEA3qAuzwwbCVuEGu+IXBvTeIhASkQBHZiyd5naYCSnEbQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"36b92d1b5f06ffa903b3f8a836b6e76ad6737bbd","gitHead":"51d94e49c923a8bfdaa4ee1182670908e356ceca","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"request":"^2.51.0","nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.4.4":{"name":"process-streams","version":"0.4.4","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"license":"MIT","_id":"process-streams@0.4.4","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"3461d2fa48a8eb9f88b4c763d78c4dc372bc7d71","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.4.4.tgz","integrity":"sha512-4+kiZOYi179ohMPzE55NAx7FXMWaBg9PdIZpr3DK0Wefkc3LQYgC2CWZ6P04jzcupcrDnFqybwOznEfkXiH2ZA==","signatures":[{"sig":"MEUCIQCG3oSmAtsTV1r+ye3s5NuR0mSYQBFpsIxjP8zYLGkvKQIgAgOcvU8sL649cyumaNmTTsiAiPiR7tbe8JfBlUXv33s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"3461d2fa48a8eb9f88b4c763d78c4dc372bc7d71","gitHead":"6f9154f59dfbdddae403c71a298d1f9021a1e669","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"1.4.28","description":"wrapper for piping data into and out of child processes","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"request":"^2.51.0","nodeunit":"^0.9.0","long-stack-traces":"^0.1.2"},"directories":{}},"0.4.5":{"name":"process-streams","version":"0.4.5","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"license":"MIT","_id":"process-streams@0.4.5","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"48326d4b3112d692eba7dc5d558352d13c7b1403","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-0.4.5.tgz","integrity":"sha512-m7lHm5AKPX1N4h9YnoeYVCjWUagHlQrG+iCnTK/nfqLbIK1pOvkaPs1ahBM5lO2LnyyRaMOMBHdR3IZBP6A9Xw==","signatures":[{"sig":"MEYCIQDJhwY9N+7pqYEL17HL/foKlqO5EHpD3T1yZ6ZJiU5/uQIhALgS7M7m0fe7801sE+VRlJ99YlpS9/mlV5pFoitkjBhW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"48326d4b3112d692eba7dc5d558352d13c7b1403","gitHead":"a911ac7b8ed02e2bfb38ab32ee3ac199b8934931","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"2.4.1","description":"Wrapper for piping data into and out of child processes","_nodeVersion":"0.10.33","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"tar":"^1.0.3","request":"^2.51.0","nodeunit":"^0.9.0","event-stream":"^3.2.2","video-testdata":"^1","long-stack-traces":"^0.1.2"},"directories":{}},"1.0.0":{"name":"process-streams","version":"1.0.0","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"license":"MIT","_id":"process-streams@1.0.0","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"8eb9e1be02a10246d2b8a2e91abec0deb2bb6da7","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-1.0.0.tgz","integrity":"sha512-+G9dfTdwJhWcv7ZMYqJrarnH1SQ0nXMQA/xUUjRfgbBGcDVUIldlecFOyXrNsTOTXe+UgGP8dnmu4F6MGAlJKA==","signatures":[{"sig":"MEUCIElQbC6v57aA8x8HdLHppOpef7eEKuWpvVEnGc2uH2J0AiEAu3pcOWysCgiW8ZaIsN2XfN+uvNgdMs6TjwGXvr9LBa8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"8eb9e1be02a10246d2b8a2e91abec0deb2bb6da7","gitHead":"762f5f8ab35390ce00dc27a2fa8837d05cf43865","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"2.4.1","description":"Wrapper for piping data into and out of child processes","_nodeVersion":"0.10.33","dependencies":{"tempfile":"^1.1.0","duplexer2":"0.0.2","quotemeta":"0.0.0"},"devDependencies":{"tar":"^1.0.3","request":"^2.51.0","nodeunit":"^0.9.0","event-stream":"^3.2.2","video-testdata":"^1","long-stack-traces":"^0.1.2"},"directories":{}},"1.0.1":{"name":"process-streams","version":"1.0.1","author":{"url":"http://www.knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"license":"MIT","_id":"process-streams@1.0.1","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"http://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"e22c2aadbf788ef0c5754ea5e057e985c87dd691","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-1.0.1.tgz","integrity":"sha512-Z+FHhxiBhiQ4t/xTY3Bo2SxZG/CehflyckFsQirAXFRf/BfVnDePzpo58eq9JI4XfFu1RnX5C5EAE6V4sce1+g==","signatures":[{"sig":"MEQCIBGFgrxNN1OullNkvzNChmtNFkDHXvgXYFZAhCfSxm7VAiAW6hyBt1T7b5zdYgyGWuU+7A3eEDAHcrN16B7qzLxFuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"src/process-streams.js","_from":".","_shasum":"e22c2aadbf788ef0c5754ea5e057e985c87dd691","gitHead":"5b97df64c432aa5b7a88e596be893985e34c8f25","scripts":{"test":"./node_modules/nodeunit/bin/nodeunit testsrc/"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"2.5.1","description":"Wrapper for piping data into and out of child processes","_nodeVersion":"0.12.0","dependencies":{"tempfile":"^1.1.0","quotemeta":"0.0.0","duplex-maker":"^1.0.0"},"devDependencies":{"tar":"^1.0.3","trace":"^1.1.0","clarify":"^1.0.5","request":"^2.51.0","nodeunit":"^0.9.0","event-stream":"^3.2.2","video-testdata-loader":"^1.0.0"},"directories":{}},"1.0.2":{"name":"process-streams","version":"1.0.2","author":{"url":"https://knappi.org","name":"Nils Knappmeier","email":"npm@knappi.org"},"license":"MIT","_id":"process-streams@1.0.2","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"homepage":"https://github.com/nknapp/process-streams","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"dist":{"shasum":"125aa883d651f1b6a9f710ee040ca5d5ccf5a3bf","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-1.0.2.tgz","fileCount":32,"integrity":"sha512-WxY2Oj5uX1E/W+OEf3bWIFegLmtdkMp+Izqr+10HSQFgf4rIOFr36qYthektYqF6p55TkmtRpMTFC4yXf0+G4Q==","signatures":[{"sig":"MEUCIQDxMXk6K6xW+SSr544jomz9784fA81vcgVTNH6UYsX8YwIgW4QdjRQec+kQJsDONsgyk3N3oRK1I/PLMoJq1XAoBIs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42999},"main":"src/process-streams.js","funding":["https://www.paypal.com/donate/?hosted_button_id=GB656ZSAEQEXN","https://de.liberapay.com/nils.knappmeier/"],"gitHead":"d47408b03164d496d50d107fa16ffe68c98ee8b6","scripts":{"lint":"eslint .","test":"mocha","prepare":"node scripts/on-prepare.js","thought":"thought run -a","version":"node scripts/on-version.mjs","coverage":"istanbul cover ./node_modules/.bin/_mocha","lint:fix":"eslint . --fix --ext .js,.mjs","preversion":"node scripts/on-preversion.mjs","postversion":"npm publish && git push origin master --tags"},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"repository":{"url":"git://github.com/nknapp/process-streams.git","type":"git"},"_npmVersion":"10.2.4","description":"Wrapper for piping data into and out of child processes","directories":{},"lint-staged":{"*.{js,mjs}":"eslint --fix ."},"_nodeVersion":"20.11.1","dependencies":{"tempfile":"^1.1.0","duplex-maker":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^3.5.0","mocha":"^3.2.0","eslint":"8.57.0","thought":"4.0.0","istanbul":"0.4.5","lint-staged":"15.2.7","event-stream":"^3.2.2","chai-checkmark":"^1.0.1","string-to-stream":"^1.1.0","eslint-config-standard":"17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/process-streams_1.0.2_1720960738216_0.2301825430574438","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"process-streams","version":"1.0.3","description":"Wrapper for piping data into and out of child processes","homepage":"https://github.com/nknapp/process-streams","repository":{"type":"git","url":"git://github.com/nknapp/process-streams.git"},"dependencies":{"duplex-maker":"^1.0.0"},"main":"src/process-streams.js","scripts":{"test":"mocha","lint":"eslint .","lint:fix":"eslint . --fix --ext .js,.mjs","coverage":"istanbul cover ./node_modules/.bin/_mocha","thought":"thought run -a","preversion":"node scripts/on-preversion.mjs","version":"node scripts/on-version.mjs","prepare":"node scripts/on-prepare.js","postversion":"npm publish && git push origin master --tags"},"devDependencies":{"chai":"^3.5.0","chai-checkmark":"^1.0.1","eslint":"8.57.0","eslint-config-standard":"17.1.0","event-stream":"^3.2.2","istanbul":"0.4.5","lint-staged":"15.2.7","mocha":"^3.2.0","string-to-stream":"^1.1.0","thought":"4.0.0"},"lint-staged":{"*.{js,mjs}":"eslint --fix ."},"author":{"name":"Nils Knappmeier","email":"npm@knappi.org","url":"https://knappi.org"},"license":"MIT","funding":["https://www.paypal.com/donate/?hosted_button_id=GB656ZSAEQEXN","https://de.liberapay.com/nils.knappmeier/"],"_id":"process-streams@1.0.3","gitHead":"fcb74866c2618bca1161a7506ab45466bdfb567b","bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"_nodeVersion":"20.11.1","_npmVersion":"10.2.4","dist":{"integrity":"sha512-xkIaM5vYnyekB88WyET78YEqXiaJRy0xcvIdE22n+myhvBT7LlLmX6iAtq7jDvVH8CUx2rqQsd32JdRyJMV3NA==","shasum":"8df3e807932fc80cbb2ab92dd7c6f199c5faa9b1","tarball":"https://registry.npmjs.org/process-streams/-/process-streams-1.0.3.tgz","fileCount":35,"unpackedSize":44935,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBk1DRi/cfVl9MZLNvAUzeNpnsU7f2MxRVKKyNmAet1QIhAIJPQQAXLi2rbaMjNpbHDbKkh+E6qeJFJoc86BW3MQ4e"}]},"_npmUser":{"name":"knappi","email":"npm@knappi.org"},"directories":{},"maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/process-streams_1.0.3_1720964394201_0.6233745358456864"},"_hasShrinkwrap":false}},"time":{"created":"2014-11-20T23:20:59.149Z","modified":"2024-07-14T13:39:54.591Z","0.0.1":"2014-11-20T23:20:59.149Z","0.0.2":"2014-11-20T23:24:25.003Z","0.0.3":"2014-11-21T23:37:33.649Z","0.0.4":"2014-11-21T23:41:38.039Z","0.1.0":"2014-11-23T22:15:53.783Z","0.2.0":"2014-11-27T20:31:53.251Z","0.3.1":"2014-11-28T22:16:09.782Z","0.4.0":"2014-12-08T01:17:00.211Z","0.4.1":"2014-12-08T01:19:39.603Z","0.4.2":"2014-12-13T09:03:03.245Z","0.4.3":"2014-12-14T13:52:25.881Z","0.4.4":"2014-12-15T07:25:28.116Z","0.4.5":"2015-02-15T16:13:31.581Z","1.0.0":"2015-02-15T16:16:19.223Z","1.0.1":"2015-02-17T21:42:00.228Z","1.0.2":"2024-07-14T12:38:58.417Z","1.0.3":"2024-07-14T13:39:54.388Z"},"bugs":{"url":"https://github.com/nknapp/process-streams/issues"},"author":{"name":"Nils Knappmeier","email":"npm@knappi.org","url":"https://knappi.org"},"license":"MIT","homepage":"https://github.com/nknapp/process-streams","repository":{"type":"git","url":"git://github.com/nknapp/process-streams.git"},"description":"Wrapper for piping data into and out of child processes","maintainers":[{"name":"knappi","email":"npm@knappi.org"}],"readme":"# process-streams\n\n[![NPM version](https://img.shields.io/npm/v/process-streams.svg)](https://npmjs.com/package/process-streams)\n[![ci-badge](https://github.com/nknapp/process-streams/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/nknapp/process-streams/actions)\n> Wrapper for piping data into and out of child processes\n\nMotivation\n----------\n\nThe goal of this small package is to provide a interface for streaming data to\nand from child-processes. It may be possible to stream data to a process via stdout\nand read the result from stdin, but it may also be necessary to store the data in a\ntemporary file and provide the filename to the process as argument.\n\nA concrete example is ffmpeg: It is possible to encode webm-videos to a stream,\nbut h264 must always be stored in a temporary file first. On the other hand in some cases\n[it is not possible to stream data into ffmpeg](http://superuser.com/questions/822500/pipe-issue-with-ffmpeg),\nso data must be stored in a temporary file prior to calling ffmpeg.\n\n\n\nOverview\n--------\n\nProcessStreams provides the methods `exec`, `execFile` and `spawn` from the `child_process` with the same arguments.\nThe return value however is always a through-stream. The command line arguments are examined for occurences of\nthe strings `<INPUT>` and `<OUTPUT>`.\n\n * If `<INPUT>` is present, the stream input is piped into a temporary file and `<INPUT>` is replaced by its filename.\n * If `<OUTPUT>` is present, it is replaced by the name of a temporary file and the contents of this file is\n used as stream output for the resulting stream.\n * If `<INPUT>` or `<OUTPUT>` are not present, the stream input is directly piped to the child processes stdin\n (or the child processes stdout is piped to the stream output).\n\nTemporary files are always deleted when no longer needed.\n\n# Installation\n\n```\nnpm install process-streams\n```\n\nSimple Examples\n--------\n\nThe following examples actually only pipes data to stdout, but via child processes with different temp-file options.\n\n```js\nconst stringToStream = require('string-to-stream')\n\nconst ProcessStream = require('process-streams')\nconst ps = new ProcessStream()\n\n// This basically pipes the stream as-is to stdout\n// through multiple variations of process-streams\n\n// Temporary files for input and output\nstringToStream('hello\\n')\n  .pipe(ps.exec('cp <INPUT> <OUTPUT>'))\n  .pipe(ps.spawn('cp', ['<INPUT>', '<OUTPUT>']))\n  .pipe(ps.execFile('cp', ['<INPUT>', '<OUTPUT>']))\n\n  // Stream input, use temp-file for output\n  .pipe(ps.spawn('tee', ['<OUTPUT>']))\n\n  // Temp-file for input, Stream for output\n  .pipe(ps.spawn('cat', ['<INPUT>']))\n\n  // Pipe both sides\n  .pipe(ps.spawn('cat'))\n\n  // Result to stdout\n  .pipe(process.stdout)\n```\n\nOutput:\n\n```\nhello\n```\n\n\n\nFunctions\n---------\n\n#### `ps.spawn(command, [args], [options])`\n\nFor details about function arguments please refer to the api documentation of\n[child_process.spawn(command, [args], [options])](http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options)\n\n\n#### `ps.exec(command, [options], callback)`\n\nFor details about function arguments please refer to the api documentation of\n[child_process.exec(command, [options], callback)](http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback)\n\n\n#### `ps.execFile(file, [args], [options], [callback])`\n\nFor details about function arguments please refer to the api documentation of\n[child_process.execFile(file, [args], [options], [callback])](http://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback)\n\n#### `ps.factory(useTmpIn, useTmpOut, callback)`\n\nThis function uses the provided callback to connect input and output of the resulting stream. `useTmpIn` and `useTmpOut` are booleans that define which\nparts of the stream temp should use temp files.\n`callback` has the signature `function(input, output, callback)`. \"input\" and \"output\" are either streams of paths of temporary files. The callback must\nbe called when data is available for output. If \"tmpUseOut\" is `false`, this can be called immediately. It \"tmpUseOut\" is `true` it must be called, when the\noutput tempfile has completely been written to.\n\n\nChanging the placeholder tokens\n-------------------------------\nThe tokens `<INPUT>` and `<OUTPUT>` can be changed:\n\n```js\nconst stringToStream = require('string-to-stream')\n\nconst ProcessStream = require('process-streams')\nconst ps = new ProcessStream('[IN]', '[OUT]')\nstringToStream('hello\\n')\n  .pipe(ps.exec('cp [IN] [OUT]'))\n  .pipe(process.stdout)\n```\n\nEvents\n------\nProcess errors (such as not finding the executable file) are emitted on the resulting stream as `'error'` event.\nThe `'started'` event is emitted when the is started. Its first argument is the child-process object, second and\nthird arguments are the `command` and `args` passed to `ps.exec`, `ps.spawn` or `ps.execFile`), but with the\nplaceholders resolved to the their actual temporary files.\n\n```js\nconst stringToStream = require('string-to-stream')\n\nconst ProcessStream = require('process-streams')\nconst ps = new ProcessStream()\n\nstringToStream('hello\\n')\n  .pipe(ps.spawn('cat'))\n  .on('error', function (err) {\n    // Handle errors\n    console.log('error', err)\n  })\n  .on('input-closed', function (err) {\n    // Handle ECONNRESET and EPIPE processe's stdin\n    console.log('input-closed', err)\n  })\n  .on('started', function (process, command, args) {\n    // If \"ps.exec\" is called, 'command' contains the whole\n    // resolved command and 'args' is undefined.\n  })\n  .on('exit', function (code, signal) {\n    // see the 'child_process' documentation for the 'exit'-event.\n  })\n  .pipe(process.stdout)\n```\n\n\n\n# License\n\n`process-streams` is published under the MIT-license.\n\nSee [LICENSE](LICENSE) for details.\n\n\n# Release-Notes\n \nFor release notes, see [CHANGELOG.md](CHANGELOG.md)\n \n# Contributing guidelines\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Funding :coffee:\n\nYou can send me money, if you like my work:\n\n- [Liberapay](https://de.liberapay.com/nils.knappmeier/)\n- [Paypal](https://www.paypal.com/donate/?hosted_button_id=GB656ZSAEQEXN)\n- [Github Sponsors](https://github.com/sponsors/nknapp/)","readmeFilename":"README.md","users":{"knappi":true}}