{"_id":"libp2p-switch","_rev":"4647219","name":"libp2p-switch","description":"libp2p switch implementation in JavaScript","dist-tags":{"latest":"0.43.0"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"time":{"modified":"2026-04-10T20:21:35.000Z","created":"2018-02-07T05:38:25.173Z","0.43.0":"2019-08-01T14:08:24.410Z","0.42.12":"2019-06-05T15:00:14.336Z","0.42.11":"2019-04-25T19:09:44.310Z","0.42.10":"2019-04-16T10:47:32.870Z","0.42.9":"2019-04-11T10:42:26.289Z","0.42.8":"2019-04-10T17:31:09.964Z","0.42.7":"2019-04-04T11:47:15.357Z","0.42.6":"2019-04-03T16:43:04.063Z","0.42.5":"2019-04-03T09:49:58.605Z","0.42.4":"2019-03-28T22:22:12.209Z","0.42.3":"2019-03-28T10:40:33.329Z","0.42.2":"2019-03-25T12:49:40.955Z","0.42.1":"2019-03-21T12:14:41.034Z","0.42.0":"2019-03-21T08:58:15.940Z","0.41.7":"2019-03-13T13:22:17.952Z","0.41.6":"2019-03-06T10:06:17.371Z","0.41.5":"2019-01-11T18:37:33.801Z","0.41.4":"2018-12-20T15:37:24.594Z","0.41.3":"2018-12-14T15:35:58.495Z","0.41.2":"2018-11-15T12:38:51.883Z","0.41.1":"2018-10-24T12:12:28.091Z","0.41.0":"2018-10-19T12:18:18.955Z","0.40.8":"2018-09-10T11:59:33.068Z","0.40.7":"2018-07-23T12:38:13.182Z","0.40.6":"2018-07-17T14:43:28.777Z","0.40.5":"2018-07-10T00:26:54.112Z","0.40.4":"2018-06-06T17:01:54.451Z","0.40.3":"2018-06-01T15:46:51.282Z","0.40.2":"2018-05-31T18:51:18.966Z","0.40.1":"2018-05-23T14:54:43.146Z","0.39.2":"2018-04-30T21:33:59.897Z","0.39.0":"2018-04-05T17:40:39.172Z","0.37.3":"2018-03-15T14:57:01.471Z","0.37.2":"2018-03-14T13:26:57.547Z","0.37.1":"2018-03-12T15:03:48.141Z","0.37.0":"2018-02-27T12:29:16.771Z","0.36.1":"2018-02-12T09:45:14.396Z","0.36.0":"2018-02-07T05:38:25.173Z"},"users":{},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"versions":{"0.43.0":{"name":"libp2p-switch","version":"0.43.0","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^20.0.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.5","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.16.1","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.3","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.3.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.1.1","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.6","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.1.0","multistream-select":"~0.14.6","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.13","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@ua.pt"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"9e5fadb8e9c355911322064ab003eaf55c3a861c","_id":"libp2p-switch@0.43.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"shasum":"319cf2c2359548272b2dc66b28056d81bdd77f67","size":1784757,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.43.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.43.0.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.43.0_1564668504202_0.993188223465252"},"_hasShrinkwrap":false,"publish_time":1564668504410,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1564668504410,"_cnpmcore_publish_time":"2021-12-16T11:27:47.929Z"},"0.42.12":{"name":"libp2p-switch","version":"0.42.12","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.2.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.5","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.2","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.3.1","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.1.1","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.6","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@ua.pt"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"a386bb7c44f0cbbf2389aa4b7af28a51c5b9f607","_id":"libp2p-switch@0.42.12","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"672ab3b249121e876231d9fef9a143a5ed2c41da","size":1795924,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.12.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.12_1559746814179_0.6756327927711603"},"_hasShrinkwrap":false,"publish_time":1559746814336,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1559746814336,"_cnpmcore_publish_time":"2021-12-16T11:27:50.554Z"},"0.42.11":{"name":"libp2p-switch","version":"0.42.11","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.2.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.5","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.2","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.3.1","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.1.1","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.6","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@ua.pt"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"3ca691f41f668b4a7a6beb74c3f0b3ce12872525","_id":"libp2p-switch@0.42.11","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"31bf5b08718eeb9c6e9b033614521d58671698f8","size":1778430,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.11.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.11_1556219384099_0.612265591986163"},"_hasShrinkwrap":false,"publish_time":1556219384310,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1556219384310,"_cnpmcore_publish_time":"2021-12-16T11:27:55.085Z"},"0.42.10":{"name":"libp2p-switch","version":"0.42.10","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.2.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.5","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.2","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.3.1","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.1.1","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.6","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@ua.pt"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"c73efbaed94817f7a379b78f823eae7a891da5bb","_id":"libp2p-switch@0.42.10","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"71adfd6a3348dbfe20f5d104696ea8d2120d4c0e","size":1778123,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.10.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.10_1555411652650_0.8625467053704348"},"_hasShrinkwrap":false,"publish_time":1555411652870,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1555411652870,"_cnpmcore_publish_time":"2021-12-16T11:27:59.003Z"},"0.42.9":{"name":"libp2p-switch","version":"0.42.9","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.2.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.5","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.2","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.3.1","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.1.1","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.6","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@ua.pt"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"bf4d926e6ef87a347cd5938209712970d4bc3a71","_id":"libp2p-switch@0.42.9","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"bd6a322014615d6f9a3a89bc064e793d0f127721","size":1775388,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.9.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.9_1554979346001_0.12180221595361052"},"_hasShrinkwrap":false,"publish_time":1554979346289,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1554979346289,"_cnpmcore_publish_time":"2021-12-16T11:28:03.217Z"},"0.42.8":{"name":"libp2p-switch","version":"0.42.8","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.2.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.5","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.2","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.3.1","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.1.1","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.6","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@ua.pt"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"866e5a6cc0a02645666708484c1235fa0fdc62e5","_id":"libp2p-switch@0.42.8","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"90a242af606ebf18589748bf98a5215022714240","size":1775243,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.8.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.8_1554917469725_0.5094320206974865"},"_hasShrinkwrap":false,"publish_time":1554917469964,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1554917469964,"_cnpmcore_publish_time":"2021-12-16T11:28:08.428Z"},"0.42.7":{"name":"libp2p-switch","version":"0.42.7","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"c7b1d057939ed35c7a16597321daec7960c86b30","_id":"libp2p-switch@0.42.7","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"5b8bec459d73dbdce620d8f69faf8b835dfded13","size":1769235,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.7.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.7_1554378435193_0.32695339340928276"},"_hasShrinkwrap":false,"publish_time":1554378435357,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1554378435357,"_cnpmcore_publish_time":"2021-12-16T11:28:12.456Z"},"0.42.6":{"name":"libp2p-switch","version":"0.42.6","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"9592c22bdc29ace73be2fa1f128103fd3ece348c","_id":"libp2p-switch@0.42.6","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"647c1e4e834ee55540cc85ac2d83331945736d06","size":1768467,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.6.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.6_1554309783730_0.156924491320225"},"_hasShrinkwrap":false,"publish_time":1554309784063,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1554309784063,"_cnpmcore_publish_time":"2021-12-16T11:28:15.811Z"},"0.42.5":{"name":"libp2p-switch","version":"0.42.5","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"0f05b9fd930517d260d2970128357da6f9fe3263","_id":"libp2p-switch@0.42.5","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"edaac6c52694d3e56c62780feb187682ef2cac84","size":1767433,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.5.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.5_1554284998432_0.22766913696964597"},"_hasShrinkwrap":false,"publish_time":1554284998605,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1554284998605,"_cnpmcore_publish_time":"2021-12-16T11:28:20.947Z"},"0.42.4":{"name":"libp2p-switch","version":"0.42.4","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"d550b488138d8eff3c54d648289d57fd1eb0ca0f","_id":"libp2p-switch@0.42.4","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"d4cd65fbc04da2a5b341ea9f9fdeb03187fb3217","size":1760517,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.4.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.4_1553811732030_0.3755956421880824"},"_hasShrinkwrap":false,"publish_time":1553811732209,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1553811732209,"_cnpmcore_publish_time":"2021-12-16T11:28:24.366Z"},"0.42.3":{"name":"libp2p-switch","version":"0.42.3","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"57146a0ee351801c007e36696463c1afe991b983","_id":"libp2p-switch@0.42.3","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"49879e7525d44af57e1f431da6294d87b25cafaf","size":1760138,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.3.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.3_1553769633018_0.4168813424608797"},"_hasShrinkwrap":false,"publish_time":1553769633329,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1553769633329,"_cnpmcore_publish_time":"2021-12-16T11:28:27.970Z"},"0.42.2":{"name":"libp2p-switch","version":"0.42.2","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.3","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"1e23eb22f0d6d794b41c8a45a031435e3789e890","_id":"libp2p-switch@0.42.2","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"3199b9ea2ad7534e5168824e7cc18ad7137c68e0","size":1754471,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.2.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.2_1553518180749_0.21000186938799215"},"_hasShrinkwrap":false,"publish_time":1553518180955,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1553518180955,"_cnpmcore_publish_time":"2021-12-16T11:28:32.693Z"},"0.42.1":{"name":"libp2p-switch","version":"0.42.1","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.1","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"b318e3f3cf35eb73907a20b6582bc79456e76750","_id":"libp2p-switch@0.42.1","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"69ea88b9c28e17c397d0f68dde4b2634de402f57","size":1752349,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.1.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.1_1553170480849_0.08669579525610871"},"_hasShrinkwrap":false,"publish_time":1553170481034,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1553170481034,"_cnpmcore_publish_time":"2021-12-16T11:28:36.589Z"},"0.42.0":{"name":"libp2p-switch","version":"0.42.0","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.1","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.2","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.5","libp2p-identify":"~0.7.6","moving-average":"^1.0.0","multiaddr":"^6.0.6","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"45a86af7353466a6d28edae78e7a4c0a57b69ea6","_id":"libp2p-switch@0.42.0","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"a21521e38b348fb0e0183487e53a4297de290988","size":1752087,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.42.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.42.0.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.42.0_1553158695798_0.43993776907012583"},"_hasShrinkwrap":false,"publish_time":1553158695940,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1553158695940,"_cnpmcore_publish_time":"2021-12-16T11:28:40.854Z"},"0.41.7":{"name":"libp2p-switch","version":"0.41.7","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.1","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.0","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.4","libp2p-identify":"~0.7.5","moving-average":"^1.0.0","multiaddr":"^6.0.4","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"421614411c0f1ad185019ff1de6553437e42d3e7","_id":"libp2p-switch@0.41.7","_nodeVersion":"10.15.3","_npmVersion":"6.8.0","dist":{"shasum":"d168aa4c71f475626bf4e1399b8d47632757de21","size":1734774,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.7.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.7_1552483337698_0.4159524485169501"},"_hasShrinkwrap":false,"publish_time":1552483337952,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1552483337952,"_cnpmcore_publish_time":"2021-12-16T11:28:43.751Z"},"0.41.6":{"name":"libp2p-switch","version":"0.41.6","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.1.0","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.1","libp2p-spdy":"~0.13.1","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.2","peer-book":"~0.9.1","portfinder":"^1.0.20","pull-length-prefixed":"^1.3.1","pull-mplex":"~0.1.0","pull-pair":"^1.1.0","sinon":"^7.2.3","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.2","bignumber.js":"^8.0.2","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.4","libp2p-identify":"~0.7.5","moving-average":"^1.0.0","multiaddr":"^6.0.4","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Pius Nyakoojo","email":"piusnyakoojo@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"33d49e97c8543f0da5ff0bc5bef660742aab221c","_id":"libp2p-switch@0.41.6","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"5f02bb54ffb9263aece3f7a6912045293d4dfcb4","size":1735628,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.6.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.6_1551866777148_0.2093316778189882"},"_hasShrinkwrap":false,"publish_time":1551866777371,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1551866777371,"_cnpmcore_publish_time":"2021-12-16T11:28:47.900Z"},"0.41.5":{"name":"libp2p-switch","version":"0.41.5","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^18.0.3","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.11.0","libp2p-spdy":"~0.13.1","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.8","libp2p-websockets":"~0.12.1","peer-book":"~0.9.1","portfinder":"^1.0.20","sinon":"^7.2.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.1","bignumber.js":"^8.0.1","class-is":"^1.1.0","debug":"^4.1.1","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","libp2p-circuit":"~0.3.4","libp2p-identify":"~0.7.5","moving-average":"^1.0.0","multiaddr":"^6.0.3","multistream-select":"~0.14.4","once":"^1.4.0","peer-id":"~0.12.2","peer-info":"~0.15.1","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"mail@hugodias.me"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"6fade87eba52373b1dfaaa3face228bedae6a29c","_id":"libp2p-switch@0.41.5","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"f1d0be14cbfe2c3929bb539a3b1e661875b6c8a4","size":1719294,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.5.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.5_1547231853583_0.757803356577091"},"_hasShrinkwrap":false,"publish_time":1547231853801,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1547231853801,"_cnpmcore_publish_time":"2021-12-16T11:28:51.117Z"},"0.41.4":{"name":"libp2p-switch","version":"0.41.4","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^17.1.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.10.1","libp2p-spdy":"~0.13.1","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.6","libp2p-websockets":"~0.12.0","peer-book":"~0.9.0","portfinder":"^1.0.20","sinon":"^7.2.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.1","big.js":"^5.2.2","class-is":"^1.1.0","debug":"^4.1.0","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","ip-address":"^5.8.9","libp2p-circuit":"~0.3.1","libp2p-identify":"~0.7.2","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^6.0.0","multistream-select":"~0.14.3","once":"^1.4.0","peer-id":"~0.12.0","peer-info":"~0.15.0","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"5b498a0999d8b48a978539d308697c0573c83c8f","_id":"libp2p-switch@0.41.4","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"60b83e23ff5f2791d47e62e9a853b233e5e37280","size":1982926,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.4.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.4_1545320244386_0.8206156981552166"},"_hasShrinkwrap":false,"publish_time":1545320244594,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1545320244594,"_cnpmcore_publish_time":"2021-12-16T11:28:55.463Z"},"0.41.3":{"name":"libp2p-switch","version":"0.41.3","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^17.1.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.10.1","libp2p-spdy":"~0.13.1","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.6","libp2p-websockets":"~0.12.0","peer-book":"~0.9.0","portfinder":"^1.0.20","sinon":"^7.2.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.1","big.js":"^5.2.2","class-is":"^1.1.0","debug":"^4.1.0","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.3.0","interface-connection":"~0.3.3","ip-address":"^5.8.9","libp2p-circuit":"~0.3.1","libp2p-identify":"~0.7.2","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^6.0.0","multistream-select":"~0.14.3","once":"^1.4.0","peer-id":"~0.12.0","peer-info":"~0.15.0","pull-stream":"^3.6.9","retimer":"^2.0.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Matteo Collina","email":"matteo.collina@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"1b445cf34b710e4548a62a2911ecb117dd016b8d","_id":"libp2p-switch@0.41.3","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"e78cb2ae2f889fc0e5984cffe8a9ea9a13096df4","size":1981134,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.3.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.3_1544801758283_0.822377103991808"},"_hasShrinkwrap":false,"publish_time":1544801758495,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1544801758495,"_cnpmcore_publish_time":"2021-12-16T11:29:00.255Z"},"0.41.2":{"name":"libp2p-switch","version":"0.41.2","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^17.0.1","chai":"^4.2.0","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.4","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.10.1","libp2p-spdy":"~0.13.0","libp2p-tcp":"~0.13.0","libp2p-webrtc-star":"~0.15.5","libp2p-websockets":"~0.12.0","peer-book":"~0.8.0","portfinder":"^1.0.19","sinon":"^7.1.1","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.1","big.js":"^5.2.2","class-is":"^1.1.0","debug":"^4.1.0","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.3.0","libp2p-identify":"~0.7.2","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.2","multistream-select":"~0.14.3","once":"^1.4.0","peer-id":"~0.12.0","peer-info":"~0.14.1","pull-stream":"^3.6.9"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"823c776b9629b8d7a48d325b2331291f1805f263","_id":"libp2p-switch@0.41.2","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"b2b9f17470271692e8f39511e39e5f3af33ff4c3","size":1899208,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.2.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.2_1542285531620_0.4374253462341746"},"_hasShrinkwrap":false,"publish_time":1542285531883,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1542285531883,"_cnpmcore_publish_time":"2021-12-16T11:29:04.823Z"},"0.41.1":{"name":"libp2p-switch","version":"0.41.1","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^15.1.0","chai":"^4.1.2","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.2","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.1","libp2p-webrtc-star":"~0.15.4","libp2p-websockets":"~0.12.0","peer-book":"~0.8.0","portfinder":"^1.0.17","sinon":"^6.2.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.1","big.js":"^5.1.2","class-is":"^1.1.0","debug":"^3.1.0","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.1","libp2p-identify":"~0.7.2","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.3","once":"^1.4.0","peer-id":"~0.11.0","peer-info":"~0.14.1","pull-stream":"^3.6.9"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"fe8405811c3f80f65e772777bf58165aa6984c09","_id":"libp2p-switch@0.41.1","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"523ae982d23bd1f655dabc335c26b231900f0a96","size":1510624,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.1.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.1_1540383147860_0.7631362245494859"},"_hasShrinkwrap":false,"publish_time":1540383148091,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1540383148091,"_cnpmcore_publish_time":"2021-12-16T11:29:08.075Z"},"0.41.0":{"name":"libp2p-switch","version":"0.41.0","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^15.1.0","chai":"^4.1.2","chai-checkmark":"^1.0.1","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.2","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.1","libp2p-webrtc-star":"~0.15.4","libp2p-websockets":"~0.12.0","peer-book":"~0.8.0","portfinder":"^1.0.17","sinon":"^6.2.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.1","big.js":"^5.1.2","class-is":"^1.1.0","debug":"^3.1.0","err-code":"^1.1.2","fsm-event":"^2.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.1","libp2p-identify":"~0.7.2","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.3","once":"^1.4.0","peer-id":"~0.11.0","peer-info":"~0.14.1","pull-stream":"^3.6.9"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"06fd7fcba69424d25a5185ca6720fc6c04819f9f","_id":"libp2p-switch@0.41.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"128ec1d48008d45cc1aece2c2757adf0a5c2035f","size":1510540,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.41.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.41.0.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.41.0_1539951498683_0.6438957532037843"},"_hasShrinkwrap":false,"publish_time":1539951498955,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1539951498955,"_cnpmcore_publish_time":"2021-12-16T11:29:12.061Z"},"0.40.8":{"name":"libp2p-switch","version":"0.40.8","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^15.1.0","chai":"^4.1.2","dirty-chai":"^2.0.1","libp2p-mplex":"~0.8.0","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.1","libp2p-webrtc-star":"~0.15.4","libp2p-websockets":"~0.12.0","peer-book":"~0.8.0","portfinder":"^1.0.17","sinon":"^6.2.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.1","big.js":"^5.1.2","debug":"^3.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.1","libp2p-identify":"~0.7.2","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.3","once":"^1.4.0","peer-id":"~0.11.0","peer-info":"~0.14.1","pull-stream":"^3.6.9"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"02145a6ef785ec62366265b7d1e64678ad52b7bb","_id":"libp2p-switch@0.40.8","_npmVersion":"6.4.0","_nodeVersion":"10.9.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"a7caa2b4a9412465a805f2a0ec67cbbb040f2c70","size":1506435,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.8.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.8_1536580772887_0.8508780065310493"},"_hasShrinkwrap":false,"publish_time":1536580773068,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1536580773068,"_cnpmcore_publish_time":"2021-12-16T11:29:15.952Z"},"0.40.7":{"name":"libp2p-switch","version":"0.40.7","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^15.0.0","chai":"^4.1.2","dirty-chai":"^2.0.1","libp2p-mplex":"~0.7.0","libp2p-pnet":"~0.1.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","sinon":"^5.0.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.1.2","debug":"^3.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.2","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"aa7f2e84d4a01fd83f257044d9af1e97e860aa26","_id":"libp2p-switch@0.40.7","_npmVersion":"6.2.0","_nodeVersion":"10.6.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"415d486718c1d3fa2c3fa6e7157cfa644d494ca2","size":1506740,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.7.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.7_1532349493041_0.5245243125270702"},"_hasShrinkwrap":false,"publish_time":1532349493182,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1532349493182,"_cnpmcore_publish_time":"2021-12-16T11:29:19.544Z"},"0.40.6":{"name":"libp2p-switch","version":"0.40.6","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.1.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","pull-goodbye":"0.0.2","sinon":"^5.0.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.1.2","debug":"^3.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.1","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"cd794d7a9ef87a4fd019b1913c035f55ae17cddd","_id":"libp2p-switch@0.40.6","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"52bddbd3932f7c9f0f1b9dc5e070bcb4ebd27283","size":1506254,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.6.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.6_1531838608539_0.6045632925964961"},"_hasShrinkwrap":false,"publish_time":1531838608777,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1531838608777,"_cnpmcore_publish_time":"2021-12-16T11:29:22.376Z"},"0.40.5":{"name":"libp2p-switch","version":"0.40.5","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.1.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","pull-goodbye":"0.0.2","sinon":"^5.0.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.1.2","debug":"^3.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.1","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Kevin Kwok","email":"antimatter15@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"kumavis","email":"kumavis@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"e9b158dce259e54821bd1c735d561ae26c039dcc","_id":"libp2p-switch@0.40.5","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"40910fd0df8924e2cf5a214a142f3b27fe296674","size":1505206,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.5.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.5_1531182413829_0.11278360543500976"},"_hasShrinkwrap":false,"publish_time":1531182414112,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1531182414112,"_cnpmcore_publish_time":"2021-12-16T11:29:24.933Z"},"0.40.4":{"name":"libp2p-switch","version":"0.40.4","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.1.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","pull-goodbye":"0.0.2","sinon":"^5.0.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","hashlru":"^2.2.1","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.1","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"79344d21e58dc098ef4bfd3bc8f530939bfb1dc4","_id":"libp2p-switch@0.40.4","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"ef40674862a4854dec0d0bfd23a0cc19082a56dc","size":1505100,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.4.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.4_1528304514286_0.28739851698201235"},"_hasShrinkwrap":false,"publish_time":1528304514451,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1528304514451,"_cnpmcore_publish_time":"2021-12-16T11:29:28.241Z"},"0.40.3":{"name":"libp2p-switch","version":"0.40.3","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.1.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","pull-goodbye":"0.0.2","sinon":"^5.0.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.1","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7","quick-lru":"^1.1.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"6562463d38ceaace8799139ea9fa547263e1954d","_id":"libp2p-switch@0.40.3","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"90801077da550f48eb9dce159b9099046839dc44","size":1505429,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.3.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.3_1527868011076_0.005777425964016203"},"_hasShrinkwrap":false,"publish_time":1527868011282,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1527868011282,"_cnpmcore_publish_time":"2021-12-16T11:29:32.036Z"},"0.40.2":{"name":"libp2p-switch","version":"0.40.2","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.1.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","pull-goodbye":"0.0.2","sinon":"^5.0.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.1","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7","quick-lru":"^1.1.0"},"contributors":[{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Oli Evans","email":"oli@tableflip.io"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"bd24b23a62fae11af7e0d3f33e765cb9dcc62b11","_id":"libp2p-switch@0.40.2","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"01cd84fab0e248a9d56a2cce5fe3c786d208cd15","size":1505245,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.2.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.2_1527792678773_0.7506178118237548"},"_hasShrinkwrap":false,"publish_time":1527792678966,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1527792678966,"_cnpmcore_publish_time":"2021-12-16T11:29:35.566Z"},"0.40.1":{"name":"libp2p-switch","version":"0.40.1","description":"libp2p switch implementation in JavaScript","leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.1.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","pull-goodbye":"0.0.2","sinon":"^5.0.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.1","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7","quick-lru":"^1.1.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"4b604849d0582cf3d36dd75a2da4bc12a736f4ad","_id":"libp2p-switch@0.40.1","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"dist":{"shasum":"72691a343ca615fd17006066b6ea7bfee75edaff","size":1502763,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.40.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.40.1.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.40.1_1527087282989_0.7409522492961895"},"_hasShrinkwrap":false,"publish_time":1527087283146,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1527087283146,"_cnpmcore_publish_time":"2021-12-16T11:29:38.997Z"},"0.39.2":{"name":"libp2p-switch","version":"0.39.2","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.1.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.14.0","libp2p-websockets":"~0.12.0","peer-book":"~0.7.0","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^5.0.1","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.1","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^5.0.0","multistream-select":"~0.14.2","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.1","pull-stream":"^3.6.7","quick-lru":"^1.1.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"1f6b8f738cf24670e7165fe13500ded9a197e475","_id":"libp2p-switch@0.39.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"daviddias","email":"mail@daviddias.me"},"dist":{"shasum":"1a9a8846b646042b3a4c1ce57163a8b612f47335","size":1489045,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.39.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.39.2.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.39.2_1525124039684_0.48811822124601156"},"_hasShrinkwrap":false,"publish_time":1525124039897,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1525124039897,"_cnpmcore_publish_time":"2021-12-16T11:29:42.847Z"},"0.39.0":{"name":"libp2p-switch","version":"0.39.0","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.0.6","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.7.0","libp2p-secio":"~0.10.0","libp2p-spdy":"~0.12.1","libp2p-tcp":"~0.12.0","libp2p-webrtc-star":"~0.13.4","libp2p-websockets":"~0.11.0","peer-book":"~0.7.0","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^4.5.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.2.0","libp2p-identify":"~0.7.0","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^4.0.0","multistream-select":"~0.14.1","once":"^1.4.0","peer-id":"~0.10.7","peer-info":"~0.14.0","pull-stream":"^3.6.7","quick-lru":"^1.1.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"harrshasri","email":"35241544+harrshasri@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"97bb973b328992554f233c4ee5cfe6b9ee23dac7","_id":"libp2p-switch@0.39.0","_npmVersion":"5.8.0","_nodeVersion":"9.4.0","_npmUser":{"name":"daviddias","email":"daviddias.p@gmail.com"},"dist":{"shasum":"13783173150c52e30cd96f7e140919a52f9ea1ec","size":1509994,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.39.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.39.0.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.39.0_1522950039047_0.8396898500455234"},"_hasShrinkwrap":false,"publish_time":1522950039172,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1522950039172,"_cnpmcore_publish_time":"2021-12-16T11:29:46.310Z"},"0.37.3":{"name":"libp2p-switch","version":"0.37.3","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.0.6","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.6.0","libp2p-secio":"~0.9.3","libp2p-spdy":"~0.11.0","libp2p-tcp":"~0.11.6","libp2p-webrtc-star":"~0.13.4","libp2p-websockets":"~0.10.5","peer-book":"~0.5.4","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^4.4.6","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.1.5","libp2p-identify":"~0.6.3","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^3.0.2","multistream-select":"~0.14.1","once":"^1.4.0","peer-id":"~0.10.6","peer-info":"~0.11.6","pull-stream":"^3.6.2","quick-lru":"^1.1.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"b40ce97107780346cf645785ce131ed7e797bd37","_id":"libp2p-switch@0.37.3","_npmVersion":"5.7.1","_nodeVersion":"9.4.0","_npmUser":{"name":"daviddias","email":"daviddias.p@gmail.com"},"dist":{"shasum":"b4c16cd4020fc3d19be557565abf21c5e5ee09be","size":1372236,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.37.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.37.3.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.37.3_1521125821279_0.26183702165030165"},"_hasShrinkwrap":false,"publish_time":1521125821471,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1521125821471,"_cnpmcore_publish_time":"2021-12-16T11:29:48.468Z"},"0.37.2":{"name":"libp2p-switch","version":"0.37.2","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.0.6","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.6.0","libp2p-secio":"~0.9.3","libp2p-spdy":"~0.11.0","libp2p-tcp":"~0.11.6","libp2p-webrtc-star":"~0.13.4","libp2p-websockets":"~0.10.5","peer-book":"~0.5.4","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^4.4.5","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.1.5","libp2p-identify":"~0.6.3","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^3.0.2","multistream-select":"~0.14.1","once":"^1.4.0","peer-id":"~0.10.6","peer-info":"~0.11.6","pull-stream":"^3.6.2","quick-lru":"^1.1.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"93c558f5d8943efe943f589a2b0468c211ce19c3","_id":"libp2p-switch@0.37.2","_npmVersion":"5.7.1","_nodeVersion":"9.4.0","_npmUser":{"name":"daviddias","email":"daviddias.p@gmail.com"},"dist":{"shasum":"8e7eba6de7ee24653eb1b033409c2420e24581f7","size":1372117,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.37.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.37.2.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.37.2_1521034017342_0.9536830904387732"},"_hasShrinkwrap":false,"publish_time":1521034017547,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1521034017547,"_cnpmcore_publish_time":"2021-12-16T11:29:53.683Z"},"0.37.1":{"name":"libp2p-switch","version":"0.37.1","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.0.5","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.6.0","libp2p-secio":"~0.9.3","libp2p-spdy":"~0.11.0","libp2p-tcp":"~0.11.6","libp2p-webrtc-star":"~0.13.4","libp2p-websockets":"~0.10.5","peer-book":"~0.5.4","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^4.4.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.1.4","libp2p-identify":"~0.6.3","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^3.0.2","multistream-select":"~0.14.1","once":"^1.4.0","peer-id":"~0.10.6","peer-info":"~0.11.6","pull-stream":"^3.6.2","quick-lru":"^1.1.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"e40d3510d56ae18504a3a5f68e95009ac77878aa","_id":"libp2p-switch@0.37.1","_npmVersion":"5.7.1","_nodeVersion":"9.4.0","_npmUser":{"name":"daviddias","email":"daviddias.p@gmail.com"},"dist":{"shasum":"ff2e89d4a153f7f6e6435e31351469721cd8a024","size":1353340,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.37.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.37.1.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.37.1_1520867027247_0.09728422923945734"},"_hasShrinkwrap":false,"publish_time":1520867028141,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1520867028141,"_cnpmcore_publish_time":"2021-12-16T11:29:57.580Z"},"0.37.0":{"name":"libp2p-switch","version":"0.37.0","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^13.0.5","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-mplex":"~0.6.0","libp2p-secio":"~0.9.3","libp2p-spdy":"~0.11.0","libp2p-tcp":"~0.11.6","libp2p-webrtc-star":"~0.13.4","libp2p-websockets":"~0.10.5","peer-book":"~0.5.4","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^4.4.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","big.js":"^5.0.3","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.1.4","libp2p-identify":"~0.6.3","lodash.includes":"^4.3.0","moving-average":"^1.0.0","multiaddr":"^3.0.2","multistream-select":"~0.14.1","once":"^1.4.0","peer-id":"~0.10.6","peer-info":"~0.11.6","pull-stream":"^3.6.2","quick-lru":"^1.1.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"8b326a7ddc5c781976c6c66e4320d007af01a07c","_id":"libp2p-switch@0.37.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"daviddias","email":"daviddias.p@gmail.com"},"dist":{"shasum":"a5148f8a8a47ac92892b3f2a1da727d423b7c551","size":1353283,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.37.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.37.0.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.37.0_1519734555531_0.7897540146506774"},"_hasShrinkwrap":false,"publish_time":1519734556771,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1519734556771,"_cnpmcore_publish_time":"2021-12-16T11:29:59.874Z"},"0.36.1":{"name":"libp2p-switch","version":"0.36.1","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^12.4.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-multiplex":"~0.5.1","libp2p-secio":"~0.9.2","libp2p-spdy":"~0.11.0","libp2p-tcp":"~0.11.5","libp2p-webrtc-star":"~0.13.3","libp2p-websockets":"~0.10.4","peer-book":"~0.5.4","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^4.3.0","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.1.4","libp2p-identify":"~0.6.3","lodash.includes":"^4.3.0","multiaddr":"^3.0.2","multistream-select":"~0.14.1","once":"^1.4.0","peer-id":"~0.10.6","peer-info":"~0.11.6","pull-stream":"^3.6.1"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"52967cd1a47276a80778044d6274e459048c2a67","_id":"libp2p-switch@0.36.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"daviddias","email":"daviddias.p@gmail.com"},"dist":{"shasum":"65e8ecbac86a7661b08520dd112aa7763f7147bc","size":1322904,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.36.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.36.1.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.36.1_1518428713037_0.9727365506256254"},"_hasShrinkwrap":false,"publish_time":1518428714396,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1518428714396,"_cnpmcore_publish_time":"2021-12-16T11:30:03.158Z"},"0.36.0":{"name":"libp2p-switch","version":"0.36.0","description":"libp2p switch implementation in JavaScript","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test -t node -t browser","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release -t node -t browser","release-minor":"aegir release --type minor -t node -t browser","release-major":"aegir release --type major -t node -t browser","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls"},"repository":{"type":"git","url":"git+https://github.com/libp2p/js-libp2p-switch.git"},"keywords":["IPFS"],"author":{"name":"David Dias","email":"daviddias@ipfs.io"},"license":"MIT","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"homepage":"https://github.com/libp2p/js-libp2p-switch","pre-push":["lint","test"],"engines":{"node":">=6.0.0","npm":">=3.0.0"},"devDependencies":{"aegir":"^12.4.0","buffer-loader":"0.0.1","chai":"^4.1.2","dirty-chai":"^2.0.1","gulp":"^3.9.1","libp2p-multiplex":"~0.5.1","libp2p-secio":"~0.9.1","libp2p-spdy":"~0.11.0","libp2p-tcp":"~0.11.2","libp2p-webrtc-star":"~0.13.3","libp2p-websockets":"~0.10.4","peer-book":"~0.5.4","pre-commit":"^1.2.2","pull-goodbye":"0.0.2","sinon":"^4.2.2","webrtcsupport":"^2.2.0"},"dependencies":{"async":"^2.6.0","debug":"^3.1.0","interface-connection":"~0.3.2","ip-address":"^5.8.9","libp2p-circuit":"~0.1.4","libp2p-identify":"~0.6.3","lodash.includes":"^4.3.0","multiaddr":"^3.0.2","multistream-select":"~0.14.1","once":"^1.4.0","peer-id":"~0.10.5","peer-info":"~0.11.6","pull-stream":"^3.6.1"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Francisco Baio Dias","email":"xicombd@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Haad","email":"haadcode@users.noreply.github.com"},{"name":"Kobi Gurkan","email":"kobigurk@gmail.com"},{"name":"Maciej Krüger","email":"mkg20001@gmail.com"},{"name":"Michael Fakhry","email":"fakhrimichael@live.com"},{"name":"Pau Ramon Revilla","email":"masylum@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"greenkeeper[bot]","email":"greenkeeper[bot]@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"0b75bcd615fc8ab4cd3b93cae3157a4035a8d84f","_id":"libp2p-switch@0.36.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"daviddias","email":"daviddias.p@gmail.com"},"dist":{"shasum":"7171ead61b3d439b22d5b720f0e6e8787c19da6e","size":1321931,"noattachment":false,"key":"/libp2p-switch/-/libp2p-switch-0.36.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libp2p-switch/download/libp2p-switch-0.36.0.tgz"},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"jacobheun","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-switch_0.36.0_1517981903406_0.4174885769302552"},"_hasShrinkwrap":false,"publish_time":1517981905173,"deprecated":"libp2p-switch is now part of libp2p as of libp2p@0.26.1. This module should no longer be used standalone.","_cnpm_publish_time":1517981905173,"_cnpmcore_publish_time":"2021-12-16T11:30:06.975Z"}},"readme":"libp2p-switch JavaScript implementation\n======================================\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io)\n[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/)\n[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs)\n[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io)\n[![Travis CI](https://flat.badgen.net/travis/libp2p/js-libp2p-switch)](https://travis-ci.com/libp2p/js-libp2p-switch)\n[![codecov](https://codecov.io/gh/libp2p/js-libp2p-switch/branch/master/graph/badge.svg)](https://codecov.io/gh/libp2p/js-libp2p-switch)\n[![Dependency Status](https://david-dm.org/libp2p/js-libp2p-switch.svg?style=flat-square)](https://david-dm.org/libp2p/js-libp2p-switch)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)\n![](https://img.shields.io/badge/npm-%3E%3D3.0.0-orange.svg?style=flat-square)\n![](https://img.shields.io/badge/Node.js-%3E%3D6.0.0-orange.svg?style=flat-square)\n\n> libp2p-switch is a dialer machine, it leverages the multiple libp2p transports, stream muxers, crypto channels and other connection upgrades to dial to peers in the libp2p network. It also supports Protocol Multiplexing through a multicodec and multistream-select handshake.\n\nlibp2p-switch is used by [libp2p](https://github.com/libp2p/js-libp2p) but it can be also used as a standalone module.\n\n## Lead Maintainer\n\n[Jacob Heun](https://github.com/jacobheun)\n\n## Table of Contents\n\n- [Install](#install)\n- [Usage](#usage)\n  - [Create a libp2p switch](#create-a-libp2p-switch)\n- [API](#api)\n  - [`switch.connection`](#switchconnection)\n  - [`switch.dial(peer, protocol, callback)`](#switchdialpeer-protocol-callback)\n  - [`switch.dialFSM(peer, protocol, callback)`](#switchdialfsmpeer-protocol-callback)\n  - [`switch.handle(protocol, handlerFunc, matchFunc)`](#switchhandleprotocol-handlerfunc-matchfunc)\n  - [`switch.hangUp(peer, callback)`](#switchhanguppeer-callback)\n  - [`switch.start(callback)`](#switchstartcallback)\n  - [`switch.stop(callback)`](#switchstopcallback)\n  - [`switch.stats`](#stats-api)\n  - [`switch.unhandle(protocol)`](#switchunhandleprotocol)\n  - [Internal Transports API](#internal-transports-api)\n- [Design Notes](#design-notes)\n  - [Multitransport](#multitransport)\n  - [Connection upgrades](#connection-upgrades)\n  - [Identify](#identify)\n  - [Notes](#notes)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Install\n\n```bash\n> npm install libp2p-switch --save\n```\n\n## Usage\n\n### Create a libp2p Switch\n\n```JavaScript\nconst switch = require('libp2p-switch')\n\nconst sw = new switch(peerInfo , peerBook [, options])\n```\n\nIf defined, `options` should be an object with the following keys and respective values:\n\n- `denyTTL`: - number of ms a peer should not be dialable to after it errors. Each successive deny will increase the TTL from the base value. Defaults to 5 minutes\n- `denyAttempts`: - number of times a peer can be denied before they are permanently denied. Defaults to 5.\n- `maxParallelDials`: - number of concurrent dials the switch should allow. Defaults to `100`\n- `maxColdCalls`: - number of queued cold calls that are allowed. Defaults to `50`\n- `dialTimeout`: - number of ms a dial to a peer should be allowed to run. Defaults to `30000` (30 seconds)\n- `stats`: an object with the following keys and respective values:\n  - `maxOldPeersRetention`: maximum old peers retention. For when peers disconnect and keeping the stats around in case they reconnect. Defaults to `100`.\n  - `computeThrottleMaxQueueSize`: maximum queue size to perform stats computation throttling. Defaults to `1000`.\n  - `computeThrottleTimeout`: Throttle timeout, in miliseconds. Defaults to `2000`,\n  - `movingAverageIntervals`: Array containin the intervals, in miliseconds, for which moving averages are calculated. Defaults to:\n\n  ```js\n  [\n    60 * 1000, // 1 minute\n    5 * 60 * 1000, // 5 minutes\n    15 * 60 * 1000 // 15 minutes\n  ]\n  ```\n\n### Private Networks\n\nlibp2p-switch supports private networking. In order to enabled private networks, the `switch.protector` must be\nset and must contain a `protect` method. You can see an example of this in the [private network\ntests]([./test/pnet.node.js]).\n\n## API\n\n- peerInfo is a [PeerInfo](https://github.com/libp2p/js-peer-info) object that has the peer information.\n- peerBook is a [PeerBook](https://github.com/libp2p/js-peer-book) object that stores all the known peers.\n\n### `switch.connection`\n\n##### `switch.connection.addUpgrade()`\n\nA connection upgrade must be able to receive and return something that implements the [interface-connection](https://github.com/libp2p/interface-connection) specification.\n\n> **WIP**\n\n##### `switch.connection.addStreamMuxer(muxer)`\n\nUpgrading a connection to use a stream muxer is still considered an upgrade, but a special case since once this connection is applied, the returned obj will implement the [interface-stream-muxer](https://github.com/libp2p/interface-stream-muxer) spec.\n\n- `muxer`\n\n##### `switch.connection.reuse()`\n\nEnable the identify protocol.\n\n##### `switch.connection.crypto([tag, encrypt])`\n\nEnable a specified crypto protocol. By default no encryption is used, aka `plaintext`. If called with no arguments it resets to use `plaintext`.\n\nYou can use for example [libp2p-secio](https://github.com/libp2p/js-libp2p-secio) like this\n\n```js\nconst secio = require('libp2p-secio')\nswitch.connection.crypto(secio.tag, secio.encrypt)\n```\n\n##### `switch.connection.enableCircuitRelay(options, callback)`\n\nEnable circuit relaying.\n\n- `options`\n    - enabled - activates relay dialing and listening functionality\n    - hop - an object with two properties\n        - enabled - enables circuit relaying\n        - active - is it an active or passive relay (default false)\n- `callback`\n\n### `switch.dial(peer, protocol, callback)`\n\ndial uses the best transport (whatever works first, in the future we can have some criteria), and jump starts the connection until the point where we have to negotiate the protocol. If a muxer is available, then drop the muxer onto that connection. Good to warm up connections or to check for connectivity. If we have already a muxer for that peerInfo, then do nothing.\n\n- `peer`: can be an instance of [PeerInfo][], [PeerId][] or [multiaddr][]\n- `protocol`\n- `callback`\n\n### `switch.dialFSM(peer, protocol, callback)`\n\nworks like dial, but calls back with a [Connection State Machine](#connection-state-machine)\n\n- `peer`: can be an instance of [PeerInfo][], [PeerId][] or [multiaddr][]\n- `protocol`: String that defines the protocol (e.g '/ipfs/bitswap/1.1.0') to be used\n- `callback`: Function with signature `function (err, connFSM) {}` where `connFSM` is a [Connection State Machine](#connection-state-machine)\n\n#### Connection State Machine\nConnection state machines emit a number of events that can be used to determine the current state of the connection\nand to received the underlying connection that can be used to transfer data.\n\n### `switch.dialer.connect(peer, options, callback)`\n\na low priority dial to the provided peer. Calls to `dial` and `dialFSM` will take priority. This should be used when an application only wishes to establish connections to new peers, such as during peer discovery when there is a low peer count. Currently, anything greater than the HIGH_PRIORITY (10) will be placed into the cold call queue, and anything less than or equal to the HIGH_PRIORITY will be added to the normal queue.\n\n- `peer`: can be an instance of [PeerInfo][], [PeerId][] or [multiaddr][]\n- `options`: Optional\n- `options.priority`: Number of the priority of the dial, defaults to 20.\n- `options.useFSM`: Boolean of whether or not to callback with a [Connection State Machine](#connection-state-machine)\n- `callback`: Function with signature `function (err, connFSM) {}` where `connFSM` is a [Connection State Machine](#connection-state-machine)\n\n##### Events\n- `error`:  emitted whenever a fatal error occurs with the connection; the error will be emitted.\n- `error:upgrade_failed`: emitted whenever the connection fails to upgrade with a muxer, this is not fatal.\n- `error:connection_attempt_failed`: emitted whenever a dial attempt fails for a given transport. An array of errors is emitted.\n- `connection`: emitted whenever a useable connection has been established; the underlying [Connection](https://github.com/libp2p/interface-connection) will be emitted.\n- `close`: emitted when the connection has closed.\n\n### `switch.handle(protocol, handlerFunc, matchFunc)`\n\nHandle a new protocol.\n\n- `protocol`\n- `handlerFunc` - function called when we receive a dial on `protocol. Signature must be `function (protocol, conn) {}`\n- `matchFunc` - matchFunc for multistream-select\n\n### `switch.hangUp(peer, callback)`\n\nHang up the muxed connection we have with the peer.\n\n- `peer`: can be an instance of [PeerInfo][], [PeerId][] or [multiaddr][]\n- `callback`\n\n### `switch.on('error', (err) => {})`\n\nEmitted when the switch encounters an error.\n\n- `err`: instance of [Error][]\n\n### `switch.on('peer-mux-established', (peer) => {})`\n\n- `peer`: is instance of [PeerInfo][] that has info of the peer we have just established a muxed connection with.\n\n### `switch.on('peer-mux-closed', (peer) => {})`\n\n- `peer`: is instance of [PeerInfo][] that has info of the peer we have just closed a muxed connection with.\n\n### `switch.on('connection:start', (peer) => {})`\nThis will be triggered anytime a new connection is created.\n\n- `peer`: is instance of [PeerInfo][] that has info of the peer we have just started a connection with.\n\n### `switch.on('connection:end', (peer) => {})`\nThis will be triggered anytime an existing connection, regardless of state, is removed from the switch's internal connection tracking.\n\n- `peer`: is instance of [PeerInfo][] that has info of the peer we have just closed a connection with.\n\n### `switch.on('start', () => {})`\n\nEmitted when the switch has successfully started.\n\n### `switch.on('stop', () => {})`\n\nEmitted when the switch has successfully stopped.\n\n### `switch.start(callback)`\n\nStart listening on all added transports that are available on the current `peerInfo`.\n\n### `switch.stop(callback)`\n\nClose all the listeners and muxers.\n\n- `callback`\n\n### Stats API\n\n##### `switch.stats.emit('update')`\n\nEvery time any stat value changes, this object emits an `update` event.\n\n#### Global stats\n\n##### `switch.stats.global.snapshot`\n\nShould return a stats snapshot, which is an object containing the following keys and respective values:\n\n- dataSent: amount of bytes sent, [Big](https://github.com/MikeMcl/big.js#readme) number\n- dataReceived: amount of bytes received, [Big](https://github.com/MikeMcl/big.js#readme) number\n\n##### `switch.stats.global.movingAverages`\n\nReturns an object containing the following keys:\n\n- dataSent\n- dataReceived\n\nEach one of them contains an object that has a key for each interval (`60000`, `300000` and `900000` miliseconds).\n\nEach one of these values is [an exponential moving-average instance](https://github.com/pgte/moving-average#readme).\n\n#### Per-transport stats\n\n##### `switch.stats.transports()`\n\nReturns an array containing the tags (string) for each observed transport.\n\n##### `switch.stats.forTransport(transportTag).snapshot`\n\nShould return a stats snapshot, which is an object containing the following keys and respective values:\n\n- dataSent: amount of bytes sent, [Big](https://github.com/MikeMcl/big.js#readme) number\n- dataReceived: amount of bytes received, [Big](https://github.com/MikeMcl/big.js#readme) number\n\n##### `switch.stats.forTransport(transportTag).movingAverages`\n\nReturns an object containing the following keys:\n\n dataSent\n dataReceived\n\nEach one of them contains an object that has a key for each interval (`60000`, `300000` and `900000` miliseconds).\n\nEach one of these values is [an exponential moving-average instance](https://github.com/pgte/moving-average#readme).\n\n#### Per-protocol stats\n\n##### `switch.stats.protocols()`\n\nReturns an array containing the tags (string) for each observed protocol.\n\n##### `switch.stats.forProtocol(protocolTag).snapshot`\n\nShould return a stats snapshot, which is an object containing the following keys and respective values:\n\n- dataSent: amount of bytes sent, [Big](https://github.com/MikeMcl/big.js#readme) number\n- dataReceived: amount of bytes received, [Big](https://github.com/MikeMcl/big.js#readme) number\n\n\n##### `switch.stats.forProtocol(protocolTag).movingAverages`\n\nReturns an object containing the following keys:\n\n- dataSent\n- dataReceived\n\nEach one of them contains an object that has a key for each interval (`60000`, `300000` and `900000` miliseconds).\n\nEach one of these values is [an exponential moving-average instance](https://github.com/pgte/moving-average#readme).\n\n#### Per-peer stats\n\n##### `switch.stats.peers()`\n\nReturns an array containing the peerIDs (B58-encoded string) for each observed peer.\n\n##### `switch.stats.forPeer(peerId:String).snapshot`\n\nShould return a stats snapshot, which is an object containing the following keys and respective values:\n\n- dataSent: amount of bytes sent, [Big](https://github.com/MikeMcl/big.js#readme) number\n- dataReceived: amount of bytes received, [Big](https://github.com/MikeMcl/big.js#readme) number\n\n\n##### `switch.stats.forPeer(peerId:String).movingAverages`\n\nReturns an object containing the following keys:\n\n- dataSent\n- dataReceived\n\nEach one of them contains an object that has a key for each interval (`60000`, `300000` and `900000` miliseconds).\n\nEach one of these values is [an exponential moving-average instance](https://github.com/pgte/moving-average#readme).\n\n#### Stats update interval\n\nStats are not updated in real-time. Instead, measurements are buffered and stats are updated at an interval. The maximum interval can be defined through the `Switch` constructor option `stats.computeThrottleTimeout`, defined in miliseconds.\n\n### `switch.unhandle(protocol)`\n\nUnhandle a protocol.\n\n- `protocol`\n\n### Internal Transports API\n\n##### `switch.transport.add(key, transport, options)`\n\nlibp2p-switch expects transports that implement [interface-transport](https://github.com/libp2p/interface-transport). For example [libp2p-tcp](https://github.com/libp2p/js-libp2p-tcp).\n\n- `key` - the transport identifier.\n- `transport` -\n- `options` -\n\n##### `switch.transport.dial(key, multiaddrs, callback)`\n\nDial to a peer on a specific transport.\n\n- `key`\n- `multiaddrs`\n- `callback`\n\n##### `switch.transport.listen(key, options, handler, callback)`\n\nSet a transport to start listening mode.\n\n- `key`\n- `options`\n- `handler`\n- `callback`\n\n##### `switch.transport.close(key, callback)`\n\nClose the listeners of a given transport.\n\n- `key`\n- `callback`\n\n## Design Notes\n\n### Multitransport\n\nlibp2p is designed to support multiple transports at the same time. While peers are identified by their ID (which are generated from their public keys), the addresses of each pair may vary, depending the device where they are being run or the network in which they are accessible through.\n\nIn order for a transport to be supported, it has to follow the [interface-transport](https://github.com/libp2p/interface-transport) spec.\n\n### Connection upgrades\n\nEach connection in libp2p follows the [interface-connection](https://github.com/libp2p/interface-connection) spec. This design decision enables libp2p to have upgradable transports.\n\nWe think of `upgrade` as a very important notion when we are talking about connections, we can see mechanisms like: stream multiplexing, congestion control, encrypted channels, multipath, simulcast, etc, as `upgrades` to a connection. A connection can be a simple and with no guarantees, drop a packet on the network with a destination thing, a transport in the other hand can be a connection and or a set of different upgrades that are mounted on top of each other, giving extra functionality to that connection and therefore `upgrading` it.\n\nTypes of upgrades to a connection:\n\n- encrypted channel (with TLS for e.g)\n- congestion flow (some transports don't have it by default)\n- multipath (open several connections and abstract it as a single connection)\n- simulcast (still really thinking this one through, it might be interesting to send a packet through different connections under some hard network circumstances)\n- stream-muxer - this a special case, because once we upgrade a connection to a stream-muxer, we can open more streams (multiplex them) on a single stream, also enabling us to reuse the underlying dialed transport\n\nWe also want to enable flexibility when it comes to upgrading a connection, for example, we might that all dialed transports pass through the encrypted channel upgrade, but not the congestion flow, specially when a transport might have already some underlying properties (UDP vs TCP vs WebRTC vs every other transport protocol)\n\n### Identify\n\nIdentify is a protocol that switchs mounts on top of itself, to identify the connections between any two peers. E.g:\n\n- a) peer A dials a conn to peer B\n- b) that conn gets upgraded to a stream multiplexer that both peers agree\n- c) peer B executes de identify protocol\n- d) peer B now can open streams to peer A, knowing which is the\nidentity of peer A\n\nIn addition to this, we also share the \"observed addresses\" by the other peer, which is extremely useful information for different kinds of network topologies.\n\n### Notes\n\nTo avoid the confusion between connection, stream, transport, and other names that represent an abstraction of data flow between two points, we use terms as:\n\n- connection - something that implements the transversal expectations of a stream between two peers, including the benefits of using a stream plus having a way to do half duplex, full duplex\n- transport - something that as a dial/listen interface and return objs that implement a connection interface\n\n### This module uses `pull-streams`\n\nWe expose a streaming interface based on `pull-streams`, rather then on the Node.js core streams implementation (aka Node.js streams). `pull-streams` offers us a better mechanism for error handling and flow control guarantees. If you would like to know more about why we did this, see the discussion at this [issue](https://github.com/ipfs/js-ipfs/issues/362).\n\nYou can learn more about pull-streams at:\n\n- [The history of Node.js streams, nodebp April 2014](https://www.youtube.com/watch?v=g5ewQEuXjsQ)\n- [The history of streams, 2016](http://dominictarr.com/post/145135293917/history-of-streams)\n- [pull-streams, the simple streaming primitive](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple)\n- [pull-streams documentation](https://pull-stream.github.io/)\n\n#### Converting `pull-streams` to Node.js Streams\n\nIf you are a Node.js streams user, you can convert a pull-stream to a Node.js stream using the module [`pull-stream-to-stream`](https://github.com/pull-stream/pull-stream-to-stream), giving you an instance of a Node.js stream that is linked to the pull-stream. For example:\n\n```js\nconst pullToStream = require('pull-stream-to-stream')\n\nconst nodeStreamInstance = pullToStream(pullStreamInstance)\n// nodeStreamInstance is an instance of a Node.js Stream\n```\n\nTo learn more about this utility, visit https://pull-stream.github.io/#pull-stream-to-stream.\n\n\n## Contribute\n\nThis module is actively under development. Please check out the issues and submit PRs!\n\n## License\n\nMIT © Protocol Labs\n","_attachments":{},"homepage":"https://github.com/libp2p/js-libp2p-switch","bugs":{"url":"https://github.com/libp2p/js-libp2p-switch/issues"},"license":"MIT"}