{"_id":"stringstream","_rev":"49999","name":"stringstream","description":"Encode and decode streams into string streams","dist-tags":{"latest":"1.0.0"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"time":{"modified":"2021-06-03T10:15:19.000Z","created":"2012-06-23T01:34:23.318Z","1.0.0":"2018-08-23T19:33:10.411Z","0.0.6":"2018-05-17T10:22:37.212Z","0.0.5":"2015-10-25T23:27:18.102Z","0.0.4":"2013-01-21T06:26:03.334Z","0.0.3":"2012-06-27T05:23:45.522Z","0.0.2":"2012-06-24T12:45:44.493Z","0.0.1":"2012-06-23T03:22:41.897Z","0.0.0":"2012-06-23T01:34:23.318Z"},"users":{"jakemiller":true,"mojaray2k":true,"shanewholloway":true,"ganeshkbhat":true},"author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/mhart/StringStream.git"},"versions":{"1.0.0":{"name":"stringstream","version":"1.0.0","description":"Encode and decode streams into string streams","repository":{"type":"git","url":"git+https://github.com/mhart/StringStream.git"},"author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com"},"license":"MIT","main":"stringstream.js","engines":{"node":">=4.0.0"},"scripts":{"test":"node test.js"},"gitHead":"8d330f20101c9fb3a0f979e1cf3993606918d895","bugs":{"url":"https://github.com/mhart/StringStream/issues"},"homepage":"https://github.com/mhart/StringStream#readme","_id":"stringstream@1.0.0","_npmVersion":"6.4.0","_nodeVersion":"10.9.0","_npmUser":{"name":"hichaelmart","email":"michael.hart.au@gmail.com"},"dist":{"shasum":"2f0b37e8beae208166560e75700a656beb379ab6","size":3285,"noattachment":false,"key":"/stringstream/-/stringstream-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-1.0.0.tgz"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stringstream_1.0.0_1535052790288_0.9718936037465251"},"_hasShrinkwrap":false,"publish_time":1535052790411,"_cnpm_publish_time":1535052790411},"0.0.6":{"name":"stringstream","version":"0.0.6","description":"Encode and decode streams into string streams","author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com","url":"http://github.com/mhart"},"main":"stringstream.js","keywords":["string","stream","base64","gzip"],"repository":{"type":"git","url":"git+https://github.com/mhart/StringStream.git"},"license":"MIT","gitHead":"fee31c5c4a5efc7c7cc2fde4aee633dedefd6d67","bugs":{"url":"https://github.com/mhart/StringStream/issues"},"homepage":"https://github.com/mhart/StringStream#readme","_id":"stringstream@0.0.6","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"hichaelmart","email":"michael.hart.au@gmail.com"},"dist":{"shasum":"7880225b0d4ad10e30927d167a1d6f2fd3b33a72","size":2458,"noattachment":false,"key":"/stringstream/-/stringstream-0.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-0.0.6.tgz"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stringstream_0.0.6_1526552557136_0.20062352033275022"},"_hasShrinkwrap":false,"publish_time":1526552557212,"_cnpm_publish_time":1526552557212},"0.0.5":{"name":"stringstream","version":"0.0.5","description":"Encode and decode streams into string streams","author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com","url":"http://github.com/mhart"},"main":"stringstream.js","keywords":["string","stream","base64","gzip"],"repository":{"type":"git","url":"git+https://github.com/mhart/StringStream.git"},"license":"MIT","gitHead":"1efe3bf507bf3a1161f8473908b60e881d41422b","bugs":{"url":"https://github.com/mhart/StringStream/issues"},"homepage":"https://github.com/mhart/StringStream#readme","_id":"stringstream@0.0.5","scripts":{},"_shasum":"4e484cd4de5a0bbbee18e46307710a8a81621878","_from":".","_npmVersion":"2.14.8","_nodeVersion":"4.2.1","_npmUser":{"name":"hichaelmart","email":"michael.hart.au@gmail.com"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"dist":{"shasum":"4e484cd4de5a0bbbee18e46307710a8a81621878","size":2593,"noattachment":false,"key":"/stringstream/-/stringstream-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-0.0.5.tgz"},"directories":{},"publish_time":1445815638102,"_cnpm_publish_time":1445815638102,"_hasShrinkwrap":false},"0.0.4":{"name":"stringstream","version":"0.0.4","description":"Encode and decode streams into string streams","author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com","url":"http://github.com/mhart"},"main":"stringstream.js","keywords":["string","stream","base64","gzip"],"repository":{"type":"git","url":"https://github.com/mhart/StringStream.git"},"license":"MIT","readmeFilename":"README.md","_id":"stringstream@0.0.4","dist":{"shasum":"0f0e3423f942960b5692ac324a57dd093bc41a92","size":2030,"noattachment":false,"key":"/stringstream/-/stringstream-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-0.0.4.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"hichaelmart","email":"michael.hart.au@gmail.com"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"directories":{},"publish_time":1358749563334,"_cnpm_publish_time":1358749563334,"_hasShrinkwrap":false},"0.0.3":{"name":"stringstream","version":"0.0.3","description":"Encode and decode streams into string streams","main":"stringstream.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"homepage":"https://github.com/mhart/StringStream","repository":{"url":"https://github.com/mhart/StringStream.git"},"author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com"},"license":"BSD","_id":"stringstream@0.0.3","dist":{"shasum":"db9412bd6d349058a437dd483dfabc65b4578b48","size":1885,"noattachment":false,"key":"/stringstream/-/stringstream-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-0.0.3.tgz"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"directories":{},"publish_time":1340774625522,"_cnpm_publish_time":1340774625522,"_hasShrinkwrap":false},"0.0.2":{"name":"stringstream","version":"0.0.2","description":"Encode and decode streams into string streams","main":"stringstream.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"homepage":"https://github.com/mhart/StringStream","repository":{"url":"https://github.com/mhart/StringStream.git"},"author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com"},"license":"BSD","_id":"stringstream@0.0.2","dist":{"shasum":"663f1171cd94d7951b14074037a622b92bde8669","size":1802,"noattachment":false,"key":"/stringstream/-/stringstream-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-0.0.2.tgz"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"directories":{},"publish_time":1340541944493,"_cnpm_publish_time":1340541944493,"_hasShrinkwrap":false},"0.0.1":{"name":"stringstream","version":"0.0.1","description":"Encode and decode streams into string streams","main":"stringstream.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"homepage":"https://github.com/mhart/StringStream","repository":{"url":"https://github.com/mhart/StringStream.git"},"author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com"},"license":"BSD","_id":"stringstream@0.0.1","dist":{"shasum":"93c24069089395a0a095222ce032aaf453d71f45","size":1670,"noattachment":false,"key":"/stringstream/-/stringstream-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-0.0.1.tgz"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"directories":{},"publish_time":1340421761897,"_cnpm_publish_time":1340421761897,"_hasShrinkwrap":false},"0.0.0":{"name":"stringstream","version":"0.0.0","description":"Encode and decode data streams into string streams","main":"stringstream.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"homepage":"https://github.com/mhart/StringStream","repository":{"url":"https://github.com/mhart/StringStream.git"},"author":{"name":"Michael Hart","email":"michael.hart.au@gmail.com"},"license":"BSD","_id":"stringstream@0.0.0","dist":{"shasum":"4228912fb3a96ca3254b233359df50f9da804e1e","size":527,"noattachment":false,"key":"/stringstream/-/stringstream-0.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stringstream/download/stringstream-0.0.0.tgz"},"maintainers":[{"name":"npm:hichaelmart","email":""}],"directories":{},"publish_time":1340415263318,"_cnpm_publish_time":1340415263318,"_hasShrinkwrap":false}},"readme":"# Decode streams into strings without setEncoding\n\n```js\nconst fs = require('fs')\nconst zlib = require('zlib')\nconst strs = require('stringstream')\n\nconst utf8Stream = fs.createReadStream('massiveLogFile.gz')\n  .pipe(zlib.createGunzip())\n  .pipe(strs('utf8'))\n\nutf8Stream.on('data', str => console.log(`This will be a string: ${str}`))\n```\n\n## API\n\n  - `strs(to, [options])` – creates a transform stream that converts the input into strings in `to` encoding (eg, `utf8`, `hex`, `base64`)\n  - `strs(from, to, [options])` – creates a transform stream converts the input from strings in `from` encoding to strings in `to` encoding\n\n`options` can be anything compatible with the standard Node.js [`new stream.Transform([options])` constructor](https://nodejs.org/api/stream.html#stream_new_stream_transform_options)\n\n## NB: This library was originally written before Node.js [correctly encoded base64 strings from streams](https://github.com/nodejs/node/commit/061f2075cf81017cdb40de80533ba18746743c94)\n\nBack in the day, calling `.setEncoding('base64')` on a readable stream didn't\nalign correctly, which was one of the main reasons I wrote this library –\nhowever this hasn't been the case for a long time, so this library is\nnow really only useful in scenarios where you don't want to call\n`.setEncoding()` for whatever reason.\n\nIt also handles input and output text encodings:\n\n```js\n// Stream from utf8 to hex to base64... Why not, ay.\nconst hex64Stream = fs.createReadStream('myFile.txt')\n  .pipe(strs('utf8', 'hex'))\n  .pipe(strs('hex', 'base64'))\n```\n\nAlso deals with `base64` output correctly by aligning each emitted data\nchunk so that there are no dangling `=` characters:\n\n```js\nconst stream = fs.createReadStream('myFile.jpg').pipe(strs('base64'))\n\nlet base64Str = ''\n\nstream.on('data', data => base64Str += data)\nstream.on('end', () => {\n  console.log('My base64 encoded file is: ' + base64Str)\n  console.log('Original file is: ' + Buffer.from(base64Str, 'base64'))\n})\n```\n","_attachments":{},"homepage":"https://github.com/mhart/StringStream#readme","bugs":{"url":"https://github.com/mhart/StringStream/issues"},"license":"MIT"}