{"_id":"command-stream","_rev":"43-2a73ee66afb26d8ded2a16db0f9f3953","name":"command-stream","dist-tags":{"latest":"0.20.4"},"versions":{"0.0.1":{"name":"command-stream","version":"0.0.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.0.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"9a6f0a8f5cd16dac2ce3ea7fe0e1b191b2713b39","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.0.1.tgz","fileCount":4,"integrity":"sha512-axJhowuqvv2Li2NyrhyyyTQYtRSaeNNGe1f8Uui6IY6RChMOjMEQMshKy3L67HHMbuCF/mwR2jWUU8cTUwaqdw==","signatures":[{"sig":"MEUCIQDyooJSDBcobxvjL08fwtIBOwVpS5EY15MTZXnwX3X1jAIgSz+ycbdTmBpRNlmpFm1XuutvC95VNU8z7/wffwl92Es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84810},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"1e4b776ebe74b5a3b015424a7beacb8030852d8b","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.0.1_1755048592109_0.24089933816387177","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"command-stream","version":"0.0.2","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.0.2","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"298218ff6169e9c79d35e412ec7c1b850b3cca1b","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.0.2.tgz","fileCount":4,"integrity":"sha512-3srL69OQYN4DD+Y/YEKPwJrf9YcOMIwREWF9ZyuwGdMYMXFdSZ2Woq0mc2hluqt/QAEQLtOh5V4ftybWlIfF8A==","signatures":[{"sig":"MEUCIE0xbXbn0jc5QVwHncyKJ7rZoYGWt/Y5eP0tLbeEdaNGAiEAsuwk+173whD6tAiHVdb07HqpwiSpw/J+ppG0Q/aYeTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84998},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"1e0e21b2138cd0d08fa809326804befbc3204ce6","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.0.2_1755049595207_0.2515438718167766","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"command-stream","version":"0.0.3","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.0.3","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"9c327297212389c67d7f1abdf975ccf71bf2fa16","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.0.3.tgz","fileCount":4,"integrity":"sha512-smfyrFixkEv9O9AzH+sGUJiQzMsubGKvHNK0UI4wusFrvMj2c6NYL6rue9i68966eDW4lsZoZOeapp/cwpSREA==","signatures":[{"sig":"MEQCIGeIR9J4EupTqm6Ma+vTgGZusxCsbgaxtu4llcuDPAxRAiBWGFYRZeGMaW6ntK6dqvIL1InrDCuz5pOccKUmLnSwjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86622},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"3df855b70d7363fa8ee4ef5b459a589f8df60760","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.0.3_1755052688967_0.4988609136915716","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"command-stream","version":"0.0.4","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.0.4","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"2ce8191820282da1aee049bd4f39572127c3a501","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.0.4.tgz","fileCount":4,"integrity":"sha512-F/sT5Ox22TmEq3bKmUZd1k1au6I6T3FjNB5xO3T+BsIJYGOMS5p+RVErVNOB97XGQBw7CNJWpQj/mAQ+F6GkOA==","signatures":[{"sig":"MEYCIQCrkmRF0xaC78L91qd97HBiIv10gfP4SNHDGk+Fs+5BUAIhAIMbDJg7g5YJBIphfw6Jzdf4iMa+oBecqxMd7JYd/YIC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86754},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"b0730d7746f246a28ab8afed0499dc10796b3dcd","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.0.4_1755260371669_0.90819829433114","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"command-stream","version":"0.0.5","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.0.5","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"c79a20bb3f3305ec191a289d397d1f9850ebb45a","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.0.5.tgz","fileCount":4,"integrity":"sha512-lEtCFjgjzWZIiOWadqjrINxr3Gh9hUhl+hh8CuO+iML0j1VF0M0QWiU/I7pnGfgqwmil0KER7OeUctfHlIWfOQ==","signatures":[{"sig":"MEQCIBMvq7iHefcMQ7E9rv4DDyipSGyE9NuWhmBYlf96HHJYAiAJRqOQ1I5EVWLG4f80Z/d6BMgIsRh3vRV6dIYuLoPYyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93655},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"5f4006d6008cf994e6cd0ac8ddf7c3bf7dbf5fa8","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.0.5_1755366366287_0.574630131907552","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"command-stream","version":"0.1.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.1.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"d024141e87b9807b64005b585c7f770432a4b773","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.1.0.tgz","fileCount":4,"integrity":"sha512-dcgeo0OaCnaBhAkGqJoRToYycOBdGuPnBvi+s4QE6Og/N1akGmzFETeG+nwvD8Wn9khA+srm1EIJwZSPZ6Mp5Q==","signatures":[{"sig":"MEUCIGXbH2jycbtJZHJDOaNFUdUCiv/Zyy+F9pX12AbDgxo2AiEAox2ZCp2b9lPBc9vrvXpT92e+nIFaapmPssdI47d399Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130393},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"60fce805562301c4c9810388e68cb6cd0913654d","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.1.0_1755974263895_0.23996301101900608","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"command-stream","version":"0.2.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.2.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"dc1155138ce1eecb713a2fdc95e8d6435c2866a8","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.2.0.tgz","fileCount":4,"integrity":"sha512-rcKZAKy8kFCYcCkeU9YaEJA8KTEYMV5+sWZW7y7An3foU6G/n956aT9fCsL1pVTmNCD4NnMyn72AMvc2hIQloA==","signatures":[{"sig":"MEUCIBKVKrMazZKL5ZPn7F80X+6l9FWPiuNe8PYfd5/cPkUBAiEA+Q0jYkdfT0gxlcDFd3P4tRVxyZpeYlSFSwzap4IVHxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140652},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"b2e9729d87063a0fcb09d49124daab414d045290","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.2.0_1755979645915_0.7613566666534135","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"command-stream","version":"0.3.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.3.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"5cf1484cf7d362ef19e9aa75655f4a18c30dd8ff","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.3.0.tgz","fileCount":4,"integrity":"sha512-z9dV/ij7QXKJ7Vnmybj643ThoXgH6J2j89cvDnN1xuRAuAiiijwQO9vQqlpgV7K2DKFWgTUDUxLlcd4z8NdDiQ==","signatures":[{"sig":"MEYCIQDuKpSXpwNyhowJQePHMtiLZufZteIexrNvkNbicdvYbQIhAPAdlkwj/R6/oQ2uZcNU6g99LDVXaANA6HU6C0R5XbMD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141195},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"7670db475fc6ca0b78d25dad667d6dcbb31f67ca","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.3.0_1755987967017_0.38579766360967405","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"command-stream","version":"0.3.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.3.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"2cf177bcccd43ad5942dbe2621159d2bc38bb33f","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.3.1.tgz","fileCount":4,"integrity":"sha512-s1O6QclazDRT2OEhjuDsV56LX289rmufWqDt7QbqQKmc1GICsGDlvhes5t9of72faYA+fI8fjJl3SzMUnjKRnA==","signatures":[{"sig":"MEUCIC+mR2QM8wbcIxMNJC4sTpHypG8Z8+2EkrXQHUqIB7prAiEAvhI9TvqbLL5phhagkHRTJbaK7q/u6DmJV1Ktcvfolc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124145},"main":"$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./$.mjs"},"gitHead":"a4bc7320b2a79fe684170cc14f4bc5e5fd9ed51f","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.3.1_1756572931804_0.5745495288134059","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"command-stream","version":"0.3.2","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.3.2","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"f1902b1ca34c861458d917abce53a3cf6af69e2a","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.3.2.tgz","fileCount":26,"integrity":"sha512-sECKzzUlZKWdeSYTxS55WHpCy9b+tCYBpqVFChspbyoyuqQAadZMBPuuyfMI9Dn3/DtlJf5cEWoZ/eKLp7IMEQ==","signatures":[{"sig":"MEUCIQCXhmC6oiy3FAYBB+/17rtjPpzPB7xeChShgF2aURC1SwIgf9lC4MV01RcfP8a7Hg20udSJUs44qa/LuHccn8BYS4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150590},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"e85c0add37e4f71b25f821b48baf7c6b1812e043","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.3.2_1756606486689_0.7614311528097666","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"command-stream","version":"0.4.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.4.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"45433302aab13a76a9588e77951d80e70a15ca90","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.4.0.tgz","fileCount":26,"integrity":"sha512-q/J4XXnHmxcL8R8qc0JEwxtG+ce/d6bqbG1zt14HXIWOAJqwpS6CiWcTevwBbuNvt3DOh70zGOXQAQSkQm7LkA==","signatures":[{"sig":"MEYCIQCY6K79h4VRReMDL3WbhK+xL/7CzZ/VHY2urNoKehzqUQIhAJ2kTcQwgO7QEKlXvBe8VbjIF64mgBOWnPClPLPd1OLA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208382},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"1518a886b5a012aef723720d68afd68fd1397736","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.4.0_1756820454534_0.4326602044274288","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"command-stream","version":"0.5.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.5.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"3027677bc799284c959ac62c1c87adb350d17451","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.5.0.tgz","fileCount":26,"integrity":"sha512-wv0ggvGbEl1IA/+E+0v6e3Li+yrageyd0Ri16KFD0aCE0KAyXT9Yv5+gfD1KClcKJLc0KdzFvTRItSZkjsfeHw==","signatures":[{"sig":"MEQCIC5mbPjE9bL+T19DfKy5ufSTPSLfzougQmWidnfDhSl+AiBbSl6bxhbVIPtpwmySXTl5e9Ns/5f06DoJG/Me4FOMtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227992},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"d99987a070d07d303f943ec619183aa0c7dc4c31","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.5.0_1756879504411_0.9190464265911127","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"command-stream","version":"0.6.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.6.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"70d8d7cbfa596c22916315dd9d19ad3d8ef2bba8","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.6.0.tgz","fileCount":26,"integrity":"sha512-BV4lQca2h9LOHJ+I2abPA6vXSYqwKcY2C6vdZESmqykfllRIoKHlHtuFQmuhpIH4wjErrBkq3gmGWyoSLPujRA==","signatures":[{"sig":"MEUCIQDNrtySgVuqqQdAxzDySLei3vIgEzMzq0YQHXDIXl4q4gIgPV8+38oqVo+FLKnnJYPid853JKmBM/jDyBMcNJcoiKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230368},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"78a07f217efea5053b0623eefdbc200673ced077","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.6.0_1756892722496_0.9172557082246677","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"command-stream","version":"0.7.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.7.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"20f0ab6e52b9a97c2f6c19fa38005d944292e4a5","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.7.0.tgz","fileCount":27,"integrity":"sha512-dCkfteq1HXOZxRIJfW6SjBWD96AtbzYGyNph1qkvlTVhg1PukHWLfgb+wBOzolKPWRhibLDR+83plM+yiSyqlw==","signatures":[{"sig":"MEUCIQDT/VkcBrfHvIAg5mBEma0oNYwZMLy3aHJrukaIIsUW2gIgT437ocMbxaxkeWYah9OMW1xZhWEPmNwRmPsDQwGfx7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260057},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"24c6ef08543ed22edbd30539200ff8cb3290f7cf","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.7.0_1756978609866_0.6172704247170129","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"command-stream","version":"0.7.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.7.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"eea8d70ff74d44c66ce02886af141b9a7a7a75b7","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.7.1.tgz","fileCount":27,"integrity":"sha512-L3DbGRFiGhbYgu9RBCJeaEW7dxjsoj7Ic/zrVgf7MUjCosnQ9NVOiI3ErYxK2jF0F4argstLtys5wtB9xB07Og==","signatures":[{"sig":"MEUCIQD1+yUWEwfWURwPhRMMkMaXCqUlpR1EVjjiX/+SAWXCQgIgXw8Nm3EiAM84Sm8ZFl61kMATtLn6d7awZLECXfoartA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260802},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"5e4d2d6a77c23841fc753b2ff39fe4064d5f316b","scripts":{"test":"bun test tests/","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose"},"_npmUser":{"name":"konard","email":"drakonard@gmail.com"},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.7.1_1757430378535_0.9069589740690731","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"command-stream","version":"0.8.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.8.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"2d9a39c00e3e6c2625834518b8eb5b7d588ae5e7","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.8.1.tgz","fileCount":27,"integrity":"sha512-U8sLOcV9LySGE4BTGzAzrRQBkYtaNwzdx00TjJZDvKCKKnnaKQGBxA5bU1H17/oMU7TU6IEIISxjdcj4Nc/pVg==","signatures":[{"sig":"MEUCIGrZVbDvrnA3HRSMVXfGYcNHkzFx6+jKLgaYe+6y0ZWSAiEAgMYYJqlgZzAl4g7oJ+wZV3o71vK+9G2/RG52k3wNEqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":307030},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"e4752e7fb0956ee812363db28c045c2a737627ae","scripts":{"lint":"eslint .","test":"bun test tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.7.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0","prettier --write","prettier --check"]},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.8.1_1766858606315_0.822009873731576","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"command-stream","version":"0.8.2","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.8.2","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"d2726b8dee978082c5b6e57bb0e8e9af3177e1f3","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.8.2.tgz","fileCount":27,"integrity":"sha512-hEV/Di3zClLZtve7rYRyuHq47PbAifaNI9CIxs7tf6j9RqgMJ9WYEzGlCy4w957iFVxiNeqIBuBoLEkjtk2wqg==","signatures":[{"sig":"MEQCIBqBT1+mgsFnpQ3MMz0cgFY2KGCRoETZpL71FcWlfIOcAiAdEbDSdWIKDkP2+Ld7aWJZkaCiebaU5MUMSb/waehxsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":308764},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"dd6d1f8624dbfdd817886400302f3d10442cf36d","scripts":{"lint":"eslint .","test":"bun test tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.7.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0","prettier --write","prettier --check"]},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.8.2_1766889375521_0.7341340856903307","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"command-stream","version":"0.8.3","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.8.3","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"4a3dfafa45ba2ea0c9b957078f2c254d5c9ee618","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.8.3.tgz","fileCount":27,"integrity":"sha512-vwNf5AWLhD4awaYSIyjHEu7JrAMTu8BaJg1LIpE4HqTXFYtgzSTN/j1VnwHDTNz8sAG7zvZgtKYm9lmi4+0Z7Q==","signatures":[{"sig":"MEQCIEcOJ7hZqGBKeMtJqp00lwEcOxEwicTRzWyVkTxFbFkQAiBrW0jFixToiquVsB1w4baPhI+GULI4/HbduiML5Yhm3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":310127},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"a2f74a3afb1dfb6f7cfb8035e6b9dbbf87d8ae4c","scripts":{"lint":"eslint .","test":"bun test tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test tests/pipe.test.mjs","test:sync":"bun test tests/sync.test.mjs","test:readme":"bun test tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test tests/builtin-commands.test.mjs","test:coverage":"bun test tests/ --coverage","test:features":"bun test tests/*.features.test.mjs","test:comparison":"bun test tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.7.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0","prettier --write","prettier --check"]},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.8.3_1766895363895_0.9732712694956582","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"command-stream","version":"0.9.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.9.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"123c2eb1c412020bb8d86eaa350a68a936da3e70","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.9.0.tgz","fileCount":502,"integrity":"sha512-wyh91Zu3eZzRyh4HTplHCq8viwbDHzMgUFWBtdoz4+HjXRrguTIW01vj/T8t8lYitMMExh51qK1pD5IhL7MjAA==","signatures":[{"sig":"MEQCIGkyM8t5Kxcd+P+xCsRoCoQI7eDE1KPRiLO36CQ302l6AiA05Xx7TNFe6ClneBJdzApDt4pk8go7ybu/rohWEL/bEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1505499},"main":"js/src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./js/src/$.mjs"},"gitHead":"adee85986985e92472f855b0254524e215d6f7e6","scripts":{"lint":"eslint .","test":"bun test js/tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test js/tests/pipe.test.mjs","test:sync":"bun test js/tests/sync.test.mjs","test:readme":"bun test js/tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test js/tests/builtin-commands.test.mjs","test:coverage":"bun test js/tests/ --coverage","test:features":"bun test js/tests/*.features.test.mjs","test:comparison":"bun test js/tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.7.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0","prettier --write","prettier --check"]},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.9.0_1767170340548_0.3461864564647026","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"command-stream","version":"0.9.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.9.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"016eadc43f56447101ab337f5f9ae543ceab206e","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.9.1.tgz","fileCount":519,"integrity":"sha512-2KJZlZ1mw37n68Wi83gncVUOldewVpfktnpM90MgrCURyteKZOF8E2dGjEs84SxV+dtqTDzuM9CqVqEOHexmBw==","signatures":[{"sig":"MEUCIHyyzJzhW7Wp1sDIvIa228AzsxZpLMKQRywFqyimeBBGAiEA4PvFnfacQKaEPvlWlwYIimONBhpiQFy8WkEm18e5BhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1474501},"main":"js/src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./js/src/$.mjs"},"gitHead":"9aa7343ce54c553ba6fc0777453c18f6d2969bb0","scripts":{"lint":"eslint .","test":"bun test js/tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test js/tests/pipe.test.mjs","test:sync":"bun test js/tests/sync.test.mjs","test:readme":"bun test js/tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test js/tests/builtin-commands.test.mjs","test:coverage":"bun test js/tests/ --coverage","test:features":"bun test js/tests/*.features.test.mjs","test:comparison":"bun test js/tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.7.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0","prettier --write","prettier --check"]},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.9.1_1767909564376_0.46184266464400614","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"command-stream","version":"0.9.2","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.9.2","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"7262a5e40ee74a35852b2ebbb24a651f83f8263a","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.9.2.tgz","fileCount":532,"integrity":"sha512-VUtMPPf9u8IN6BcFM3c8cm8rcGahzJN2k6IBRleOMjKVpl0JZ3T2D7Pw6YSKQy6F4dCDI0GQx5lM+YpNVCTfuw==","signatures":[{"sig":"MEQCIFt5djqRmETFLIdGWCvQZpH+Hquz8RheQT6g5/wAWPTSAiAQCB1cvtD4N/zPupjVAToLH4RsRqcreFzA0nx2LKoLTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1552442},"main":"js/src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./js/src/$.mjs"},"gitHead":"b9c2b8d4b417efb8002bec4cfda79602ef665b9e","scripts":{"lint":"eslint .","test":"bun test js/tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test js/tests/pipe.test.mjs","test:sync":"bun test js/tests/sync.test.mjs","test:readme":"bun test js/tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test js/tests/builtin-commands.test.mjs","test:coverage":"bun test js/tests/ --coverage","test:features":"bun test js/tests/*.features.test.mjs","test:comparison":"bun test js/tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.7.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0","prettier --write","prettier --check"]},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.9.2_1768059507702_0.07019734505226505","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"command-stream","version":"0.9.4","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.9.4","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"b4b42c2d2d5ab8972d8ca9f2e1b4ed9baff717d8","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.9.4.tgz","fileCount":542,"integrity":"sha512-fFIUmpl7xtFv9QSNfuoowOG4xo6ATPZnO7/ANlyctgSVLDqBJRSQTv6xpJnAfudwBOVzuTqwVqr12JhxOj7ebQ==","signatures":[{"sig":"MEUCIBFKa5jK7FcCR7vw9MQlWTjd2ccj4QtnnFGShBugAztpAiEAiyFVfRGuDq1bB7/YUr6EZi/QnYRcqihu4uAUiifw1TA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1623573},"main":"js/src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./js/src/$.mjs"},"gitHead":"03616e5cd4c5b2946b95e67aad8741890b368d81","scripts":{"lint":"eslint .","test":"bun test js/tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test js/tests/pipe.test.mjs","test:sync":"bun test js/tests/sync.test.mjs","test:readme":"bun test js/tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test js/tests/builtin-commands.test.mjs","test:coverage":"bun test js/tests/ --coverage","test:features":"bun test js/tests/*.features.test.mjs","test:comparison":"bun test js/tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.7.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0","prettier --write","prettier --check"]},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.9.4_1768094447779_0.908103349559426","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"command-stream","version":"0.9.5","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.9.5","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"eb90d182d0411a3ae33a633f2b42ed02f0e5f8a3","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.9.5.tgz","fileCount":545,"integrity":"sha512-WH5Zhe8QLMQQAFIrKKZmwb5or+6aO7+T+l5fi5hW8Y3UV4xjUUL/PjN9dudDnIl8zuM9tAUawPrkWTK+atiDIg==","signatures":[{"sig":"MEYCIQDlzPVu23E/u22OZC6qsEg3jpmOxqaFASd4DeT3bKYHfwIhAJUqGWL+BFBTw/uPsfocgIK69yuYqdEq39JseXtliFTo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1643999},"main":"js/src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./js/src/$.mjs"},"gitHead":"033cdc8666cbc7477001f5a0c0331c248d0ef125","scripts":{"lint":"eslint .","test":"bun test js/tests/","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"bun test js/tests/pipe.test.mjs","test:sync":"bun test js/tests/sync.test.mjs","test:readme":"bun test js/tests/readme-examples.test.mjs","format:check":"prettier --check .","test:builtin":"bun test js/tests/builtin-commands.test.mjs","test:coverage":"bun test js/tests/ --coverage","test:features":"bun test js/tests/*.features.test.mjs","publish:crates":"bun scripts/publish-to-crates.mjs --working-dir rust","test:comparison":"bun test js/tests/*.features.test.mjs --reporter=verbose","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","sync:rust-version":"bun scripts/sync-rust-version.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25420dd2-7741-4699-931b-453b87cea7ef"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git"},"_npmVersion":"11.16.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.9.5_1780921865825_0.8667960019201439","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"command-stream","version":"0.11.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.11.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"bd6f8f9ca8d8278fa67425539e8cc7d48a9c5713","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.11.0.tgz","fileCount":449,"integrity":"sha512-uVv4m5K66k6jQOq+yKUP1a+gg/SY40+o5ficpd5YiJmvER9ORleyJixDOi3qdZ1d2qZOIfdy6KrYXlyFGDnAJA==","signatures":[{"sig":"MEYCIQDY1sziT9ylXlIFFmrvZ0ppx7neHPR9dn+nJaQm+EWNeAIhAJCb5SyEqwtjowjscurgbgaxma0PhJWtwVsXEl4UtQSh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":966100},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"6809535c14afb5328daf14c3cf619b9abdbaa618","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.11.0_1781030802648_0.1194490152781511","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"command-stream","version":"0.11.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.11.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"42e0c573818162fcfa23bddf7f1947cac4ccbfc5","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.11.1.tgz","fileCount":449,"integrity":"sha512-fV5tB6YHw7kvBjFiEhxOxkSJvVXvWVke7cQPWxc5nWNo/nFrMVjg5m4g4K0ybEf2GgFZsDasAmu7oFQkio1aHw==","signatures":[{"sig":"MEQCIFBW8v3VujnoTZkW9EPN2yUl3jrmIKRa1iAwp34jt6SvAiBfkGR3lJduYFKjIa6UirRqIxEiQcRSOYMSS4wJxH9V4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":966100},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"e074d19e8309d7c499dca2958165933108f3792d","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.11.1_1781032480575_0.044542644405517695","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"command-stream","version":"0.12.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.12.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"c08785d8ac77c7f36793e13d5ab13d65096e875c","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.12.0.tgz","fileCount":451,"integrity":"sha512-vaANuJ7aQMKG8KFv115scTzfN8zwMb3Uci70xrpM0i6+kzwyILIjTbq39hneHHBf/ohSUkZUJqhOAaFEnDvxYw==","signatures":[{"sig":"MEYCIQCHtp5DD+bASXsFhrJ27z6Pd7+HZuWpniU4sZ+rC7hQQwIhAKg0I0UWPFbZLbyELn1Wj/dvfirD1g6FnFiXqtUjp8+s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":981011},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"8c75ec7f273ae85eeb40bd7987e3c0558f2c17dc","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.12.0_1781051534134_0.7527882315444461","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"command-stream","version":"0.13.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.13.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"e3362530656609dadfe8d90ae2bd840b5cb29fbf","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.13.0.tgz","fileCount":454,"integrity":"sha512-rXjNrGhQV2IBSkL/RMliC/MCY7d9dq5wcsQXGetoYW7VuLsxAu0N8j5k1IDo1zcvUcLO/Yfye78gk5Hu9HOiJQ==","signatures":[{"sig":"MEUCIDE4ds/EWUYzhCMm6yV7gU7seLTyhemxOhFA+s9WztvmAiEApYcMjcgY9T/FKlCIDmcZoM7hkTx4Ve7FFFkiURLXA9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1002900},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"fbe88d08677394f6c0968e13d97a5faba28b0e18","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.13.0_1781139384258_0.42513022186679605","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"command-stream","version":"0.14.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.14.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"1b7c8d82f38e98930f4f7644e0825ac494de6a77","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.14.0.tgz","fileCount":454,"integrity":"sha512-VILmEFv1e+FEABsharW888BtvaPpfT107nm2IYy9CeoL33B4YI+x+XQUxDgDpCGjYKbgitp/zEasHZVdtZpSfQ==","signatures":[{"sig":"MEYCIQDYImL/nNv8deCgYFazTrhIz+YB3DYjO/TOBgenAHiY8AIhALOI5SYq2n/OECI/wOS6zqfuPF/r7yeAKG6VGLNA17t7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1003415},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"0f79ac78ed3ab919174642880578a2f56fa3cb28","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.14.0_1781167898016_0.5159896447352414","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"command-stream","version":"0.14.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.14.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"a323d7f3456b06754993eb9eddec46188859c3b2","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.14.1.tgz","fileCount":455,"integrity":"sha512-08KAFC/g9YV4koVWk6Qu1Un2hZBCZ3jI8tXR1M24tSB1Ic+IoOLZN/kdg5aat4erHxZ/WIXSwUnhffIFfun01g==","signatures":[{"sig":"MEQCIESJ1sD/8j1/dCjCbiaeTpM2v643jc9MrgC4/hRq9+PdAiA+TLCCR7788Pmv/FfnXknsY7VTlJ2fXrooAppkAot1JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1011716},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"c6f65c7b13749f017d9a73f14a78a62018aa13fa","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.17.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.14.1_1782061865054_0.18592332447756488","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"command-stream","version":"0.15.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.15.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"4adae6cb7fe4d618b3bd8148729fd736d5bab5a7","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.15.0.tgz","fileCount":460,"integrity":"sha512-Lphe8u3lZocvxdLspqPesAl+EBAFe2VAbL3Ag6wU4XcHCVWJDHQE/KXdU6J2XevipXn0ZzoIqDCYCHaHsXhWtg==","signatures":[{"sig":"MEUCIBedZcEegyDqbqlpWLLwAx4oiPk5NA1o9NC5eB/lfsdrAiEAix0llAQcHUutq+h+k4Cpar/+FYGr7vVhNhSl5vUW5lE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1033350},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"8ce02eed138285eb75cbb787610606196171842d","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.18.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"node-pty":"^1.2.0-beta.14","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","@changesets/cli":"^2.29.7","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.15.0_1784936431531_0.21184179688854288","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"command-stream","version":"0.16.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.16.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"01cbefa2294ff6d4adb309ece69ba0a6751be94f","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.16.0.tgz","fileCount":465,"integrity":"sha512-QUO3QLvBkUhxjFwn/j/jvmW9K7+Bbe5ym5wiIo2J/80KMamdDGYmXNMI4BhP+4UNJwyTR2gtu9eDUvGBPBJPAQ==","signatures":[{"sig":"MEUCIEuFeAw/QDhB/w3UVUZBQzbNPI6suexqLbRwp2OJMiONAiEAwh59uwoym8ov7VkVeWJnSvkp9yxchK+UngW8FooF6io=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1111622},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"9331f1ae4bd2959b5bc19c86184865091337d05c","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.18.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.16.0_1784985774413_0.29017152523755385","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"command-stream","version":"0.17.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.17.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"8e76d2c1791a1640382aab933b15a8bf68f68ab7","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.17.0.tgz","fileCount":466,"integrity":"sha512-rRAj8UdtMfCAyetyFfoOfYVOuWgATgKfFjRMMdhiLy9wwYbI72Se5U0OIWByxjC/VZ+RwlA0wugqQ1cqWUoR2g==","signatures":[{"sig":"MEYCIQCZPsJB/qUEUoURA4p2mJzzRLy2a2hcbZStsdeaJOEG4gIhAMv5D1ptBTv+bcWHyat3uaw50C8zlBIlFF+t6fBkkCRb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1115336},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"f0af673b1c438a28ca1c4f0574928a0b36247bd9","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.18.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.17.0_1784997607998_0.8919974608966803","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"command-stream","version":"0.17.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.17.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"27cefc84838d7133e8aeef6e6c16d6fd4d5869c7","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.17.1.tgz","fileCount":466,"integrity":"sha512-93ikWsOt+jKNGUTY1ZVRGZG1UALVesuM+tsqFbwVtsUG71FYDxLuRBQ+P3qNF8uxdf5v9ldNw1lzmGSQdlimWA==","signatures":[{"sig":"MEUCICFoc2tp9ath7JRp1N8sLEpcfd4t8/G6amTHa9osYoPJAiEArp1U62BWVHWNeDtnIg9Baqh5P5rr9jkaN3nYDWOgjyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1115452},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"b5958cffbaf9f5931a46f61f573322d6a58afc9e","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.18.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.17.1_1785056847292_0.30756957920944306","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"command-stream","version":"0.17.2","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.17.2","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"c4ae6283e488de0cfe801b5e482481c2e1d7c04d","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.17.2.tgz","fileCount":466,"integrity":"sha512-SEHSZgtfV6/llMw7mm0q/1w559EZd56rPmcGjkTWEkFwjtunqMM20qh8cr33S7CQ6FRfIVoiMjTPyvvnFOTvcw==","signatures":[{"sig":"MEQCIA3rcnIbdjKu1nKZSoCw9+Tuz5Pb9Zys4ewKGZLC8+h3AiBsv2uMQVCQRiqD00XnL7AEj9ZTSHTWKebAfIiy4lsvyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.17.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1115884},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"1132c71db30aa358a01898e82a05b99ff7f64ca0","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.18.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.17.2_1785109546836_0.4699061610587134","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"command-stream","version":"0.18.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.18.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"bf41733e2ba21344031b04b607c0f88ea1fc938f","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.18.0.tgz","fileCount":468,"integrity":"sha512-mGKU7bTAHnU1//2zlzQu3kw/LX2nhqRzg8/9BZU76gJQvPSr//ImC9wwqatpdcJTb6pXjbojc/FUyVTxJvNMYg==","signatures":[{"sig":"MEUCIBr/RbCDOzSEzZ6K9DJ5peL6kYzKpbPihTPHCaIttLwuAiEAkHBT/RlXoiTHs+4bKnU2R9iL4ijZcMz8CtRTEf1aYgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1134374},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs"},"gitHead":"feda738c3b33c799e44039f8b865d917fce691ef","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.18.0_1786134087234_0.7435576693376966","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"command-stream","version":"0.18.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.18.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"1cb50ea41b5f193f8d8a621c88969b13f9c61c45","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.18.1.tgz","fileCount":469,"integrity":"sha512-FRyLAVGIAqtKE0cz113nRV8gKvOfAXlH9jhu7fdScIWnA+Mfsg07y/CfFyLo/JE/9afcpwsoBbxNEWhJu4iX+Q==","signatures":[{"sig":"MEUCIQClxQGowah7uI7Ucp2ZDjKsG27/S8HuZTNvcqKkyKKfcAIgU3KoKKTJYyx6kcS81a6GM7t0NqobWUnXel1nnw20GWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1135146},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs","./process-runner":"./src/process-runner.mjs"},"gitHead":"596a6979a9eef29a2b035f64a412e8329839b628","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.18.1_1786444004474_0.45888283507837757","host":"s3://npm-registry-packages-npm-production"}},"0.18.2":{"name":"command-stream","version":"0.18.2","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.18.2","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"9e45e892f8d72710cd58fc78e36e460581565793","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.18.2.tgz","fileCount":469,"integrity":"sha512-kCUtHbB5rZK2GxyvCFqRKjrOCDDLtYtkC2UNS+N5+0F4AWSa0lmZaxY9Nvx3hWxCGzV2P+nk/O2yIHOU4kGc5g==","signatures":[{"sig":"MEUCIQCUxQlcoFjZ6XAVnM5K58RLrGXI2gH5GWSIPxi/hVXjHwIgPIPhCYZUkTWsl4QGvLGFP3O7cepS7UP3y0GjkpxHvRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.18.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1137454},"main":"src/$.mjs","type":"module","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":"./src/$.mjs","./process-runner":"./src/process-runner.mjs"},"gitHead":"278cdda4dc00c53964552583a15ec0d60b6f2461","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.18.2_1786446338244_0.14705035517218135","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"command-stream","version":"0.19.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.19.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"88615906051415377a9b4dc826197a53ae5d7869","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.19.0.tgz","fileCount":471,"integrity":"sha512-RGLIT1gidQCMY4NbhsxDL8C4kkwOssQe8DUGKIBH46XXOZYqbwDxlkGyZrtnr+F6MNeP1H+/r6I7cDh1lFoKIw==","signatures":[{"sig":"MEUCIDZSpTHsk9PwamMP20HqzGBf6R3YqUL5NXblfIyDnm1uAiEAp7JBMp9FYwgukJKOvL2flbi83Afgxz4pqZvC7Q4Qu9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1144165},"main":"./src/$.cjs","type":"module","module":"./src/$.mjs","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":{"import":"./src/$.mjs","default":"./src/$.mjs","require":"./src/$.cjs"},"./package.json":"./package.json","./process-runner":"./src/process-runner.mjs"},"gitHead":"89e2afc6680d419e61afc448ba5f8152aabb8918","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.0","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.18.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.19.0_1786447720622_0.08105688590346238","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"command-stream","version":"0.20.0","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.20.0","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"5f810e99257fdfd780773396ff0a39c7d803fc15","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.20.0.tgz","fileCount":472,"integrity":"sha512-L2hOo3UnjWP57rvn7aOVURaV4covIvMaW42TKE6JPen8ka+Lo//xB6ybLu4KWPpt2v59h9T0VTNs6CdY3iwoGw==","signatures":[{"sig":"MEQCIEEdXo35tPJir1uZfijasohRd3727Wdw0HRZEj/tDPzdAiA113VhVaegrCmrIESlzGC+8yuLPeu7JrJdLSVqB0LemA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDYYah+pyXs/80I4nSz/ve+BhxwZ/ECN/37dfOv9HENWgIhANiAaS5rJKXML8egxz2puQx9xxyR8F5y3MOTBHbr0b2A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1157353},"main":"./src/$.cjs","type":"module","module":"./src/$.mjs","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":{"import":"./src/$.mjs","default":"./src/$.mjs","require":"./src/$.cjs"},"./package.json":"./package.json","./process-runner":"./src/process-runner.mjs"},"gitHead":"26fdbe0949f7f2a05facdb4e308a315440ebccc1","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.1","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.20.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.20.0_1788541058382_0.9264069790938063","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"command-stream","version":"0.20.1","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.20.1","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"2f3c46d4da854e3300544a59c769875cff3be5c6","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.20.1.tgz","fileCount":473,"integrity":"sha512-f9PKDMoL0ra715eFw9v+isJwSrE55NBSORorZFpPvNWesCd7Xs+VxFN409Q/yyZIHlkD0Ckt44lxMSw+fSB47w==","signatures":[{"sig":"MEUCIFqRKQuBvQIPhWRySZVXbysB0D7kevgkn9jGKqdecgaAAiEAybwmJcqSOvUplKirqnfR0bUeMxnnTCXkgmt6xTKkFHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD1VcUw/bzXne4o/SD4WDo5PmUDbs/FcsPBn7KbiE8ULQIhAMYuHy7jlohRTzlxuCeDVBcGKu8+NEOvZ9LlFY8US/KX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1161422},"main":"./src/$.cjs","type":"module","module":"./src/$.mjs","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":{"import":"./src/$.mjs","default":"./src/$.mjs","require":"./src/$.cjs"},"./package.json":"./package.json","./process-runner":"./src/process-runner.mjs"},"gitHead":"1975cd72f982d8a948df803bf8fe5a614247d78c","scripts":{"lint":"eslint .","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"eslint . --fix","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd .","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.1","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"lint-staged":{"*.md":["prettier --write","prettier --check"],"*.{js,mjs,cjs}":["eslint --fix --max-warnings 0 --no-warn-ignored","prettier --write","prettier --check"]},"_nodeVersion":"24.20.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.14","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.0.5","eslint":"^9.38.0","prettier":"^3.6.2","lint-staged":"^16.2.6","subset-font":"^2.5.0","@changesets/cli":"^2.29.7","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.20.1_1788552593603_0.7889670830009596","host":"s3://npm-registry-packages-npm-production"}},"0.20.2":{"name":"command-stream","version":"0.20.2","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.20.2","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"d27ef3e58b32c789e7ace357e5f54159cbde8911","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.20.2.tgz","fileCount":473,"integrity":"sha512-tGaEN73hH4yqzZuESRLTr1OKhM+Ibgqzww2TXdJaiCgFekOfIsTd8FKTM943y9dMClMNkYGrnrxLptZrFhekmw==","signatures":[{"sig":"MEUCIDS/FjGEDVWLE0u+9/HoxdRsk8qssXiwltx0X9+EM9tRAiEArgG0VXGHlLMD7t2NnaOkdvXTYzQtAAm+wJkcbEfF+Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDtIZH9uGUVbKYG26jDtxbGmuDl4jG1MPkCHMdYFQUK0gIgJycG/1v3v9qrEtjE6mrzlrvFrLVHYh5gVPCXZvb+RnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.20.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1161353},"main":"./src/$.cjs","type":"module","module":"./src/$.mjs","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":{"import":"./src/$.mjs","default":"./src/$.mjs","require":"./src/$.cjs"},"./package.json":"./package.json","./process-runner":"./src/process-runner.mjs"},"gitHead":"0ebc021fb008f1f635d93957244c527ddff43b49","scripts":{"lint":"cd .. && js/node_modules/.bin/eslint . --max-warnings 0","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"cd .. && js/node_modules/.bin/prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"cd .. && js/node_modules/.bin/eslint . --fix --max-warnings 0","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"cd .. && js/node_modules/.bin/prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd src scripts","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.1","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"24.20.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.15","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.3.0","eslint":"^9.39.5","prettier":"^3.9.6","lint-staged":"^16.4.0","subset-font":"^2.7.0","@changesets/cli":"^2.31.1","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.20.2_1788572105630_0.25013780952730835","host":"s3://npm-registry-packages-npm-production"}},"0.20.3":{"name":"command-stream","version":"0.20.3","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"author":{"name":"link-foundation"},"license":"Unlicense","_id":"command-stream@0.20.3","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"9ce6f68096516f766a0bd1a0db282236866dd5a6","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.20.3.tgz","fileCount":473,"integrity":"sha512-Z8KDcAX+DQmqaIahCt4amanb1qFs3k6N8hMmvHQMsm/y8mVZa/+Y+XPH7LRTKigd3HrOab1BY5+C+kASVJU1JQ==","signatures":[{"sig":"MEYCIQCuj7zzDUQ8eNBqIj6qlEE0DcpZAvzXGEdi3sC8rHsM6gIhAPnUEk2kruXTx/P4XMwe81jNYcDIvMqItLnqWo5Neb9t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBxz1Q+79V8cObqn/esSJTMd61FI4OqM0Im1FAguw8tnAiAFvHZkO7QgZP4hgOiwWzAl5kmlE0+bQNh/r+QAkg88cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.20.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1162098},"main":"./src/$.cjs","type":"module","module":"./src/$.mjs","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":{"import":"./src/$.mjs","default":"./src/$.mjs","require":"./src/$.cjs"},"./package.json":"./package.json","./process-runner":"./src/process-runner.mjs"},"gitHead":"1970eb4bb17b61681f89c7e09041fce44be7e10a","scripts":{"lint":"cd .. && js/node_modules/.bin/eslint . --max-warnings 0","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"cd .. && js/node_modules/.bin/prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"cd .. && js/node_modules/.bin/eslint . --fix --max-warnings 0","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"cd .. && js/node_modules/.bin/prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd src scripts","build:terminal-font":"node scripts/build-terminal-font.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.1","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"_nodeVersion":"24.20.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.15","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.3.0","eslint":"^9.39.5","prettier":"^3.9.6","lint-staged":"^16.4.0","subset-font":"^2.7.0","@changesets/cli":"^2.31.1","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6"},"_npmOperationalInternal":{"tmp":"tmp/command-stream_0.20.3_1788603024359_0.06259705792999282","host":"s3://npm-registry-packages-npm-production"}},"0.20.4":{"_id":"command-stream@0.20.4","bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"dist":{"shasum":"499c5177b9682d2e602083c74126a98207945e7b","tarball":"https://registry.npmjs.org/command-stream/-/command-stream-0.20.4.tgz","fileCount":473,"integrity":"sha512-FwaIeJOSlTy3s2rnJG7+M57fbi/Tp7HWh3pYUnx8LFV7PkNfxNIT4EA5X/uvHKUyzTMeZvssRwfHErEE7Fn2Ew==","signatures":[{"sig":"MEYCIQC6P1vdADtk6nuDgYDT9tmGNFYQTYpYqgBFOzkBivEX3gIhAMov5gR5J0SMtbqRg76xUA3XikZ85uvY9dfiYSeHVKui","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBfw1ep2kEW0C/sNfCGitRsqbX8cC5dT3VR1kGzI1IFSAiEA3NBOULnvcDFfJNQql8jsFZWdr6nKR67cL8dAt4Egko8="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/command-stream@0.20.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1166019},"main":"./src/$.cjs","name":"command-stream","type":"module","author":{"name":"link-foundation"},"module":"./src/$.mjs","engines":{"bun":">=1.0.0","node":">=20.0.0"},"exports":{".":{"import":"./src/$.mjs","default":"./src/$.mjs","require":"./src/$.cjs"},"./package.json":"./package.json","./process-runner":"./src/process-runner.mjs"},"gitHead":"f6ef65a4b457240001772bc26a165f5dca513096","license":"Unlicense","scripts":{"lint":"cd .. && js/node_modules/.bin/eslint . --max-warnings 0","test":"cd .. && bun test js/tests/ --timeout 10000","check":"bun run lint && bun run format:check && bun run check:duplication","format":"cd .. && js/node_modules/.bin/prettier --write .","prepare":"cd .. && js/node_modules/.bin/husky || true","lint:fix":"cd .. && js/node_modules/.bin/eslint . --fix --max-warnings 0","changeset":"changeset","test:pipe":"cd .. && bun test js/tests/pipe.test.mjs --timeout 10000","test:sync":"cd .. && bun test js/tests/sync.test.mjs --timeout 10000","test:readme":"cd .. && bun test js/tests/readme-examples.test.mjs --timeout 10000","format:check":"cd .. && js/node_modules/.bin/prettier --check .","test:builtin":"cd .. && bun test js/tests/builtin-commands.test.mjs --timeout 10000","test:coverage":"cd .. && bun test js/tests/ --coverage --timeout 10000","test:features":"cd .. && bun test js/tests/*.features.test.mjs --timeout 10000","test:comparison":"cd .. && bun test js/tests/*.features.test.mjs --reporter=verbose --timeout 10000","changeset:status":"changeset status --since=origin/main","changeset:publish":"changeset publish","changeset:version":"bun scripts/changeset-version.mjs","check:duplication":"jscpd src scripts","build:terminal-font":"node scripts/build-terminal-font.mjs"},"version":"0.20.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:038e7314-ce8b-43f5-ae1d-b08526dc540a"}},"homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"_npmVersion":"11.19.1","description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","directories":{},"maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"gifenc":"^1.0.3","node-pty":"^1.2.0-beta.15","@resvg/resvg-js":"^2.6.2","@xterm/headless":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","jscpd":"^4.3.0","eslint":"^9.39.5","prettier":"^3.9.6","lint-staged":"^16.4.0","subset-font":"^2.7.0","@changesets/cli":"^2.31.1","dejavu-fonts-ttf":"^2.37.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/command-stream_0.20.4_1788621309635_0.5409167380867834"}}},"time":{"created":"2025-08-13T01:29:52.051Z","modified":"2026-09-05T15:15:10.079Z","0.0.1":"2025-08-13T01:29:52.303Z","0.0.2":"2025-08-13T01:46:35.385Z","0.0.3":"2025-08-13T02:38:09.153Z","0.0.4":"2025-08-15T12:19:31.847Z","0.0.5":"2025-08-16T17:46:06.464Z","0.1.0":"2025-08-23T18:37:44.134Z","0.2.0":"2025-08-23T20:07:26.110Z","0.3.0":"2025-08-23T22:26:07.215Z","0.3.1":"2025-08-30T16:55:31.984Z","0.3.2":"2025-08-31T02:14:46.917Z","0.4.0":"2025-09-02T13:40:54.732Z","0.5.0":"2025-09-03T06:05:04.631Z","0.6.0":"2025-09-03T09:45:22.682Z","0.7.0":"2025-09-04T09:36:50.044Z","0.7.1":"2025-09-09T15:06:18.754Z","0.8.1":"2025-12-27T18:03:26.467Z","0.8.2":"2025-12-28T02:36:15.691Z","0.8.3":"2025-12-28T04:16:04.054Z","0.9.0":"2025-12-31T08:39:00.771Z","0.9.1":"2026-01-08T21:59:24.560Z","0.9.2":"2026-01-10T15:38:27.890Z","0.9.4":"2026-01-11T01:20:47.980Z","0.9.5":"2026-06-08T12:31:06.021Z","0.11.0":"2026-06-09T18:46:42.855Z","0.11.1":"2026-06-09T19:14:40.749Z","0.12.0":"2026-06-10T00:32:14.276Z","0.13.0":"2026-06-11T00:56:24.409Z","0.14.0":"2026-06-11T08:51:38.162Z","0.14.1":"2026-06-21T17:11:05.210Z","0.15.0":"2026-07-24T23:40:31.780Z","0.16.0":"2026-07-25T13:22:54.575Z","0.17.0":"2026-07-25T16:40:08.164Z","0.17.1":"2026-07-26T09:07:27.491Z","0.17.2":"2026-07-26T23:45:46.988Z","0.18.0":"2026-08-07T20:21:27.396Z","0.18.1":"2026-08-11T10:26:44.608Z","0.18.2":"2026-08-11T11:05:38.419Z","0.19.0":"2026-08-11T11:28:40.774Z","0.20.0":"2026-09-04T16:57:38.546Z","0.20.1":"2026-09-04T20:09:53.735Z","0.20.2":"2026-09-05T01:35:05.741Z","0.20.3":"2026-09-05T10:10:24.494Z","0.20.4":"2026-09-05T15:15:09.743Z"},"bugs":{"url":"https://github.com/link-foundation/command-stream/issues"},"author":{"name":"link-foundation"},"license":"Unlicense","homepage":"https://github.com/link-foundation/command-stream/tree/main/js#readme","keywords":["shell","command","streaming","async","iteration","eventemitter","bun","node","cross-runtime"],"repository":{"url":"git+https://github.com/link-foundation/command-stream.git","type":"git","directory":"js"},"description":"Modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime","maintainers":[{"name":"konard","email":"drakonard@gmail.com"}],"readme":"[![npm](https://img.shields.io/npm/v/command-stream.svg)](https://npmjs.com/command-stream)\n[![JavaScript CI](https://github.com/link-foundation/command-stream/actions/workflows/js.yml/badge.svg)](https://github.com/link-foundation/command-stream/actions/workflows/js.yml)\n[![License](https://img.shields.io/badge/license-Unlicense-blue.svg)](https://github.com/link-foundation/command-stream/blob/main/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/link-foundation/command-stream?style=social)](https://github.com/link-foundation/command-stream/stargazers)\n\n[![Open in Gitpod](https://img.shields.io/badge/Gitpod-ready--to--code-f29718?logo=gitpod)](https://gitpod.io/#https://github.com/link-foundation/command-stream)\n[![Open in GitHub Codespaces](https://img.shields.io/badge/GitHub%20Codespaces-Open-181717?logo=github)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=link-foundation/command-stream)\n\n# [command-$tream](https://github.com/link-foundation/command-stream)\n\n$treamable commands executor\n\nA modern $ shell utility library with streaming, async iteration, and EventEmitter support, optimized for Bun runtime.\n\n<img width=\"2752\" height=\"1344\" alt=\"ray-so-export\" src=\"https://github.com/user-attachments/assets/b1656450-0a2a-43f5-917c-4f15c3ffccaa\" />\n\n## Features\n\n- 🐚 **Shell-like by Default**: Commands behave exactly like running in terminal (stdout→stdout, stderr→stderr, stdin→stdin)\n- 🎛️ **Fully Controllable**: Override default behavior with options (`mirror`, `capture`, `stdin`)\n- 🚀 **Multiple Usage Patterns**: Classic await, async iteration, EventEmitter, .pipe() method, and mixed patterns\n- 📡 **Real-time Streaming**: Process command output as it arrives, not after completion\n- 🔄 **Bun Optimized**: Designed for Bun runtime with Node.js compatibility\n- ⚡ **Performance**: Memory-efficient streaming prevents large buffer accumulation\n- 🎯 **Backward Compatible**: Existing `await $` syntax continues to work + Bun.$ `.text()` method\n- 🛡️ **Type Safe**: Full TypeScript support (coming soon)\n- 🔧 **Built-in Commands**: 18 essential commands work identically across platforms\n\n## Comparison with Other Libraries\n\n| Feature                        | [**command-stream**](https://github.com/link-foundation/command-stream)                                 | [**execa**](https://github.com/sindresorhus/execa)                                    | [**cross-spawn**](https://github.com/moxystudio/node-cross-spawn)                                 | [**Bun.$**](https://github.com/oven-sh/bun)                | [**ShellJS**](https://github.com/shelljs/shelljs)                                         | [**zx**](https://github.com/google/zx)                                          |\n| ------------------------------ | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |\n| **📦 NPM Package**             | [![npm](https://img.shields.io/npm/v/command-stream.svg)](https://www.npmjs.com/package/command-stream) | [![npm](https://img.shields.io/npm/v/execa.svg)](https://www.npmjs.com/package/execa) | [![npm](https://img.shields.io/npm/v/cross-spawn.svg)](https://www.npmjs.com/package/cross-spawn) | N/A (Built-in)                                             | [![npm](https://img.shields.io/npm/v/shelljs.svg)](https://www.npmjs.com/package/shelljs) | [![npm](https://img.shields.io/npm/v/zx.svg)](https://www.npmjs.com/package/zx) |\n| **⭐ GitHub Stars**            | [**⭐ 2** (Please ⭐ us!)](https://github.com/link-foundation/command-stream)                           | [⭐ 7,264](https://github.com/sindresorhus/execa)                                     | [⭐ 1,149](https://github.com/moxystudio/node-cross-spawn)                                        | [⭐ 80,169](https://github.com/oven-sh/bun) (Full Runtime) | [⭐ 14,375](https://github.com/shelljs/shelljs)                                           | [⭐ 44,569](https://github.com/google/zx)                                       |\n| **📊 Monthly Downloads**       | **893** (New project!)                                                                                  | **381M**                                                                              | **409M**                                                                                          | N/A (Built-in)                                             | **35M**                                                                                   | **4.2M**                                                                        |\n| **📈 Total Downloads**         | **Growing**                                                                                             | **6B+**                                                                               | **5.4B**                                                                                          | N/A (Built-in)                                             | **596M**                                                                                  | **37M**                                                                         |\n| **Runtime Support**            | ✅ Bun + Node.js                                                                                        | ✅ Node.js                                                                            | ✅ Node.js                                                                                        | 🟡 Bun only                                                | ✅ Node.js                                                                                | ✅ Node.js                                                                      |\n| **Template Literals**          | ✅ `` $`cmd` ``                                                                                         | ✅ `` $`cmd` ``                                                                       | ❌ Function calls                                                                                 | ✅ `` $`cmd` ``                                            | ❌ Function calls                                                                         | ✅ `` $`cmd` ``                                                                 |\n| **Real-time Streaming**        | ✅ Live output                                                                                          | 🟡 Limited                                                                            | ❌ Buffer only                                                                                    | ❌ Buffer only                                             | ❌ Buffer only                                                                            | ❌ Buffer only                                                                  |\n| **Synchronous Execution**      | ✅ `.sync()` with events                                                                                | ✅ `execaSync`                                                                        | ✅ `spawnSync`                                                                                    | ❌ No                                                      | ✅ Sync by default                                                                        | ❌ No                                                                           |\n| **Async Iteration**            | ✅ `for await (chunk of $.stream())`                                                                    | ❌ No                                                                                 | ❌ No                                                                                             | ❌ No                                                      | ❌ No                                                                                     | ❌ No                                                                           |\n| **EventEmitter Pattern**       | ✅ `.on('data', ...)`                                                                                   | 🟡 Limited events                                                                     | 🟡 Child process events                                                                           | ❌ No                                                      | ❌ No                                                                                     | ❌ No                                                                           |\n| **Mixed Patterns**             | ✅ Events + await/sync                                                                                  | ❌ No                                                                                 | ❌ No                                                                                             | ❌ No                                                      | ❌ No                                                                                     | ❌ No                                                                           |\n| **Bun.$ Compatibility**        | ✅ `.text()` method support                                                                             | ❌ No                                                                                 | ❌ No                                                                                             | ✅ Native API                                              | ❌ No                                                                                     | ❌ No                                                                           |\n| **Shell Injection Protection** | ✅ Smart auto-quoting                                                                                   | ✅ Safe by default                                                                    | ✅ Safe by default                                                                                | ✅ Built-in                                                | 🟡 Manual escaping                                                                        | ✅ Safe by default                                                              |\n| **Cross-platform**             | ✅ macOS/Linux/Windows                                                                                  | ✅ Yes                                                                                | ✅ **Specialized** cross-platform                                                                 | ✅ Yes                                                     | ✅ Yes                                                                                    | ✅ Yes                                                                          |\n| **Performance**                | ⚡ Fast (Bun optimized)                                                                                 | 🐌 Moderate                                                                           | ⚡ Fast                                                                                           | ⚡ Very fast                                               | 🐌 Moderate                                                                               | 🐌 Slow                                                                         |\n| **Memory Efficiency**          | ✅ Streaming prevents buildup                                                                           | 🟡 Buffers in memory                                                                  | 🟡 Buffers in memory                                                                              | 🟡 Buffers in memory                                       | 🟡 Buffers in memory                                                                      | 🟡 Buffers in memory                                                            |\n| **Error Handling**             | ✅ Configurable (`set -e`/`set +e`, non-zero OK by default)                                             | ✅ Throws on error                                                                    | ❌ Basic (exit codes)                                                                             | ✅ Throws on error                                         | ✅ Configurable                                                                           | ✅ Throws on error                                                              |\n| **Shell Settings**             | ✅ `set -e`/`set +e` equivalent                                                                         | ❌ No                                                                                 | ❌ No                                                                                             | ❌ No                                                      | 🟡 Limited (`set()`)                                                                      | ❌ No                                                                           |\n| **Stdout Support**             | ✅ Real-time streaming + events                                                                         | ✅ Node.js streams + interleaved                                                      | ✅ Inherited/buffered                                                                             | ✅ Shell redirection + buffered                            | ✅ Direct output                                                                          | ✅ Readable streams + `.pipe.stdout`                                            |\n| **Stderr Support**             | ✅ Real-time streaming + events                                                                         | ✅ Streams + interleaved output                                                       | ✅ Inherited/buffered                                                                             | ✅ Redirection + `.quiet()` access                         | ✅ Error output                                                                           | ✅ Readable streams + `.pipe.stderr`                                            |\n| **Stdin Support**              | ✅ string/Buffer/inherit/ignore                                                                         | ✅ Input/output streams                                                               | ✅ Full stdio support                                                                             | ✅ Pipe operations                                         | 🟡 Basic                                                                                  | ✅ Basic stdin                                                                  |\n| **Built-in Commands**          | ✅ **18 commands**: cat, ls, mkdir, rm, mv, cp, touch, basename, dirname, seq, yes + all Bun.$ commands | ❌ Uses system                                                                        | ❌ Uses system                                                                                    | ✅ echo, cd, etc.                                          | ✅ **20+ commands**: cat, ls, mkdir, rm, mv, cp, etc.                                     | ❌ Uses system                                                                  |\n| **Virtual Commands Engine**    | ✅ **Revolutionary**: Register JavaScript functions as shell commands with full pipeline support        | ❌ No custom commands                                                                 | ❌ No custom commands                                                                             | ❌ No extensibility                                        | ❌ No custom commands                                                                     | ❌ No custom commands                                                           |\n| **Pipeline/Piping Support**    | ✅ **Advanced**: System + Built-ins + Virtual + Mixed + `.pipe()` method                                | ✅ Programmatic `.pipe()` + multi-destination                                         | ❌ No piping                                                                                      | ✅ Standard shell piping                                   | ✅ Shell piping + `.to()` method                                                          | ✅ Shell piping + `.pipe()` method                                              |\n| **Bundle Size**                | 📦 **~20KB gzipped**                                                                                    | 📦 ~400KB+ (packagephobia)                                                            | 📦 ~2KB gzipped                                                                                   | 🎯 0KB (built-in)                                          | 📦 ~15KB gzipped                                                                          | 📦 ~50KB+ (estimated)                                                           |\n| **Signal Handling**            | ✅ **Advanced SIGINT/SIGTERM forwarding** with cleanup                                                  | 🟡 Basic                                                                              | ✅ **Excellent** cross-platform                                                                   | 🟡 Basic                                                   | 🟡 Basic                                                                                  | 🟡 Basic                                                                        |\n| **Process Management**         | ✅ **Robust child process lifecycle** with proper termination                                           | ✅ Good                                                                               | ✅ **Excellent** spawn wrapper                                                                    | ❌ Basic                                                   | 🟡 Limited                                                                                | 🟡 Limited                                                                      |\n| **Debug Tracing**              | ✅ **Comprehensive VERBOSE logging** for CI/debugging                                                   | 🟡 Limited                                                                            | ❌ No                                                                                             | ❌ No                                                      | 🟡 Basic                                                                                  | ❌ No                                                                           |\n| **Test Coverage**              | ✅ **518+ tests, 1165+ assertions**                                                                     | ✅ Excellent                                                                          | ✅ Good                                                                                           | 🟡 Good coverage                                           | ✅ Good                                                                                   | 🟡 Good                                                                         |\n| **CI Reliability**             | ✅ **Platform-specific handling** (macOS/Ubuntu)                                                        | ✅ Good                                                                               | ✅ **Excellent**                                                                                  | 🟡 Basic                                                   | ✅ Good                                                                                   | 🟡 Basic                                                                        |\n| **Documentation**              | ✅ **Comprehensive examples + guides**                                                                  | ✅ Excellent                                                                          | 🟡 Basic                                                                                          | ✅ Good                                                    | ✅ Good                                                                                   | 🟡 Limited                                                                      |\n| **TypeScript**                 | 🔄 Coming soon                                                                                          | ✅ Full support                                                                       | ✅ Built-in                                                                                       | ✅ Built-in                                                | 🟡 Community types                                                                        | ✅ Full support                                                                 |\n| **License**                    | ✅ **Unlicense (Public Domain)**                                                                        | 🟡 MIT                                                                                | 🟡 MIT                                                                                            | 🟡 MIT (+ LGPL dependencies)                               | 🟡 BSD-3-Clause                                                                           | 🟡 Apache 2.0                                                                   |\n\n**📊 Popularity & Adoption:**\n\n- **⭐ GitHub Stars:** [Bun: 80,169](https://github.com/oven-sh/bun) • [zx: 44,569](https://github.com/google/zx) • [ShellJS: 14,375](https://github.com/shelljs/shelljs) • [execa: 7,264](https://github.com/sindresorhus/execa) • [cross-spawn: 1,149](https://github.com/moxystudio/node-cross-spawn) • [**command-stream: 2 ⭐ us!**](https://github.com/link-foundation/command-stream)\n- **📈 Total Downloads:** [execa: 6B+](https://www.npmjs.com/package/execa) • [cross-spawn: 5.4B](https://www.npmjs.com/package/cross-spawn) • [ShellJS: 596M](https://www.npmjs.com/package/shelljs) • [zx: 37M](https://www.npmjs.com/package/zx) • [command-stream: Growing](https://www.npmjs.com/package/command-stream)\n- **📊 Monthly Downloads:** [cross-spawn: 409M](https://www.npmjs.com/package/cross-spawn) • [execa: 381M](https://www.npmjs.com/package/execa) • [ShellJS: 35M](https://www.npmjs.com/package/shelljs) • [zx: 4.2M](https://www.npmjs.com/package/zx) • [command-stream: 893 (growing!)](https://www.npmjs.com/package/command-stream)\n\n**⭐ Help Us Grow!** If command-stream's **revolutionary virtual commands** and **advanced streaming capabilities** help your project, [**please star us on GitHub**](https://github.com/link-foundation/command-stream) to help the project grow!\n\n### Why Choose command-stream?\n\n- **🆓 Truly Free**: **Unlicense (Public Domain)** - No restrictions, no attribution required, use however you want\n- **🚀 Revolutionary Virtual Commands**: **World's first** fully customizable virtual commands engine - register JavaScript functions as shell commands!\n- **🔗 Advanced Pipeline System**: **Only library** where virtual commands work seamlessly in pipelines with built-ins and system commands\n- **🔧 Built-in Commands**: **18 essential commands** work identically across all platforms - no system dependencies!\n- **📡 Real-time Processing**: Only library with true streaming and async iteration\n- **🔄 Flexible Patterns**: Multiple usage patterns (await, events, iteration, mixed)\n- **🐚 Shell Replacement**: Dynamic error handling with `set -e`/`set +e` equivalents for .sh file replacement\n- **⚡ Bun Optimized**: Designed for Bun with Node.js fallback compatibility\n- **💾 Memory Efficient**: Streaming prevents large buffer accumulation\n- **🛡️ Production Ready**: **518+ tests, 1165+ assertions** with comprehensive coverage including CI reliability\n- **🎯 Advanced Signal Handling**: Robust SIGINT/SIGTERM forwarding with proper child process cleanup\n- **🔍 Debug-Friendly**: Comprehensive VERBOSE tracing for CI debugging and troubleshooting\n\n## Built-in Commands (🚀 NEW!)\n\ncommand-stream now includes **18 built-in commands** that work identically to their bash/sh counterparts, providing true cross-platform shell scripting without system dependencies:\n\n### 📁 **File System Commands**\n\n- `cat` - Read and display file contents\n- `ls` - List directory contents (supports `-l`, `-a`, `-A`)\n- `mkdir` - Create directories (supports `-p` recursive)\n- `rm` - Remove files/directories (supports `-r`, `-f`)\n- `mv` - Move/rename files and directories\n- `cp` - Copy files/directories (supports `-r` recursive)\n- `touch` - Create files or update timestamps\n\n### 🔧 **Utility Commands**\n\n- `basename` - Extract filename from path\n- `dirname` - Extract directory from path\n- `seq` - Generate number sequences\n- `yes` - Output string repeatedly (streaming)\n\n### ⚡ **System Commands**\n\n- `cd` - Change directory\n- `pwd` - Print working directory\n- `echo` - Print arguments (supports `-n`)\n- `sleep` - Wait for specified time\n- `true`/`false` - Success/failure commands\n- `which` - Locate commands\n- `exit` - Exit with code\n- `env` - Print environment variables\n- `test` - File condition testing\n\n### ✨ **Key Advantages**\n\n- **🌍 Cross-Platform**: Works identically on Windows, macOS, and Linux\n- **🚀 Performance**: No system calls - pure JavaScript execution\n- **🔄 Pipeline Support**: All commands work in pipelines and virtual command chains\n- **⚙️ Option Aware**: Commands respect `cwd`, `env`, and other options\n- **🛡️ Safe by Default**: Proper error handling and safety checks (e.g., `rm` requires `-r` for directories)\n- **📝 Bash Compatible**: Error messages and behavior match bash/sh exactly\n\n```javascript\nimport { $ } from 'command-stream';\n\n// All these work without any system dependencies!\nawait $`mkdir -p project/src`;\nawait $`touch project/src/index.js`;\nawait $`echo \"console.log('Hello!');\" > project/src/index.js`;\nawait $`ls -la project/src`;\nawait $`cat project/src/index.js`;\nawait $`cp -r project project-backup`;\nawait $`rm -r project-backup`;\n\n// Mix built-ins with pipelines and virtual commands\nawait $`seq 1 5 | cat > numbers.txt`;\nawait $`basename /path/to/file.txt .txt`; // → \"file\"\n```\n\n## Installation\n\n```bash\n# Using npm\nnpm install command-stream\n\n# Using bun\nbun add command-stream\n```\n\n### Lightweight ProcessRunner entry point\n\nConsumers that only need direct process execution can import `ProcessRunner`\nwithout loading the optional PTY, terminal rendering, SVG, or GIF modules:\n\n```javascript\nimport { ProcessRunner } from 'command-stream/process-runner';\n\nconst runner = new ProcessRunner(\n  { mode: 'exec', file: 'git', args: ['status', '--short'] },\n  { mirror: false, capture: true, stdin: 'ignore' }\n);\nconst result = await runner;\n```\n\nThe main `command-stream` entry point remains the supported import for `$` and\nterminal capture features.\n\n## Module Formats (ESM and CommonJS)\n\nThe package ships both entry points and they resolve automatically:\n\n| Host     | Resolved entry | How to load                           |\n| -------- | -------------- | ------------------------------------- |\n| ESM      | `src/$.mjs`    | `import { $ } from 'command-stream'`  |\n| CommonJS | `src/$.cjs`    | `const $ = require('command-stream')` |\n\n```javascript\n// CommonJS: the exported value is the $ tagged template itself,\n// with every named export attached to it.\nconst $ = require('command-stream');\nconst { sh, run, ProcessRunner, shell } = require('command-stream');\n\nconst result = $({ mirror: false })`echo hello`.sync();\nconsole.log(result.stdout.trim()); // \"hello\"\n```\n\nBoth entry points load the same module instance, so virtual command\nregistrations, shell settings, and cleanup state are shared no matter how the\npackage was loaded.\n\n`require('command-stream')` needs a runtime with `require(esm)` support:\nNode.js >= 20.19.0, Node.js >= 22.12.0, or Bun. On older Node.js versions the\npackage throws an explicit error asking you to upgrade or to use\n`await import('command-stream')` instead.\n\n## Smart Quoting & Security\n\nCommand-stream provides intelligent auto-quoting to protect against shell injection while avoiding unnecessary quotes for safe strings:\n\n### Smart Quoting Behavior\n\n```javascript\nimport { $ } from 'command-stream';\n\n// Safe strings are NOT quoted (performance optimization)\nawait $`echo ${name}`; // name = \"hello\" → echo hello\nawait $`${cmd} --version`; // cmd = \"/usr/bin/node\" → /usr/bin/node --version\n\n// Dangerous strings are automatically quoted for safety\nawait $`echo ${userInput}`; // userInput = \"test; rm -rf /\" → echo 'test; rm -rf /'\nawait $`echo ${pathWithSpaces}`; // pathWithSpaces = \"/my path/file\" → echo '/my path/file'\n\n// Special characters that trigger auto-quoting:\n// Spaces, $, ;, |, &, >, <, `, *, ?, [, ], {, }, (, ), !, #, and others\n\n// User-provided quotes are preserved\nconst quotedPath = \"'/path with spaces/file'\";\nawait $`cat ${quotedPath}`; // → cat '/path with spaces/file' (no double-quoting!)\n\nconst doubleQuoted = '\"/path with spaces/file\"';\nawait $`cat ${doubleQuoted}`; // → cat '\"/path with spaces/file\"' (preserves intent)\n```\n\n### Interpolating Inside Your Own Quotes\n\nQuoting is context-aware: an interpolated value is quoted only where a quote is\nactually needed. When you wrote the quotes yourself, the value is spliced in as\nescaped literal text, exactly like `\"$var\"` in a POSIX shell.\n\n```javascript\n// Outside quotes: the value is quoted for you\nawait $`echo ${'hello world'}`; // → echo 'hello world'\n\n// Inside your own double quotes: spliced in like \"$var\"\nconst script = 'for f in *.js; do echo \"Processing: $f\"; done';\nawait $`bash -c \"${script}\"`; // → bash -c \"for f in *.js; do echo \\\"Processing: \\$f\\\"; done\"\n\n// Inside your own single quotes: spliced in like '...', apostrophes escaped\nawait $`echo '${\"it's here\"}'`; // → echo 'it'\\''s here'\n```\n\nThis matches how the same line behaves in `sh`, and it is what fixes the classic\n`bash -c \"${cmd}\"` failure, where the extra quotes used to turn the whole script\ninto a single unrunnable word (issue #49).\n\nSplicing is still injection-safe: a value cannot end a quote or start a new\ncommand, because every character the shell would interpret is escaped.\n\n```javascript\nconst evil = '\"; rm -rf /; echo \"';\nawait $`bash -c \"echo ${evil}\"`; // prints the text; no second command runs\n```\n\nThe behavior of `raw()` and `literal()` is unchanged — `raw()` still inserts its\nvalue verbatim, and `literal()` still preserves apostrophes.\n\n**Opting out.** If you depend on the previous behavior of always quoting every\nvalue, turn context-aware quoting off:\n\n```javascript\nimport { shell, setQuoteContextEnabled } from 'command-stream';\n\nshell.quoteContext(false); // or: setQuoteContextEnabled(false)\nshell.quoteContext(true); // back on\nsetQuoteContextEnabled(null); // follow the environment again\n```\n\nOr set `COMMAND_STREAM_QUOTE_CONTEXT=0` in the environment to disable it for a\nwhole process without touching code.\n\n### Go templates & `{{ }}` arguments\n\n`command-stream` gives you a real shell's word-splitting, including for tokens\nyou type **literally** in the template. That means a Go/Docker template flag\nlike `--format {{json .Config.Env}}` behaves exactly as it would in `bash`: the\n**unquoted space** inside `{{ }}` splits the token into separate words, so the\nchild process receives a broken `--format` value (e.g. Docker reports\n`template parsing error: ... unclosed action`).\n\nThe rule is simple — **quote template tokens that contain spaces**, just like\nyou would in a shell script:\n\n```javascript\nimport { $ } from 'command-stream';\n\n// ❌ BREAKS — the unquoted space splits the token into 3 argv words:\n//   `--format`, `{{json`, `.Config.Env}}`\nawait $`docker image inspect alpine --format {{json .Config.Env}}`;\n\n// ✅ WORKS — a token with no space stays a single word\nawait $`docker image inspect alpine --format {{.Id}}`;\n\n// ✅ WORKS — single-quote the template (recommended, mirrors shell scripts)\nawait $`docker image inspect alpine --format '{{json .Config.Env}}'`;\n\n// ✅ WORKS — double quotes work too\nawait $`docker image inspect alpine --format \"{{json .Config.Env}}\"`;\n\n// ✅ WORKS — interpolate the whole template as one ${value}; it is\n//   auto-quoted and always reaches the child as a single argument\nconst format = '{{json .Config.Env}}';\nawait $`docker image inspect alpine --format ${format}`;\n\n// ✅ WORKAROUND — drop --format and parse the full JSON in JS\nconst all = await $`docker image inspect alpine`;\nconst env = JSON.parse(all.stdout)[0].Config.Env;\n```\n\nTo help diagnose the broken case, `command-stream` prints a one-line warning to\nstderr when a built command contains an **unquoted** `{{ … }}` token with an\ninternal space (the warning fires once per unique token). Silence it by setting\nthe `COMMAND_STREAM_NO_TEMPLATE_WARNING=1` environment variable.\n\n> Note: a token whose space is already **quoted** (`'{{json .Config.Env}}'`) or\n> supplied via interpolation (`${format}`) is passed through untouched — no\n> splitting, no warning.\n\n### Shell Injection Protection\n\nAll interpolated values are automatically secured:\n\n```javascript\n// ✅ SAFE - All these injection attempts are neutralized\nconst dangerous = \"'; rm -rf /; echo '\";\nawait $`echo ${dangerous}`; // → echo ''\\'' rm -rf /; echo '\\'''\n\nconst cmdSubstitution = '$(whoami)';\nawait $`echo ${cmdSubstitution}`; // → echo '$(whoami)' (literal text, not executed)\n\nconst varExpansion = '$HOME';\nawait $`echo ${varExpansion}`; // → echo '$HOME' (literal text, not expanded)\n\n// ✅ SAFE - Even complex injection attempts\nconst complex = '`cat /etc/passwd`';\nawait $`echo ${complex}`; // → echo '`cat /etc/passwd`' (literal text)\n```\n\n### Disabling Auto-Escape (Advanced)\n\n**⚠️ WARNING: Use with extreme caution! Only use `raw()` with trusted input to prevent shell injection attacks.**\n\nFor advanced use cases where you need to use command strings directly without auto-escaping, use the `raw()` function:\n\n```javascript\nimport { $, raw } from 'command-stream';\n\n// ⚠️ DANGEROUS - Bypasses all safety checks\nconst userCommand = 'echo \"hello\" && ls -la';\nawait $`${raw(userCommand)}`; // → Executes: echo \"hello\" && ls -la\n\n// ✅ Safe use case: Trusted command templates\nconst trustedCommand = 'git log --oneline --graph --all';\nawait $`${raw(trustedCommand)}`;\n\n// ✅ Combining raw with safe interpolation\nconst branch = 'main'; // User input - will be auto-quoted\nawait $`${raw('git log --oneline')} ${branch}`;\n// → git log --oneline 'main' (raw part unescaped, branch safely quoted)\n\n// 🎯 Use case: Pre-built command strings from configuration\nconst config = {\n  backupCommand: 'tar -czf backup.tar.gz --exclude=\"*.log\" .',\n  cleanCommand: 'find . -name \"*.tmp\" -delete',\n};\nawait $`${raw(config.backupCommand)}`;\n\n// ⚠️ NEVER use raw() with user input\nconst userInput = req.body.command; // ❌ DANGEROUS!\nawait $`${raw(userInput)}`; // ❌ Shell injection vulnerability!\n\n// ✅ Instead, use normal interpolation for user input\nawait $`echo ${userInput}`; // ✅ Safe - auto-escaped\n```\n\n**When to use `raw()`:**\n\n- ✅ Trusted command templates from your codebase\n- ✅ Configuration files you control\n- ✅ Hardcoded command strings\n- ✅ Complex shell operators that need to be preserved\n\n**When NOT to use `raw()`:**\n\n- ❌ User input (form fields, API parameters, CLI arguments)\n- ❌ External data (database, API responses, files)\n- ❌ Any untrusted source\n- ❌ When you're unsure - use normal interpolation instead\n\n## Usage Patterns\n\n### Classic Await (Backward Compatible)\n\n```javascript\nimport { $ } from 'command-stream';\n\nconst result = await $`ls -la`;\nconsole.log(result.stdout);\nconsole.log(result.code); // exit code\nconsole.log(result.exitCode); // alias for result.code\n```\n\n### Custom Options with $({ options }) Syntax (NEW!)\n\n```javascript\nimport { $ } from 'command-stream';\n\n// Create a $ with custom options\nconst $silent = $({ mirror: false, capture: true });\nconst result = await $silent`echo \"quiet operation\"`;\n\n// Options for stdin handling\nconst $withInput = $({ stdin: 'input data\\n' });\nawait $withInput`cat`; // Pipes the input to cat\n\n// Custom environment variables\nconst $withEnv = $({ env: { ...process.env, MY_VAR: 'value' } });\nawait $withEnv`printenv MY_VAR`; // Prints: value\n\n// Custom working directory\nconst $inTmp = $({ cwd: '/tmp' });\nawait $inTmp`pwd`; // Prints: /tmp\n\n// Interactive mode for TTY commands (requires TTY environment)\nconst $interactive = $({ interactive: true });\nawait $interactive`vim myfile.txt`; // Full TTY access for editor\nawait $interactive`less README.md`; // Proper pager interaction\n\n// Combine multiple options\nconst $custom = $({\n  stdin: 'test data',\n  mirror: false,\n  capture: true,\n  cwd: '/tmp',\n});\nawait $custom`cat > output.txt`; // Writes to /tmp/output.txt silently\n\n// Reusable configurations\nconst $prod = $({ env: { NODE_ENV: 'production' }, capture: true });\nawait $prod`npm start`;\nawait $prod`npm test`;\n```\n\n### Execution Control (NEW!)\n\n```javascript\nimport { $ } from 'command-stream';\n\n// Commands don't auto-start when created\nconst cmd = $`echo \"hello\"`;\n\n// Three ways to start execution:\n\n// 1. Explicit start with options\ncmd.start(); // Default async mode\ncmd.start({ mode: 'async' }); // Explicitly async\ncmd.start({ mode: 'sync' }); // Synchronous execution\n\n// 2. Convenience methods\ncmd.async(); // Same as start({ mode: 'async' })\ncmd.sync(); // Same as start({ mode: 'sync' })\n\n// 3. Auto-start by awaiting (always async)\nawait cmd; // Auto-starts in async mode\n\n// Event handlers can be attached before starting\nconst process = $`long-command`\n  .on('data', (chunk) => console.log('Received:', chunk))\n  .on('end', (result) => console.log('Done!'));\n\n// Start whenever you're ready\nprocess.start();\n```\n\n### Synchronous Execution\n\n```javascript\nimport { $ } from 'command-stream';\n\n// Use .sync() for blocking execution\nconst result = $`echo \"hello\"`.sync();\nconsole.log(result.stdout); // \"hello\\n\"\n\n// Events still work but are batched after completion\n$`echo \"world\"`.on('end', (result) => console.log('Done:', result)).sync();\n```\n\n`.sync()` is also reachable from CommonJS without any `await`, which makes it\nusable at synchronous launch-time boundaries such as availability probes:\n\n```javascript\nconst $ = require('command-stream');\n\nfunction isGitAvailable() {\n  return $({ mirror: false })`git --version`.sync().code === 0;\n}\n```\n\n### TUI Capture\n\n`captureTerminal()` runs a command in a real pseudoterminal and uses xterm's\nterminal model to capture settled screen states. It can send text and control\nkeys, resize the terminal, and stop after an output marker:\n\n```javascript\nimport { captureTerminal } from 'command-stream';\n\nconst capture = await captureTerminal({\n  file: 'my-tui',\n  args: ['--interactive'],\n  cols: 80,\n  // rows defaults to 30: an 80-column 4:3 terminal with the default cell ratio\n  interactions: [\n    // Readiness accepts a string or RegExp. idleMilliseconds restarts whenever\n    // output arrives, so the key is sent only after the repaint goes quiet.\n    { after: /Choose an option/, idleMilliseconds: 50, key: 'DOWN' },\n    { after: 'Second option', idleMilliseconds: 50, key: 'ENTER' },\n    { after: 'Your name', text: 'Ada', key: 'ENTER' },\n    { after: 'Dashboard', resize: { cols: 120, rows: 40 } },\n  ],\n  stopMarker: 'Done',\n  artifactDirectory: 'artifacts/my-tui',\n  artifactOptions: {\n    cellWidth: 9,\n    cellHeight: 18,\n    fontSize: 14,\n    padding: 12,\n    borderRadius: 0,\n    idleTimeLimit: 2,\n  },\n});\n\nconsole.log(capture.transcript);\nconsole.log(`${capture.frames.length} distinct settled states`);\n```\n\nUnlike `interactive: true`, `captureTerminal()` allocates a PTY without\nforwarding the session exclusively to the parent terminal. The child sees a\nTTY and raw-mode input while the returned `output`, `frames`, `transcript`, and\n`asciicast` remain available for assertions. To inspect output as it arrives,\npass `onTrace(event)` and handle events whose `type` is `\"output\"`.\n\nNamed keys include `UP`, `DOWN`, `LEFT`, `RIGHT`, `ENTER`, `TAB`, `ESCAPE`,\n`BACKSPACE`, `CTRL_C`, and `CTRL_D`. The `key` value may also be any raw\nsequence, such as `'\\x1b[6~'` for Page Down; `text` is likewise written\nverbatim to the PTY master. Initial `cols`, `rows`, and `TERM` come from the\ncapture options and `env`, and interaction `resize` values update the PTY and\ndeliver the platform's resize notification to the child.\n\nEach interaction can use `after: 'literal text'` or `after: /pattern/` as its\nreadiness condition. Add `idleMilliseconds` to require that no PTY output\narrive for that duration before applying the interaction; new output restarts\nthe idle wait. The complete, runnable\n[`tui-e2e.mjs`](examples/tui-e2e.mjs) example navigates a raw-mode menu and\nasserts on its captured output.\n\n#### Interactive sessions\n\n`captureTerminal()` is a batch call: every interaction is known up front and the\nchild is killed after `timeoutMilliseconds` (30 s by default). When the input\narrives later and from elsewhere — an authorization code a human pastes back\nminutes later, a chat-ops bridge, a test that interleaves assertions with input\n— use `openTerminal()`, which keeps the same PTY open until you close it:\n\n```javascript\nimport { openTerminal } from 'command-stream';\n\nconst session = await openTerminal({\n  file: 'my-cli',\n  args: ['login'],\n  cols: 80,\n});\n\n// Same readiness matcher as interactions, including idleMilliseconds.\nawait session.waitFor(/https:\\/\\/\\S+/, { idleMilliseconds: 50 });\nconst url = session.transcript.match(/https:\\/\\/\\S+/)[0];\n\n// ... arbitrary time passes; nothing terminates the child ...\n\nawait session.send({ text: code, key: 'ENTER' });\nawait session.waitFor('Logged in');\n\nconst capture = await session.close(); // frames/transcript/asciicast as usual\n```\n\n`openTerminal()` accepts every `captureTerminal()` option, including\n`interactions` for the parts that _are_ known up front, but its\n`timeoutMilliseconds` has no default: a session runs until the child exits or\nyou close it, and passing an explicit value opts back into a deadline.\n`captureTerminal()` is implemented on top of `openTerminal()`, so the two paths\ncannot drift.\n\nThe session exposes:\n\n- `waitFor(pattern, { idleMilliseconds, timeoutMilliseconds })` — resolves with\n  the current transcript once `pattern` (string or RegExp) has been seen and,\n  with `idleMilliseconds`, output has been quiet for that long. It rejects if\n  the wait times out or the child exits first.\n- `send(interaction | interaction[])` — the `text`, `key`, and `resize`\n  vocabulary of `interactions`; an entry may also carry `after` /\n  `idleMilliseconds` to wait before it is applied.\n- `output`, `transcript`, `frames`, `asciicast`, `running`, `exitStatus`,\n  and `exited` (a promise for the child's exit) for live inspection.\n- `close({ signal, timeoutMilliseconds })` — signals the child (escalating to\n  `SIGKILL`), then returns the same result object `captureTerminal()` resolves\n  to and writes `artifactDirectory` artifacts. `dispose()` is the\n  never-throwing variant for cleanup paths, and `finished()` waits for a child\n  that exits on its own.\n\nThe runnable [`tui-session.mjs`](examples/tui-session.mjs) example walks through\na deferred-input login.\n\nThe artifact directory contains an unrolled `transcript.txt`, machine-readable\n`frames.json`, an asciicast v2 `session.cast`, a final `snapshot.svg`, a\nself-contained animated `recording.svg`, and `recording.gif`. Frames retain\ntruecolor and 256-color foreground/background values plus bold, dim, italic,\nunderline, reverse, and strikethrough attributes. The SVG embeds a pre-subsetted\nDejaVu Sans Mono font with Latin, arrow, and Braille coverage, preserves an\ninteger cell grid, and draws box/block\ncharacters as seamless vector geometry. Animation uses the capture's real\ntimestamps; pauses longer than `idleTimeLimit` are trimmed.\n\nGIF is provided for consumers that cannot play CSS-animated SVG. The format is\nlimited to 256 colors per frame, so truecolor recordings can show color\nbanding. Prefer `recording.svg` when full color fidelity is important.\n\nThe [committed recording sample](docs/screenshots/terminal-artifacts/recording.svg)\nuses the same public API and CSS animation path used by generated artifacts.\nRun `bun examples/terminal-artifacts-demo.mjs` to regenerate it.\n\nSet `aspectRatio` to derive the row count when `rows` is omitted (the default is\n`4 / 3`). Explicit `rows` always wins. Exact consecutive repaints are\ndeduplicated, including style-only repaints, while repeated content after an\nintervening state remains in the transcript. Scrolled-off terminal history is\nretained.\n\nSet `settleMilliseconds` to tune repaint coalescing. For opt-in diagnostics,\npass `onTrace(event)`; capture is silent by default.\n\n### Async Iteration (Real-time Streaming)\n\n```javascript\nimport { $ } from 'command-stream';\n\nfor await (const chunk of $`long-running-command`.stream()) {\n  if (chunk.type === 'stdout') {\n    console.log('Real-time output:', chunk.data.toString());\n  } else if (chunk.type === 'exit') {\n    console.log('Process exited with code:', chunk.code);\n  }\n}\n```\n\n`stream()` yields `{ type: 'stdout' | 'stderr', data: Buffer }` chunks as output\narrives, followed by a final `{ type: 'exit', code }` chunk when the process\nexits. Always guard on `chunk.type` before reading `chunk.data`, since the\n`exit` chunk carries `code` instead of `data`.\n\nCompound commands stream progressively too. Supported sequences keep built-in\nand registered virtual commands in command-stream while forwarding nested\nsystem-process output in real time:\n\n```javascript\nconst build = $({\n  mirror: false,\n})`echo \"build started\"; npm run build; echo \"build finished\"`;\n\nfor await (const chunk of build.stream()) {\n  if (chunk.type === 'stdout') {\n    consumeBuildOutput(chunk.data);\n  }\n}\n```\n\nBreaking the loop or calling `build.kill()` also stops the active nested\ncommand. For guidance on system-shell fallback, programmatic pipelines,\nproducer-side buffering, and patterns to avoid, see\n[Real-time Streaming in Best Practices](BEST-PRACTICES.md#real-time-streaming).\n\nThe iterator terminates as soon as the process exits, even if a grandchild keeps\nthe stdout/stderr pipe open (e.g. `sh -c 'background-task & echo done'`). Any\noutput still buffered is drained within a short grace period (the `exitPumpGrace`\noption, default `100`ms) before the lingering reads are aborted, so the loop\nnever hangs waiting on a pipe the command itself is no longer using.\n\n#### Stopping the process from inside the loop\n\nYou can stop a long-running command while iterating over it — either by calling\n`kill()` on the command, or simply by `break`ing out of the loop (which kills the\nprocess automatically as the iterator is cleaned up):\n\n```javascript\nconst cmd = $`some-endless-stream`;\n\nfor await (const chunk of cmd.stream()) {\n  if (chunk.type === 'stdout') {\n    console.log(chunk.data.toString());\n    if (seenEnoughOutput(chunk)) {\n      cmd.kill(); // stops the process; the loop then ends with an exit chunk\n    }\n  } else if (chunk.type === 'exit') {\n    console.log('stopped with code', chunk.code); // 143 for the SIGTERM from kill()\n  }\n}\n\n// Or just break — the process is terminated as the loop unwinds:\nfor await (const chunk of $`some-endless-stream`.stream()) {\n  if (chunk.type === 'stdout' && done(chunk)) break;\n}\n```\n\n##### Choosing the stop signal\n\n`kill()` defaults to `SIGTERM`, but you can stop with any signal. Pass it\nexplicitly, or configure a default via the `killSignal` option so that an\nargument-less `kill()`, a `break`, or an `AbortSignal` all use it:\n\n```javascript\n// Explicit per-call signal:\ncmd.kill('SIGINT'); // exit code 130\n\n// Configured default — used by kill(), break, and AbortSignal cancellation:\nconst cmd = $({ killSignal: 'SIGINT' })`some-endless-stream`;\nfor await (const chunk of cmd.stream()) {\n  if (chunk.type === 'stdout' && done(chunk))\n    cmd.kill(); // sends SIGINT\n  else if (chunk.type === 'exit') console.log(chunk.code); // 130\n}\n\n// AbortSignal style also honors killSignal — awaiting resolves promptly when\n// the signal fires (it does not hang) with the configured signal's exit code:\nconst ac = new AbortController();\nconst running = $({\n  signal: ac.signal,\n  killSignal: 'SIGINT',\n})`some-endless-stream`;\nsetTimeout(() => ac.abort(), 1000); // stops with SIGINT\nconst result = await running;\nconsole.log(result.code); // 130\n```\n\ncommand-stream still escalates to `SIGKILL` after delivering the chosen signal\nso a process that ignores it is guaranteed to terminate; the reported exit code\nreflects the signal you configured.\n\n### EventEmitter Pattern (Event-driven)\n\n```javascript\nimport { $ } from 'command-stream';\n\n// Attach event handlers then start execution\n$`command`\n  .on('data', (chunk) => {\n    if (chunk.type === 'stdout') {\n      console.log('Stdout:', chunk.data.toString());\n    }\n  })\n  .on('stderr', (chunk) => console.log('Stderr:', chunk))\n  .on('end', (result) => console.log('Done:', result))\n  .on('exit', (code) => console.log('Exit code:', code))\n  .start(); // Explicitly start the command\n\n// Or auto-start by awaiting\nconst cmd = $`another-command`.on('data', (chunk) => console.log(chunk));\nawait cmd; // Auto-starts in async mode\n```\n\n### Mixed Pattern (Best of Both Worlds)\n\n```javascript\nimport { $ } from 'command-stream';\n\n// Async mode - events fire in real-time\nconst process = $`streaming-command`;\nprocess.on('data', (chunk) => {\n  processRealTimeData(chunk);\n});\nconst result = await process;\nconsole.log('Final output:', result.stdout);\n\n// Sync mode - events fire after completion (batched)\nconst syncCmd = $`another-command`;\nsyncCmd.on('end', (result) => {\n  console.log('Completed with:', result.stdout);\n});\nconst syncResult = syncCmd.sync();\n```\n\n### Streaming Interfaces\n\nAdvanced streaming interfaces for fine-grained process control:\n\n```javascript\nimport { $ } from 'command-stream';\n\n// 🎯 STDIN CONTROL: Send data to interactive commands (real-time)\nconst grepCmd = $`grep \"important\"`;\nconst stdin = await grepCmd.streams.stdin; // Available immediately\n\nstdin.write('ignore this line\\n');\nstdin.write('important message\\n');\nstdin.write('skip this too\\n');\nstdin.end();\n\nconst result = await grepCmd;\nconsole.log(result.stdout); // \"important message\\n\"\n\n// 🔧 BINARY DATA: Access raw buffers (after command finishes)\nconst cmd = $`echo \"Hello World\"`;\nconst buffer = await cmd.buffers.stdout; // Complete snapshot\nconsole.log(buffer.length); // 12\n\n// 📝 TEXT DATA: Access as strings (after command finishes)\nconst textCmd = $`echo \"Hello World\"`;\nconst text = await textCmd.strings.stdout; // Complete snapshot\nconsole.log(text.trim()); // \"Hello World\"\n\n// ⚡ PROCESS CONTROL: Kill commands that ignore stdin\nconst pingCmd = $`ping google.com`;\n\n// Some commands ignore stdin input\nconst pingStdin = await pingCmd.streams.stdin;\nif (pingStdin) {\n  pingStdin.write('q\\n'); // ping ignores this\n}\n\n// Use kill() for forceful termination\nsetTimeout(() => pingCmd.kill(), 2000);\nconst pingResult = await pingCmd;\nconsole.log('Ping stopped with code:', pingResult.code); // 143 (SIGTERM)\n\n// 🔄 MIXED STDOUT/STDERR: Handle both streams (complete snapshots)\nconst mixedCmd = $`sh -c 'echo \"out\" && echo \"err\" >&2'`;\nconst [stdout, stderr] = await Promise.all([\n  mixedCmd.strings.stdout, // Available after finish\n  mixedCmd.strings.stderr, // Available after finish\n]);\nconsole.log('Out:', stdout.trim()); // \"out\"\nconsole.log('Err:', stderr.trim()); // \"err\"\n\n// 🏃‍♂️ AUTO-START: Streams auto-start processes when accessed\nconst cmd = $`echo \"test\"`;\nconsole.log('Started?', cmd.started); // false\n\nconst output = await cmd.streams.stdout; // Auto-starts, immediate access\nconsole.log('Started?', cmd.started); // true\n\n// 🔙 BACKWARD COMPATIBLE: Traditional await still works\nconst traditional = await $`echo \"still works\"`;\nconsole.log(traditional.stdout); // \"still works\\n\"\n```\n\n**Key Features:**\n\n- `command.streams.stdin/stdout/stderr` - Direct access to Node.js streams\n- `command.buffers.stdin/stdout/stderr` - Binary data as Buffer objects\n- `command.strings.stdin/stdout/stderr` - Text data as strings\n- `command.kill()` - Forceful process termination\n- **Auto-start behavior:** Process starts only when accessing stream properties\n- **Perfect for:** Interactive commands (grep, sort, bc), data processing, real-time control\n- **Network commands (ping, wget) ignore stdin** → Use `kill()` method instead\n\n**🚀 Streams vs Buffers/Strings:**\n\n- **`streams.*`** - Available **immediately** when command starts, for real-time interaction\n- **`buffers.*` & `strings.*`** - Complete **snapshots** available only **after** command finishes\n\n### Shell Replacement (.sh → .mjs)\n\nReplace bash scripts with JavaScript while keeping shell semantics:\n\n```javascript\nimport { $, shell, set, unset } from 'command-stream';\n\n// set -e equivalent: exit on any error\nshell.errexit(true);\n\nawait $`mkdir -p build`;\nawait $`npm run build`;\n\n// set +e equivalent: allow errors (like bash)\nshell.errexit(false);\nconst cleanup = await $`rm -rf temp`; // Won't throw if fails\n\n// set -e again for critical operations\nshell.errexit(true);\nawait $`cp -r build/* deploy/`;\n\n// Other bash-like settings\nshell.verbose(true); // set -v: print commands\nshell.xtrace(true); // set -x: trace execution\n\n// Or use the bash-style API\nset('e'); // set -e\nunset('e'); // set +e\nset('x'); // set -x\nset('verbose'); // Long form also supported\n```\n\n### Cross-Platform File Operations (Built-in Commands)\n\nReplace system-dependent operations with built-in commands that work identically everywhere:\n\n```javascript\nimport { $ } from 'command-stream';\n\n// File system operations work on Windows, macOS, and Linux identically\nawait $`mkdir -p project/src project/tests`;\nawait $`touch project/src/index.js project/tests/test.js`;\n\n// List files with details\nconst files = await $`ls -la project/src`;\nconsole.log(files.stdout);\n\n// Copy and move operations\nawait $`cp project/src/index.js project/src/backup.js`;\nawait $`mv project/src/backup.js project/backup.js`;\n\n// File content operations\nawait $`echo \"export default 'Hello World';\" > project/src/index.js`;\nconst content = await $`cat project/src/index.js`;\nconsole.log(content.stdout);\n\n// Path operations\nconst filename = await $`basename project/src/index.js .js`; // → \"index\"\nconst directory = await $`dirname project/src/index.js`; // → \"project/src\"\n\n// Generate sequences and process them\nawait $`seq 1 10 | cat > numbers.txt`;\nconst numbers = await $`cat numbers.txt`;\n\n// Cleanup\nawait $`rm -r project numbers.txt`;\n```\n\n### Working Directory (`cd` and the `cwd` option)\n\nThe built-in `cd` command behaves like `cd` in a POSIX `sh`/bash command list.\nThe new directory remains active for every command in the same `$` invocation,\nwhile the host process working directory remains untouched—even while the\ninvocation is still running:\n\n```javascript\nimport { $ } from 'command-stream';\n\nconst before = process.cwd();\nconst result = await $`cd /some/directory && pwd`;\nconsole.log(result.stdout); // /some/directory\nconsole.log(process.cwd() === before); // true\n```\n\nKeep dependent commands in one invocation. Separate invocations are isolated\nfrom one another:\n\n```javascript\nawait $`cd /tmp && pwd`; // chain with && -> /tmp\nawait $`cd /tmp`;\nawait $`pwd`; // separate invocation -> the host process directory\nawait $`cd && pwd`; // no argument -> $HOME\nawait $`cd ~ && pwd`; // ~ expands to $HOME\nawait $`cd ~/projects && pwd`; // ~/ prefix expands to $HOME/projects\nawait $`cd /tmp && cd .. && pwd`; // parent directory\nawait $`cd /tmp && cd /usr && cd -`; // previous directory (prints it)\nawait $`cd /tmp && mkdir t && cd t && pwd`; // -> /tmp/t\n```\n\nWithin an invocation, a successful `cd` updates `PWD` and `OLDPWD` (used by\n`cd -`) exactly like a real shell. These values are passed to later virtual and\nreal commands without changing `process.env`, including when a command fails or\n`errexit` rejects. A failed `cd` prints a\n`sh`-style error to stderr and returns a non-zero exit code:\n\n```javascript\nconst r = await $`cd /does/not/exist`;\nconsole.log(r.code); // 1\nconsole.log(r.stderr); // cd: ENOENT: no such file or directory, ...\n```\n\n#### Subshell isolation with `( … )`\n\nAs in sh, a `cd` inside a subshell `( … )` does **not** affect the surrounding\ncommand list:\n\n```javascript\nprocess.chdir('/tmp');\nawait $`(cd /usr && pwd) ; pwd`;\n// -> /usr        (inside the subshell)\n// -> /tmp        (parent directory is unchanged)\n```\n\n#### `cd` vs. the `cwd` option\n\nThere are two ways to control the working directory; pick whichever maps best to\nthe script you are translating:\n\n```javascript\n// 1) cd command — changes the invocation-local directory.\nawait $`cd /tmp && pwd`; // -> /tmp; host process.cwd() stays untouched\n\n// 2) cwd option — sets a fixed working directory for a single invocation\n//    (or a reusable $({ cwd }) binding) without changing process.cwd().\nawait $({ cwd: '/tmp' })`pwd`; // -> /tmp, process.cwd() is untouched\n```\n\nRelative `cd` targets are resolved against the `cwd` option when one is provided,\nso `` $({ cwd: '/tmp' })`cd sub && /bin/pwd` `` prints `/tmp/sub` while that\ninvocation is running.\n\n> **Note:** Virtual commands such as `echo` do not perform shell variable\n> expansion, so `echo $PWD` prints the literal string `$PWD`. Use the `pwd`\n> command or a real child command (e.g. `/bin/sh -c 'echo \"$PWD\"'`) when you\n> need the invocation-local value. `process.cwd()` intentionally stays at the\n> host directory.\n\n### Virtual Commands (Extensible Shell)\n\nCreate custom commands that work seamlessly alongside built-ins:\n\n```javascript\nimport { $, register, unregister, listCommands } from 'command-stream';\n\n// Register a custom command\nregister('greet', async ({ args, stdin }) => {\n  const name = args[0] || 'World';\n  return { stdout: `Hello, ${name}!\\n`, code: 0 };\n});\n\n// Use it like any other command\nawait $`greet Alice`; // → \"Hello, Alice!\"\nawait $`echo \"Bob\" | greet`; // → \"Hello, Bob!\"\n\n// Streaming virtual commands with async generators\nregister('countdown', async function* ({ args }) {\n  const start = parseInt(args[0] || 5);\n  for (let i = start; i >= 0; i--) {\n    yield `${i}\\n`;\n    await new Promise((r) => setTimeout(r, 1000));\n  }\n});\n\n// Use in pipelines with built-ins\nawait $`countdown 3 | cat > countdown.txt`;\n\n// Virtual commands work in all patterns\nfor await (const chunk of $`countdown 3`.stream()) {\n  console.log('Countdown:', chunk.data.toString().trim());\n}\n\n// Management functions\nconsole.log(listCommands()); // List all registered commands\nunregister('greet'); // Remove custom commands\n```\n\n#### 🔥 **Why Virtual Commands Are Revolutionary**\n\n**No other shell library offers this level of extensibility:**\n\n- **🚫 Bun.$**: Fixed set of built-in commands, no extensibility API\n- **🚫 execa**: Transform/pipeline system, but no custom commands\n- **🚫 zx**: JavaScript functions only, no shell command integration\n\n**command-stream breaks the barrier** between JavaScript functions and shell commands:\n\n```javascript\n// ❌ Other libraries: Choose JavaScript OR shell\nawait execa('node', ['script.js']); // execa: separate processes\nawait $`node script.js`; // zx: shell commands only\n\n// ✅ command-stream: JavaScript functions AS shell commands\nregister('deploy', async ({ args }) => {\n  const env = args[0] || 'staging';\n  await deployToEnvironment(env);\n  return { stdout: `Deployed to ${env}!\\n`, code: 0 };\n});\n\nawait $`deploy production`; // JavaScript function as shell command!\nawait $`deploy staging | tee log.txt`; // Works in pipelines!\n```\n\n**Unique capabilities:**\n\n- **Seamless Integration**: Virtual commands work exactly like built-ins\n- **Pipeline Support**: Full stdin/stdout passing between virtual and system commands\n- **Streaming**: Async generators for real-time output\n- **Dynamic Registration**: Add/remove commands at runtime\n- **Option Awareness**: Virtual commands respect `cwd`, `env`, etc.\n\n### 🔗 **Advanced Pipeline Support**\n\n**command-stream offers the most advanced piping system in the JavaScript ecosystem:**\n\n#### **Shell-Style Piping (Traditional)**\n\n```javascript\nimport { $, register } from 'command-stream';\n\n// ✅ Standard shell piping (like all libraries)\nawait $`echo \"hello world\" | wc -w`; // → \"2\"\n\n// ✅ Built-in to built-in piping\nawait $`seq 1 5 | cat > numbers.txt`;\n\n// ✅ System to built-in piping\nawait $`git log --oneline | head -n 5`;\n\n// 🚀 UNIQUE: Virtual command piping\nregister('uppercase', async ({ args, stdin }) => {\n  return { stdout: stdin.toUpperCase(), code: 0 };\n});\n\nregister('reverse', async ({ args, stdin }) => {\n  return { stdout: stdin.split('').reverse().join(''), code: 0 };\n});\n\n// ✅ Built-in to virtual piping\nawait $`echo \"hello\" | uppercase`; // → \"HELLO\"\n\n// ✅ Virtual to virtual piping\nawait $`echo \"hello\" | uppercase | reverse`; // → \"OLLEH\"\n\n// ✅ Mixed pipelines (system + built-in + virtual)\nawait $`git log --oneline | head -n 3 | uppercase | cat > LOG.txt`;\n\n// ✅ Complex multi-stage pipelines\nawait $`find . -name \"*.js\" | head -n 10 | basename | sort | uniq`;\n```\n\n#### **🚀 Programmatic .pipe() Method (NEW!)**\n\n**World's first shell library with full `.pipe()` method support for virtual commands:**\n\n```javascript\nimport { $, register } from 'command-stream';\n\n// ✅ Basic programmatic piping\nconst result = await $`echo \"hello\"`.pipe($`echo \"World: $(cat)\"`);\n\n// 🌟 Virtual command chaining\nregister('add-prefix', async ({ args, stdin }) => {\n  const prefix = args[0] || 'PREFIX:';\n  return { stdout: `${prefix} ${stdin.trim()}\\n`, code: 0 };\n});\n\nregister('add-suffix', async ({ args, stdin }) => {\n  const suffix = args[0] || 'SUFFIX';\n  return { stdout: `${stdin.trim()} ${suffix}\\n`, code: 0 };\n});\n\n// ✅ Chain virtual commands with .pipe()\nconst result = await $`echo \"Hello\"`\n  .pipe($`add-prefix \"[PROCESSED]\"`)\n  .pipe($`add-suffix \"!!!\"`);\n// → \"[PROCESSED] Hello !!!\"\n\n// ✅ Mix with built-in commands\nconst fileData = await $`cat large-file.txt`\n  .pipe($`head -n 100`)\n  .pipe($`add-prefix \"Line:\"`);\n\n// ✅ Error handling in pipelines\ntry {\n  const result = await $`cat nonexistent.txt`.pipe($`add-prefix \"Data:\"`);\n} catch (error) {\n  // Source error propagates - destination never executes\n  console.log('File not found, pipeline stopped');\n}\n\n// ✅ Complex data processing\nregister('json-parse', async ({ args, stdin }) => {\n  try {\n    const data = JSON.parse(stdin);\n    return { stdout: JSON.stringify(data, null, 2), code: 0 };\n  } catch (error) {\n    return { stdout: '', stderr: `JSON Error: ${error.message}`, code: 1 };\n  }\n});\n\nregister('extract-field', async ({ args, stdin }) => {\n  const field = args[0];\n  try {\n    const data = JSON.parse(stdin);\n    const value = data[field] || 'null';\n    return { stdout: `${value}\\n`, code: 0 };\n  } catch (error) {\n    return { stdout: '', stderr: `Extract Error: ${error.message}`, code: 1 };\n  }\n});\n\n// Real-world API processing pipeline\nconst userName = await $`curl -s https://api.github.com/users/octocat`\n  .pipe($`json-parse`)\n  .pipe($`extract-field name`);\n// → \"The Octocat\"\n\n// Cleanup\nunregister('add-prefix');\nunregister('add-suffix');\nunregister('json-parse');\nunregister('extract-field');\n```\n\n#### **🆚 How We Compare**\n\n| Library            | Pipeline Types                          | Custom Commands in Pipes | `.pipe()` Method                    | Real-time Streaming |\n| ------------------ | --------------------------------------- | ------------------------ | ----------------------------------- | ------------------- |\n| **command-stream** | ✅ System + Built-ins + Virtual + Mixed | ✅ **Full support**      | ✅ **Full virtual command support** | ✅ **Yes**          |\n| **Bun.$**          | ✅ System + Built-ins                   | ❌ No custom commands    | ❌ No `.pipe()` method              | ❌ No               |\n| **execa**          | ✅ Programmatic `.pipe()`               | ❌ No shell integration  | ✅ Basic process piping             | 🟡 Limited          |\n| **zx**             | ✅ Shell piping + `.pipe()`             | ❌ No custom commands    | ✅ Stream piping only               | ❌ No               |\n\n**🎯 Unique Advantages:**\n\n- **Virtual commands work seamlessly in both shell pipes AND `.pipe()` method** - no other library can do this\n- **Mixed pipeline types** - combine system, built-in, and virtual commands freely in both syntaxes\n- **Real-time streaming** through virtual command pipelines\n- **Full stdin/stdout passing** between all command types\n- **Dual piping syntax** - use shell `|` OR programmatic `.pipe()` interchangeably\n\n## Default Behavior: Shell-like with Programmatic Control\n\n**command-stream behaves exactly like running commands in your shell by default:**\n\n```javascript\nimport { $ } from 'command-stream';\n\n// This command will:\n// 1. Print \"Hello\" to your terminal (stdout→stdout)\n// 2. Print \"Error!\" to your terminal (stderr→stderr)\n// 3. Capture both outputs for programmatic access\nconst result = await $`sh -c \"echo 'Hello'; echo 'Error!' >&2\"`;\n\nconsole.log('Captured stdout:', result.stdout); // \"Hello\\n\"\nconsole.log('Captured stderr:', result.stderr); // \"Error!\\n\"\nconsole.log('Exit code:', result.code); // 0\n```\n\n**Key Default Options:**\n\n- `mirror: true` - Live o","readmeFilename":"README.md"}