{"_id":"unique-stream","_rev":"64213","name":"unique-stream","description":"node.js through stream that emits a unique stream of objects based on criteria","dist-tags":{"latest":"2.3.1"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"time":{"modified":"2021-06-03T10:21:40.000Z","created":"2013-07-12T05:51:49.387Z","2.3.1":"2018-12-18T04:01:47.650Z","2.3.0":"2018-12-18T03:58:06.662Z","2.2.2":"2018-12-18T03:39:27.268Z","2.2.1":"2016-02-16T12:05:40.106Z","2.2.0":"2015-06-25T00:10:14.459Z","2.1.1":"2015-06-18T22:02:53.086Z","2.1.0":"2015-06-18T22:00:25.012Z","2.0.2":"2015-01-05T02:41:52.294Z","2.0.1":"2015-01-05T02:15:59.122Z","2.0.0":"2015-01-05T02:10:27.287Z","1.0.0":"2014-05-13T11:22:45.877Z","0.0.5":"2014-05-13T10:50:26.632Z","0.0.4":"2014-05-07T04:47:15.767Z","0.0.3":"2013-09-16T14:56:36.627Z","0.0.2":"2013-07-12T14:23:53.502Z","0.0.1":"2013-07-12T05:51:49.387Z"},"users":{},"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"repository":{"type":"git","url":"git+https://github.com/eugeneware/unique-stream.git"},"versions":{"2.3.1":{"name":"unique-stream","version":"2.3.1","description":"node.js through stream that emits a unique stream of objects based on criteria","repository":{"type":"git","url":"git+https://github.com/eugeneware/unique-stream.git"},"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"MIT","scripts":{"test":"mocha","coverage":"istanbul cover _mocha"},"keywords":["unique","stream","unique-stream","streaming","streams"],"dependencies":{"json-stable-stringify-without-jsonify":"^1.0.1","through2-filter":"^3.0.0"},"devDependencies":{"after":"~0.8.1","chai":"^4.2.0","istanbul":"^0.4.5","mocha":"^5.2.0"},"gitHead":"8c20fce4c5cd58a13334a30b09a027195a93a6a9","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream#readme","_id":"unique-stream@2.3.1","_npmVersion":"6.4.1","_nodeVersion":"10.14.0","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"dist":{"shasum":"c65d110e9a4adf9a6c5948b28053d9a8d04cbeac","size":2796,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.3.1.tgz"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unique-stream_2.3.1_1545105707395_0.47618812516540254"},"_hasShrinkwrap":false,"publish_time":1545105707650,"_cnpm_publish_time":1545105707650},"2.3.0":{"name":"unique-stream","version":"2.3.0","description":"node.js through stream that emits a unique stream of objects based on criteria","repository":{"type":"git","url":"git+https://github.com/eugeneware/unique-stream.git"},"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"MIT","scripts":{"test":"mocha","coverage":"istanbul cover _mocha"},"keywords":["unique","stream","unique-stream","streaming","streams"],"dependencies":{"json-stable-stringify-without-jsonify":"^1.0.1","through2-filter":"^3.0.0"},"devDependencies":{"after":"~0.8.1","chai":"^4.2.0","istanbul":"^0.4.5","mocha":"^5.2.0"},"gitHead":"9afd1a552219a50b2aa0504846ca494fb55214f3","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream#readme","_id":"unique-stream@2.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.0","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"dist":{"shasum":"a0f73724c2fb23330453adb28254a57aaca381c9","size":2789,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.3.0.tgz"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unique-stream_2.3.0_1545105486518_0.42873421809132917"},"_hasShrinkwrap":false,"publish_time":1545105486662,"_cnpm_publish_time":1545105486662},"2.2.2":{"name":"unique-stream","version":"2.2.2","description":"node.js through stream that emits a unique stream of objects based on criteria","repository":{"type":"git","url":"git+https://github.com/eugeneware/unique-stream.git"},"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"MIT","scripts":{"test":"mocha","coverage":"istanbul cover _mocha","coveralls":"${npm_package_scripts_coverage} && istanbul-coveralls"},"keywords":["unique","stream","unique-stream","streaming","streams"],"dependencies":{"json-stable-stringify":"^1.0.0","through2-filter":"^2.0.0"},"devDependencies":{"after":"~0.8.1","chai":"^3.0.0","istanbul":"^0.4.2","istanbul-coveralls":"^1.0.3","mocha":"^5.2.0"},"gitHead":"0c4d7545613314838b104df61feb2641697bc47e","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream#readme","_id":"unique-stream@2.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.14.0","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"dist":{"shasum":"cf90c04c833c3fc85f2b836ebb598e7f4b813c79","size":2791,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.2.2.tgz"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unique-stream_2.2.2_1545104367055_0.8070520852999397"},"_hasShrinkwrap":false,"publish_time":1545104367268,"_cnpm_publish_time":1545104367268},"2.2.1":{"name":"unique-stream","version":"2.2.1","description":"node.js through stream that emits a unique stream of objects based on criteria","repository":{"type":"git","url":"git+https://github.com/eugeneware/unique-stream.git"},"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"MIT","files":["index.js"],"scripts":{"test":"mocha","coverage":"istanbul cover _mocha","coveralls":"${npm_package_scripts_coverage} && istanbul-coveralls"},"keywords":["unique","stream","unique-stream","streaming","streams"],"dependencies":{"json-stable-stringify":"^1.0.0","through2-filter":"^2.0.0"},"devDependencies":{"after":"~0.8.1","chai":"^3.0.0","istanbul":"^0.4.2","istanbul-coveralls":"^1.0.3","mocha":"^2.1.0"},"gitHead":"44bb895ede1645668c4f62a81c7af8edaf47bff9","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream#readme","_id":"unique-stream@2.2.1","_shasum":"5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369","_from":".","_npmVersion":"3.7.2","_nodeVersion":"5.6.0","_npmUser":{"name":"shinnn","email":"snnskwtnb@gmail.com"},"dist":{"shasum":"5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369","size":2809,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.2.1.tgz"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/unique-stream-2.2.1.tgz_1455624338144_0.2851575950626284"},"directories":{},"publish_time":1455624340106,"_cnpm_publish_time":1455624340106,"_hasShrinkwrap":false},"2.2.0":{"name":"unique-stream","version":"2.2.0","description":"node.js through stream that emits a unique stream of objects based on criteria","repository":{"type":"git","url":"git+https://github.com/eugeneware/unique-stream.git"},"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"MIT","files":["index.js"],"scripts":{"test":"mocha"},"keywords":["unique","stream","unique-stream","streaming","streams"],"dependencies":{"through2-filter":"^2.0.0"},"devDependencies":{"after":"~0.8.1","chai":"^3.0.0","mocha":"^2.1.0"},"gitHead":"49ce49225b4e465091a98fd7ff318c332b76629d","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream#readme","_id":"unique-stream@2.2.0","_shasum":"1ec82d4ea88c28c7519cbb1b4a87ea8fadd5c30e","_from":".","_npmVersion":"2.11.3","_nodeVersion":"2.3.0","_npmUser":{"name":"shinnn","email":"snnskwtnb@gmail.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"dist":{"shasum":"1ec82d4ea88c28c7519cbb1b4a87ea8fadd5c30e","size":2661,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.2.0.tgz"},"directories":{},"publish_time":1435191014459,"_cnpm_publish_time":1435191014459,"_hasShrinkwrap":false},"2.1.1":{"name":"unique-stream","version":"2.1.1","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","dependencies":{"through2-filter":"^1.4.0"},"devDependencies":{"after":"~0.8.1","chai":"^3.0.0","mocha":"^2.1.0"},"gitHead":"9691a4dcbaa35f6c0c75477b6054f6aa409fab3a","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@2.1.1","_shasum":"5ef32a92cd1914a1cbce81d2b2ec9cfafce3df36","_from":".","_npmVersion":"2.4.1","_nodeVersion":"0.10.32","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"dist":{"shasum":"5ef32a92cd1914a1cbce81d2b2ec9cfafce3df36","size":3838,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.1.1.tgz"},"directories":{},"publish_time":1434664973086,"_cnpm_publish_time":1434664973086,"_hasShrinkwrap":false},"2.1.0":{"name":"unique-stream","version":"2.1.0","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","dependencies":{"through2-filter":"^1.4.0"},"devDependencies":{"after":"~0.8.1","chai":"^3.0.0","mocha":"^2.1.0"},"gitHead":"f21e3e18c78f328b4a44f0e08a5d213504d4741a","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@2.1.0","_shasum":"ee797aeb2025178a11933db977bf2897a39d8efd","_from":".","_npmVersion":"2.4.1","_nodeVersion":"0.10.32","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"dist":{"shasum":"ee797aeb2025178a11933db977bf2897a39d8efd","size":3815,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.1.0.tgz"},"directories":{},"publish_time":1434664825012,"_cnpm_publish_time":1434664825012,"_hasShrinkwrap":false},"2.0.2":{"name":"unique-stream","version":"2.0.2","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"after":"~0.8.1","chai":"^1.10.0","mocha":"^2.1.0"},"dependencies":{"es6-set":"^0.1.1","through2-filter":"^1.4.0"},"gitHead":"7a7d3443e1aa54b7f27ed259165e021b2df789cc","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@2.0.2","_shasum":"cd3297cff068954d58e9d6991b9044794732c248","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"dist":{"shasum":"cd3297cff068954d58e9d6991b9044794732c248","size":3739,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.0.2.tgz"},"directories":{},"publish_time":1420425712294,"_cnpm_publish_time":1420425712294,"_hasShrinkwrap":false},"2.0.1":{"name":"unique-stream","version":"2.0.1","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"after":"~0.8.1","chai":"^1.10.0","mocha":"^2.1.0"},"dependencies":{"es6-set":"^0.1.1","through2-filter":"^1.4.0"},"gitHead":"7ea6ecc8ace5a1f3d1c765f1f8e26b85cae19f60","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@2.0.1","_shasum":"71d40ad30cbb804683e72b32933634da4a749ccc","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"dist":{"shasum":"71d40ad30cbb804683e72b32933634da4a749ccc","size":3741,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.0.1.tgz"},"directories":{},"publish_time":1420424159122,"_cnpm_publish_time":1420424159122,"_hasShrinkwrap":false},"2.0.0":{"name":"unique-stream","version":"2.0.0","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"after":"~0.8.1","chai":"^1.10.0","mocha":"^2.1.0"},"dependencies":{"es6-set":"^0.1.1","through2-filter":"^1.4.0"},"gitHead":"2c9302f4232b709b126b063de3fc82b5ef1a9385","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@2.0.0","_shasum":"99576d300b2a1b6eac4352fc7cb1b1a3204c9f49","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"dist":{"shasum":"99576d300b2a1b6eac4352fc7cb1b1a3204c9f49","size":2932,"noattachment":false,"key":"/unique-stream/-/unique-stream-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-2.0.0.tgz"},"directories":{},"publish_time":1420423827287,"_cnpm_publish_time":1420423827287,"_hasShrinkwrap":false},"1.0.0":{"name":"unique-stream","version":"1.0.0","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"chai":"~1.7.2","mocha":"^1.18.2","after":"~0.8.1"},"bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@1.0.0","dist":{"shasum":"d59a4a75427447d9aa6c91e70263f8d26a4b104b","size":2650,"noattachment":false,"key":"/unique-stream/-/unique-stream-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-1.0.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"publish_time":1399980165877,"_hasShrinkwrap":false,"_cnpm_publish_time":1399980165877},"0.0.5":{"name":"unique-stream","version":"0.0.5","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"chai":"~1.7.2","mocha":"^1.18.2","after":"~0.8.1"},"bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@0.0.5","dist":{"shasum":"37606df1a5dd56b99190778ba987e5fd12eafd41","size":2658,"noattachment":false,"key":"/unique-stream/-/unique-stream-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-0.0.5.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"publish_time":1399978226632,"_hasShrinkwrap":false,"_cnpm_publish_time":1399978226632},"0.0.4":{"name":"unique-stream","version":"0.0.4","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"chai":"~1.7.2","mocha":"~1.12.0","after":"~0.8.1"},"bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"homepage":"https://github.com/eugeneware/unique-stream","_id":"unique-stream@0.0.4","dist":{"shasum":"3eb87e23a3ad5e711365daab3f40a3b7061ff8e2","size":2650,"noattachment":false,"key":"/unique-stream/-/unique-stream-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-0.0.4.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"publish_time":1399438035767,"_cnpm_publish_time":1399438035767,"_hasShrinkwrap":false},"0.0.3":{"name":"unique-stream","version":"0.0.3","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"node_modules/.bin/mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"chai":"~1.7.2","mocha":"~1.12.0","after":"~0.8.1"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"_id":"unique-stream@0.0.3","dist":{"shasum":"a5a19d2764588a4d608baff5889b5a60f18c705d","size":1936,"noattachment":false,"key":"/unique-stream/-/unique-stream-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-0.0.3.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"publish_time":1379343396627,"_hasShrinkwrap":false,"_cnpm_publish_time":1379343396627},"0.0.2":{"name":"unique-stream","version":"0.0.2","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"node_modules/.bin/mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"chai":"~1.7.2","mocha":"~1.12.0","after":"~0.8.1"},"readmeFilename":"README.md","_id":"unique-stream@0.0.2","dist":{"shasum":"01348747e2382cd19ff2a37a20419e0bdd1844c0","size":1730,"noattachment":false,"key":"/unique-stream/-/unique-stream-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-0.0.2.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"publish_time":1373639033502,"_hasShrinkwrap":false,"_cnpm_publish_time":1373639033502},"0.0.1":{"name":"unique-stream","version":"0.0.1","description":"node.js through stream that emits a unique stream of objects based on criteria","main":"index.js","scripts":{"test":"node_modules/.bin/mocha"},"repository":{"type":"git","url":"https://github.com/eugeneware/unique-stream"},"keywords":["unique","stream","unique-stream","streaming","streams"],"author":{"name":"Eugene Ware","email":"eugene@noblesamurai.com"},"license":"BSD","devDependencies":{"chai":"~1.7.2","mocha":"~1.12.0","after":"~0.8.1"},"dependencies":{"through":"~2.3.4"},"readmeFilename":"README.md","_id":"unique-stream@0.0.1","dist":{"shasum":"9a18bab06761c35fcbd339e4f7f0f31ba2e3ee4b","size":1639,"noattachment":false,"key":"/unique-stream/-/unique-stream-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/unique-stream/download/unique-stream-0.0.1.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"eugeneware","email":"eugene@noblesamurai.com"},"maintainers":[{"name":"realityking","email":"me@rouvenwessling.de"},{"name":"shinnn","email":"snnskwtnb@gmail.com"}],"directories":{},"publish_time":1373608309387,"_hasShrinkwrap":false,"_cnpm_publish_time":1373608309387}},"readme":"# unique-stream\n\nnode.js through stream that emits a unique stream of objects based on criteria\n\n[![Build Status](https://travis-ci.org/eugeneware/unique-stream.svg?branch=master)](https://travis-ci.org/eugeneware/unique-stream)\n[![Coverage Status](https://coveralls.io/repos/eugeneware/unique-stream/badge.svg?branch=master&service=github)](https://coveralls.io/github/eugeneware/unique-stream?branch=master)\n\n## Installation\n\nInstall via [npm](https://www.npmjs.com/):\n\n```\n$ npm install unique-stream\n```\n\n## Examples\n\n### Dedupe a ReadStream based on JSON.stringify:\n\n``` js\nvar unique = require('unique-stream')\n  , Stream = require('stream');\n\n// return a stream of 3 identical objects\nfunction makeStreamOfObjects() {\n  var s = new Stream;\n  s.readable = true;\n  var count = 3;\n  for (var i = 0; i < 3; i++) {\n    setImmediate(function () {\n      s.emit('data', { name: 'Bob', number: 123 });\n      --count || end();\n    });\n  }\n\n  function end() {\n    s.emit('end');\n  }\n\n  return s;\n}\n\n// Will only print out one object as the rest are dupes. (Uses JSON.stringify)\nmakeStreamOfObjects()\n  .pipe(unique())\n  .on('data', console.log);\n\n```\n\n### Dedupe a ReadStream based on an object property:\n\n``` js\n// Use name as the key field to dedupe on. Will only print one object\nmakeStreamOfObjects()\n  .pipe(unique('name'))\n  .on('data', console.log);\n```\n\n### Dedupe a ReadStream based on a custom function:\n\n``` js\n// Use a custom function to dedupe on. Use the 'number' field. Will only print one object.\nmakeStreamOfObjects()\n  .pipe(function (data) {\n    return data.number;\n  })\n  .on('data', console.log);\n```\n\n## Dedupe multiple streams\n\nThe reason I wrote this was to dedupe multiple object streams:\n\n``` js\nvar aggregator = unique();\n\n// Stream 1\nmakeStreamOfObjects()\n  .pipe(aggregator);\n\n// Stream 2\nmakeStreamOfObjects()\n  .pipe(aggregator);\n\n// Stream 3\nmakeStreamOfObjects()\n  .pipe(aggregator);\n\naggregator.on('data', console.log);\n```\n\n## Use a custom store to record keys that have been encountered\n\nBy default a set is used to store keys encountered so far, in order to check new ones for\nuniqueness. You can supply your own store instead, providing it supports the add(key) and \nhas(key) methods. This could allow you to use a persistent store so that already encountered\nobjects are not re-streamed when node is reloaded.\n\n``` js\nvar keyStore = {\n  store: {},\n\n  add: function(key) {\n    this.store[key] = true;\n  },\n\n  has: function(key) {\n    return this.store[key] !== undefined;\n  }\n};\n    \nmakeStreamOfObjects()\n  .pipe(unique('name', keyStore))\n  .on('data', console.log);\n```\n\n## Contributing\n\nunique-stream is an **OPEN Open Source Project**. This means that:\n\n> Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.\n\nSee the [CONTRIBUTING.md](https://github.com/eugeneware/unique-stream/blob/master/CONTRIBUTING.md) file for more details.\n\n### Contributors\n\nunique-stream is only possible due to the excellent work of the following contributors:\n\n<table><tbody>\n<tr><th align=\"left\">Eugene Ware</th><td><a href=\"https://github.com/eugeneware\">GitHub/eugeneware</a></td></tr>\n<tr><th align=\"left\">Craig Ambrose</th><td><a href=\"https://github.com/craigambrose\">GitHub/craigambrose</a></td></tr>\n<tr><th align=\"left\">Shinnosuke Watanabe</th><td><a href=\"https://github.com/shinnn\">GitHub/shinnn</a></td></tr>\n<tr><th align=\"left\">Rouven Weßling</th><td><a href=\"https://github.com/realityking\">GitHub/realityking</a></td></tr>\n</tbody></table>\n","_attachments":{},"homepage":"https://github.com/eugeneware/unique-stream#readme","bugs":{"url":"https://github.com/eugeneware/unique-stream/issues"},"license":"MIT"}