{"_id":"@ckirby/unbzip2-multistream","_rev":"5-8b3a0d0252b3b015fca58e6acdccab0c","name":"@ckirby/unbzip2-multistream","dist-tags":{"latest":"2.1.3"},"versions":{"2.0.0":{"name":"@ckirby/unbzip2-multistream","version":"2.0.0","keywords":["bzip","bzip2","bz2","stream","streaming","decompress"],"author":{"name":"Jan Bölsche","email":"jan@lagomorph.de"},"license":"MIT","_id":"@ckirby/unbzip2-multistream@2.0.0","maintainers":[{"name":"ckirby","email":"chad.kirby@gmail.com"}],"homepage":"https://github.com/chadkirby/unbzip2-multistream#readme","bugs":{"url":"https://github.com/chadkirby/unbzip2-multistream/issues"},"dist":{"shasum":"aa4f4a70a12e92bf3a64318615e92d42ba5f4a2a","tarball":"https://registry.npmjs.org/@ckirby/unbzip2-multistream/-/unbzip2-multistream-2.0.0.tgz","fileCount":12,"integrity":"sha512-RYaGpL55o7y8QfV3pu3JCWfyZBhGWZlIdEfaPWLfmIK7nElxWLqt3dbC131e/vPbf/YYEvsIY+KrBr64ywVqcg==","signatures":[{"sig":"MEUCIQCR79UuED5ftD6bsSxprBCxa/hyTPZiQj6O3EynUwLtBwIgRzeNclqAT6hIa1+c2FJ0+q/APB1s6ZRXRzT3+v/Xt/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26314},"main":"index.js","types":"./index.d.ts","gitHead":"7ebdd0f4f3e1d3f2b41d488a2158059c16db8261","scripts":{"test":"npm run build && tape test/*.js","build":"tsc","prepare":"tsc","long-test":"tape test/extra/long.js","prepare-long-test":"head -c 104857600 < /dev/urandom | tee test/fixtures/vmlinux.bin | bzip2 > test/fixtures/vmlinux.bin.bz2"},"_npmUser":{"name":"ckirby","email":"chad.kirby@gmail.com"},"repository":{"url":"git+https://github.com/chadkirby/unbzip2-multistream.git","type":"git"},"_npmVersion":"10.5.0","description":"streaming unbzip2 implementation in TypeScript for Node.js","directories":{},"_nodeVersion":"20.12.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.9.2","typescript":"5.9.2","@types/node":"^20.0.0","stream-equal":"^1.1.1","concat-stream":"^1.4.7","@types/through":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/unbzip2-multistream_2.0.0_1756763969030_0.7812543125114197","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@ckirby/unbzip2-multistream","version":"2.1.0","keywords":["bzip","bzip2","bz2","stream","streaming","decompress"],"author":{"name":"Jan Bölsche","email":"jan@lagomorph.de"},"license":"MIT","_id":"@ckirby/unbzip2-multistream@2.1.0","maintainers":[{"name":"ckirby","email":"chad.kirby@gmail.com"}],"homepage":"https://github.com/chadkirby/unbzip2-multistream#readme","bugs":{"url":"https://github.com/chadkirby/unbzip2-multistream/issues"},"dist":{"shasum":"d1c4fc42606c2d229235ca0606cd6374e18851d2","tarball":"https://registry.npmjs.org/@ckirby/unbzip2-multistream/-/unbzip2-multistream-2.1.0.tgz","fileCount":12,"integrity":"sha512-0g7sZ3CC3T/ltIIINMDp7ESNPeEUsLNhAVvpPnEB9Kq4mQ7tYTgqbkBdZ3G6g2Kk0M8hzB856/4f3/u8MR05mw==","signatures":[{"sig":"MEQCIE4dVCGWAvc70Q3msA1ED6jP7IuKSz2M220+K0ZFC9fpAiBhQkEJwdRkdvqHcCS8r1WR+nGbY8Lm64FlZDJkDepSwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29797},"main":"index.js","types":"./index.d.ts","gitHead":"e144ee7e4728d64f76bb23cee3cbe8f999023668","scripts":{"test":"npm run build && tape test/*.js","build":"tsc","prepare":"tsc","long-test":"tape test/extra/long.js","prepare-long-test":"head -c 104857600 < /dev/urandom | tee test/fixtures/vmlinux.bin | bzip2 > test/fixtures/vmlinux.bin.bz2"},"_npmUser":{"name":"ckirby","email":"chad.kirby@gmail.com"},"repository":{"url":"git+https://github.com/chadkirby/unbzip2-multistream.git","type":"git"},"_npmVersion":"10.5.0","description":"streaming unbzip2 implementation in TypeScript for Node.js","directories":{},"_nodeVersion":"20.12.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.9.2","typescript":"5.9.2","@types/node":"^20.0.0","stream-equal":"^1.1.1","concat-stream":"^1.4.7","@types/through":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/unbzip2-multistream_2.1.0_1756789731986_0.5979429888150514","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@ckirby/unbzip2-multistream","version":"2.1.1","keywords":["bzip","bzip2","bz2","stream","streaming","decompress"],"author":{"name":"Jan Bölsche","email":"jan@lagomorph.de"},"license":"MIT","_id":"@ckirby/unbzip2-multistream@2.1.1","maintainers":[{"name":"ckirby","email":"chad.kirby@gmail.com"}],"homepage":"https://github.com/chadkirby/unbzip2-multistream#readme","bugs":{"url":"https://github.com/chadkirby/unbzip2-multistream/issues"},"dist":{"shasum":"1fa56b3dc3ffee2b616e1696a422df62ede19810","tarball":"https://registry.npmjs.org/@ckirby/unbzip2-multistream/-/unbzip2-multistream-2.1.1.tgz","fileCount":12,"integrity":"sha512-uNpM2Jdw5iltN2f7aM9/W4LPC7Jx0uPMNQMNme44OV2CwuZUcW1ajhsCDtopeNtsduSw6os2vIvlhJERwBsSDA==","signatures":[{"sig":"MEQCIGlZl/0m3KI0LEuo4CFu9vweucl1m+FVwbYmCM28qX3OAiAs3l8InIsXwIuycc8i480aLwi2/GWLOS5lSAZFbWYeRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28670},"main":"index.js","types":"./index.d.ts","gitHead":"f4a2d16e0e15e7e1cf6f3fa9ef2f9a51076bb8d7","scripts":{"test":"npm run build && tape test/*.js","build":"tsc","prepare":"tsc","long-test":"tape test/extra/long.js","prepare-long-test":"head -c 104857600 < /dev/urandom | tee test/fixtures/vmlinux.bin | bzip2 > test/fixtures/vmlinux.bin.bz2"},"_npmUser":{"name":"ckirby","email":"chad.kirby@gmail.com"},"repository":{"url":"git+https://github.com/chadkirby/unbzip2-multistream.git","type":"git"},"_npmVersion":"10.5.0","description":"streaming unbzip2 implementation in TypeScript for Node.js","directories":{},"_nodeVersion":"20.12.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.9.2","typescript":"5.9.2","@types/node":"^20.0.0","stream-equal":"^1.1.1","concat-stream":"^1.4.7","@types/through":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/unbzip2-multistream_2.1.1_1756827746792_0.6629237347497086","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@ckirby/unbzip2-multistream","version":"2.1.2","keywords":["bzip","bzip2","bz2","stream","streaming","decompress"],"author":{"name":"Jan Bölsche","email":"jan@lagomorph.de"},"license":"MIT","_id":"@ckirby/unbzip2-multistream@2.1.2","maintainers":[{"name":"ckirby","email":"chad.kirby@gmail.com"}],"homepage":"https://github.com/chadkirby/unbzip2-multistream#readme","bugs":{"url":"https://github.com/chadkirby/unbzip2-multistream/issues"},"dist":{"shasum":"45a3b4c6310e1f7a534093b396a8de13d5340586","tarball":"https://registry.npmjs.org/@ckirby/unbzip2-multistream/-/unbzip2-multistream-2.1.2.tgz","fileCount":12,"integrity":"sha512-YJvOwDkwgOGLBQNrbV3fPrneIaCCQXqDDitCuou38m0kJtZTSfmElb692Bj34hm1732SHWbWqxdWqvd8ldymTQ==","signatures":[{"sig":"MEUCIH0ewctufM1gciWdct22kUv1bl8s/cJhDaArNmBAjc14AiEA8LLxVkdrUXciwr2uQ64d3+f51AFpA34gYxkw5sIDEKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28677},"main":"index.js","types":"./index.d.ts","gitHead":"0c561ab021d2aa79677d1add0a52dde2e9e39913","scripts":{"test":"npm run build && tape test/*.js","build":"tsc","prepare":"tsc","long-test":"tape test/extra/long.js","prepare-long-test":"head -c 104857600 < /dev/urandom | tee test/fixtures/vmlinux.bin | bzip2 > test/fixtures/vmlinux.bin.bz2"},"_npmUser":{"name":"ckirby","email":"chad.kirby@gmail.com"},"repository":{"url":"git+https://github.com/chadkirby/unbzip2-multistream.git","type":"git"},"_npmVersion":"10.5.0","description":"streaming unbzip2 implementation in TypeScript for Node.js","directories":{},"_nodeVersion":"20.12.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.9.2","typescript":"5.9.2","@types/node":"^20.0.0","stream-equal":"^1.1.1","concat-stream":"^1.4.7","@types/through":"^0.0.33"},"_npmOperationalInternal":{"tmp":"tmp/unbzip2-multistream_2.1.2_1756863600133_0.47901142217675274","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@ckirby/unbzip2-multistream","version":"2.1.3","description":"streaming unbzip2 implementation in TypeScript for Node.js","keywords":["bzip","bzip2","bz2","stream","streaming","decompress"],"publishConfig":{"access":"public"},"scripts":{"prepare":"tsc","build":"tsc","prepare-long-test":"head -c 104857600 < /dev/urandom | tee test/fixtures/vmlinux.bin | bzip2 > test/fixtures/vmlinux.bin.bz2","long-test":"tape test/extra/long.js","test":"npm run build && tape test/*.js"},"author":{"name":"Jan Bölsche","email":"jan@lagomorph.de"},"repository":{"url":"git+https://github.com/chadkirby/unbzip2-multistream.git","type":"git"},"bugs":{"url":"https://github.com/chadkirby/unbzip2-multistream/issues"},"main":"index.js","devDependencies":{"@types/through":"^0.0.33","@types/node":"^20.0.0","concat-stream":"^1.4.7","stream-equal":"^1.1.1","tape":"^4.9.2","typescript":"5.9.2"},"dependencies":{},"license":"MIT","_id":"@ckirby/unbzip2-multistream@2.1.3","gitHead":"5ef41b5535b45a3321b3cd4fa2af76f66e3d3c27","types":"./index.d.ts","homepage":"https://github.com/chadkirby/unbzip2-multistream#readme","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-xZ2oloskW2t6sHeCQxqBWdKwD/GtAK3w//1GZbFHOrTrSeQ7QOz1vwhUOBkXjsj8vUYIVtTTrSV2jaDdPakLnw==","shasum":"185aef279c6841a9b70d3fce78d2a982c856cfed","tarball":"https://registry.npmjs.org/@ckirby/unbzip2-multistream/-/unbzip2-multistream-2.1.3.tgz","fileCount":12,"unpackedSize":28659,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBrOf39pMh3x1tfR5QiCcjuMF+8od+Cec9ionNw1P4lQAiAmnsRlmGysfaAp4gxgYUM2Hi+K3z8bgnFZQPMJid+sUg=="}]},"_npmUser":{"name":"ckirby","email":"chad.kirby@gmail.com"},"directories":{},"maintainers":[{"name":"ckirby","email":"chad.kirby@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unbzip2-multistream_2.1.3_1756863814806_0.4990261039437991"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-01T21:59:28.971Z","modified":"2025-09-03T01:43:35.172Z","2.0.0":"2025-09-01T21:59:29.237Z","2.1.0":"2025-09-02T05:08:52.161Z","2.1.1":"2025-09-02T15:42:26.965Z","2.1.2":"2025-09-03T01:40:00.316Z","2.1.3":"2025-09-03T01:43:35.000Z"},"bugs":{"url":"https://github.com/chadkirby/unbzip2-multistream/issues"},"author":{"name":"Jan Bölsche","email":"jan@lagomorph.de"},"license":"MIT","homepage":"https://github.com/chadkirby/unbzip2-multistream#readme","keywords":["bzip","bzip2","bz2","stream","streaming","decompress"],"repository":{"url":"git+https://github.com/chadkirby/unbzip2-multistream.git","type":"git"},"description":"streaming unbzip2 implementation in TypeScript for Node.js","maintainers":[{"name":"ckirby","email":"chad.kirby@gmail.com"}],"readme":"unbzip2-multistream\n===\nstreaming bzip2 decompressor in pure TypeScript for Node.js and browsers.\n\n### Cross-platform compatibility\nThis package works identically across Node.js, browsers, Deno, and other JavaScript environments. It has **zero runtime dependencies** and uses standard Web APIs (ArrayBuffer, Uint8Array, async iteration) that are available everywhere.\n\n### Usage\n``` js\nimport unbzip2Stream = require('@ckirby/unbzip2-multistream');\n\n// For Node.js streams\nconst fs = require('fs');\nconst { Readable } = require('node:stream');\n\n// Example usage\n(async () => {\n    const inputStream = Readable.from(fs.createReadStream('./test.bz2'));\n    for await (const chunk of unbzip2Stream(inputStream)) {\n        process.stdout.write(chunk);\n    }\n})();\n```\n\n### Browser usage\n``` js\n// Simple helper to convert ReadableStream to async iterable\nfunction readableStreamToAsyncIterable(stream) {\n  return (async function* () {\n    const reader = stream.getReader();\n    try {\n      while (true) {\n        const { done, value } = await reader.read();\n        if (done) return;\n        yield value; // value is Uint8Array\n      }\n    } finally {\n      reader.releaseLock();\n    }\n  })()\n}\n\nfetch('/file.bz2')\n    .then(response => unbzip2Stream(readableStreamToAsyncIterable(response.body)))\n    .then(async (stream) => {\n        for await (const chunk of stream) {\n            // process each decompressed chunk (Uint8Array)\n        }\n    });\n```\n\n### Tests\nTo run tests:\n\n    npm test\n\nTo run long-running benchmarks:\n\n    npm run prepare-long-test\n    npm run long-test\n\n### Features\n- **Zero dependencies**: Pure TypeScript implementation with no external runtime dependencies\n- **Cross-platform**: Works in Node.js, browsers, Deno, and other JS environments\n- **Streaming**: Processes data incrementally, suitable for large files\n- **Multi-stream support**: Handles concatenated bzip2 streams\n- **TypeScript**: Full type definitions included\n\n### API\nThe package exports a single async generator function that takes any object implementing `Symbol.asyncIterator` that yields `Uint8Array` chunks and returns an async iterable of decompressed `Uint8Array` chunks.\n","readmeFilename":"README.md"}