{"_id":"streamr-client-protocol","_rev":"154-329f8e484adaf12323967e336658bb93","name":"streamr-client-protocol","dist-tags":{"next":"3.0.0-1","protocol-v5":"5.3.3","beta":"8.0.0-beta.2","alpha":"8.5.0-alpha.1","brubeck":"9.1.0-brubeck.1","latest":"13.0.0"},"versions":{"1.0.0":{"name":"streamr-client-protocol","version":"1.0.0","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@1.0.0","maintainers":[{"name":"hpihkala","email":"henri.pihkala@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"43db2ca55d4bfcf0871a4207796ffb89949d4f79","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-1.0.0.tgz","fileCount":44,"integrity":"sha512-CZz9Tb6XF75Va9G/VmnHVXb5WGiFPhNI/Ce/+zQ7uvYXCp8bX7Vep1/4GWQGyPJShQkk7DTshdHMBn37YALDlQ==","signatures":[{"sig":"MEUCIGu87+IQgh6+2uMwT1GMNL6/Q5jvKqyZjpDHmzbBVpntAiEAo2wiQFuHtU2QufWdOT8iHIUr7hpfeOmX45jzBG4xPmk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":214582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb01GuCRA9TVsSAnZWagAA1qwP/jTg3VLBXZbOKsvHHU+U\nl6fzlLaPR0R5fVjLKzNrP2PWEtAVhkvxE2eOshjQ+BAmaRU1jB7AI/SgTbhL\nyUgTOMFYL7OedkF6IFGoLxR1n1/XdBgGStkOQRaZiXORC4oIJRaFL3OylfJh\nYVf/RSGFt2xfktJzlh94asiNFhICIyGWIHZUS2+leA8oUcD0IHVRm+iwNSkQ\naploAICfGq3h1OzLcC5moJ6hOx6HNvFVBi2NH+kDZG8Teb0HK1Az36dMJuWl\n4UocydGBZVKaLolKIYPeJql71iAEil92qpA5XPMPubum9PrFdj+pwVBaoSBs\ndB4uP/cPEg1mZh1jzEOVigkQdwNLoAyLjEo5ZpjWz01C3bC8vuTIDmX58Cz7\n1rl+Zix1BWeM7/teydgAgRwjNyFGSZxQO9CmW8twWV2KOWSn5i6ZLKuvqvyX\n3dln3XMnW95691CGIrwzfdsnWS4uASNsExAhXIWKyuiMV4nt9xGPbRCeFMTj\nwg4BICJgF6glrI+w/gFvvpYCN2+67KBL8ZU9VoOZ2kgqQwYtbOG/4jVzO399\nuJq2i5id8Mn3yXwXiLKxU09bSxF8G//6V+Rnp5Z9YUIP7wlp3kuxcfFcn3HN\nm76yqL+cFWIvXkDwH03I79OLfPJgqmMqh7CwpQ5dBKOIhlYB+7Zg4DsKw0ws\nhWim\r\n=/e1x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","engines":{"node":">= 8"},"gitHead":"8cc2740b1fd9fd4b05ed9cd37d1bbf63648ee1a9","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"5.5.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.9.3","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_1.0.0_1540575662005_0.7015371704242523","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"streamr-client-protocol","version":"1.1.0","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@1.1.0","maintainers":[{"name":"hpihkala","email":"henri.pihkala@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"cd7bf3088c2db46995fe28ddb5e1551c8a2deb1d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-1.1.0.tgz","fileCount":49,"integrity":"sha512-z1V4h1LE4PCoW/sZ9JFbGd3iSucp1Ytqi9ASuWvfYqPCav5ZDU73MLYjsVzEPeCPa8Xttdx/pBRHggrlkItunw==","signatures":[{"sig":"MEYCIQD/gVgj8V2yBh8/0eWJzh8pU6nHp58j0PJaJn6w1FnfIAIhAPTMh6eFkTcaI4mzb/wcUzI7ksHr5Oyt5np3RYzqr8Iu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":259360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4g6/CRA9TVsSAnZWagAAhIEQAJ4KOD+bFEkdVGAWeAU7\ns12ewW6oE6clwzvCqaj9LuL3Vk7Sr2VyrKCRmURjFXcUQo8vCMC1RDk67JNJ\nmRw9xaWcN1BDGeoXWRi0EjJ3rw0sjdexemsCnqCu6ySj+5Xm2owD1I9jI9ZX\nh1kWO4kSG21aMK5nLZuEeFvnVfVgaPdjVBrM5jSBaFb2ui6CG2uuVzfJhFq0\nRVYesjfA+PEhKSi6Ic7Gfe9CclD/pvd7fueiiI6f7WmPBm9aQ3U2QsHv4lNJ\nijk8FChXojDy+zvS3elBiBZ2SwYoTi+OBfLtkmnXz9KTcPeVpPCeoe7UADNw\nCU46u2NgMmi3AlrJH2XfSPndCyz3r1oHDXycNoNSDNcVN+4RukxPWNYChOuW\nEn8bDzPYUsmqVRqJ1IjjVHeRopxu6rxPP7RZGMM2PwOIDDKi6llq9x37J954\njFXK+Dxaw45FhDu/LZtwYeuAYvCxnJEUF0nbKPqwzlub+y3g42Ow3OXwe+mX\nRMz9JL6Apl6fJf17Q2sEq9dnr9Q42umBwbI5avZUhEZld+XKp2MafO8P1j/k\nh+1RvMOgDrVKgpGT+eAcfGGveDIrtgDRc5AI6VZglthLNIoR6IfAjUf9xmDa\nEbU0P6W0AP3OMFxTjPCO5Xc7ymVWGLaL1AZMxpe/TJJHipNgZTne1AWp0pS3\nn5qq\r\n=mmbF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","engines":{"node":">= 8"},"gitHead":"cde25cf9d1b7c63fe0ced7de79c5d59262dc489e","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"5.5.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.9.3","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_1.1.0_1541541567133_0.535022185317946","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"streamr-client-protocol","version":"1.2.0","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@1.2.0","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"ad08ab38f95f3e733f6f66c24b13141d43d89612","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-1.2.0.tgz","fileCount":49,"integrity":"sha512-2SbUtJWsHjvqT3O0PEsV+rEBdJYWDTZ3khFdPKbVAeWfgfUodoPi4gXn8DSKdBv2wPoXVPIEsBnqzs9rqDhElA==","signatures":[{"sig":"MEYCIQCEqMpjh9ppalSdUoAW/zDLiM2dvUiKv8sJeiX4kS8o7QIhAIayQ9qK9nDxH7Va+lunaxPiu0qIaO1v7+pWDUPRUPeA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":267391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/pegCRA9TVsSAnZWagAAh8oP/3zwCgJv+ehydoRqMNFo\nrUBTRdxQky0QSARPm3xLG5AKklDelAtchZqovudujyKhyQbV6UAdddPedqX/\n27czi3VXrwaydENvwAqmffJt46QTjvJN9S3egy5ojvKEWaaNjd5MDfrtZ1Yq\nuvOfpH6e3ARC5nIbh3liIQ8MZZfc9jgw79KWP3BWkwUySjT3rszqOiZ0Zayi\nsgq+MgEjkvb5xTOGZPS/uByeL1/AGTRAZbTnoIGeLO9KJoB8qFiW4ExM2rtc\nTaSARa9PVTaXlKtjDkrYHL3d5WB5Zb1ym6JNmn9XTIaXDPXNOwUadzdUUNej\njDnBdqDZOMztjyyc3mpS0zlF0TffWXf6WpxnVM3m4c2yYuBTTDVDcvNzRkr5\nN0Tjs+x3vFUWPT0MC/xLGqYqq1qBWKlfNCn+t6m+yuNXKJP6Rb5hj7Duo8f+\ndU+NEXYh5L3Vzifpd4vv3AG74BpJfofQkccWuRFgScLiZVBj+pmPQ50EBtDu\nVPu/BTfPC/bivJz0ADqm9XBmgyTzax2qjnaxRQBmIQl6lc7VH/ZlMq0WNam0\nfnXyG7GrQYMyJFtxFNxHQfL6/T0elMKEN9P/mthZixheiUHlZk/jHsA0Qm+A\nTmrtpXmBbxGt45qSBteAmCaNr9W3TXyFyaCIL0NAU8gw8D03sGuIypPn0Jgb\nEToN\r\n=WSZu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","engines":{"node":">= 8"},"gitHead":"5081d40b923a550819fb6c4a38541835734fc45c","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.9.3","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_1.2.0_1543411615367_0.09592517615910734","host":"s3://npm-registry-packages"}},"2.0.0-beta":{"name":"streamr-client-protocol","version":"2.0.0-beta","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0-beta","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"7c279a8bf615960d63b9f0e24cb48fe7b0552d5e","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0-beta.tgz","fileCount":130,"integrity":"sha512-kymZt6r8grpKF4NH6YAunEx2nNWWMchn5brqC7x7AS8ITunqIseidEoBr/cECw0XCXc//rlKg1KYsUglrhHudw==","signatures":[{"sig":"MEQCIFNa1AaYi7rl+G2j2A+uHPnexPbYtsGhaXTvySI/ED2NAiBdvdbu3SmEK9hcTMdZvwV/L0NJINEoDH0QOlWyFV4Wog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":737996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcN5J3CRA9TVsSAnZWagAApUMP/i2fRBOMiWWbK+WBdVv1\nOKqZWeJOVQmS7OkKmLpbfA935umme9BnPhaW/WwzMx6l3hk9CmMdWhVoCcCw\ndvumRJ58LQrEusYEFpqoz4eOedfHVEsUkDCC2JaD54GcoLZvaQ9NvaIkvJQK\n5LVE+CPO9wRka4rcDW0QTmNVahzvCo2bO/R09BG0vJL5EZA9Il1jFcai4CDR\nxlD0w8wAFJ+vs5u0tULUQUTyhN6dA60ma+IAkqpWRHYM8xOirNbzVxxGU9qG\n5s9XSkhkkxtjrQTvhPntr5lehkmSP/RmxEcAeyYO9IMemXajp5rE/nHnprFc\nCgAnqIJMhvEVVXy/Dzfgjv2bN4ZK+hExJ+tnV7Vip+K+vKwakGWEeEanytKl\nmALazdPuDzVV36vsWYOtmWMb0L/2fajvkOI9RSQz1bmtN8u6IksXlvpRBB4V\nLKP7kLDOvbp9Nptk0T+bcoeZ3JtD0YRg/Hzmqp5LximfqwMZpreYgcjndy7q\nNlQDN5MmTQxFpQ04ZoNp2nxYKSjJO2qYzKDZIgFoz0Z/besJeimn8oZx60RJ\n/ZC2MhC1xBHBRLj6EVz7535yLhCp8NmJ2w4NxMb+RTPNuUWoX0S0xmh9QUsf\nKaKPBWzAf8Vbhwwz3uFRukNwlXaq3j3YoDE2JTX0eVe5jmNgvY60cvIW8Jp9\nJDj9\r\n=tTll\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [client-to-node protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client](https://github.com/streamr-dev/streamr-client)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n","engines":{"node":">= 8"},"gitHead":"d5c81b5c157307b09757224eba77985ef8d00ca2","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.9.3","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0-beta_1547145846616_0.3102610081158128","host":"s3://npm-registry-packages"}},"2.0.0-beta.1":{"name":"streamr-client-protocol","version":"2.0.0-beta.1","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0-beta.1","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"17246f132c36cb3e239c27625166779f17b88e25","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0-beta.1.tgz","fileCount":117,"integrity":"sha512-pF8c9URYwhVUCALANKgeu1IdMo8wIChi7U1zgqB7XXrBmAv9lcUWZfTBXX57W0sKhVvyhPSSQdkjXZjpRWdSwQ==","signatures":[{"sig":"MEQCIERin294B98YRVouuPlEEsYv8fzsQslwgNtMjjxvwFFlAiAPmh31hNCwJWmT2IljNQQish9RGzpADw1j1ouxNmqhow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":686829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVBvVCRA9TVsSAnZWagAAcZkP+gNKD9GcPaTNWdt0Q6CG\n+l2DB2hVBgsibDk3/rbOWNlgfV00OlKty3MXHJ88lQ66V+G7UPw9HFJ1l4bv\ngH3OEl2n/K4rh7cu0m5Dn/wRyVII6jWS7X9/kRiFI6a14tdi6LsaurpDp3m7\nBBaTYy2ZaR33lenqbCrKJFD/6zQ8ckY79ltx3GizQMUITME/UnlHSqGOSDs8\nIVGr3wc4sBKK2DU8fqxZIROWSmbFoYKH9n472i7gqRdyBQhrF2+2Mc3ngVsL\n7ObJPPeorVVRMKR+E9zVK8JAeY+rSEqTV5xw3cW5He5y0O/mu94bqoTks6BC\nRlws+oMpP4apIXJM/DuCEtBCUHsK5xbq+MQ3UeQtYFppVIPXS3Vjv9X9GNzl\nmBq7Ij/Y9lT/Fs+zy7Ei2z90FkVo/3d2ciKN7wLQ2bRRZyquFK/HEoRTeOse\nVBWRKU1adg55bju5dw0O7DgYldcnNmoKIWMcJnmLSR9wm4rKa2fy8ouErGkU\nPbsOsAjyPDsf1OCV7XcI/n2PXQ5Khv4/CXQRQmrJz0CFQPnfxzN0rwW4GqTi\ndb7hYiJy3tgEVX0wEwi9AePMyORHe581EBG89r7AAh20dBRrBb1S1g8paoG5\n+uMSJjOLQtxB+ZWDaPi6/TZ+F0/63XTZw2kXHUbuOtbJYhYa7VYeVM+z6UvR\nTUkw\r\n=aOYy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [client-to-node protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client](https://github.com/streamr-dev/streamr-client)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n","engines":{"node":">= 8"},"gitHead":"63e7b7bfcf2910a601945d81ad7af6e01e31e731","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.9.3","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0-beta.1_1549016020861_0.14903553935841507","host":"s3://npm-registry-packages"}},"2.0.0-beta.2":{"name":"streamr-client-protocol","version":"2.0.0-beta.2","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0-beta.2","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"38968298d52385c944bc1dea984836638b93c062","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0-beta.2.tgz","fileCount":117,"integrity":"sha512-5R4YofPar4QKXQ219zeL9eM5uOs1E/6okni3g/l1J9bkysENZORN0vaE4R30ThsiCQzfkKpgyxJOF72a8VAxoQ==","signatures":[{"sig":"MEUCIQDAUGnTRc0osevyKlXJQp8LhHsvy7P/o/r7aqsfZdG8dgIgDHN07or5tPZ0Rzk2TfZ8EXabOxRdcy2B2mMVQ4vXCx8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":697842,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZZwSCRA9TVsSAnZWagAAlt0P/i02TGAKPbbzGNSIdxyb\nZeCHHFRNJ6JlCcZkIoS239uydQzvfKNlTvFqCvtEnDmorL4aFdPrRQMO8qwN\nBwesos9oRVShaEK6XwyBzh2shh8q/k7pKQ9t8T8GG8lI/CbGEf6g0VnoHPKx\ngpzMDCFkHBIOkoq0hcvN+RWpU0O9JtX+gBr1KmpoZ7lGkJ+HW59/06Y0bO6l\nCyUkiRX1yxQMt9BduqQcJuW6G6mPxYTVOoSmymY1OFjYuMGHl+NqYC4NRPlt\n9tiL8QoZFfA1hPlDrfyO+EmPFVOjdz+1DZJpAJVWRaeagNa1Z3dNgDrgcz74\nzHhRdDryRan/FzQn+O02VjHMoN2sJrwHmFydAU9C2JoDK0MLhg5W8WLBhBAe\nVLpeagBwjzM7nk7jrL40Rd1wCAatvFEikJmffxTDNAC/labi9x0zZltBPg/7\n5zZVEskKxrnI8luhNQeCPSbC94vKbLG9/Y8x43ipNSBd4DCF7KK0AnY168L8\nCuNJPTB7UXtUgWkwG8KeD4mG5gAIcBKVAIoyz7LrGw+NOt6a/ciaPCN5hLOq\nI08SYc2v+tN+91DiSDjQJRxx50+TB4pPh917e4gWK+HTgSLLldAzc82j8za3\nB3VCmjUtSOHtAXCUyV9Mi+BQKwaQJi7pt1q2xgAvA3YxtH3QoV4t7GP9DlS6\nh2tD\r\n=4WE4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n","engines":{"node":">= 8"},"gitHead":"c89028cf7aca7ce75f48c1f0264504f8009ca848","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.9.3","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0-beta.2_1550162961631_0.03098791843369253","host":"s3://npm-registry-packages"}},"2.0.0-beta.3":{"name":"streamr-client-protocol","version":"2.0.0-beta.3","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0-beta.3","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"fd87142f04b02df0c761eb5f14f3356b86a9fc01","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0-beta.3.tgz","fileCount":118,"integrity":"sha512-LDjetPzpJlSAo8Jbeuf/OQPRNiPSoIKhq/leJP1Av1civJCWzeBNyj1tt32u+EKmY7wntRZoSPskfeVLWlClhA==","signatures":[{"sig":"MEUCIQCkJgkzBVgczR6s688smu1whvJAFwn4uCWAdxXJ8N2FZAIgHisCCx9IZ5iyZAWFWY8p5fDnOz0TFlnd8WprG/X8+tg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":705050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcc+2VCRA9TVsSAnZWagAAjMwQAKIgdpzmn2vScwiwS7NH\nzJEFsYU6WswTvtwCBdKjl2bBUM40etRS4m6cKQ6D76AjbSJ5tQDmAfJFfgZZ\n+vihWVmk2RQT6EpQGvC/P/hchEHotOUMLL2T8JiXnCyvV492TuPsKqDKuq0u\n8l9K0htEzodGPQW3hKa0CeqB7eMSSLhO8XmfOy2C7u70WwWcmVqXJnPH7lGk\nfuzao/azEE9/AlfvOROd9q9wr2ORFK6ASAHdo5xql2tvoUW27KkvwT8r8iEb\nFpNAwFV3jWzX1Gq1JoaWW5JYhijL8aJVIpkecNTQxMcngFvZGCoOwrsxJZlf\ngLxcYntSabGFKnshUqIOQVYgMdiRCUxd6rz6EnNur8mUhnx9nkRxX0w+4ICT\n76Tbl8KeXwJGo7UdcU++HnUw4W/1iseO9OfsExkoNO2dpyFIhBE3NiqGsQWg\nTk7IsmE/RBJgDVTEpoJL9NVmhyCmfNNYQ+H8j3j6wvgJruMsr+ehHBZTARlY\nzXlsxM/EXr/yClcn7bhCsO6VeZT3QJK6VfxAXy2Tgc/B6wvpQGybtzRwFQiJ\nLfcHK655n0ssnC7G7udikvYEFbhp8Zvp1iXekXB9YCAMMOMBi/8ymjddo9nL\nIi0mSz6AwLNNmq4+334hv8z/2TLQVWC1SRGFzxhcYis2zgdgkclmMFUWWIEP\nwRYd\r\n=gHnY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n","engines":{"node":">= 8"},"gitHead":"5f11fa3557f202676bd22a334ac53a89d62d2cce","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.14.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0-beta.3_1551101332776_0.21869270490791504","host":"s3://npm-registry-packages"}},"2.0.0-beta.4":{"name":"streamr-client-protocol","version":"2.0.0-beta.4","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0-beta.4","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"86c8d546fcd1d7b5ca15e50502f2495659ce4d7b","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0-beta.4.tgz","fileCount":118,"integrity":"sha512-3RPcQoMKCd6cLGmfD680+GkBeHOhQu1+ZDp9fswiRB96smtYh6p+AmbHrmC53zbB+uCSR+bCZ95Eomu57Oggrw==","signatures":[{"sig":"MEUCIBJZ9wU9LOfocDKsMHRXhoeOYSurkAHD1h8Xf4Uh//wvAiEA4DBDpSTYs7uiTKO7Jm+nk6oRvZqur2CDZGwhh2dt/xE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":707396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdR3CCRA9TVsSAnZWagAA9MIQAJ2gncdn75SC+WkGkEtn\nW2v67sNBtgpMfvCEeMrpvM1DUydKUw8j3aan7X/cA4tFLgMJYN+gIEAo3GzV\nAwtAWCSfM59+/j/WUq7fqe3kjy/itkuElvPmWGu2Fs1FLaDxdAPxWCDMqoXu\nNsvMYwQuKdyS8qsp4naQiFi5QdscQ/UeUldwHcQIfP7F9lJva4Kw92MtGLwd\nPKrfhJSG6F/cqbV2r3wikpSF/+xVGqrfAMWQe3pNOPf1sueQooAsu+qw2wBp\nacmmDlLfiicO9Rr5eWGLzgutQFAfSx+IKsnUlCzeEuazEEa6AOwUM9+umRSq\n7kBFxH34NB2onq7xY2rQbEw8u4Jn3yIf3SdZbIFw91awMFgd0ukHxD7cBH8E\n1bn2Bzx5Kjm/xhHqX/WCq+dJZ0snhFvJDg7FnwtEdnz3y/GKb80X9qPW+uSr\n3oZ8OeIA7rJ6Mu7vAQP7SmGxeB2Su0GBugDvw5W2LTeiR2mSgBnZ/7OIVJUD\nChjT0vxVlUxWFAMnP9WtYGOctbyoCoMVujpD7S2wjD7uLv6ppO904E16iDVU\n2rsWExoy28IK3fOEyIkGV0hVdMZ2h/6iEA5EUxKUQkIQ2aIm1AqxHCAZw/i6\n7T0Kz1u253ytX33WcXTRIhb07/hIXr6lymrs57qsnfGScI19FhmDRCWK8dWd\nhzkF\r\n=I7Xf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","engines":{"node":">= 8"},"gitHead":"9111fa1a34a74b145385191a7f2542be514d40f1","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.14.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0-beta.4_1551179201704_0.9987523093132864","host":"s3://npm-registry-packages"}},"2.0.0-beta.5":{"name":"streamr-client-protocol","version":"2.0.0-beta.5","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0-beta.5","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"d92ae2cd98b782f3565de7b075d8f593e16e168d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0-beta.5.tgz","fileCount":117,"integrity":"sha512-V2Cb5gQkL7xwgmsr+9hdQPhhDNDWk4I70T01xD5nHD18tABNYiWZzVQev27ADeEmGEnd+LJCUcIsZfrHjVYfFQ==","signatures":[{"sig":"MEQCIA8X7D3Lo0mPV/VrrhPeU3cAkekr5AEDRzL5lBzRd6vDAiAVh8HXe2qzNkXLM0o0lnkoF+cMF41XPhMWqVMpBKng3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":710932,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdX9sCRA9TVsSAnZWagAAkAwP/RYjpI4LGbcO3PA77UEc\nKfvZyrlPo4ZCOMhTT6U2HCB7oZsZ5xK32TFE0u1vROxdCtyt3WXXXv/MkO0P\nHMW1nxhDozrrmsTG8Sd0Lpl7dfHy1Zg7uAQetDTpJLI/e7KaymRyyF0pTGoy\nXfJbVuPlixxBg1p3+DUBHcAbGIYL1Fr/qsS0U1NB660CEsaHn1XyY0J5tTu7\nrAHU0QPCqmWVysuF3vehyYFTM4GstJOc/suDlqrPZIWBoXEhUM1qEWGqwGhC\nIhPyD+H1MGlP+hh3mMrL++G2D8uIWfnKcbZu9Ns21M/PzWVwR/QDom7iX8ha\n/AtOZDmShIkM1RZZgaAYMPPhIwrt8RO7F1MZvSmBagUa3SbnTFoBYRNYMmNc\nMCbbNC63ww0T6AutFq5lYWkcRmIc44Xjc97Fpk8bqDCFI+mHXn/Xi1z8DouX\n//ArCQzvdl5CjrJIHYGddY81d96j94fu3UseBnGScJ+aX3t89CWjn2dAMRSW\nL/3EMih2vRwHsCQn43eZlTt/1pI+pntoUVID2e1nmWORAXzH6O/OnoG10fxJ\nD3fq5zuE2z3whqhcn4GkyYsPuQPoKYlUlH9InDxdINZGAvG0p1O6aUKbUvwL\n6HF3SvWfx8fw5QDturlBNwo+H+n1ylkgClwf8tY2vNyzwEkHQZtroJq2I8UD\n0XrJ\r\n=W+XB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n","engines":{"node":">= 8"},"gitHead":"57f90203f88dafd3084fc92c6eb539162132f96e","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0-beta.5_1551204203493_0.9838319532167972","host":"s3://npm-registry-packages"}},"2.0.0-beta.6":{"name":"streamr-client-protocol","version":"2.0.0-beta.6","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0-beta.6","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"e36581681e1167f6cc75dfa969fbe0af0b9bd597","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0-beta.6.tgz","fileCount":117,"integrity":"sha512-RLzK0si6LUsV7Rwj4ji2mKKZUwBxemHFI29uRST1GGGgPjQ2Z35BtyshRkiSRmL1MGGdWtx+VkEAWdrQUJ7S1A==","signatures":[{"sig":"MEUCIA6zwOcIa1FDWA7VwnY8J06RdgH+EZv+y25WGT09iBSBAiEA8Ktgv82x5O/J5MzDbGfiB+srek8HpfQRVZ9zKvsYRYA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":710605,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdYJKCRA9TVsSAnZWagAA2yIP/3GIokO7BpzrOjORD2LU\nVi3Jds6T8dgRvTn1rwq/75lPgbz7k1Uh6I48fnd1egvtAkjuZGmGVc/EBOzN\n+ItD7LhpGRw/Qn5K27JVzL9gGVRTD0UwR51EVoB/M9mGnw55KLPPkFgCB+wB\nbIsrPV23803AjoJj1o/mnuipEhHgwTi1bAzlhFuwHTQ1soP5uF2d3mDGDiU9\nFKjXZVdIVnpi7zMizEpF6cNBA7gGOVtV5gxfvHMoQ8he7OmD9wZgkxSwCc89\npb4BpHpeml9k9zd7zxbVVNhDhsTylVgRwIsOrsgEmP0XNjibgDfcj8FgxFkL\nWhKKHrZJ67LvpL17TzOJqFSt4LTNzpmxCeAWHd/exVcKnQEsUGKWr8MOVK8J\n6dg8PT7CopLzL5Y5TzdZpv4CrVusAxP+UT0dwTHDVxmFdWnlgtAmArTPw5EX\n7jxs8OdIUIOCXIpS8GBxRxMJ47rUgbSdeohcMWU8tWcKtYLeOyx7nVQVFSU8\nYEzd/MtAYCHo/x5j6RqPK/RVaIMffLGvL2+O202LuaT/wRdl0i9hqWTj2B59\nS7xn2FZDN2782dbsYqBfxOKAhFyHZ2kFeqxJtVIOsPxN1bhlaC7CULNbySGk\nAVBZ5nqpsofagBn2Yd4GAHPKWZSoec0G4QTtg0kUea9w1FSSQA/+RH2f8irw\ngti+\r\n=5k1+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n","engines":{"node":">= 8"},"gitHead":"f8abbde1aca45f48205711c2605e3d42bc373501","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0-beta.6_1551204937782_0.9004732577643997","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"streamr-client-protocol","version":"2.0.0","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.0.0","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"5e5052828e7021b613d4a2d9ff2fefa423839eaa","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.0.0.tgz","fileCount":117,"integrity":"sha512-H4UAvEglMLzzp/2CzHlziKy7XWnlraJvgsPPuAx7af3rZ+yZ6LEEHczrDge4k55HlHtkxtJ323+E/moBZIZcPw==","signatures":[{"sig":"MEQCIBgx0UkKyyAHe4ek7b3nk+7P6TblJQRYfqBU+/Ys4AtBAiB3GnSWa/SlIf11nxIgF+xJ6336wu2NurAByu+TxNW1YQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":710598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckReeCRA9TVsSAnZWagAA71MP/inMzFfKjEQyGS23Agkk\nADGFCbdtoFL88Iw4mW8yigUirugtO/vMEfSFKQfyksgOmaO7G9kiZuiIdIHs\nnGsYV1hhksPzeVoSUEAwoa3XyTIGIgI3F7NpLWuT4y2FyYgOBND/Y5iMplm5\nohAtW/ojxPfR8IAxbHr35D0t4uk9Cu1dFVVRtioVP1BuqvqDYs1PZAxNdczR\n1/X+TiSf/3R0hIVoPxw22w2QnsmUxGclHE6H8wNxF4EvI1opPYwARi1OZ64c\n9lD8b+ocFzvV8fXAOrTxc0Z7j10vTVvvkhs5J6jN8cIHUsukHeh+9IPOIPom\nsE+nehbE4ubOPWfs4eaQSxTgP2dA00qk4365G09KkBPECfwZkJOWe9cCB6Yc\nkM3IJke8GEQxQqtE+oLLXeiRamzMKoHgDJE0rSCHtz/UZEdHUoskliBIOMPa\n6753f4ScOSeQnXeFs7ZYu2zZOMsRobFcgSLFwNbVdLrp4gbqamBypMmagO+v\np5K8FuFfKlfLOwlcyHRkcCo2EIO6OemUk/iciNA6Wf5G/hNRVrHRK+7R9/7F\nVGCzwAxZ6KJXdEF/pWLue0t85W5eu0ihgkHblQHzhR4FkPPQHs+q1B7O8wg3\nUh7fmqs1NnpV3d+OjYbg0cPDvagd06BDrJh8njy7cbnrZMK3hxhh6CrKnM8W\n5MgE\r\n=EbMR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","engines":{"node":">= 8"},"gitHead":"3ae172d11c7663e5f7c67b9266f8801827094772","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.0.0_1553012638403_0.62328904080033","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"streamr-client-protocol","version":"2.1.0","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.1.0","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"875898c07a63953e3439d0e9b95816efdc76c1d9","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.1.0.tgz","fileCount":117,"integrity":"sha512-tbtQFpZ8s24rgzOIlKBQbEzaNS+BAH95pwT6KyT4reFFIikrhd+SMA1OfI/WV3Gt9M+9jxkrv9wn3MM4t0gDHA==","signatures":[{"sig":"MEYCIQD+JYaHn6z50WeZ+CP/cU9eQzoKYzfvkyJamfVLHGuQ6wIhAOESNG2BO76MBFbd9aSw/9siOUDiYLEKQqz8PVIIgysq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":710612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnfM/CRA9TVsSAnZWagAA+q4P/ji4+H2Ar6yJxLaNQ6Ju\n6XpkezWjuZ8XHLn02Lniv5ExsQqMK9RJgwKIqgJzKNWRmfQzpYroy4MhmjJL\nAkzmTWOxZ3yoXfHUPaDJQekbsniuljgNMEXRKCwoL8dHH5ra7NwTsjtdpmLM\nvZrYW5iToy00VeS5pKaxm/s5Xu0qQRPSsQ9OsmdYzd2IB3MaoWAgoEVrRzWK\nSAyeuvJorEVU9g7fpuzB2vZA1DE8brQSWKxcqh3UtuTjZu2kM0y+ftUKNEzR\nck+FBzMPMDV53dbpC9Czyb5dxTSOZky2wraqaKbf8PtI9xbUKYNL9szLj6NV\nF8mTthTLz7ugrw6w4CbefL9JcAXWMO+wpRro25lHHrue/yRLjkmsJmuzyJsZ\nUw9xc08QxQ5/tElk1UE/HccUBvMs711ukEBOFatwEDPBhRGHflSVCztGiSIN\n9+qzVjFoQ/UnBlwt9lgkry7AgDywTQrfx7ZQiOn3HHXIR9eHaTkyXLWXgEPd\nW+K5O3vARFuSsQ71Key/hykBDfL+Im5mR6iLHIFxJlNpuzp7BoC8pZh/YpMi\nZWrWtc3w9Z/fcVlIT2sBjpdBPtMwNiMe+laOgKEpdhtfnGXMydY6j5YcD7PA\nVuyuQuv+xQvtCbMRxoPA7c1tUFgircBB3HrDdSp0uRqmwHD63k1ffVmsigvI\nic0u\r\n=bj4O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","engines":{"node":">= 8"},"gitHead":"76b5f0491caf9a1263c2d31e6fd820a207ae8e09","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.1.0_1553855294954_0.8245668975033664","host":"s3://npm-registry-packages"}},"2.2.0-beta.0":{"name":"streamr-client-protocol","version":"2.2.0-beta.0","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.0-beta.0","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"c4c43e597395719842280bb278458cfe3e648618","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.0-beta.0.tgz","fileCount":119,"integrity":"sha512-my7XLRO7XprNoChTvnJBrRVHYrA08bBf7XSGZrgey7820NGQ6P1JdCNz6Mt1zAOsGEesbtK0lrO3TZ05mKw/Vw==","signatures":[{"sig":"MEQCIBXo8XQ9wR0QQ2Q1le0RkCxvALIAZXsVXbN3ic6vwUR8AiBEMTOAkqV6GYavpaHOj5ylvBV4GZpvfqGolvvdA/b3hw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":767199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7oJMCRA9TVsSAnZWagAAC0UP/As5s0DixPPZZaWvxEa8\nxhtT5J7A0iovegPYPVLD/7b2B6xswB2ARPFrDThhkXUMkY3fr5QYk9yQDv+5\nfgIoWu3L97Dt+1el7pWlqElACUAIqLfKmyUSuoMeqTsTQvbs5N53Z+lZuBsV\nXJLTPy5FXqEYUuzNpU057TscMMmdjEyo2fxFB2J7hVuIvj5khgftT08wEu0U\n6yuubAqlgUKikDRmPGk4deU1a0QYHfQNggBeA1m5zGNhHln2qVs8xcijHinO\nlDNVkU+LiNZZ/pJB8lftkFPWDtkxdvmA9SGq6ukXwLTevgb2HmK6E48acIVJ\npUzIIaa11nGliUC9ksRVYOWqmXq7b11fkMNbYpaUow+NK9y0xbRSxfKzKCOP\ne39rZt8+7pXNvRRRSYZVbWyReImeS4uOiQ8GRYp1jQURnUH0Vp+r8g2rnW1o\nawm8vHJbUv16jVe4josjFxaqK4MxyioegMohADHp/EzTKnWablX7PLaGRjgJ\nC1zQ1QqQPv1Y6aWu4mHhUS8icQsr1SNhAKoDT45qH/1SKx0TqCJGJTBLX8L3\n0zCq0hgDE1j5wgx7WzLvvgcPPaqP1iHv5s7cor4y73KjqrYVJjRFzEFSCvyN\nec7P0wZOcbMZJAB7Z1CeDoHAiTcH839t5n8tkmxcapKiCsZXeulQnlN9Pwor\nkHIT\r\n=UQSt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n","engines":{"node":">= 8"},"gitHead":"9f599f1a8fa9d955293f232627509095206f9296","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.0-beta.0_1559134795895_0.33698402069950917","host":"s3://npm-registry-packages"}},"2.2.0-beta.1":{"name":"streamr-client-protocol","version":"2.2.0-beta.1","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.0-beta.1","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"32d02dbd13b7a47ec53b1c3a4434a65f2fbdd973","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.0-beta.1.tgz","fileCount":119,"integrity":"sha512-o7eUgj7z32OEc6xA0rMTcNq2yaOoxnfv0fD6SADc0odtpCa3eNeRUBjj/lTdFqDpfHpEwn5OQj9HhzeUOtg9gg==","signatures":[{"sig":"MEQCICHWfvsc+BmpSGzPQ5BhZ1CcRbtWIHaQhqzUI/1gfDKyAiBSrUnJWJqfx9WcTZhIA33LBCEQe148OXcjdjXx/TzU5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":767777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7q3yCRA9TVsSAnZWagAAfDsP/RLDX064eIB0UoQSftjJ\nI7mw6tSCtTMB4KPg73JIe9f7PYhYHcNvAKRQs02m0/Gluj0UprWE5oMMODUR\nvFiVFBv4ya+sKFLxwhJtr400NOOFyIXV8QGKZ/makbs5svC9lR1iuJJDH6uG\nMD8n4MnRLO4dBBl9OILKeZa78urS4eliNFbo7/4dxp0fcCrpoV7XT5LmXoSM\nJIOup/miAjYEUdmgSyMJOv6CUsZRZtQoETL2ebC49vJIPDIyjiJhE7Dpd8c7\nZHMzBIplxEaMlsi8Cy6TChtpaFMHRdKdIKEV/42CRL0E5qMZNga5MQNpsolq\nuZWJbHj54DXfqMPK2BoQwfDzylphK+WfEZS7/8GBY0s7gA4SFdeuhZGaxBag\nxr1KmHAJ0Kl7yLuiPam2Xn0zKx+rSb+gKtO9O+bnarBZ2oK/8ES/sI2VLQ/v\nvBqR7S3cnmvyz2OPaNTzSdshHzaoMNGHzPMWwdwDMb1zEkEJFze1nO2Jv781\nM9naAUPtnUjvc12HSn0GYRlZWZoxdpALRGKoAKi+CubRu4iH6pCcECoasBNI\nyvKWvBJ3VKTHbczBoWA32+MDYI6mIHryRxumcMgT5EZ56qO7GalZWy4TqzrG\ndSxb62CzXX8rmTb6M6QS7o9kWAej/PkXmJDgpPXvfNZHhTup/oOCNOeMuL2R\nJnV1\r\n=Ybif\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n","engines":{"node":">= 8"},"gitHead":"7d6fbeb03b903f05f59cd69edd78a727109d762f","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.0-beta.1_1559145970241_0.4105883512291493","host":"s3://npm-registry-packages"}},"2.2.0-beta.2":{"name":"streamr-client-protocol","version":"2.2.0-beta.2","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.0-beta.2","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"307a88b97dfd246e6e506352936b47ebbe79b378","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.0-beta.2.tgz","fileCount":119,"integrity":"sha512-xXVYzIT4K+fKjeVdInGZG5NmNv0rUE51EjhDUj7Vib5AVjzz37r/6YGyLJ6Gkv3Uve0kL/VgksfDdFTros/Tbw==","signatures":[{"sig":"MEQCIFezfo8A0xCSGffeioonn3DcK+uqG223aMjezHQFdOZfAiBVp1V7ZZkIkwdvX5uA0Is4U0F0HqPUmFsBnZKU9HA/LQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":767777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8NYTCRA9TVsSAnZWagAAQgAP/3Tarn/FKPfbolHr7dRO\n/e2TVZHY/ZaEQ49xXC43OFzOsjLMuvdY3sn6p5X8JsmQVkO4LIpmNlEVZxVN\nY/Qb5uz99p/UoImO7XgKczP+OR2VjpMHYih2muQK0NDojfpFiyzdSk4KNesF\nNbrVCd8ZZ8KpirgBRNlfgo9RmjnMMAsXcKr9Oh6GOnS1Ehq3fYg/+6BR9si2\nDiv+LyU0HP6FKGO6DD9rW4iMNVQhAsviCS1uTCVma/B/8bOHqgbZubdjoTpU\nAvMjvEn6VSVrEmeQBd8An6RkCccmxDvJ7LR6tcI6ABuBQgXOyRh9MepKOjVq\nThGn1prhd4vEYimfHNeUW3eASTWsi4kjP/8lbpTAsef53IHBUjmUYEhkfnt5\npbsqbruec41pQeiuORmFiOoS9FhEKDfQ0n9sFBrHPzKCXUTNuIrJTNgDetCj\nEo9gW+JCldX2vHzSKREi4AJJUAIRoz4+xAHVcyIboPkHwlJXbN6rbhqBGIbg\nsnWwDze0Pihlrexs/PNjRyq9EX/nFVYMEO5mZjguC3pxuMIu+rxwOalJOQwJ\nd6VwvEF5hMm4ygtBF0jCt18IKCtolZ+Q/3Pex16Kn3++zEQyR7EO+8ItTIlS\nI4olMRlL5W82WpsOxkitgyqlkZDYUgbojCyP4ko0LTmHuEzeOGNjlcB01CfA\nfvqJ\r\n=NbZ7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n","engines":{"node":">= 8"},"gitHead":"399c75474eff3c13b8a16ebfb35323db787bad22","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.0-beta.2_1559287315148_0.11998473002477494","host":"s3://npm-registry-packages"}},"2.2.0-beta.3":{"name":"streamr-client-protocol","version":"2.2.0-beta.3","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.0-beta.3","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"3749aceceb3471c34abdf419829b570abb43a738","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.0-beta.3.tgz","fileCount":119,"integrity":"sha512-lB7o43m9SOSmwoiiCHTqRrCSZ36yL7bldrMT+L6bU0oVZ/2lLe00hSnO8QsMrHvntNPY/uIF/y8g5uF8KmoAhw==","signatures":[{"sig":"MEYCIQCbRcgicFlV8/ujzvSqVGj0hnWXmPrEOY6kfhUUPrC9DQIhAPyTFr3tzy72L2o9RKTf5iVOA3/ISYyu8RfYwH3FYb+j","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":770552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdASSYCRA9TVsSAnZWagAAEJAP/RNSYswB9x6UlcqbYXYo\nDSonh/3uFZWcvICyrJQK+PdiWqPga7rkioi+V2Q+BzLcLRSroRfGLc6Xo2PX\nz+4TmnEFbnISRyfSsXY3sZaIBFDYjcGerHyGcrcrCgLzWZye6mDQx/to3gMp\n8s1QUIom4wHIlp3pkLzaFnYCWhk/tjIJPv1yl3jt6fqS0NOeepRK1hKiSae/\n0SqD5ohTYvMdosniIXWvEXOOyRXTOtX2ClOwCL7vZPYAz+qpjt+IYbRPmM/P\neCZmplJzN1avGYXR2/sodH28Gwj9HApEKdpTaau8tCNz+DTkqr5v5RoGmypk\nYeOHu3b/9yXDdBTlB51+1kN3be49Gn5cdDGz8HoHDpv0hwjtVbezaHMwBPAa\nsDn3FHLknGeej940kT0+F9+19chI/cDRffXaF/HtYYV7Otg+YeOIQaAQiReW\n2LlY92SFxOBvvU/f+XoMYbMmB0f0jAK1cksliThMc+Q9ulmCWyoRf+yy8D/5\noI9p0DYrWATCNg1fbkyK+l513sL47eyksuuqorMKGw7n6aHAhkAW3vBHiqw6\nPHE3egN60X/cXxp0R03yKg1S755z0600CXX8YhWMJ2cH7d92HQwUJ/74lSSb\nR40VoUucHrIu7wLu7pgEPX3rajTf4NeV1+h0Zji0xZZy4SW5pWZvJfBgbNp9\nybPF\r\n=EiJB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n","engines":{"node":">= 8"},"gitHead":"bb2f0168bcff454b5c458e275e9c2de0dee342f9","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","babel-runtime":"^6.26.0","babel-plugin-transform-builtin-extend":"^1.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^23.6.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","webpack":"^3.10.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.2","babel-loader":"^7.1.2","eslint-loader":"^1.9.0","babel-polyfill":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-2017":"0.0.0","eslint-plugin-react":"^7.7.0","babel-preset-stage-2":"^6.24.1","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","babel-plugin-transform-runtime":"^6.23.0","babel-plugin-add-module-exports":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.0-beta.3_1560355991751_0.5795493793324971","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"streamr-client-protocol","version":"2.2.1","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.1","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"5fdc9b6143c515454776a4a2161e8234bcb7d1da","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.1.tgz","fileCount":119,"integrity":"sha512-m+FNmwCpyWdNRX4bGv88JKRJ0Iq7k7gtkpNLHoXaPLLUbwzg3+rmSBZI38Gc6/vI9xHr0CEPUpRMFvdBsXy0+A==","signatures":[{"sig":"MEYCIQDqtuhMmNLk6I2S5ZrcHruTj7dyDVmvKtqcpfvr5UORzgIhANGp9SuobmigxZhcn6akoVV5PkSZB7/HTbASh/nC88b1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1307374,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdExlXCRA9TVsSAnZWagAAGRgP/1MtKfwnoI6xOs9RlETp\nmFrONatg88ZJ8duR0IVPzZrMSg7XIZ7S3LzNnY8yxfFXnbt3B8ruOJglw5cC\nxZ2aCzs3aDgkTaBhLDtErS7Wn2QmICxnjNcH8LU8ry0DWzIKDXP3xCbclVL1\nfGobk1AsFnAVP5EGB/FmP6n1UgrTQEDefuKVHDsuLjQpssaIbS+rP3XxT0sH\nIRBqXRGVLOPUIJiHr8XTJY6T9PVNn87Pi87KY4dU+SJdj4cy6U1E9kDvHjbW\naGnxIxzYnaO/1hGHrUi2JzNjPCPjx/D3kvXlbRwI6A1K/xKIx7kUK4gNe3sK\nT1wemw1/GD91W4djSFyDknKa8WNgM7NGkCvyp8IKL4mRR0dX1ziogGvXUf6Z\nHd5CKN3/o8BJGxswifryFrg9kEIZGCa4nqhwulQSFZRVIIGObWTgeUz+KO14\nvBLxeOuOeeYbWW5PCxmDOWTOhk9+u5BI4KUP6jjUcD/yiDOpJSkoh76TrGMC\n+6Qk97TNg7AArSIOuZ6s08PobPZeSBDeHawNr0aTugW9aV8uiDeHkmhc2ogv\nXPEOtZec233OjX2XxQjHdDX/qHkVbpn8z6ctLzH1kGcw0aSg+auPL/bF+XJv\nc8UNXLS6OUwo13xh96AeEqOV0jpYtLz/qKhbiVhN2Jz9Y5EtOm4fMGGHw8tK\nV5EZ\r\n=ARJG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"5a233612b8d20a90c45b11a12e02883370142718","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.1_1561532758129_0.9207216979727983","host":"s3://npm-registry-packages"}},"2.2.2":{"name":"streamr-client-protocol","version":"2.2.2","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.2","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"e96295cf285bc56e096b1eb89e674bb291f8ac03","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.2.tgz","fileCount":119,"integrity":"sha512-lj60gzR1utvPChty30ZLfSIMkzdizfg1M+I0hoK8FsCpDPBO21K79XUXRh75/5S7UqtlaZkXjPfQfN0q0STbuQ==","signatures":[{"sig":"MEYCIQDIti4xpEw+KFEiLrt7lYp5IDx9NdENnyaRlCfjEh+WJwIhALGz0AhvJ118UvfSOp02mbMtEbFgfEwl+7jGLpduytrF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1309635,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI2CACRA9TVsSAnZWagAAcocQAI2oFiTm/AKkBqIRoQWp\n6Rt2MAGk+7ozfb1VQ+NIZBJFqv39/UcaG3+mW4LJsS9CQyIF5y7obXOBWo8U\n6oYjLHVtLq/+kN3QbX8WOTfmXK1zNhu2zEqeth4UaSexhkTE6C7H3ZNRUvIN\nmmb3V3xRWZ+CNJ7LDa8dAoICGMJBS8+n6fLbAJcHWpyZGeY1Tf2QFzjvugEq\nkOccyxMgr/RRpaVs4Wr+0n98u/z6fRCssYEBkJfLZpStMtPX4ydNwO2Gj2H0\nZoI3dYa5j5RMeuYQ6QlGQqTSV4Wbs0ZCbJtV90sgWkMOWHTm9Z7MAALlnntV\nWT9vmny9+ZOHncauqjrZAWSNkCnRZcUx4Cr3L/NmRQQBGdfWkQlkDR1N87GA\nZas+xsmTUHxtcGR754kLwMPjzzVLd61ewnSkdrH3/1hIkEcbTi9CE3rJy6Ed\nKifixYx87kwF2gM+a3euOawpQhoSAVF4kMcKwZ31snbcFJ6EyqqMkCQ2IVA/\ngTtrWuGdzk4wyPifOBKtD7WvFTwBuJm9dHpJXAj8Evuy1PzS/5ig5MJvsTHg\nnYNO8RzqFjytL0CbH910bBeU3s/PA63RRmm7bVwKiQFsEvn9KLeYvlTfFsoi\n2YrNBqRdDFFuWY6uCUnUDk8ZkCjHf8wTITCJiM3sczkPWhvugp1CXgxDXQKm\nGo9W\r\n=H8k9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"ed7969542ecfd6bc42b692d179290d1eb3bd3152","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.2_1562599551975_0.7774981592673493","host":"s3://npm-registry-packages"}},"2.2.3":{"name":"streamr-client-protocol","version":"2.2.3","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.3","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"4c479bd4199640e8c47e56e8eca5c3c8a85a188e","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.3.tgz","fileCount":119,"integrity":"sha512-TvTTJ6gQrGx3qRIWnYHiO1mZ8PTx+Ox5I0dBZR3DXQl/2ze+g3koGy2+8gqnPhDDVOqRcLRoK8eMTaQ0Kpg3KQ==","signatures":[{"sig":"MEUCIQD29nZ3mK/jJrUf0cuW52tUdtj/s3YerfzbNeDdSwd2+wIgDthhH6jV/PusY2Vi5tkr0xbbph9htqMUJJid+dwht/s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1313160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJGOkCRA9TVsSAnZWagAAqN0QAJcS68K7TFIJB5QnLM7L\n6Q1JsvSnbH7gS4vlzeEw6UZMNZWTMFBaV7j5cq+BZvOmNxNweRBzQ6Grq6n3\nwNkqzkkImuwZhOgCv9HX8tV6cj2jPkFZcOHDE6sLrbohd+iT8JYZhFISEJ48\nkWYJoCw+ocjpuSx2RD8qfEoCVZE+EGlEav6gi/XaIJzWfF/OvjQjioYy7gpD\nu1q9b/CokeILCKHNO/z1FsbibMTrfuWtpuJHTi/KTECVT6KTVqSkY2y5N1wY\nD0NBvLgCExa0Le6FHIPpHbUyFPicFsKEvfWOgg2E1BnohD5TTS7f6w+fFSHQ\nhf6lqRJEd1s2uvtJWCEFnROgUNlJIHK9myKAcCSLD2vAu9hyH3BMS+274Q4j\nq2ar3qAOja0WNXe66beBLLLZTMukCBkiBkBj0FnEUWQQT6FVL/JoEfLQMd8p\nCX2Zs70pmWIDm8G2GYQvwbhr4JeWdsk4jDhmvs/c/2YqAC/FmsHMkhM4sjjX\nGoIOq2ja/CKdFmyYywfVoEYjz0l6VhQu1ANDtyZllcYESGrmAQweuGaif4ID\nbhx7YXihEZBdbxDx4LAdvOa3WTRbgeX3YkWjzWdzD++jw722eF4CvF4z9Pe8\nbmorZsA4ebLNuJTuLG9iwZLbeL9EfbHJDtvea/nT0wwWCRStzd+pH53WBu+5\ngxws\r\n=3XMd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"81f479bed6227ec8c1ce22ffbf9ceac771977139","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.3_1562665891571_0.19034707390481587","host":"s3://npm-registry-packages"}},"2.2.4":{"name":"streamr-client-protocol","version":"2.2.4","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.4","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"c8a61f29f0f53dd65f5eff281ff57f2503b36ce3","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.4.tgz","fileCount":119,"integrity":"sha512-zHSfMlFwI6irtAWmuGUmU4k8xx+3r7d2f7iFMRAGnVVpNJrUzSmV5JNNJ0ZN3UsB4VpYRz3hfIYksOGzNA4Hyg==","signatures":[{"sig":"MEUCIQDfeelTtkwtTqHSxNBpCj7rLEbwsuSqqodnqW6tOGE+TQIgO5nRAdVG2eY2Hepw7UpC019uZOz6i6IsqDwl7XTiZvc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1313272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJIndCRA9TVsSAnZWagAAl24P/3bfNvCKecDl2fuBgPfS\nf8g7Y4tdfQppJL/eABU8P1vQRYOvjkG8CYEpkMj+VCFdL7Uqsh5zqN/lKz6H\nY8lOVap8RWWLj4vP9tSS6DT9hR8jLLpSrrF2zi7xwxUf2LG/eoymCKsM/F0R\nO3puBoPT9NyNGtDl2FSWd5rCDSx4dJRoM4jJBGYto/NG+Sm+pvEfImGd3/lt\ncrl2eAt8i+z0Tax6Socv2mWwEU8MK0v6u0B6Tn729PRITdhOeZLgVkUsBDy3\nx0Pg/LYPEOEBhQGRZvfm41IvOCBNI/U/fvNEe4mv1EVLBc5Mzs4/23/vCBK3\ns0QH8qEIqUU6zy1mtnxKIiaz0sUijQ4aOUHMcuJborseu7jIEmbUpG6gZ7v/\nL/LDQ5rxboIvYl933wHm83rpvpfB0v6yZeEPZSmGbTG7pHXs6xA+96KPDDcU\ncYn7xrvyE/hqDodPdLgp3/p+zQizyAklhoQcwRkijBe0ElUvBboZ9ZZCQBrY\nH70Fp9RYrtCmXOYnPIOTmGT09L+4Y2FOcYeOM8aGqM+p8c7Ev/ZAJW5FjJdx\njikPtUtvlclAvkH/PBp7Fx9/TSUiZOXgi9FKshgukTd013YQQUhF0NAXybrn\n7GUfz7IiBoSQ7RHWeYYFKshPlqyZMwpEsD5DtZ0xx+y2vs0EQUI5PqTgc4sx\nKSeE\r\n=rYi7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"08fbc8bdead6acc2254e9210f7e8a3c093fb869e","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.4_1562675677150_0.062066743784118916","host":"s3://npm-registry-packages"}},"2.2.5":{"name":"streamr-client-protocol","version":"2.2.5","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.5","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"917d50b4279f8483b2c3e1c667ee542184fff23e","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.5.tgz","fileCount":119,"integrity":"sha512-dDQtE9z8nlD56IuG8pryrVzM4QxIW44WO/IP6R6QL1vXHqwaL6za65FdvTTW14DEBVXbTokkYmTxTxU89IIfIA==","signatures":[{"sig":"MEUCIF5gR3zuLkZKxTpWoYyRKnaXccilLMXLF9EA4RL3jycVAiEA6mat1OVIJHwkciP+cMrYDRXSsGhWxLY7uki/aKy52EY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1314257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJIwhCRA9TVsSAnZWagAAMKAP/itbiZ1jdG161BW+Xem1\nKp1tjytTyjp7OMzagz+t8zsx8JP4o9vnQNwhZH0PCPN9SVJ4ovGF/BdtPP+m\nCaUTRwEYIXxevGAqPi9Q6sqcYeSLh0gnrrvW7ACt8uqEGXMraGsf34ocP5Au\nJjiw6EcDl7CjHqypl4tdeioLR0x8AqxVlKhou3WAlU67/h2BydJVulotz+/K\nFTUzbxYaF14k3kdTGKVjNBRCwlCDEYxn5TsPI+Zz0ozfheUBA/zMIGmBciui\nWdfWOov5zOOUlucSq4LjupaNO+jW/qG9YoEByoesZKQd7rxt5saHgMA3dkT/\ne6sWop5ZYdgjUDJULgqAxeIinTiAUEVsMOXp9d9L4Rij5XuyfrS8J0Z3p5ou\nEd+oy5k+wYOOH6fpKP0/LMmddg3urZbjStmuB94wQQ+OdC3XAslnNbw8sT1Q\nDmgYz/qCy/bnlOvtkO0VRiRrgxe9h4/7n+7/KTfIxDMh6iJMHyJaTO+3s9Ss\n6sN7XvVXJtn7QabdpOzyN0a7mQkeLQ+oBnIWNKdim2wZ8NNvfQpiOKBvmrXi\n2f43kEYLZ/jXjCZf65s2N0/KT87bHJEzKmi0jTVpTFdLkWbHQYIBhtON1CHo\nEEVfExz4WxA/rzB2KHGiGcm0tUD7aG/cKFDzCAYJuQ6sBWUAIl2G/2af4cxy\nLb7w\r\n=DupK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"fc0553378dd645ec4f8541e8fd981d3538fa69bb","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"debug":"^3.1.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.5_1562676256383_0.9815279932908534","host":"s3://npm-registry-packages"}},"2.2.6":{"name":"streamr-client-protocol","version":"2.2.6","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.6","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"df9f846f0e75582cfb2ba1d91e0bf4ba5274ecd5","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.6.tgz","fileCount":125,"integrity":"sha512-jzbgSbjAN2jVRIK+5kBe6JjT6sU8HJkNFs0012Mt+8906vcTpIW0dw2gcYgf+Hh+xedVnzq09dl9ndxwGARUug==","signatures":[{"sig":"MEYCIQDDFUev2u5gQFnn09a293amupZD4wgkR3m7hkwCowPf6wIhAPmiFsYcsI3UVAeY9iWlTiiOUMsfTqFKVIE73vJt6FyJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1474233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQBF6CRA9TVsSAnZWagAAjrIP+gKYHlapwTWZy0544jpm\nZ8YZC5gdGoec5cYmEKTUe4pkX6Hv1Rr9zjihZsAr3x5xA29z1X5E8b5T4zRx\n2XM1xxnubY0Z6ukLRfEwnIVykZDIkybgYV5oO3eFTXLJ7/5MF0YWxTW0yKKE\nFe4e9nqp8VTWTSOEWw4l1mmwCSoqWDgHye/xf0O0aUlp/SfJAGy2NY2axWh/\nKT6FCmKBCS+1HZ0uqmDRQJ6j6FRkPUw3bQdJkBwnWnLmieW9Kq+tqRkl+IfP\n4wzzBR004ZHcdKlYEuIQAgkyumdfquRBI+5LnG6wfBBkVSKCZbV00v7Pk+Jz\nYnJHD1G6JjWZFZMMItCLjJkEKrLox1m2ksL9rAG/6TVWT/TQFJb+xbWM3/z3\nlgXjoVT38vzRrZCSTtaZ/iYA23vmHZwQuKopomEmvI1pwd1UPdVZiFzH++pz\nUTDct6pEfGBaFbVRamsq9stdP82XV/7ZUY5FS4tSMfkgnzed2nvi0FY+lxRU\nqKpOFjFaBNt+ztuB4PYkKOx0f6/yx5fiMcwn6/TpwFxLE0uyEoi00NhZhppY\n5AEnTg0j+BVugavlsbvQaf5odn/G6DDfVRasHXSePzx24wKJouciSfZ0BypL\nujExlWAsESa5i/2TK/4zCUmNyAtgadqBOSxm4y57yGWWLhCWugZ6YsdEKq00\n/tj/\r\n=qQ2K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"97f83c51fb4701c9eba8ffdb1cdd1031feee1f34","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.6_1564479865446_0.5984704155966394","host":"s3://npm-registry-packages"}},"2.2.7":{"name":"streamr-client-protocol","version":"2.2.7","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.7","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"976e37a65fdf2ecbf64e6222108ca246a38e31ac","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.7.tgz","fileCount":125,"integrity":"sha512-HGOwomM2afjq5hoXG6hD7tzNj26+kKSc3rMV7be4e9/K26Tnf2hJyGrZT1eobbjhK5YpBl3H/bM+MorSQLoo0w==","signatures":[{"sig":"MEQCIEkhirzEDkgGgK6cO7fRRHszth30nXbreSREbl3uLgE6AiBm7PwyL+5YrISW+3DvjQqaj2FhnX5Sq2/vp01qpxqDdQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1472602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQBPSCRA9TVsSAnZWagAAHnMQAIqVbPRKRu2SjilhWoOA\nTqNhaig29UQQCkCSK2ayN3aStj+N2kzgIrHlTwb8GqAT7yIVjjulyYRbOlb+\nqCRbILKK4nbIXtQNy6eaqeY8c5AjGO09EtZm0UZfXSgNlLvzSHlVtHStvUdx\nAGS57WAkeM/4eLYybfCvnhv0BEEaVtUl1Egurb92YCbFWjaBBQm85gKuidkj\nIOhcmyG0T+35pHJznfI68hMF6usABFftw+QRC3SxOmhe2ti13dCS+JdTv+wP\nJm+yvnEvGuhvZd++5vB6bAtL40bsTh8Uxdrhy7aXNQ2cTTdsk1GXZ71a1MCf\nXa28gxG6wIeMcZJugHFF2E7xiXzM6DAFqaajaE1Bo7QCB48gMSSqTEi16J0v\ncGVK3cf9G6gDB36SDpSj0qH8J9gWNeZKYC+QupJRU47PFFrHS6a+GR7sQI0q\nLUYYsBXAefsaeqjfULliIMj63SOoqOZQILjPm8r0HSbU2KEhXarDIAXD3iVg\niiH3QFq6oxL1w4HUgMEO/yrjfiuwXIVu43fyARkRJ7X5fOLcz7GLAicGVZ+p\naD0jcBYOU68mOhB1xMV3T0UELYx71nkf0qWdtxrKtnM4EOYmhlXOlErIM9wQ\nqGfj7Aanin6DckmYHejef2//eHEw7M7eCwObyB0he03xdrr4XHoLTqoNeRzD\n0220\r\n=Q1q8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"e6ce9f553b1056556ee0f38c7340c61124e99686","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.7_1564480465601_0.05854711761540399","host":"s3://npm-registry-packages"}},"2.2.8":{"name":"streamr-client-protocol","version":"2.2.8","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.8","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"6cb8a6c763164b9b36ea91b9b86edc0ffa014876","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.8.tgz","fileCount":125,"integrity":"sha512-V7KINb+FJmqqckmraSIhC5OfjojoRSN5xp9wDOGtnyAM92p9ArUjpYTiEOo+PCs6t5tc28bhTWMhZMTDA6BJJQ==","signatures":[{"sig":"MEUCIQCmADBEqOL403Fq0BayDovi/nU8hIdc6DDF4oquAPWoWQIgd4v4joQYQD5C1H+YqgOvdBd/dnzc8IzrGZgFTdUj/98=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1477066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQVgiCRA9TVsSAnZWagAArk0P+wW6TGJW3NtU+5p0TzK8\ny6cK83L+eZtRQyEBA5qwquFAIol5HBBcEOkNnfTfrz7OjCiXMOANKO7xjUiE\njgXNNvJhZU91HjYs33dG+HRc4P6R1CsaKsJDxwMa2395N2F8Q4RJnOwGRcNX\nz6qtnoTz9vD00P3VmR0SQv2Jna7Wmzg83cx16xVwftF/cVFIOVYGTY3JScBk\nPL+fC6HVboyhNtB4w7zVAObKRIaU17RR01DrLtvS1HA+oZS5Ov7zIf8WLMfj\nTP5Ru2nBSZoci0ZI7w7deeihC2TNAML0kFWv/leYxtor3X6qA75VT3X/3FrD\ntJ3VxkggtUxV7F2vxy/s1U7erNz3dwSTPMBOZ+1yTIBupGwA8JEA8wh1z1Om\nEmvRPz/oQBWwCoCAH00dKPGuJoBWUHcakSP8vNrGi/4gl2xJBdiAwioe6MfL\nt92ucPpSdJN4Jl+Hot1mK/uVoCthD5S0Oohx9ezBH/CVqxFvsKkCqEhC55zx\nK9v2WiXoDUd9HS4Bt1p++9Rss1z2mzXM7b5FUOxgYc1Ys0EVxsUN730tn+y/\nPIEk7f6n+XdTYumLThqIQ2g+ywqX3haCO8TnOWwekNJ3wXwWOkx20BdolJjx\nilLHYrgG/tYCFRM71bx+JV341w6UsDmt2ZFJMcRR7YAA7ljmmxWdXMVyI6vd\nLdZ/\r\n=QEBY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"835fe5deb0b9f8e19c52271d17edbd91ee853c44","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.8_1564563489863_0.805740962388541","host":"s3://npm-registry-packages"}},"2.2.9":{"name":"streamr-client-protocol","version":"2.2.9","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.9","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"58193c0bfed927477f89105d51a8e1bbc8ac8163","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.9.tgz","fileCount":125,"integrity":"sha512-unyen5X8k2sAXaPnx3obfPZydIam8RFfPiGobg+wbFFT1QVOVps4++jm7Oy9q3y6fcY69wrIluPXisl6/JqzQQ==","signatures":[{"sig":"MEYCIQC6ywIpC5ippobioR6pU19359QtIvZnEsLc75Ur1B+sfgIhANjJIQ9APwDA7pJBOq0UTA14Dutq0Ylzy7ccJn4KpCgJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1477543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQVx3CRA9TVsSAnZWagAA9doP/2t3J931qbxXcJmH1si4\nULE/dfLb/yrw/gd5cq4T+9XJqItyYC3HHCZuDrGVHXRFoTjzucm20dgCXyO5\ngqZI9LpRx+xFBm4LbR23obkydOZ9oLgDYw9YYw+vAGCut8RJqTHStktJQkI5\nDE72VmMXhi4ALzc6yiN+k6WkmZ0AJwYmGBiMEZsHrYjVuMvpS13osB91qOtI\n2SPb2KnMdVoTYvR8Rbx8NfNvB+eYyhN3g7wROQPCM9PWRCh3BB7U5IgatBW7\n+4ztgUYRc9w1bid1bjgBWcSyTr8q7QiBLSimK1WgZNMXWr8blTUJyu51uDMd\njBCGIObJZZeXs/bFCBBOtLhpKBkvphUzcnx5FDBvRlDiZnwGnSDSxRThZ3Hu\nICwaa0hdkdSc+KHni/GBbxQJuiH9LNRIUH/KjHXr+UfFRxCMmu7t9u274BIM\nWHlvziCHJBXmorr0nBEKibAXIRoaUwsWQVELFm/UUgjSF3HbvkJX32CkbgBn\nGTJIX2xKZ5QsxQmOMlFGaHU6ONo9BVql7WX1SXdjA1cp9bF22YE+PScj7j+v\nhEZDYAleyS3rU0tNqTWcQfuzDT1PUqP3JwlMHZeP9RViNEUUi5E9sdBbjQW2\nllbJyAQ5+YCLZ/9I7fkAc/O0Ce0noomYmA33dKxZhkKjMTFqdfnNJus4FZD1\ngRt2\r\n=Dtx+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"92e077adb8862435a3bcf4d027b9be2d25d8c95f","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.9_1564564598581_0.652792795668204","host":"s3://npm-registry-packages"}},"2.2.10":{"name":"streamr-client-protocol","version":"2.2.10","author":{"name":"Streamr"},"license":"AGPL-3.0-or-later","_id":"streamr-client-protocol@2.2.10","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"c51774a23c636e6b2b6036939b6111e54b838b16","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.10.tgz","fileCount":125,"integrity":"sha512-xwIwaH9tPeYVrCiXhl4uENSzG6eHD/LjGTe+yinfOvvJSVCAsvDfLY7bHzIX6s1no0H7Zy2PuqQb3/tmG164zA==","signatures":[{"sig":"MEQCIHcaldEIL0ZF67kr+JAb+PGWA6aZTG564BnO3NdzkI37AiA5/ft8gidg/6TZMJUlhzL+XauI04DRl8kZX9GglRomIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1478659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQWMsCRA9TVsSAnZWagAAJ6oP/AnH1rLCAsISbfwOGjm8\npcuVYt7KfTsLJXqyKkruG/pICt2GIFVHG1JdhLdCw+mwbx6LwPEANRRxrXoc\nXNBsJ8Z/89d9AQa7FdquAD6WQTLIBzdVYQ3CYlIctFV88mp3h/vOmLwn89Gd\n+UZk+BCy8f1HHvzKSBORMtyzYG3lWZFBArQ1AXjoM3+C3jTo7uAjW0YcrcCZ\nwvH45l05MMDWL4IbK/N8gSMYPURsEo8seoM0g87l032/LX1Ra2nan2dRWDqd\n9OXsX//bUKXLDAUpJv/AR/swS2dxZe+SH9hLsi0538ceQylklUOWWUfSIYGU\n7e+11u3zZwfzD+tfmpD1bD4d3vhmpTRsl+WUKwbnzxvVDPKDdMLNDvO2Gi2c\nxstvD5fFeknbIO5Vs4gUdygez2umJUhV/GVPUrFWZNBuIRnheiuyPuMLrV67\nPCj2b7fuiTlxH+d9c/P6TZF9npz15Hlpg+liq6pJsiiMFEWWu4HSIurBtOpR\nWgRcLg47sNH2t0/7jncSIcxnUQoqWfuPbyksW28dkO0w3ZVpXlgvAqnP8E6A\nictYQ6XAxEcxUx7lqD2c812+fmCe2NheuD6Scoe5FT6jlGKFvcQrGlzg7tOf\nwrUx8LXLEcmiDdhwwiIaERli5fmmsIHF1Qs/EwK4NTyn9XTqC7a5OKqDQUWF\nWhVc\r\n=IC//\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"735ba3f5da1d76051397dea0a8eca130ff26c4ff","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.10_1564566315891_0.9811478470778965","host":"s3://npm-registry-packages"}},"2.2.11":{"name":"streamr-client-protocol","version":"2.2.11","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@2.2.11","maintainers":[{"name":"aapzu","email":"aapzu@iki.fi"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"e81c3a51fc13030b1eabb95f2eb9c24ee6d5336d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.11.tgz","fileCount":126,"integrity":"sha512-Lul2BpWLfw0QpDSUC/02sltvH4H3Yo1D1qdUhBYBK3fYDjaGkn1IVLmr16Do9UiB3Z0uG5P15xtXBVf8QdKGzA==","signatures":[{"sig":"MEUCIDxaU4EP+KRUse41+YpzCudr0rHS7rifjaSaMMqFkZIQAiEApzURmvcbV1V6Xr8wh6oofsqF5VK80fmg98eqVqNFd3M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1462507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdehTZCRA9TVsSAnZWagAAqOEP/Aj1cU/nEM67lr84A4UC\neROjkIsLLvPk7ZpHleIQkvj7pPKiQfZgiShkHun+cjcjK1Y559llLXmLkFs2\nJfWEBnt3cnBSwXnaIHmRi1LCoDz5eZbXKCQF8sWB8rsTDvL4ixrxfekKOdoJ\nISrHFuPzyycQamcfRzHmi05ankWhcUdsmaPAi0wW43X2gU7d9xERonun4iWz\ntToI0N+3x3J5GrbVxIwR/jfopOzs/U0U2U0goMPcjyxpUwCpbwg2Go1EsNcf\nYG82poa5GZpeG8HQe9h3VzJfTh0NRQFgb7QuoNIXkMLtE3eCbLdYYhwi6/oS\njPwDeiawXW3IQuxHjz0I95Ob7BWrMGGDl27gLB25Nbz5gaPirykIO1Vum2ta\nj9DyvyGvr+G+reDHLsIm63yhkoT37HR8xXsHT4tklA5YZ4ZE7wpYvodiQ0s6\n3tBLe5o/Mwo4yMd1F1FnURNPGvaQeIp9lHFF+x5spsSQpY0of1pIzKxm2KMv\n1nbj0vwS/bDe5gu8clfBbDMo2mYBx769Q0nVveGTsse3vYkDjHGEkr5vYVfY\natuUJ6VYqD/5ZFFCE8Pwva/GYhiE3Dj/6LCHskMlri+VVfeTqGWNU1XigS2o\nHj+G1LtOpQ8SEjTiIp2OgRbJhGZ6HmOzGsdFfvGH7fKEOdyjLJd2PHAUBV1+\nB8LC\r\n=gSEU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"c86755b4547c85e8839d790ba5b3eb70f56a45dc","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.11_1568281816330_0.7410346006796424","host":"s3://npm-registry-packages"}},"2.2.12":{"name":"streamr-client-protocol","version":"2.2.12","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@2.2.12","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"82b2c59144ab6c3e3220c456bd507e2d30610bb0","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.12.tgz","fileCount":126,"integrity":"sha512-dlBFuuMyLzt3poZo5Dj5PeGTgEgPcO5G6iafRCKvtyFQfVs48+mzj7lnJNwsGW8QQzwEVDQI47w2auM9rKuV3g==","signatures":[{"sig":"MEUCIDHqecYLgUlyF/6EVqIrvQGh4Xyre9XPqKoiEdsQHgj8AiEAvihWwA6uydV/rGA4txt/nHV6/1aa8XX3KFoMvFGi3pc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1475443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdigvICRA9TVsSAnZWagAAMK4P/0M2TAIdOX2d5vSDyc6P\nC51QzlfGT8YNqMzybQS87sc6LF5vCo2gKsUj16T8WuSx+j3eVtPUoAaw4A5t\nGfGXap8en9BGgCAk2KNpWWjD5t6wKsuOdkU9rwrtcut2dB/CDL4lapBIbpPy\n1uGDk/3nwaHFKzxYnRzn2vyNlQPNFDk/7/C5c7SDuiDFTYXBXunqJFl3d9NJ\ny6TewxlqbZNKyDq908ckdTDgGc9jSV3p+W2f1V4fwKHKIpAxDRNjWf0aLqAm\nuDLEItx7SwU9loqZCWYHETj/E8ygDnfexLf6oXZzaYhxZM1cFuNsSMl1HLKG\ntBHvDnqBvmbqpwVE5H5JGhnZU4Q6F3FE2W07iqxhbDMlFJuNncXe1cUHPBfE\nKaWQNKzkmUEQfD+vCoItsTs5rMZUp0ee+IQD1jSexcAHXKabin47Lm7cn01K\nexVGnZdSDo11EUy/7CnCyFmYhBNrXyXHqMTohRKYqNxpzWxD1Arq3EV+X3l5\n8seNcsjj5rjPjhYTZ4pe4PwqkhhUtevAZpLuogsq+kZ9pQajT1AF72/jIrAS\nWnSmgxRD/OkXxF9l89djHnxIFkbuTWZzInoJeZki3qp0+MDqeaaxQ1AF639+\ntvzo9D64tqXxUhGwrw/Pas9nNe7sJbUytC2/pkZTXmu8e/FVnfDxvisSVVBL\nommW\r\n=L+b0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"09748dc62ef36c5c0d8a0900299dd2710bcc1f8a","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.12_1569328071788_0.0709444823106169","host":"s3://npm-registry-packages"}},"2.2.13":{"name":"streamr-client-protocol","version":"2.2.13","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@2.2.13","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"0cd472567a1399ac862352ea64b2a0926f29bfba","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.13.tgz","fileCount":126,"integrity":"sha512-BQJovkxliY07vKTngYRPbJxhJBrYCpEEdjVFWOqEd8FaLnOLqC5AECmkdC4/Jq3PPxD8RwqmaBriT6SKuFU2Nw==","signatures":[{"sig":"MEYCIQDUV2uyHmFs9hPAR0XhJyJ0iyzuuavSl6YcwkGiKK4wRgIhAMOirY+14FDN8fXKsmjFBigC1wmSAYuZIx0t6eJXtTjM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1478477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjIcRCRA9TVsSAnZWagAAGuIQAJtaxI8GqeJS6eeNqi38\nxzbde2neLmEX/yYj29GlJZ4wU7tipHtdcApj69DTKQVRkDB0S7+9UMiRfTtj\ntu/a7DntMPs2zDiPXf9Xcou6yWMlxUa+Lr0pNmAltmeEJKLMq2smdDSxrcNr\nbRvl381NgcZQa6wdFNTnIHpEHm0GH1JbxNZ+3m2+mnFNPMZctbKYej9nVmn+\nRcs5fpOjsz5NfmJFcmCKIw5AwErypC3ChzDvPoUf7O6upAGc0OnoWPOGDnY4\naYAw1M9skqc3Z2FdwbWUofdoahfSjDo11LJuyMtRMzjFU4RyGWBOVF2mlMIr\nIbWfODE3QjD6SzOiNrymE1A3MUA1aMW8AjDaOGY0jhdnxKMfPBqzn347/8qB\ns47LLT66eLb6vaL5LZmCl/QFqUvIpy0J4tU6AZnaAPD0LF1KQTmbsV1vfMia\n50Sbk0VnroExqSQKMKlMuRL7vNxzY9bGKNea6xrZPNddlVkKuAZUvgDTfjhz\n03nA7c9RZ8agkGmyCtLZSpqiJJQjOQn232gaABp0/hG0fd83Yg2G4yYiQCP2\nFj1y57O3fRrH/c/4YUpk/sCZDQoB85tbBdh/XPwmCX03bt5EAFOzOO6NFH8G\nLcYNCNrepuE/NYcklzdbrKqKe9rE0ALNvSsofLJUoAXfFS7fPkj5EkWzKc0e\nLdRK\r\n=NJjj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"360e35d09979f63bff9bf966bcd884d8ac186a25","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.13_1569490705092_0.28999565217445356","host":"s3://npm-registry-packages"}},"2.2.14":{"name":"streamr-client-protocol","version":"2.2.14","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@2.2.14","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"b42275e980dfe3a9c333b9625fa4b58163e7551a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.14.tgz","fileCount":126,"integrity":"sha512-RjvQvFZU5cfwaRLrPTBu6PwCz4tGbYFGRjARF3ffYdaaAYe+FgPA8LM7Gy3kmlo9ezksO59nzi9ON04XSDaVnA==","signatures":[{"sig":"MEUCIC0L7A3VnP/2tZnL95jd/QxE1HPUZbW/G6A4iP6IysYbAiEAhPc2EfyiWcGyByWQs5hWy8Z4SL+QJZg/yHT93KMaqzw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1478342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdkh1iCRA9TVsSAnZWagAAHEwQAIxRHixU7Rck9ekXny7g\nQZ0MBjBa+5lSbNhpcbRwHYZz3JzqDKkxNs8g5MK3IGSboMYgRbtwdF8hfTAy\nHBw9sSoVC7FG3ULvWLBH43x1l62dYLszdrZ/nGaVay9KM5MdeEFQ5A6Ec+gZ\nSz+GCMnC1ZsDDd0F96imkDMWa8kitC2/glcoxkHOK5VEcLCKqmt7TpavfeJO\nG3lRcKhslXhh0cJV8D1/ppHobnBTDY6Qu44fKzGPrcBanyoP5VFn1qRc42An\n4r/s14y3CRVlHRnVHHawRnfLdbdJTDM680TA2ojIPJSuH+MTL90z3Bkl+xyG\nuXusOVv7w07PgZkIjwcTkuuSrwO2SCqEU8o8eDd2S6WHMbT29TeNBoiTS5QF\nJAjxv0ZqmBio+i1SnaBlcRBSaFc9q3/AZI3YsEt/UoTt0jlGPCXZ50LVxzjC\naFUfqVJHeaLKEaQqsX/6xdvDOue+YUmiq4Se69dUP9H/gzXMHOSnGFiFtA8I\n3Tmu3OyQ5rdB9fq1G8EziB60TXSUvQnNugQ31P8QONBN+kE075cPqN1k0GNx\nM2JSzojysorgYL/rJxIcdHEKXWcIpOAHlMTnTQlfSYEMBzYBs63rmw84AETH\nH/DaX6exskai1i+F2NmEe11BdTY6JumKpZgKjvi5qf5Bwkl/bnWWX9aV+6Ww\n4XG4\r\n=1Og1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"3ac79045661c88a82292358af339bd2e354de178","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.16.3","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.14_1569856865984_0.720505621322312","host":"s3://npm-registry-packages"}},"2.2.15":{"name":"streamr-client-protocol","version":"2.2.15","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@2.2.15","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"a2e4133caea0e59b36c5ad51c9f2fda35c321035","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-2.2.15.tgz","fileCount":126,"integrity":"sha512-kXnExAnUpc6uOMDBcNmphFH5Z3zeaGdWe1rnnjt0JM0i7OosqU4Wir4tZ0KfDeYbsSMEUZYk0beW8GAmNAebZw==","signatures":[{"sig":"MEQCIDoX53tnwsqTT4/uATkeSQwxSLYYSIJAxmBKLf1tx9cRAiBB2AnTFf4VezKU7JtXJhqwoflakoMFAZeQtwAeJUMFfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1479670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwXWECRA9TVsSAnZWagAA7ccP/2BRw0bc0yqpLhc1VZAM\n6DBhsxf9BDdHjrPPC4IwP97xnHsOjsG5y02L63cK6uI/CVksqXMJhsVALa1U\nMpGWmg8VqvLmCdEgDY61V3sRQipJZKfKOLOSxAcjc9NfsRtoJX3Dc5WFP2fq\n8up9qikfw9orfKMSlF8+MVlnGU3hE8ydb/mxQHO1H76539kqJll5bgkx/YQm\n6A0oYfQFCIcGE7Yv9N9Yt69til8CIUAE8E4Shh4t3mvrbJG7FxcL9AZxwp8f\nXHtJ4lrFVu9HqIQLL0g8Qg9zW+C0TR5jQF1UfQqXKJi+hUTqED8022X/DwZG\nwDgq5duob00uS7K+va9SS2JwVlsnt9YPGENdmK4cxlf6dnk1KBuKepkx/LXF\nwcpCI1o8+5vmB/s6yRd2KFEPzAHkqnBQLw6zaA5qXm+vRzq6Nf+9wpJyFdxo\na2Wele4Y9aDFcWxatZ/3bWjnDpRZ2679JmfVIfdNJjzwdeGyVkRXVEhoWtKO\nmW1h/nuuaekebSPa6wgVFLc8CCL+wql12PIgi+Gl6ltYqwHSCNmXJVwk4DX9\nI996srByvyksAPHCX53rz4rFrfzCL/psuuP3KUZQtGcgo0qpnXG07dLNMe9S\noMq1srmEePqJknVy5+hv5j5Tv3CtBGuPKKHKXTNvPqQHUrJMRzrlS2QfbnfZ\nOSGK\r\n=aUzT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"ad524b4ae58fdf6c5ba3e6073571e08281250d5f","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.9.0","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.15.3","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_2.2.15_1572959619688_0.35509980904069693","host":"s3://npm-registry-packages"}},"3.0.0-0":{"name":"streamr-client-protocol","version":"3.0.0-0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@3.0.0-0","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"f3ccd6996dd745866285dc801978dcf8178281c1","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-3.0.0-0.tgz","fileCount":128,"integrity":"sha512-L5Ct2pgQkRigUGI6nk86+lC9ftWIAyIRcY8n9kt1k8yRlwti6QHHwg3ib7FidhmG4wjHDjouTbe1wKdazmUXRw==","signatures":[{"sig":"MEUCIQCqi4hDyYaQcS1eGVDHDZOG3OpkPmML7UluBpAZPMsuJgIgQ6d3bRahaZPwdMQDp5e3xfEqIWCM+tbszgZiBadA3fo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1538921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0o2SCRA9TVsSAnZWagAAkC4P/jTwLf3IXAzkNUqQxzNe\neJc75EgWaKkz2WnlHZhFrJ8/2CGsK5l9X7XQb8tDbHeWzLLt7pDS+g4d5X04\n63Ll3DW9lFCib113cpn8kqu8MDIXoIOOlw/BDJnNBMUBvFFEva5bAGjr7tNi\nV5i74NWlXhNkXq2XfUl+3O3NQX8WZrBRRuuLStxZngL9XpKMIm1ZNwb2UAlS\nIZOpcwkWYy19u60wymjktqwYhWDs0c8M7Fw7VPZIH8WrqDBYGZ5Z7hp9ooMO\n43QdU9+YLnrQSn8nfXHmVIPBbXCFD5MGeDQwyeEPNt54tWfQGlSu7w0578Uo\ncBWGsPvM+GOPGFA1Zk7E4USResSdj/3Ob/Z5wy7VIqOsgpNsWYvn0HnbUntK\ndaiErENjM9ABg7I14TCPev+nD4aMpap+oOkOxqOJNv5szzTXLfiJ8Vp1J0VC\nQ9so6L3Zadvg5nHkCF+/xfQqGTKS0a1Y3KhZu1jbHrTwZ+tX4Fz72rnaMIk4\nX68zI895ygUbsvMTQ4DfsXwbNcQXRmj0gF6c9VaF2EySHl3olGulMBY1D9Qc\nKyG9HMDnWV959xsBBjBvCAGTnmchbrb7XMS/4AsDkgjckWhNkrx3tuRF/hvI\nwWrJsYAgdXdOSw4D2td7Rtt+WEclUs7Om5VYJc0EyWl3gNNAhR3gxW1MWVHc\nUMaE\r\n=p9rF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n","engines":{"node":">= 8"},"gitHead":"5faf02f89ffb59494b39636ebc8cd8e1c5e6d0df","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_3.0.0-0_1574079890216_0.5087422908956827","host":"s3://npm-registry-packages"}},"3.0.0-1":{"name":"streamr-client-protocol","version":"3.0.0-1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@3.0.0-1","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"8bb538512be130112b0691d461885db1ab0a43b0","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-3.0.0-1.tgz","fileCount":129,"integrity":"sha512-yyPY+GTEFDWEhy+Aiu9Pyc+lH8ecweqJdKMGjMHqWcmdW+sKanoWsi5cVBQvjPCN3xcgIKSz0UD+KxzpqlwQsw==","signatures":[{"sig":"MEQCIDTKIc4sMu1geTLyz5sOYRAaZu7NxDd2EpbgNG7KHG1jAiBPTQUaWzi29j8ZnJ6+Z5nJS3mNgZCGJlbqXPpYsACaKg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1543345,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1M84CRA9TVsSAnZWagAALQMP/3B85PxbOjMhVUIgSy3j\nazT/azWEpnUJm2zIiz17JkVuEiR2oIkbO9O4zuZff0m3CXirdF+5CWKS9u1V\n/lW46MjmhX8/GaWAsvA3rM0+3MdsYmjQdegJf217ft+ct6Up5XvXNepsnFLJ\nJi6AmDndUdDetS1SSSKJkz3ajxqGwqyqkmG/laLV0YlfUEeUD8mTsTx3IPPs\nClGyCNnJE+B4iFz5XkjorrjgQO0dZm5W1yFqFjr9aM4Q44qoMYBjz3BeLlLT\nLNexyRGkPj8Y/G+uwo/yvY+zn1FQWaydf6PYDt1Hv0S0td1/gEVdCtSQMeq0\n8RVRZKwzE4rLiZLNd0O8VL+GIqglKiXCxHE9l/XRVPIWmk8E6WqmJDbfoe6d\nW/hyriPASVD5XzX4QLprLHPi4jcRXY8pdr46X4HsSrXd2QAkwMAiHrJP373K\nn2Zd/C6Ytk9I52NmsaTGMhBWMb3qsdU2oWOHP7zF54dA1NEHhda6OwJQ4tld\nGl4i5L2mHm8Jzz0CSylU2K5NP0v3dI89fCr+Jc5NQmNv6uy6dk5FPXjmKk/+\nBZkpgP3a4Vx2CL4YqhLjB8+biXzKjY449MZeAl/sbwzzgqKo4pT9t5vUxf0T\nbnst1I/gdFolB+yefxHuoS28YMdk3j38kTCs68mcfY5sEgsFzIMrt/x0R+f+\nbxIw\r\n=G7Xg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [data-api](https://github.com/streamr-dev/data-api)\n - [broker](https://github.com/streamr-dev/broker)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n","engines":{"node":">= 8"},"gitHead":"30945d462b990fc42db001739374efc7113ca3b2","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_3.0.0-1_1574227767688_0.6913040609663472","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"streamr-client-protocol","version":"3.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@3.0.0","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"0b39bebd6071c3de117fb8dd61420c4a2fbd14bc","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-3.0.0.tgz","fileCount":129,"integrity":"sha512-QujPeobg9093wP38GZL/Q5dCa4jgwhm9OCpcnuKxE5hKPaZJCQebvMjRf0V5FTCIghElzHSQnQE50uR+h1QXMQ==","signatures":[{"sig":"MEQCIDIdW3XdglavGZQcHoMvWMF6eQaFTRwWcdN50vlYRGhZAiB/cM1652+kmUzn4RmNewyZb/LXvwAFh/gPFP2qdvuqoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1543343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd24zNCRA9TVsSAnZWagAASwsP/2pWt42rE26uUojGqVzc\nBqcuiQf0EFGJSxM8pGynixCIy4yu38uNWJGtjb3OGdwCJLQWn/tB8ZqVZcll\n/Nz+pMytWpw7IPXSz0GxSB6fQiQJ9FBzqjy64/neoGXr3fCdA4vcy615ak/B\n+m8AqBsyei401TgN1DG6Otk1UA54QWQIge+NHVrBKcn7iLL6LZAzDzIJCDfo\nsuYr0ZGduyezeCIGpie1yWMv9DZauK6x7VOysX+EZtxaqznG4rfXUSufJ3QJ\nqVuIuaa21lkGPLDisMryxIr+4jKgmHMAZd4x11N/ridXN2YVGVYyJO99YZJR\nlSeQqBg9W1cUyPpaFGHDj9iyk1+VqUO+oF/lksayzjCZr1SR1AYRP5ea34rx\n7bxiTLL/Ep4bHNlgY7qb5qXWpSH2lVUhzVemeQpTYEJ3VOMrezXNszArXLos\nWcUl8AogYH9KPjuPvGRobhQdZwVbHsDveTe9bN3y3ByGmSVKHhLz9yjL+cpF\nlt1Z38utw3LFjdgna8mmTai+Nhupd6dN/06ikbIY+mG0F0/bCvnTRBmXx36O\nTJSuIY+MDXPiJBmiq+iX22k3OzK3i+r/xv2tlMQ2wpVfG2Ym4PWvDlQ3xMni\nlMV4kPmQFzKvEQTQa5JhJfs4ziWhk6YwKXeG3CykPHK5cIfByOAhaGWiILxF\nAkv3\r\n=H/Ml\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"1b77c04c33a18ca9674ac78593e6bf75a230e101","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_3.0.0_1574669516976_0.011575952721178728","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"streamr-client-protocol","version":"4.0.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.0.1","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"e007880557bd0bc03b6f38b5a2ec267fd5dcdb06","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.0.1.tgz","fileCount":128,"integrity":"sha512-7U9S8Mm6Dh+Si4dAd7N6M4/uVJHEhasZyFQJbUc0rPYaKyzBcfuo/8Hpf2Bez/BzP7Rf7DClKdxHVn2GOcRBaA==","signatures":[{"sig":"MEUCIQDg0P7WBORKKVv69xIOaVIBNi2MMUUqDm84tzGMa2hwFwIgF1ZggPk/nM2rr1ZXM2JcsUdeT9QzuIST8/8YQ++8Wjw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1529407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd37ToCRA9TVsSAnZWagAAE0oQAJdli4v5IGQvBJiAGVyp\nVIBnq5b0YsWtH9U4EsBQlMo6D3BzzQLBhKPGGsm7Hh+VI9grlNQgmjr9t+37\negMVslwI0CDKftoRRIU7OI+OeAZZKOB+RaAtWKsnnh0jortQwIFKEyUFgjVu\nO3k/lqXYTztAX9w2AiCievQsJGhemDw+aXiD5tLvRP4kDPq09NZdNe/H1cui\n+VsJJ+szWQFtecCCCPYQObx7upXD6aGlaRRwiipfNSZ13mqdGH7P/w09goC/\nVc1PFxqjFHeG3/s8bVh0AwJjmBR8qXQcdRIg8bs0vCaoQQqMkys4zMR+yM91\n0rhr6SBvbQLdmigutTKfSn6V6bvFi55XAM50ezneGZYAjIZIuPGjkQwEvTL+\njGygAjRJOnd+QTeByAELPRN9ojR/vHaEtacl4qOJF9MU7iS9LVJMexJbg2yQ\n5aznoMkjo83lfZOK+ccaZxWUnsotlX8pb1YaTczmPHL2m9zkHLSZukfDDfJL\nVHcwLwIV7UiMuCe8elKIEiUHLUPbZO+AjJIMh97EN1LI+jT38g8FT5YtMsbj\n7AhDJHyN1uW9EGCJbXrqlJpkNRdjvdWjSv2J7Yo4jgUAwTfzfGWEW5S6pt5K\nUDE75PQ3W03/Zy006fGB4+TM7+DSQ+dRn9TwtRjKDOrVQeqO3XNS2MXVdpkj\nAhHo\r\n=wiX4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"a1319c87ecfa7ced697dfaec05b0c5eb76b356c6","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.13.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.0.1_1574941927642_0.23144564282219915","host":"s3://npm-registry-packages"}},"4.0.2":{"name":"streamr-client-protocol","version":"4.0.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.0.2","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"c368883074a7fcb9ee668998c366a4fef33d57a9","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.0.2.tgz","fileCount":129,"integrity":"sha512-FWj9JyQjcaDAVpa0bBFDHjEqql6oSGKVhTRRvJSLtbx/rvXkGwxK2Z2KRXp4YehIShiIJppalohb6Dx7WMU6Sg==","signatures":[{"sig":"MEUCIFVl6jwT4IpyOa6IfBEpoTEP/fOxllZjxMROtKtfZhdIAiEAoeB7ecoKaHqh+4bxmj3AxRN2+s2fBMpjba+3U/O5soQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1529559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd9zTTCRA9TVsSAnZWagAAL6MP/3sYkyyfyHDuqTEgn3nS\nkBpmUNlQqYWea7Hjs1TT2Lv5mqcJkOy6ItC988MYXNe4YaLrMkOdV9vn4+R4\n+AbRAmYKI4hOany/kJ2T3XOut03IoslWQUQVhjt3NE5CxdCvB3T0NYMZlBJG\nWpd4BdlfswgFC0z/bPkb+Ih36qvHBM2Rr5/lIdO+VWucfFyxDM70wEnDtEzW\n/ri095ajiB507kBV5jsZvVTqfLr1PAJ7DjPTp1Cspj9kv0Z1+OoxgTXr/whL\nueMMDfFYq+zc23ogDvLNCHd7shZBhvvl2RcHoLMfuP50owkD1/59jFVKgJ8B\n9z4rCMXlqtMIJY3GcK2CpOTCcgmuQwmIJ90Aqi9HUD/zKl7a5y4ribTkr02v\nFXQRaSIfSkVvrPgpMC4Nl4N0l7+tdG4vX+4Ewl5cSMTHqqlLih+72YreXdbF\nuIR4vP4Lx4ktL4CYkuGBh475GbqCKniGLqs9H2VwtX5IUAeKDXWudIZ6LWrh\nItwatPX6fc80cVq0O/H+KXi5hSeaysQ7yOCa8cZWmiNJ9UE+m+XLvVOaLPCk\n28gYNikHw43dII9W0cm9bU2yq3uxnohXlbS0viNnwmxPmJyXC8+XY8xK/J+C\nFDdcJnaL/aIcxLHHMDC53NQfZXFWWxbbMRsPMZR/D75+j4ucAxbusU9MsnKy\nLYZk\r\n=ehlm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"50105b1550e0f3db96a20924df79d35ab816083a","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.0.2_1576482003021_0.9255774162184671","host":"s3://npm-registry-packages"}},"4.0.4":{"name":"streamr-client-protocol","version":"4.0.4","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.0.4","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"5b2279afed3bfe6154592fb7bc2ef11e6c5d2c79","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.0.4.tgz","fileCount":129,"integrity":"sha512-VjbrBPQqXTKAniHbHHjk+fmcTym8ixtuBeKDolD6rwvRv2W3vt1j44qk+5hU8MFsY/pDjwwgapqQeT9WXg7igA==","signatures":[{"sig":"MEYCIQCMK4MdDM81Zr+uI+4q6EvVTUxE66434MVs5JcBLNT6UwIhAJXiL0oxlK+zf+XSL4tKTwZPURuYNt3GmpKdMdikE+Rg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1531155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd91g3CRA9TVsSAnZWagAA2+MP/1Qdr5obzXZLt+D6X3GQ\nFDST2bc4Hv3a7CsBNC5R4KaWJiXKtgJ/Tnxx9Z3Wrz1Q5/9OWWIO8amLN4Kx\nXvcYCdygKt+hSNFuEOzNByouvZNKIDU8E3pDTism2Rf4nZ8XDZSBrOpDjJrd\nXf1ylqxxxT7lIVl7YKnx8dmiD3WgNpWMLPYFi/CI9rdXfES0iXk5b/bN3dDb\n23a8uuu3XFDwkoyeWHszORiG4l28h78xGb1Lbcs+DUs47i6cHMyQBJ82K1NZ\nHM31ieKcnydGaGcxQpRm8QueDLHTUZoxy7kkcKXiTVCr5vC7tZK4nkDq38OK\nuQMqDC1pq04JiATaqpJQJ+qGXfF9GYgotBaI1LPlSRoBpvlUSlAzSbv3TeQG\nPbwwfvBg84DHo9aig0+Gr0CgbIlpr2BsQxcX9TmdEcqcmDu6PwWNmr9vyAB/\nR4lQav/S3IB4xvGyxXOPgBJLNpITLLlwEO1RdlOfLCIr4CNxGkNnwfg5/0OF\n8zPUxaq/X/ICz5DuN6ePYOBT1WL+/T3cpUiYIBhOj+bdnbx7FZlIvyBEXTQC\nLtURXNrblLC5zxei1eIguq1WpxfL5J1kcZkIXedVteFUMJhtBtRBAZfOeY9B\nxNUlOZ1j8WpvCqh2aTHGDoQy3Tw+ptabo9b7U08jAdMb7RwV5BSQfn/MCgpP\nXozD\r\n=v5wN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"5d5abbb016ea5c09b82b64d404a92774319f1ba7","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.0.4_1576491062710_0.3738155331541453","host":"s3://npm-registry-packages"}},"4.0.5":{"name":"streamr-client-protocol","version":"4.0.5","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.0.5","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"2eec8add06d924175d2a52fa933cfb81fa082733","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.0.5.tgz","fileCount":129,"integrity":"sha512-mEeI9bADVHbzha5G9spg1U8vus6jygMEHMM4JGJI3kjP8oUYwJPn2fOPy8hzqOgjtoi5baad6tN5dIgIXnLS/A==","signatures":[{"sig":"MEUCIQC/oumW/702O1IlmBTc4HsLJ7S6gOyYFPCw3+G3WqwTIQIgfOi65KaFs/xN1ZqLN+Clp6SjEeGiy+8MelWmRlGc/7w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1531155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd92IgCRA9TVsSAnZWagAAIg0P/3XDhWtoa1JaQV/c2RlN\noG/IYnz4qzlYNDH7NEyeiCtJ8U62v5oKoV9r9G6Np3KbgjSVEy1wkdrlJpmz\nJuljP92a9HjXEeBnAYmfFqUOQK2+pJ0mzDiN3T5aWJb6k3wZ/j57a+PAmh5H\nh0lTzk+uchmSD8FGV0/FWZjLSi7rPyjN2dSsz0hzfAOLUuEatwLNRcXh5rAH\nlNvfNQlQdVftyWVUiIj7Y4l0OQaWutcfFy1BMwYOjQ6OtTjK3O4EAVxqLFbv\ntu7CO/kE8/0EI9jUVH1S8mSTyloL+21VE9vtVjtcwwykHWHpQvWOAAmiN3XI\nWiws0aJluvQ1/fKScDrE2OVBJCq9eSMETxhxFYwDA4e2l59h5uwLWMUxKBpK\npknJGMFOZFttejveVKg8T8RKethnwaqqEDFy06X3I/B0L4tP6b45fQj7xO90\nL4tKrtmlwO2D3d0dxaqewDRmxFIPAkpqWkwFZD80wCunCQfQGIgYMUPJBKK9\nz++8oCmKASNqO0cIsd/i/Gr+7nJXPgWp5y/PECrFcr3J/z8YYsNFQLuX89PZ\n2d2dIv1CB6xupNjn7YTe0hrvyZJ6PZ3ko9QLcYSbdUS+OSWKXoCF0grwxtwg\nZq18R7bqLciLaKlULSOSaRmv50manGniIh7J4hJx9uCyWmKr8HobCkGTePvj\ni86L\r\n=gzBy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"03250c79715e6098fd6b17ca680b318433846825","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.0.5_1576493600064_0.7841564763959974","host":"s3://npm-registry-packages"}},"4.0.6":{"name":"streamr-client-protocol","version":"4.0.6","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.0.6","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"5ed272c57945cefc8567801728a6cb72e076b08d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.0.6.tgz","fileCount":129,"integrity":"sha512-j+5fD4/kxnjDQGZmV/2/nj2onm65XpHDUDhsL3w4i+yATQpL/hGB4l7/Gi2E3s5VxC+EoVSV/QUJmQmpypDU1g==","signatures":[{"sig":"MEUCIGyJRPmNLenvTYoUZyMb3Ujw0AkaDIVrryfarmQ/mUvuAiEA48j0r8R8Vr8x0twUT+T4UxfFA9k55QQ1UJC3Q2ADf7A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1531155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+OAeCRA9TVsSAnZWagAATswP/i6lSzDnGL11lZ/4msQz\nE3RipxKzsYl3lzNZEN/0Dq1Le/hP13gjeYVV9eAv4oFmMpfwNjvYkJifZyju\nyLOXMJnqP66ahJkCj2Ne5gwDYmcWJEnxe48cO2Sa2qnoMdPUnzobrpEEOgac\nnf39hdO6JIdNw8eIPFefUjsVbSCsZHJgQ9lSIzQWH8NPBpBSTxfiTcCFhRZk\n1ZKkyWm6E/CLzNzIUGw6PunyLogqEEnkqXlxgI2jnPo/COyQTNAaMUusbndD\nD260ijwMl4THoaK81gY84HMWjSdFVl/YxOSUCALrV7orHW8UxpybMWT6TO/B\nUEcVp9Q/Gp9ytZSikHmvWPKzJXdIYOSLiIQCpiPAQb/FUTD0A91bn5NLT1aW\nNO4gpgo4WCUwZs6NKqcw6cB84HhYwuiBfHlUQZKYtWUhxQXhioBx5s2/c6xW\n4uTfe577ykq/vM4+Py2kWReQwJAgBEWnmsIMtADlJooyM0gjfkkaWIYV2XTI\nmOEVQjkl/V0+n+M+tBG9orcoqINu+u9SF7JmOpdoTxZbLiax9ibmLdEvO1rR\nT6HSdntzdCfj99qFBdl0dB1lTuIpIUDpOYYeDZgkuHipMZJwXz2phrbIv9B0\niCqEdC/mYTrPyGOsu/LWHKv5LGUbjJSDEm8v8jXddqlfF85kUx1mj+YGDqXs\nPjAJ\r\n=LvNQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"ba0f1b1a6f9eb049ebf5b065e72d6eb3fe26191a","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.11.3","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.17.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.0.6_1576591389948_0.4486266527594378","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"streamr-client-protocol","version":"4.1.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.1.0","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"8a0c86668e4001b4a287ec3aa112175a87231da1","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.1.0.tgz","fileCount":129,"integrity":"sha512-zKJEhANlTO8Vi8GyQu0NSaseVZ4lvr9QXqXdemj5PnkNiUDjIMkwEdJtDfUolVZIOSUPW/GtBl4UpekQGeI0Iw==","signatures":[{"sig":"MEUCIQDVlSSrSWGy4qTzYZiI+jVRJWcbQQmIrKbtVdvh5Gc5VAIgPd9iht2COwEuAeKCImtTD18CH2qPBDKu8Dk4+WvC18Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1534751,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIaJdCRA9TVsSAnZWagAA0IQP/RH9ZKc5ZMDr4DX/P9tR\nvpLy+g1hc4QyY9CtaagZSLalWVRvQOBgNK6jOP204FujSl56+ewM6w7OAabk\n7yJxTPFgq1ucZvdbGtmpHd5lb6GUTzY1NYQTVs7HXJkHeonCJPAr4YSCZmhL\n0OSnDJiBC+XNBDQAgeBO+uPzQd2y5lR3PY9hgyZwCrYYgMZH1eq/b9H7aTEF\nOw5dEBf4wRPnOVGGMzY++N5i+rObrFlquz1GxsyStJKjKMiQJGVQz9eTaHXy\nIdRNNrwjIhShluaDuh5Ye7p6hMbL83OfKZCHHN7hsQuCuiRCs5XzI4jla0hg\nha2TdXE7+MQQQ7gthqf6UVukvO4BH9whK5QlPtcSRYECyPBijfWvHmu1HoSr\nKHi3Xvvn4Oh62UpITnJ3yD9iZyZy0VmeIYsN06dNuQVC5PG4T82Z8M5CpJUZ\nz45tMPAF/KABw0G4RNZI43LKcsdilVppuopDiz6cLbG4vQt8A6xYJjXw+XjT\nJH5A2FN31GuYZN3MfftVAXpDzyDxPzd0gbjy2uqz3c1BGHolJZsU+gSrULLb\nQrtTgFO2s/LKh9/iaqKBCK0BgSJPgU5M+gxts8CUi6OrjsWGfHXsXHzmLcm5\nZn147CZl/OJM0QLHlHxu2vyc9jXWHkRA2A+nSaKlxti7Ri0lOV1zO///9tWZ\n0XV8\r\n=x3rF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"780e10f6adb97056b52043c6d2afa0684af4cdf0","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.13.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.18.1","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.1.0_1579262556837_0.8506386965230546","host":"s3://npm-registry-packages"}},"4.1.1":{"name":"streamr-client-protocol","version":"4.1.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.1.1","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"9d3e04e4f3eff3ca89877743b01d1bbebb0b6b13","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.1.1.tgz","fileCount":129,"integrity":"sha512-BvdVjKdpooLhoIj1PjCLOaTiZzmPOWPsU03+RgPVfs/mPTJz2eRQ1pTxj8sphQ6nvcb6VH8XCP7JfyKuRLWgEA==","signatures":[{"sig":"MEQCID6LXrIiJlphyHMrH27K+Dsp2qyWUx54vGfhVHH3SlDdAiAt6oVY9fBUjZ7EoPECZW9aBEGWRu5Cgecsw88VnLbY1Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1535127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVmihCRA9TVsSAnZWagAAbKgQAISrgREZSnm5u+5ok6cd\nvQEmLXfo6bRvts/kQY94il0U0KjB1zDpZHwbtkP6mOlorsJKh2wXMB9KPnfF\nzQBdv1sQ2vupO1cb6l3UrR+TAI5J7321YHtilEgFNgp+TKZegnnfxDA1V7/r\nPBe2byT4WkzKoCBg2+NltqZi3to6ZJEmuiBX+RDFv3s8KwgxEjKdDIXc54B6\n6EP/BWAEfwGj8MKUt6Z2l8TnGNvJcKwvAk5IQPcgbx+1sv/mMDlRbkx481ys\nkvuwegBwU9vXumgIxyas63E9hpk/Uhx3AiL7hn4mJ41muMJI0MjhmSveFfCG\nZSkY2VUQabo+nphKUQbt8jdE+7/qjg/dQQwesX2lf0QSjhHauOIvHFtLlpWX\nwlXYS8N1xgCJb96ewhBgZtf/zOxJCJrnNCiSniQQl0QdDzlQp9EQ0EiuvDR6\n5mA9XfKO6r9JTVrKMiWahGsRAC8GJNj1pea8kilkB8s2iISw6KKUxiREJG+o\n20dHNiTpUfnhEQUWZ7WDvurCdzQQGaH43kERb7ssRWl4ziYykWjWO/yWcJoX\n3iEo6y8nAjEcFVydENA/OuftftqXD0aMAXxdVMO6jaMuMDYynSdzNiXudNP1\neH6JyuIYB/YSHhJb50uWbMoGWRcFSQ6p006tbaxFnMoD38Ml35EI6oigANlP\n0hxE\r\n=mGxF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"cbfc84914f15d4e60caead35fef60fe33aa904be","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"8.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.1.1_1582721184550_0.15786938433442743","host":"s3://npm-registry-packages"}},"4.2.0-beta.0":{"name":"streamr-client-protocol","version":"4.2.0-beta.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.0","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"32b04c8d8a2c298fa0f95e7638256b745bfa97f9","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.0.tgz","fileCount":134,"integrity":"sha512-D2llUwe03JnF7tbYhohn77MfCyisWxfbBTV5RXVwLqvTwq4dYeftW88jc0omR1U/KdE4q/ooYmj+KVgi7O41Yg==","signatures":[{"sig":"MEQCIBd6PI506ZOJ88AVgcYQhVURXinYt93tyx038ujmzKFvAiA0VtQ3FFH1VTCAt67Jk14Xx7g2QJnrPU/xSe40MizNpg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1958538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepbfbCRA9TVsSAnZWagAApHMQAJwYcWq29lT79rbSu0E8\nrvxDRK4yzmCuyVqS+N14pamOFYNK1KSdIoAG6sKel8gara8Coc09phAuhAKP\nyCFcDk8hR4qAtbwCC626hrAim1os6P1IpI6bK6R3zdC9uU/pn4RKrq6xhxSh\nw0+pBo/YTV3TBzweNZOsq4kW6ZYDBqdz4ldj2wx0gFW+yRgrpo+N8hBQbdww\nKWXbSOmKKxH8Guqw8H4Ma2y+So/Yotz0fv2kHfSwumkfK5EDRhd8bSQ75UoC\nDNSZ9Cz4pE9g59P56vzjHQnJOflMPNpbpIm3XoA7oWAxtSA+KJKD6GGlaDJF\nOiXvFN7ev2JuHtbzmrNa40pJkRI1pQnSpvVeZAAjh8V5OmTosfBw48rDa8qw\nEZiIfduunhCXPxd7eSP7RnYbnPkmnJA4ud2VrGwF5rcaT59nEbePjbC/Rwfe\n/18c26xoqnroah0FZIiXkH/2kB5CfeQf/n/m3vMSM7u19sBg8poL47qbaraA\nK6a//xCunVc6M2kvZbEEdjFmowWLBUDUGg59cr5rg1zUy+yNfZ33168zZVhX\nhK2KL012Qke+fPuofLqn8E9QGvs1bA/fkqbNGmq8tzMEjuMXxhvsOhZzJt+e\nAW0/y24oiyd9supPWf9phd/uBW/ngdBpNxu4ivmSFt+UGbr4IAFvZeS1t+AJ\n57hg\r\n=KVtu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Travis CI. Follow the steps below to publish.\n\n1. Update version with either `npm version patch`, `npm version minor`, or `npm version major`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Travis CI to run tests\n4. If tests passed, Travis CI will publish the new version to NPM\n","engines":{"node":">= 8"},"gitHead":"4e276d683ff360c60310b3c1aedf6e5c8b701060","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.4.1","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.14.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","memoizee":"^0.4.14","eventemitter3":"^4.0.0","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","ethers":"^4.0.46","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.0_1587918810729_0.15587976411122906","host":"s3://npm-registry-packages"}},"4.2.0-beta.1":{"name":"streamr-client-protocol","version":"4.2.0-beta.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.1","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"7155e3482d8d71e46055eebe174d9e7c8f88ff2b","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.1.tgz","fileCount":134,"integrity":"sha512-eSYW/N/Wgj2G25Cizxc1KtwmlkdLRtAqayXBPPG7MSxm7r7MTE24gBglUOVi9sCmvH1fRcJsBN7aD8GaMXsi9Q==","signatures":[{"sig":"MEUCICc5EPKDcqpSklZg5ZyoMUd7O+71BvpbcgtQCC6URyhxAiEAqPjQOnFnrt0E5QfAZVphK6b1HDXEK6abnWKOBwtjZ6g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1771957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepuGfCRA9TVsSAnZWagAAunMP/0nCIf4feOgMaK1A0L7a\nE0G14dszX21EB+9EJzUJrUi7Dk/om/lsnSk3EltL6Uwnzuh/v2Hf9voxbI5j\niL9MEe9VAUsPjrEvVySmrsfI++4wZibBaDJuOHRABUrukqY/0HoV08Fxz8CW\n2MqF4Z+ILJrRRVbkSfEXMxzbRNG/TfjtcbIqG0E6W5RGo+EhQKb41lDlcvdK\nYHaHsSCMS6GwjhcrWKhyX4gQqgj0JTfIDFeNoXlTR4VfQRl33HfKGAkUtW2d\nBKEateDAybJ3inSZu2NPRnMDOdr3v1mrwmEbdEwwQDUcUkeOBuNaPWd4jJXO\nCvZeTXNXamFU8DyQ11vinpDcRx8/akWp/97KTT7+z2/QSnrx559wCXG7SnYq\nSxYJop1NPbaV6HspcQixBQd6/nuUXOIKMnec/Y8k5zRAAKS6YreTpmbFuuLT\nCtSd2ZhysdMHZQ7u+JlgrKfg71SWB7jDSkiLikF+xdSSKS65GNIy5+/x96eE\nSFSmoluv7pcHineIc8KFpA7cuZlMeUBPeEk7YrSJ27OU8bplP4dLQmiffPHm\nsawrC3b9i6yC/OiyLRWZFbI5rur409j7VfToCDdEUd5nnlxu05iAQmv8UDX+\nV0qa8yXO+RMlKSe0PYGm4hU5zXnEyhwtg8zbXLB0L3TBYC2qo0R6i+FZWAC6\n1efN\r\n=PD2K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 8"},"gitHead":"30c0fe7b0126765148fd5e286b3244f74517d0a0","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"deprecated":"Should have been published under beta tag","repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"13.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","ethers":"^4.0.46","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","await-sleep":"0.0.1","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.1_1587995038492_0.6402509982590647","host":"s3://npm-registry-packages"}},"4.2.0-beta.2":{"name":"streamr-client-protocol","version":"4.2.0-beta.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.2","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"50493d2534bf689c2525c0092e9fc941d4540746","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.2.tgz","fileCount":134,"integrity":"sha512-vgq29g+vWTLtkaN1CmXHifQ6AZLov/rRH+6HwzqrotuT8uKJNiBVUZn/EdpLXD13zVM86m8VhjKeRrb7sEVl8Q==","signatures":[{"sig":"MEUCIFx4h71bj3cYHobm3GTaHke/fS6F7Veamc0QZecDJnybAiEApQ204SfgIWlyD5IeTBddJ62EFNZ5MwbIEtCI/yPc8Eg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1771957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepuMtCRA9TVsSAnZWagAA2joQAI0rxIuykTVyxSp/gCBR\n5qVRrl72EiiIEQco+nFvJpdEIZj/lOHdla0abXOifEmdblGL6cdT/KM87viu\n4CApZYCgu1Ev/QCjWbAkGB0lWISDZfJu/tkvREA3CSxA5Kx9KNjnd6sagHzv\nSwSBGP8JzlQ8TSW/mm0NqXuC8hhDCdOyAGPgcbA+bKOr1YkjNhHMHsetWfkk\n0otoM7TfYRl2fvgSrM7NnUGv5zyeNdI0P7ZVfjxq0/eUSjvf6tWTldLIY0JY\nTHSoqOKOzqQ/ATGiHfTgMiFFHlZBPBl2Dxqmz5tToNnFGq0zOY7BZhMoQFw+\nRlTPTqE0cOXr+It/2LyT4hbnII+Gi7zFvHWfG33kWFgr/aM3Djx6ttuduJWq\n0Y7NlQEE+Pgx3/lDtVHNUzBWTk20iy8SQFsrNDZ6CCBF3ASq8MHKs3EwllkZ\nh8gRn8PSJaVieXviQilhob3PS7UsU5OT9IjgHxxZz9R5pf5299SQ8lxW1weI\nVCr5n+4yQE67Nn+wRsRE23QD2ZDPLWrdCvg6g1xAQezC15fGw/SRWBNkTdXk\nsgQ9/OMG7xqjzDf9pFeVoyKeZeiq93OzxsKvMIZy3ObuDEbfogxsxSGGAMle\n3RFtB9aJd4/b1MDLstoWO3WexVmeV1pbqcH7gw4gQKSx6LJuhZzMYx+DMp5e\nOg9O\r\n=Znwm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Travis CI. Follow the steps below to publish.\n\n1. Update version with either `npm version patch`, `npm version minor`, or `npm version major`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Travis CI to run tests\n4. If tests passed, Travis CI will publish the new version to NPM\n","engines":{"node":">= 8"},"gitHead":"30c0fe7b0126765148fd5e286b3244f74517d0a0","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"13.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","ethers":"^4.0.46","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","await-sleep":"0.0.1","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.2_1587995437083_0.5378828746197688","host":"s3://npm-registry-packages"}},"4.2.0-beta.3":{"name":"streamr-client-protocol","version":"4.2.0-beta.3","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.3","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"7cdb0d04b973a62eba385f13ab24118bbd89ed54","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.3.tgz","fileCount":134,"integrity":"sha512-ayudtW6nSHlqU4dUrnjYxhozvQ0C2FTNZ6a2dKeUFPBWfcjW0lY5nlRBtAFfW+VHRGaPCydL0yPC07ffla6WKw==","signatures":[{"sig":"MEQCIDa4LBS4915jvhBPhQqNXnY3j6QYB/8gyIpgxwdgZrbTAiBBl9Oo9IxkG92o7J/Z5bzMdV7uaCmR4d3otMjg4DSYpw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1782324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqBfmCRA9TVsSAnZWagAAoYYQAIOEIKDxI8u9SzkWgc5i\nrUiXQt2Qdi6aHOiIkEV7bln4kkTepZr2PKePFtvSxudG29UV73WMi8aFtz3+\niuLZd1xbL5ZZR1Ws8AS9JO/ZHUpKR2pBCJ2iAyO617NR7P4hLtN9AlrO6vhA\nIdbCZVCDIhPY2/X6tuEn4bRTLAgkFqAX+88huSJ/ThSRbYLiqy3mSTj0BsR+\nDtrwwvDs1y7uuSCcuQ8N2YzKBfsisqML+hpOXyS2dzy0Dsz/c74HzXKhHK63\nCkovtZgaoh9OOdB7Ulr9XHbiEfpGEU0eHMvynSBYnyv8c7k6MkSmptPxeKxz\nmSfhpom3khKq9so4lLirt7+kVA8DvKItw4w4BYCbSBZdi/IeEi1X1zwbPae9\n8R1YdyYKWIHByLI0Sl0cEz7pX7lbXtHteNKmQBz58dVD4kZSzRXFB71K6Moj\nl5jNxrs467+Th1g8rThyEbzB0HYoLgkXrxWGWF1ih8zez6AlW21VsYt99Jp3\n2y1DnhvXw2aPboWxefHILcnkBqMYLBb2m0rYMCgFYu2arCAWcdhgvy+5Qusf\neBnjoKN9bJAFyJs4SPSk3V7zsypJqi7zcbKHNOE5q3UgpWicdY8axGPjZC/y\nPgGMANaQesX9KooTEXqLYXwZBTcqW4cSP1X/BtaSYg3UC9CnnUFLkR4fphEI\n+hFF\r\n=GUV2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Travis CI. Follow the steps below to publish.\n\n1. Update version with either `npm version patch`, `npm version minor`, or `npm version major`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Travis CI to run tests\n4. If tests passed, Travis CI will publish the new version to NPM\n","engines":{"node":">= 8"},"gitHead":"f2f4fdfb1f3bfc889f645d763dfd57ad6d1f0ea2","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"13.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","ethers":"^4.0.46","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","await-sleep":"0.0.1","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.3_1588074469899_0.09092063865837363","host":"s3://npm-registry-packages"}},"4.2.0-beta.4":{"name":"streamr-client-protocol","version":"4.2.0-beta.4","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.4","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"262c660c032d88abe2fe3479e7a30b8a9dc73dcd","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.4.tgz","fileCount":134,"integrity":"sha512-OwToIvPsgfHOrRGkHsvxZ4n4+1z/Woa+ASNuvF1pp+ZBizUHjuz1n1/KPVk3Nq3mm7orVpmszhmWFTIV43K/XQ==","signatures":[{"sig":"MEUCICxYRdBQZEj8FUEqAOLhjz1vBguQPAfSq8RvYp57tq4YAiEA2IkQUUx2hH7AbpGobii8/5xuLUlzrRFI36c4l45lmec=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1782749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqF3KCRA9TVsSAnZWagAAUGoP/iqtEXvCELK48+8pi5kp\niRiiFHxBrLcwCaZjiaQr2IwpgXGEhnjBfch1kQ01D1lwck8oBbQLB9ya7IPr\nwGdoEd0o84/Wjo301evwq7aKubYuejq4PcepNI5SfsOYfSvNlN9IApnaVTUj\nbF06hsvMojstCZWJzqPxsGMYnClGEd4/eCmtImDx9py2afvhWZgP+A4KAwc6\nXD9bjtzERy4+z1aZhYJdq73NNdJ+OrvC1RBEXbDOpsw/lEGr8sVyYMLC/eEo\nI0eMElHAU0f9rSfftPVJXdkNUb0aTbE8p8C0Ag489ZIZfIEIvxXadI/2QScF\nFiZtEUfFvGO3VDNCcM6pY2z17MATNF3SJJmxL3JWquGyVi4cFTd18Kt1YQge\nf2NcQ+auWipESt4lGxesrfFo5kp8skLiBt4sKdO86SpSTqzqGViNF9FNIsft\nphSlAPePpBHAT45UpVzRGLHZ4unhQHgeIrW7GYsf5Yb67fdRwhenuAbIuOzM\nug3WFbGoNoMV7ARBDbAdN7J71TNQlzt/4rkIIbaTI/S80YklYp1MJ3/gHtS5\nDKT2ifnEMk+YskAOZWEvn8Ze2DuZQ3mKDObgNHJD9I2sGfkWcfsvPcwBetQS\nyVt8zzEFRCe6IMlqJvvkyWWub+bu+fukD9BE1U+vaWHRB38jRzog+L6lAlge\nlr6H\r\n=oYXe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Travis CI. Follow the steps below to publish.\n\n1. Update version with either `npm version patch`, `npm version minor`, or `npm version major`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Travis CI to run tests\n4. If tests passed, Travis CI will publish the new version to NPM\n","engines":{"node":">= 8"},"gitHead":"494e709a38b95408b2128e3375f041fabf87e394","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"13.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","ethers":"^4.0.46","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","await-sleep":"0.0.1","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.4_1588092362279_0.5837774898965478","host":"s3://npm-registry-packages"}},"4.2.0-beta.5":{"name":"streamr-client-protocol","version":"4.2.0-beta.5","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.5","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"f3f0b6aa77f809f0f629528f471543f8cde70307","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.5.tgz","fileCount":134,"integrity":"sha512-UQHp4cpL86hnnAwBpNpGkZcGmdJ6LPLHaCBfZkPuXKKCserQCAcDdnaWsTZl6U8GVGPupq/J3c0mbm5aznxgtQ==","signatures":[{"sig":"MEYCIQDbwYKLf6mGN6Y39/QutvBk78hh40b1QwfW8jn2mMOo9QIhAKR5Qg3/fteWFUm3uTPHUKyTA9zsYfDHQaRkis/J9VKG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesIr+CRA9TVsSAnZWagAAxN8P/3cDZKdiHN/quxw6ZTD6\n6yvTSyZHSyETLQkO5ReXNsCS53qFxjLj5asXzjPLw6mZtPhFEPJ/BPONLBbq\n0HN/nzqhP5YwRZBch5Ini5tDOaWrDiwVp4SgvviXTlypG28GURrL6VxWQ41I\nbe2g0TEICwUu5pTonCXN2MkJg4LBqa/H0rivgMwUhqOUAh2VkBPbYXcJRecw\nxLF10EHriGrm5fHhCT7yRwuaAjfgRv7+HmoiNkyUXXuUiw0+16YIWT/aukgS\n0jncRYfUMlyhp+PNnDxDs1fBtqgIacEXoBkzVGIJAOH2RHTLtDvjMn2dHQf7\n+2f/6gSDRXO1vCE+hc1q1v6i5LCYe8OHV6pxXaUzj+isQpIvNLSsTcWJ03bU\nK3Ajbiep5y5KDnM0QR9VifcBrGwyVWIX6Hg9xnhPiugnPMLcs9Kcp6C5Cuey\nnOQaw7aiGgomclEPWZkprRYrA01EYvwzvAtbJZJOJrXWHObi9pNEG6aVvHoK\nE8JhVteolTr+vfT0hwhbGb2rPYr20aF5gkvnXP3kUAjBbkSVSqNbuRq2AjhQ\n6mCpOuoBotdBUNEcPUj5cbuADn6DECwZZ/8p+ewMw7hlmUoBFPYeCM+sPwGo\nrCQqGEVoC1RzFmoUHLEUOol/vFGFXYQv/NzGzFyAs7Fdm3C6NSsYDnq+65mf\nYC4C\r\n=Bvi0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Travis CI. Follow the steps below to publish.\n\n1. Update version with either `npm version patch`, `npm version minor`, or `npm version major`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Travis CI to run tests\n4. If tests passed, Travis CI will publish the new version to NPM\n","engines":{"node":">= 8"},"gitHead":"837e02e5566a0969e1139044d543ffec5e987236","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"13.12.0","dependencies":{"heap":"^0.2.6","debug":"^3.1.0","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","jest":"^24.8.0","sinon":"^6.3.5","eslint":"^4.19.1","ethers":"^4.0.46","lodash":"^4.17.10","core-js":"^3.1.3","webpack":"^3.10.0","@babel/cli":"^7.4.4","babel-jest":"^24.8.0","@babel/core":"^7.4.5","await-sleep":"0.0.1","babel-eslint":"^10.0.1","babel-loader":"^8.0.0","array-shuffle":"^1.0.1","eslint-loader":"^1.9.0","@babel/preset-env":"^7.4.5","eslint-plugin-react":"^7.7.0","eslint-config-airbnb":"^16.1.0","eslint-plugin-import":"^2.10.0","eslint-config-streamr":"^1.1.7","eslint-plugin-flowtype":"^2.46.1","eslint-plugin-jsx-a11y":"^6.0.3","uglifyjs-webpack-plugin":"^1.2.4","@babel/plugin-transform-runtime":"^7.4.4","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.5_1588628221848_0.7987071498906688","host":"s3://npm-registry-packages"}},"4.2.0-beta.6":{"name":"streamr-client-protocol","version":"4.2.0-beta.6","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.6","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"95f4142dcb2a6567f7f6b6e8d85cc93971d9fbd6","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.6.tgz","fileCount":139,"integrity":"sha512-EoEAfvZZQ5mzEfuDh2/osuU0kjxi0nbiiWL7Mt9lydL3cyjcLjRAbsnXL7Mw+EaQot1XV4mF18ywrWSMp6aH3Q==","signatures":[{"sig":"MEQCIDwlvy7LYY8B1AbuGZAe3px50gGZYbLtS4h4aTwT8/cFAiBMcFnWfLIKb9v9/i5VMTqn9Okl2oAedSqVlUFzQ29kNA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2884361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesvYmCRA9TVsSAnZWagAAFWUP/1G546HLjnkdWDRlFFL5\nk7EXBYIdcgLMBLvLKJdl5th/HhzNrt9XFPQ8rSx6ACGm9/LnzzGJFgc4FDDE\nSLdwBrop3tbqijKLUoRdJbMCjKgV2HR9FL3XkHvO1M+pxj2Xv4mdYcrHvnLW\nUSu/Zc9CQ3nSoDNuZ7cFgAQ6HlJpkvFqvmdXDeI/AwIBtyYzhurE65EG5asW\nEfiBqJLgO2p5aoAmv+mtynh8e9sQ+ZpfmFb1cn755vLkSR/nsefZXDaajMAm\nv9qe/pS2+yY416YIM+ho5uP4huMgDCdJtQ10hJcgMxViyTZj7VmAgjOWEXiM\nPO1dOmDX2dlcKWDMh+iq1fBsqDq3cJR0/pVP9CbOov8wYlT759U2ojh2aqXz\nKgYVh0sa4fhEYYcijYvTyh9XzvACp2wWrYAm3AnYOeUd1sGfxkgB62yeeh84\nNPkexjQtlvoa/7P3xpeFzJwddZlhdNA3Bo6OLcKfUn1Ca9AKsqf7y+6FXcLR\nw2Bk71QbcOFigceMeIiWWZuTI3Qe734ccsFwscWbi4Pe/xo/PPYi+ubTSUKs\n/KnkftKgytpocypuIgj4ceBo0676onGOPhVOYTlIN810/xCEBMm8lovNeCVN\ntB5ezDXc+X4BD0R+aCRoAidEV0u1SnXIVAXXj2iasXlpfGeGHjPtW71GYPf1\nVaPC\r\n=rsCb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Travis CI. Follow the steps below to publish.\n\n1. Update version with either `npm version patch`, `npm version minor`, or `npm version major`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Travis CI to run tests\n4. If tests passed, Travis CI will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"2bd3cd199b11afcbb7047fcb7d9b730c9b260051","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.20.1","dependencies":{"heap":"^0.2.6","debug":"^4.1.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","core-js":"^3.6.5","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.6","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.6","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-runtime":"^7.9.6","@babel/plugin-syntax-import-meta":"^7.8.3","@babel/plugin-proposal-json-strings":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-proposal-function-sent":"^7.8.3","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-proposal-numeric-separator":"^7.8.3","@babel/plugin-proposal-throw-expressions":"^7.8.3","@babel/plugin-proposal-export-namespace-from":"^7.8.3"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.6_1588786722923_0.5526149625916807","host":"s3://npm-registry-packages"}},"4.2.0-beta.9":{"name":"streamr-client-protocol","version":"4.2.0-beta.9","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@4.2.0-beta.9","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"a29ec89dcc26df34d695ea091c222ef83ab2bf4a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-4.2.0-beta.9.tgz","fileCount":135,"integrity":"sha512-LsYJR1U4PykiQ72/Ses4FlxnNc18F0JMsOuDnDHydoHE/Yddq5CxLKo2Drv9e90d7bxMjv6EibreLv1ba+NHfw==","signatures":[{"sig":"MEYCIQCTSDOjlM19qNJhJRXw9jw4pYtgkhLuO7f99hhXfipH3AIhAIrgBCDwTHl4XCF+9+69hbKeooh0efA7FpkvJYdgstHL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1765957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetRqECRA9TVsSAnZWagAAFV8P/jV0v9FXSOjig1+51cZZ\n04/3a5BLpJRqIrf5w8rJciQKVgCGYE0jSgG8pQqnd87XmBjJReURBJnO+Dx7\nK49dzB1rWzjPf61w1QLEwEoE47OqToDfFpcbm+oVQ+E9GCkwFTXX+ogb+H/7\n9Pn49pvxB9FV0QCm2D+REWDS2gWFRUwEykH4d7JdZWcDbA716QpG4hEzpLoW\n51MAU0p4dw9I1ettCeDj5biWXVRX9Ia1H0q1+0+OyNDrtv6fF1iZbEN/6Zjw\nZaOyDZiTZZtmnXSb2Cn1FmbHcmY1rfMAWDZma/Xky+2ZFEPNXo5guqUo7dCE\nz74MLnUEgLXmiPA2Fu2FxpX+A3ptoQoFNybT3MOBHua0OEW66dZe9fV5QUam\nXUxc2QwVBY6AeTEJqvVbF10AfFEqqt+BHjO5oJCWnvqleeryD7PVRZouPtIb\ny6MV8hTBnOqUZVwZm7qA5g5BYssv1MFO7RJk9X3/3JyuXktd3KTpnOI5m9sG\n06Od3f2WfQ8bV5ZC7PLr33zA0T1uWeqQWF0kmKX8ppAJHUZjqsMTR8GVEMxZ\nts7fNqpHQVkL9KV2UDqpsUBGr5mc7RmPO/UIvWsruhZSX82CKE3tgGLeoSe/\n4+88C5pJuvzZvTdUVtLQeXcm3ZmJDi6hcTr+I7C4VR8cPdIL87wVNscrnLlx\nlwtF\r\n=aOq9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to build a `StreamMessage` and encapsulate it in a  `UnicastMessage`.\n\n```javascript\nconst content = {\n    foo: 'bar',\n}\n// arguments in order: stream id, stream partition, timestamp, sequence number, publisher id, message chain id,\n// previous message reference, content type, content, signature type, signature\nconst streamMessage = StreamMessage.create(['streamId', 0, Date.now(), 0, 'publisherId', 'msgChainId'],\n                                             null, StreamMessage.CONTENT_TYPES.JSON, content,\n                                             StreamMessage.SIGNATURE_TYPES.NONE, null)\nconst unicastMessage = UnicastMessage.create(\"subscriptionId\", streamMessage)\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = StreamMessage.create(...)\nstreamMessage.serialize()\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(29, {\n    stringify: false\n})\n// > [29, 'streamId', 0, 1529549961116, 0, 1529549961116, null, 27, {valid: \"json\"}, 0, null, null]\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessageFactory` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\nThe Message Layer only has one type of message (`StreamMessage`), so we know that the `deserialize` function will return a `StreamMessage` and all the functions and fields of this class can be used. Some functions might be defined only for some specific versions like `StreamMessageV30`, in that case use the `version` field to differentiate.\n\n```javascript\nconst serializedMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessageFactory.deserialize(serializedMessage)\n// use functions/fields present in all versions\nif (streamMessage.version === 30) {\n    // treat it as a StreamMessageV30\n} else if (streamMessage.version === 29) {\n    // treat it as a StreamMessageV29\n}\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === UnicastMessage.TYPE) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === SubscribeRequest.TYPE) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"3eb011d5f8703844226229cfddd4f85e1f5ac002","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.16.3","dependencies":{"heap":"^0.2.6","debug":"^4.1.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","core-js":"^3.6.5","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.6","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.6","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-runtime":"^7.9.6","@babel/plugin-syntax-import-meta":"^7.8.3","@babel/plugin-proposal-json-strings":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-proposal-function-sent":"^7.8.3","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-proposal-numeric-separator":"^7.8.3","@babel/plugin-proposal-throw-expressions":"^7.8.3","@babel/plugin-proposal-export-namespace-from":"^7.8.3"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_4.2.0-beta.9_1588927108000_0.29991422952997304","host":"s3://npm-registry-packages"}},"5.0.0-beta.0":{"name":"streamr-client-protocol","version":"5.0.0-beta.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.0","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"043935e2b427f11cec048e7e4182c460490f62a2","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.0.tgz","fileCount":131,"integrity":"sha512-yfBsBlE4GTOJ3z7cQ/9f6E2BvD92Fwa35G/Uqfe1ncF77YR/rjo0j3UNivgUkc/iEsVa7ZgAWp4gH2DlYESUGg==","signatures":[{"sig":"MEUCIC/F+RptIS61LyCK8osjsRg3GAG3X9uBH1Okw4QFt6vdAiEAqIwUR4rL4+tlgQ33aU3xTs6ml016tSSth2SKy2mCi3M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1421344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevDBlCRA9TVsSAnZWagAAWoUP/REKhLvNWBECdLQC+9M2\nPP5bdYvkmsMP2+bCQsiJ4s5/DZpoOawAxrVM7NplGQNqUsvP1eg3uYCMwgDa\nTwGLh6PRtEQ2Du4gab4zqavX7XMH8425r26ml7U3RPZaB4OqX6n5GG2rSFMK\nq6emg2HuRdK8YH0WkcmCWfTdi4noeh6MKX4BA12mBNKGJJEIT2NjyNOtmHjs\nNbkL1DpfMKSWE7UmVLWJ4kxhXyqa4FWfHItY8exCWwlEPhm1OeEN9XDrO+Wt\nBvDNXkQsu5FGILWTGHpbRMi2lj12P6SehM1rAlPVemqELPMCqb3pCQZr+mAO\nnW2RrRbWYF+331qsxrei0MqR5Nj+oO9uepkpunMfkqiVGawaAN3davxUzleT\nXvqfwWPY0KFmvGMi+NEC7U1NEk24p1cq5b10EecKqRWapkgpq3LpXH5oLqeV\nQ0Lhq+a2ZxYQe0FqG4VCq4oBYKrU1xeIeliS7SfXuV3NAzawaychZdzj2052\ngvA244dPx2MoadpRvf+I0CutXoJ4MjS7Fm2ngYXNV575E/5X/HoYkVEP6IkL\nH8d3zbY8ivZ/V+6cCgwqC/AZpmwOydprbb/l7xdmZ8h34QfyMhnryuUK8Pa7\nCJ5QvsRmJB0Jgt6xlehUSobhSPF1bIj24Kfhxwg9QDKbhQvI4uzgIoTow6n7\noY+v\r\n=E6aj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nconst publishRequest = PublishRequest.create('requestId', streamMessage, 'sessionToken')\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"1ed81162c7a912c5cacd8da991e040eed37581da","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.16.3","dependencies":{"heap":"^0.2.6","debug":"^4.1.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","core-js":"^3.6.5","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.6","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.6","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-runtime":"^7.9.6","@babel/plugin-syntax-import-meta":"^7.8.3","@babel/plugin-proposal-json-strings":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-proposal-function-sent":"^7.8.3","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-proposal-numeric-separator":"^7.8.3","@babel/plugin-proposal-throw-expressions":"^7.8.3","@babel/plugin-proposal-export-namespace-from":"^7.8.3"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.0_1589391460827_0.2403760771704626","host":"s3://npm-registry-packages"}},"5.0.0-beta.1":{"name":"streamr-client-protocol","version":"5.0.0-beta.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.1","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"e7095df1e9d89414937d2cff2b3866cbb6d3683f","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.1.tgz","fileCount":137,"integrity":"sha512-S226aQoblcEl143XzS25GoaK8XPFkxWfQIPLbi4ivcWdI/3BHrXR3wdjAYD/Z9e/skGiwKecHVn/BAZHRvKHnw==","signatures":[{"sig":"MEQCIHuH4Z6Pp1XWarTnQkakDYz4o2kDKm+Gdn1+454gbV+KAiAlmusu7GCjyNHVAIj0KglWqf2/pj1UflcxHMsMfxjPPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2401883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezNd3CRA9TVsSAnZWagAAHP0QAIzbA+4eViYqPSvBBTGS\nIpfuvgy353/oMzOtbxGpFfOhWUA1816bVqJ7nPnIXdiTx5c7NGRyJxAgElo0\nEAp2GYBNvBMou63M9prNuVK6619IJRP9DtTQWSBd0rcSyEKcVDbAGfirAAZH\nQZrIlNEXPRI82qatUibqg8AnBbpDb0glxWGiElW1GWs0HciXHl4fJleRkc19\n2chliYLuX9LMtXEaEc9OuH49NmNWHe62dSWUMfK8vIRkQlRXVXrok9SlHnf3\njKo+qmPcaj55Hofdsd2iH8JAFD+df9DwgMkwemjwFJJg/olD7cEwrpehOx0l\nYKxdrz4ZSQEbWBSOGF+LBTaZGf8mONfaJNw0VyuEM0LWFTVnxE2fEISBgUNr\nKGjuckimS5XIzyuhr0DJDxDTHNgzK3L3RT2FQETDfI9LZZOASFaDyhRLEVfe\nWZ3agLwEySskTqONUZtKWo/JnR+DiVz3sVjfHc4AUA3R6isH03954CgOu+yY\nmY4kaV1eR9tm3ZkFDQ8UITJy2UzBJxpHxZ/CHcAu3OKUeFRpngfdA/CtYtru\nZW9dzxp0JoBaTnSnwoesvLKjLfVb+qM4Yu+OGR0iwGD+a9sclE1k5RawW7tT\nj14UjNv88RTDpsLSkrevuch5X4R+rSnMu8B1QgFGXN18pKWEsdOcpjJa5abJ\nDjq6\r\n=jvqV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nconst publishRequest = PublishRequest.create('requestId', streamMessage, 'sessionToken')\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"945f1a17bfb685a1864eb8852db63e3e368cb88f","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"hpihkala","email":"henri.pihkala@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"13.12.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","crypto":"^1.0.1","eslint":"^6.8.0","ethers":"^4.0.47","core-js":"^3.6.5","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.6","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.6","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-runtime":"^7.9.6","@babel/plugin-syntax-import-meta":"^7.8.3","@babel/plugin-proposal-json-strings":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-proposal-function-sent":"^7.8.3","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/plugin-proposal-numeric-separator":"^7.8.3","@babel/plugin-proposal-throw-expressions":"^7.8.3","@babel/plugin-proposal-export-namespace-from":"^7.8.3"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.1_1590482807039_0.5084454309066351","host":"s3://npm-registry-packages"}},"5.0.0-beta.2":{"name":"streamr-client-protocol","version":"5.0.0-beta.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.2","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"a25703714fc7dccc9683281c9859f71bdfd5639d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.2.tgz","fileCount":135,"integrity":"sha512-bsZw5VNI2EeMpEut7vuLm6GNGTqXo6Q7ZEsAM3ORs5Vz0XkZzr2wQPq5v5+mUSwBH0Rm19WJ3xKOX7Le4gbEug==","signatures":[{"sig":"MEUCIQDA7o4qx3zYZj8JE88jOKfglgDrNCQ56ikuUJsjze7JYwIgWuRs91JzdY1tgcWtCZjNJgAt04zRxAEjJShEtl2/Uk4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1969464,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezVTKCRA9TVsSAnZWagAAcskP/2Zbj0uMbkKzzBNkRc/G\ndyxRvrHvHqROmqoDXGmh4gecxC4WgfhXStTbkbsvbWuMSQAD0qSdmVRPM2Lc\nFeqjMJecQ5YBSTT/2s0ws2lo4GARGjZogUP71KfLzJReq0rZrzO66vh1oOkJ\nXWX3uh5L0NdG5e5zTH/22U+0bOW/emap2eoP8WRHFPghkozOq3k1jak2ADqm\nmaInLBm2o62UqZ0rDiPW5Wemjp6N1GDObeLGCldCz6VpxHWkPC4J214L3s6j\nKbDbps6Eux18XqFaJfm9HHxOFo+Wrp2rR35mvrAGkR7nCHjwaoYbFKDV3Mdf\nTxLSCyR0Y+QwT0SJMPNkPPiHvW5bt0uEZXGgwXI8Q2TLGmNL/nNeIc1NDQEx\nsHgBS0KjBhg3kEIEXas5eEhKEPhzGNp9mHhGgejjOOtAeh6KKcsmKaWeN7s6\n+ZQC66WlzRFKXzcdOnqRZ+pVz1cu32fmP8gHl/WwTKg2bpj6zRgJqn+M/h3D\n6wmf9lGvve8cMes831l7EZ3F1tCG+ZaDbqg5rY2Kd2QaKjp4/ilasOA+6xee\ne/ffqlsnfZh9cBdgGC7ZoX8uR5ncpwWFzILCRH+FitzAKidQLdGEDCdhHtUB\nDqraQ4CEYHVykgLNDv+rcVysut5rUtjGhF1KjWU0sNHTHVLPSMJXzf4KTjOm\nVYhN\r\n=RFG0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nconst publishRequest = PublishRequest.create('requestId', streamMessage, 'sessionToken')\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"39764e775bf6160f356dbceaa9bec6b65f160257","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.16.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","crypto":"^1.0.1","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.2_1590514889413_0.5721784988852014","host":"s3://npm-registry-packages"}},"5.0.0-beta.3":{"name":"streamr-client-protocol","version":"5.0.0-beta.3","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.3","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"cf03c73ddc94aa671baa710ec7e02b4dd9eb7833","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.3.tgz","fileCount":135,"integrity":"sha512-TOCu6ql415KG/rZReXCvMANqEV76ZmOfPoQL6pEAl479GoxhseQLQetbO6C4+GzesmGcB4EVewUMOCJilAWXlw==","signatures":[{"sig":"MEUCIQCXdRWA+1oUv7DgHVcV8eFGNW6YDod1oz0cCEuTqMXS0AIgGfCfv/esPRXHy3ic9LRcAbUGx5h97OZ62yuoFYMv6cE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1969900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0S31CRA9TVsSAnZWagAAwF0P/04im8xQA/tkaV0GHVli\nsBxLgDJl/lUk/yEAAIyIxd7USBuhKNQzbWM7MZVQfyDGvUO39AAq2Qfdftly\nDI53ZkQZnbW4qcEKeAU1oO2G74yvpUODye+n2dxoqzqhMyGUnLPPVP082kU1\nH2+FYB3lN2sYWSJR33SNfRDGt+74Mc7gRUjicPvT94HdzUuAUBL0Cw7YfCLy\nEYBZxzwSjJbRSVUFIMc8TSgpDpFKRWMRVbx73amaMq5KmM8xkLvZmyZW2h8h\nnRq2oOVKSpV+XuQikXvsSRCKAQLYJ7KiA9dyzii3pjW4PwtV/PjH902Mgtmx\nPSaF6S8rjZTyZyFnoMpMp4N4QG4GF4DGF2WZXQZFkCZppNDZm/P9UTZ2vFyA\n6djxj0T1R/spdRSuACVKNsUlXml6vBm/OjNkUkjz/WIGF57ZRIkt9c/EZVEj\nT8xfVyJYqeQPKeo4Yp9MuGzt9Yjpir38q9ujF9xSEndnc2AMZpHNAGVHi9O0\njShKgubb3GwzOOA5fz1gJ/09OtDNnpmcViOpumcLVuE5q34ZcBUkbPjMoKE6\nAZ2w1nW6VG5P3lrPAs+jMHvyNsp6hp+s/srSFCkKYk9K8vnG9+PKnjeqQSyb\nKpp/fjkhZU3ggi58Al0q7OPEtyWd2G0OxKfLbjhzLdr4j6G2nqH5Fj7rGKTA\nahuu\r\n=5osg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nconst publishRequest = PublishRequest.create('requestId', streamMessage, 'sessionToken')\n```\n\n#### Serializing messages to JSON arrays or strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method that takes different optional arguments depending on the message type. For every message type, the first argument is the version of the resulting serialized message. By default, it serializes to the latest version of the message type and the result is a string.\n\n```javascript\nconst streamMessage = new StreamMessage(...)\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = SubscribeRequest.create('streamId', 0, 'sessionToken')\nsubscribeRequest.serialize()\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from JSON arrays or strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"57d6de301158d6ef9f9be61b076c1d96699d11a3","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.16.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.3_1590767093054_0.1720162855276426","host":"s3://npm-registry-packages"}},"5.0.0-beta.4":{"name":"streamr-client-protocol","version":"5.0.0-beta.4","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.4","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"7c7c1aceab7c82548b57d7fe8436c68f42df1d7e","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.4.tgz","fileCount":135,"integrity":"sha512-BZVLqiQUVRW04eIcPYSSPMX5qjhXzzjaOUFSfWH7OUiFomRMCe/KxpyCbmGytF5SLJ22b3o01fQVTkMHwgLWiw==","signatures":[{"sig":"MEUCIHj6CpBjBx/QBvzQt1r1pIMgpSzQMfAdnZhT3fctnFC8AiEAlAf5HuRN5i2D1ET5M4yO7OE8+SBDd0UrxPMo0fz8qQY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1972060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1nIUCRA9TVsSAnZWagAA4swP/0m9F7L6XfYYsItnBRQJ\nk/IT9Zt30ofcenw0TtcOcKGssuLTHQEL4fvXNLH7EcmtGJhAluA7XOZQsmNg\n7lvTo9hVQyk5x3ig2+MRBbWCdXi27s42ST6IK59zvxtTsOzbQpFAPOZbCVcC\nA5UOpHvUfDcRL8706D/u9Zvdiok3mYNhqU66V9bo9+28oKqCEG5sFCj2vKE2\nag/V2xCAf+tVGgNHmDcmt74YB9Zf/X5SERSAwvh0D/HtpZLYggV/TwZXRxay\nO+8JCMlAuJaJHXtaqrc0wi/8gO2tBsJWSh3lUhADOg+4eJqd15efBLEWuyAe\n7tA9R7n7KXWJ+t57y0LJQB9ZKGsDZdqQLLZIQr96vbw6LkDKk6fpG85wO00u\nB5uron9ibKth+izzkaizUrFmJwenkBQS5CkOi4KvDc9nD360EBdNiYmTPlGL\nebqMI174f3Qu3ber2H79zMSvnZTHw/KzP8omQV5KzWOb3KsBxJJuWH46BB3y\nvd+xvTQznJAfebjNUNlZChcqajtu8Hd6EmIaQzDpwwHhwFHI+W7kLMFajpj0\nWNhyzUs1f8XAEil+jv15+FyMmW8elIRncDTFb6QW94igDzgzjHF6VsMLEtJb\nI2EtIsjIcILSF8NtWA/I6tUBfeFemi0gPmVWEtc4AZkyX9Txys4hwNZts541\nM99B\r\n=0n4/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"0e017286989e8f29ba213eabd894c1c20ccff3ec","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.16.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.4_1591112212081_0.3859295373612073","host":"s3://npm-registry-packages"}},"5.0.0-beta.5":{"name":"streamr-client-protocol","version":"5.0.0-beta.5","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.5","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"aadd91fc707f7d45765d514dea64f384e257aff8","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.5.tgz","fileCount":135,"integrity":"sha512-hrLlqNBpMdj+Ah6Lw4uvyyKv8rNOc9hCEFChYXCDrvnhrIcfJt1fTVEYEaPRSlWOk5ncKJjyGiRR7rQrhIYzFQ==","signatures":[{"sig":"MEQCIA1PuWcr5sytpsLEvAWHVB/0NvSZGb42OQHyhKNGfPwNAiBt8G5q/v7CwCRTFnIll9KBZEoSD9clHZzHMa8/3bVKpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1972312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe18WSCRA9TVsSAnZWagAAN60P/Rj1WzcddlixH2mLo3+m\nXdsKm7v7PFVHGoqguwM+6OMnENTZ8p6/qBitHD5mf8Zuo+zVOh1WiyUt3f/6\nB2lTxCCfykrSjmEjcO1eNUxTDR4ScKNoS8tHC6MIMmTnj613CDjGfQiCGb2w\nLqOEwApZuUTNzBR/asCwWRpsrk+xJmJIgOhE1GZqC9z/224zSm9cPLzLNz0o\np8uMpHMuX8MXJTKgp1B7bXWwz4xGbkaTzKoEFSXprMx7i2VbOTEkk+3Wvh8I\nq76ToHjd9auH5dc5vwVaLrR4ioF45fpEUJyA0aXFi9gHXrRtXDGMqtt0h2G3\nbj4+erfb95wpsa0lD/1sY3eniwTnnMgKQE5cZh3+rT7b6Vu3bW9LirktUdZV\nMyDGQnvTIM1/fF//qNRkHXFK9xdl18bQNNgw/r7sdr1sySSEpuPQM1nkO9/6\nulPDIg9uVuwqnivP455Vul1ghmTXnlILLykZCCafqQ3QHVLAXodh3BT8Zdhf\nEcPrTo9e9kfiZ4AKw7qI46FM2rFCIWfMzlBl4RQ0yMmbm144lIkdKV9a7Xny\nMhpTOsccevTkYKEFm/LxhFwvDyoSh7+woMQaBP4zLI4Ect7ag/3UA5ZJpfI1\nGXEKABbQ261eTSY5uujmWwWzlC/yIkse3mX0+0FyVog+yrWGI4zn3/LyIU3F\nThhO\r\n=kpKk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"aceae3c4987bd0c128bb786737879832afdb1b5f","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.16.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.5_1591199121604_0.49202512564497347","host":"s3://npm-registry-packages"}},"5.0.0-beta.6":{"name":"streamr-client-protocol","version":"5.0.0-beta.6","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.6","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"5b6d8cb7130a5f18fc9406f443eeb0b92ebce74a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.6.tgz","fileCount":138,"integrity":"sha512-I48cspdcNN+QVUVgYnuaHd+DlW4GRE0+qItwVZPImgaifyEyeimxMbNXNoY3VXOKB/0qiSPVqyzDi1DKlY79CQ==","signatures":[{"sig":"MEUCIQC4PE+Xgjh1Ykl6N+REgICiES4Noju/2pzl1wswSDzvCgIgJvHqE4hbGh3Omz3UT7XyVZgbCfIO3yw/BDOvlIFOYaE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3091975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3lzdCRA9TVsSAnZWagAAIj0QAJckytUP1lIhkc0MfR5H\nO8WysZiw9DPuS7dtTCZXV4rWcn1iWW6QBD+Jg8P5Z6JKeRC+9TUoS0s7cwQL\nS3r5G1GJ9by/LFhedjYf8ZDTesLLP3dWsAdwUDROsr7KIFldmlDR655Q7sK3\nerpiIFIF6M3dlROjmYVP/qiPhhJb/D4prQPTPD5fxPGD/w5F+NEjvU1o1Dsm\natXGVX7fOxbvQNUpZz60+Zf+vTF1YQrFAa8VGjcKKNsRrj+b0Reax7QU/dOy\nhRuND9LkcIBxItc1eXfiG9+el8xb+LoOREvOg0/+cNZUtuuH7BlE/3aqlIFf\nTciGv6NQiFkJa5gB5YwGY8jlE032pJhg2/tU/2oYoruWFzzyFYklFwKHAAqa\n1AvzphOxhWPkJ8JodTx4ucOz9n/lH/wLeWeYbvJUXpEhcoDs9182epO7Ri3M\n54W6V2e6cM9PiNyyOu1Jcm57A/a7juUKJ5kIX3YrFaL5JsqU+tO4hSVLhbGn\n+UYLO3065ZXbRgg1wmIBoyg793SM4KT+rdCAJv3pEku77M3X5PUbx7NKzk6y\ncBjCsK6CY1QRVugEUIWNUbjRmTFFmW/YiLQqw5uBoPRP/NPEO48btSbgiRZB\nHIKUIlS1mqeD1E9vgM06Hp7MxkP2ICzifMVXyh+xI9PU0W52I1DAkxQA/Yae\nPB0I\r\n=N6KX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"58ca62d656961db0f12fca13446f47af34ce8e9b","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.20.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.6_1591631068528_0.8784460527716531","host":"s3://npm-registry-packages"}},"5.0.0-beta.7":{"name":"streamr-client-protocol","version":"5.0.0-beta.7","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.7","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"cf86b5a60fd3d3ab2460a936d48e2a321e93e1b0","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.7.tgz","fileCount":135,"integrity":"sha512-ISAok82mrQIflH+CJaV6W0z2AAX3cYhZRTfPd4gcVDPKJ5jIPEunLt7QtxJFPRnj5y1gKlcs/VvMbpNKI7g1ig==","signatures":[{"sig":"MEYCIQCPXMzE6cHDfJqzWmNsKyjyLuHhLLFEjQWSrMKjhrGFbQIhAOMS/iEfTmZ/q2yGMed+t2VSJwW60h1JhVgabUakvWIO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1973300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4UpQCRA9TVsSAnZWagAAjnYP/2374nqcdlryJY4y2myw\nJZWAxr6LMFw3O1Iwkw+tzHuKUnEn/mMQKBvXYUSg7+7FnZOB7oRVZtKRwS5Z\n7g6NwUoDu1QC/QeRpfKtJeK48KyVUm28P4rn0apSP3/rdiIDwLrp3OLqzS83\nCSI3Ta/uZKbriVPKdCYEkUXMD5BbjL37E0SU1ODHC9Gfbv6ZGFfycOqEZvqE\nnnHI2+fHl8t0t0fyctOTmzjskcByG9zD+lG24ErprQ/ruEqP0xs4xozQUL/d\n+8gNvAIrcFoOBIMZ/9OBU8hvA9RttgLsfc64pp9V435hmmYKNUMLmVBZuGbL\n/YaciSV0GnWTCe5TSrrnvc65jobpbTDZQ7tec8Q4hXGpO9FIJkJfrcbysZYl\nQUHLP76GJ5oqtRAAr3tRkH5CkQOyy+aozQ/liAQKKmUIUbN096eOYGHAph4e\nkhyfA40UrPotweOVDVHNoADPYreybL+HPsnBhfav3FVn4RxQDVt7WuqOgXQ/\nMiJ37NrkAVNov4zQWxkNyvrkD2vAh0UjyoLFGxIfueUhUwURIUcD5HuNklAt\nHLPWqO6lZ5CnSTSQvxOifTW9FAVAC4k3r9gqRz8M4olDYrP0XZySDL4GFs5G\nk5Gru0T52JuhRS3m1/BKtIwRIduOJXyyKLVH0K0mAhXCeToop2GuuDLsKI7u\nqmPX\r\n=OfBt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"541286c08c59f937e2880257b764dc4e32d2a50d","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.7_1591822928199_0.13813850015821183","host":"s3://npm-registry-packages"}},"5.0.0-beta.8":{"name":"streamr-client-protocol","version":"5.0.0-beta.8","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.8","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"546d426404e3ab2296b6a0e671da54954645f956","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.8.tgz","fileCount":138,"integrity":"sha512-9oT0GLzAXP3h1Y1QeAxygfzbfYHRzwARB7TOWRQgbeCY/zetJp/sCmmyQ8TVg6uYlVKfN8ru9AASIdXd2plFGg==","signatures":[{"sig":"MEQCIDVMM0zkLwgfR9hdVFAho4FldDENmABbrcOe7U3ajOPVAiBnpeJPUVBWTyb8QCXsl4Njev9watlcOR2b868AKMcbYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3097401,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8Nh7CRA9TVsSAnZWagAADJ4P/iovEc3kaNoj8/TePxU1\ngUzmm0S9NAVTKPL25wk8Ii1dK1pulSEZ/R2GoRik/2BqoT2rnKY70Z+L0/5Y\n8HAHqeVmyhbdBjPByTDIn3Dx7iessLPy+5YTq6p19hMZETEklre/cjpfQSRY\nm8tbkqW2Lm8mVuxxt4j+itEFQaPfZDb3lvvyk99JABIgpd89e6Uh3zeLH8cZ\nhtP8KhRw4WRgeL/xCGDBRk839E0DLvTVrpRm0kWaGtUcuOzKKGKPU1uB7C9i\nYjr1ZOe4FTT75bmOk9cSIZjcAOY0zi2HZ0jnZrTjAbE5j8OlZFDj9wJMBGG3\nm9qvuCuTSpXX97vdDkS20DTI4mPnC64ARIbJTcF7zZ36h+p+gQKwAJLMUevy\n1LaxYcP1+T+79c1ubvn6IAobVup/h9bU63sf+FkF/795grXhbpVPUymx0+yA\nPmQPgiNKhqlvgqKEpkx+Ta2Ds2V2cBZ+BgYQrcLqmplGq0cZIHhplUAlCAOx\ngjdSpC2N6Fq1Lo2RTAEmVPtCLgjEB+8ZlneNh0pWlxqBbXUp5d90sXYxxmBL\nxeDerGBRghqJVImSxNWtuhUb6BwK7v1ofB3xuKB1G3s71e6C9tAxhcToyOqT\nCCFAN1r9yaTHiCh1lpEai7QkJcK6hfAMiKbfSdIk1de5sivzIeidDo3cBxRR\nN/UL\r\n=qdns\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"6a9d02a49af2e9801beb59cce029ceb246d92907","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.20.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.8_1592842363450_0.3997610972453618","host":"s3://npm-registry-packages"}},"5.0.0-beta.9":{"name":"streamr-client-protocol","version":"5.0.0-beta.9","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.9","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"40881d83972138970e2ad3812aa70f1c86929ed2","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.9.tgz","fileCount":138,"integrity":"sha512-yESVBg0ANceknEyv7RUsgmiFPYrHayVQd4xDmGv9mRyakVHBbNfy1UWicMWfdiWSkZ5eVExjIcC45przBmwRJA==","signatures":[{"sig":"MEUCIEFedOlCP8j547YE6WVkMq2Gl2XWgk7rQPbik1eTmGP3AiEA83bGB2oym3qLX7idSyVMvBAy8VIxE3AKYayn9DuYqK4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3097843,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9lW9CRA9TVsSAnZWagAAjUwP+gPnVwn/8LYhda5icMFQ\nqXhU/CTFni6d4Bfcb6+YBtUgls95KMKydsU/aGmp1X4Sq3Qd7UMrWxFCnDYQ\nYHZtnNDaDNn2TVG/PwEQ+Yb7EkyrO/63zpdiF+Bll8Ys0BlD7EUKyTD6QMpt\nxlPZwGAUmaYvsfDIxGsoURymejhNXaF2KI9jINfecYcBa2IRFyhs13qNLAEY\nhYC6iix8whXq4gQrwUoeP9mrCqz4EiSgu+wtnAKLbt5ZWvCwNs24c4bh3y1f\nc9y8zITz1ZiMwHWjb4p75yeyyIdZ9JEVQ7TiZSSH8M7FO2SpOgDr4PF7CTOw\nvEmWejt+UierHwNTFSfLCR+933KJeYHMdFisscnHhokmMVZu5oWFFWTt38V2\nm4iPtdrQP25XeK6N47lmKW9kBYo+plYftIEYbjQ/w5cj67t0/RsLCGcQMFUG\nH7yKLv0LyrvBlJu+/vP2sPiZ+GFeCm3XNbcpT6U0+OKfTUytP1Yb2ev1ueTw\nhqN2I/4+A4K0Yo14f/aW/yEIeTbVWcJ41cZjMMjX4SyYcZ5VrxF1KK1NvlMR\ngXw5LrifWePGDxMzQ91PJSblE7A3n+h9mCmYfUeAHYF24/yfjqyZUPotfncS\nBc4tF5Cwbg1ibiVNxfMzD8IY768Ox7k9WpQSVurD6e/JWoANrS+FKPYA9hf8\nFUul\r\n=F2xD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"3c93083e41e8fd0001784b21055d84cce7b98dcf","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.4","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"10.21.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.9_1593202108560_0.10927250327493554","host":"s3://npm-registry-packages"}},"5.0.0-beta.10":{"name":"streamr-client-protocol","version":"5.0.0-beta.10","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.10","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"570cda090c1a4e0e3367cef5a86256d8afc93c09","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.10.tgz","fileCount":135,"integrity":"sha512-vQfOBcMLupLVCAL0emRy+Ifr8iiTkI8hE7NO4LRsAzGbGn8+okB6QsfEQc6LsKlOUQuwQGRebRHLQbru3IE7Fg==","signatures":[{"sig":"MEUCIQCEw+/Em9YFX7qpmKukbnwzcdfL7od24X1/w6CrtLgk3QIgWw36l8/Xn3T8fA7R95S9iczh4RzZO1viPUhKAqT1c7k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1990573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/vnaCRA9TVsSAnZWagAA9y0P/22jgzGbsqmcNYL3opM1\nu9aTW/FMKqv0h1reHfu+dXp6weGqJ9OkJkS/AcMQAt+zA4B0VyWtD8v7YuAq\nPU0cCHM4/hqRCVrBSISgtIAYJ68z7kslMQ0adbEfbwZdr7SWhYlyCRBKrgMp\nVcVw1hf4EMMFuD+0EmCBsqcIQPErI2Euipm0q5LRE7kwM0mKLk17tgNmwUnK\ncnfGOoLY7XZLZkGXqFPl17a2Al0hsW6R/1X+KerkQYr8kKkDT//UXF1wdR2n\njCHIebpTkbtN/XRDo0Z3jIORtCA6jc8VnqgkIUVAjVK49XKYZVLZrIc9F4Q2\n2Dpezi48gL8itCom6w/Ze+lTDHHPbeWfKfXAyf45RtXQucE/HHv6wwbdeWtK\nCEJ/XvWx490zhmhZbZo6yza2U+SmMEO42P+kkiolk3dIUUASyAm91CHRbz/K\nkPl7KBjPdWNktXp31WL0IctvvNHoFVFRVWdrRAYGaC0DwRoAfYAaoPCqBExr\nfcyLOlm1VxN0o4XWht99pq5Tqk6BgSatGeDDhkLRfM50Ay4rfeDUwTOSWz9c\nEHeP5p/09HFWHDzlRvZAtKbIee21BXw+v4BSHdFv0HnJXRMAtZdDoKKq3qQO\nfkSYryJqN/gdSlk00yiR0v1oPyUvLH+VfoY0tU1ie+D9r2KcchlZUsyYf36r\nXsMJ\r\n=Zq4/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"37ccdde4a6d94eb129cfa40a0013794d44cd76ac","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.5","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.10_1593768410299_0.6047140833815825","host":"s3://npm-registry-packages"}},"5.0.0-beta.11":{"name":"streamr-client-protocol","version":"5.0.0-beta.11","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.11","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"b60d52d553db96aa265f47229b363f812618f409","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.11.tgz","fileCount":135,"integrity":"sha512-ckIuF67DAgyozhSp+wxRd0C99bNLomgJk5+2t506Ko58c6uN1oiBDY2zPbsd0RQRJh/OSkMcgV1J6uf3oJdotw==","signatures":[{"sig":"MEUCIB6KWfgolZfCb1pOfWrhYQxYiORu++3ogdEipygZrTJuAiEA7cICo9g2C5tUP441BHLyUQeudju62+VmZZM8GJA+6MU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1992107,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/w15CRA9TVsSAnZWagAAzzsQAJ+DG2Jzhw6s3BvvJvwC\nHFCAcDI9dNTDns0xC96lUYePHO2YHVq3CpzpIrPJpzrO/KbSa4i+8BWXVp3Q\nuK9HiYdp8znyP79RYhdQEN7PD/JlCSYwGWW10/mR8QSQ6h2l7x1LH39mFnP9\nWtMOhFuvEzbXksZCl7H5aESsLLnAQayENI8+8wJwq/Kz2mQ/jSFDfr5/6r0U\nNYY7MfgdjYE5ERzoem4vuR+0pTEILDNyFmUtQ1FsQ2ZBy1SUHzw/1zVOZY61\nUfwkIXPf6MUJHuVzEsfnPSn2vXClzLOEbKrPmXCGYjiCt31hbCcfAZpdQk6o\nX7rpHgSaQZe1zNQnXGHA1BfAxSZg1RAIsM3veM8bd2kYPl5lK9C8yPQcuwPH\ngWX79uBaLL45aIzAPK9eu5KRxeKqnmFMgdbmyiIEWMK0K9AbOfzv6P7iOYf2\nsek6UZ9kSDSDZW0R4x89w0rNIJJ1MAQsWY9an2TV2U/ijIEMFftaRGUDZ2Lk\nOs+yuapvJQ1hTJybxcr+003EWgorfgl24tmOSLZWTkgd9XdK/HwAODsmE1SH\n/zax74wVf7z8ZJySLiVDb2tLMSjR2WtH7nKelVV0Pr154AzYglZHz2vULsnN\n847ToQSrj0XoDsnkrL8QUGFqIPER3UOoph8ZYxovfg98G/ia5g50oJiLeV00\nzoVt\r\n=UN+m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"853f0bf114e5e5ecaff00eaa6225b29d5552c537","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.5","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.11_1593773433024_0.6637026279278688","host":"s3://npm-registry-packages"}},"5.0.0-beta.12":{"name":"streamr-client-protocol","version":"5.0.0-beta.12","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.12","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"9ecb4c8614a5a763e56d04275d3f9e904a04a5a1","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.12.tgz","fileCount":146,"integrity":"sha512-5+qEAlp9AJ9U/92w+ut/Ewgety3bO+vBMnT8K1uVLqsdX5wnG046hyfJLAakR/px5y9qa653DLbMDY+RhmgINg==","signatures":[{"sig":"MEQCIC/N9oh+oHJM92tY3clxHWtMZkJX3cvbJUatZKpHsmXpAiAuws8xpdGoAMHCVrbXGaIkj8fhd6zK6hI2LEii1QlO0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2042336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHzAeCRA9TVsSAnZWagAACrMP/3SnRr4qK427eCSset6r\nNSXIXYOAg2cIvNPL1JXoW6mRkE+l9cvcQH49lWlM69Uu9kKLTy7wslXfrtYY\nvBaJYRv3buFW8bbliAC0cg+OVM5qgVtWHSyoIrQ8eqgW9edSQcubuoSXVIOc\nm2pC+WrPwnMt+IH5YeZRcuvXdGaICMiGLACTbR8/+bVZ5HwWyQmHKQyoIHmh\n3IMcKOFGvt1RnRgso4KVZa/NetrYv6OKkDwo+leHdIxed1nJm6XLldJHXijt\n0GRAWWJ8X3BXRKv4PGbFqYwgZ+7LXIR+h3k8acuzILf/h83pHLmNZ16EAbjR\nbM6Of6IjZs2zJEDD4x+DsjNAEnWWgoxfIeTOjFvz7booe8KoXAVVcSfvgKzr\nzxhnZT/pD7OnKXVWHMgwpBLVkx26yFT4HmoBtnRcLn3A2YpYAUxDR3578pQp\nLVf6OrX+uGDoGXQakr9JOboOqgwdnPz8usmpIMTGjGQZYOVbNj08EZVTtstR\n+lHz40khobU6feOYWUXcl6Dd6JOoXv47QvCvAT0aKoTY9jhSdFunXS0Q1x5f\nv1fz87DmVW4AQVltOef3+5CjQ7FJ5iuch2nZNz/BmYuJxd364sNp7irq9r25\niSdYDCNAWX8k06SzsC+F6tShKtV7OVWwf5+XfVvWPWGSOKwb+u09pTC5XI82\nHHMG\r\n=o7zL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"0e00192a38138d57b60eac1954e8ac3cea3e1d4b","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.5","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.2","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.12_1595879454002_0.8521398235592701","host":"s3://npm-registry-packages"}},"5.0.0-beta.13":{"name":"streamr-client-protocol","version":"5.0.0-beta.13","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.13","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"5ed31f94a1204e6eefb0f9c5235fa3e06e276710","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.13.tgz","fileCount":147,"integrity":"sha512-SZZRv0hSe0iyJaCCwEvkGHgQxxDqqeP5wYvOjfQ1C/PS0oEwSEBrqZL8WqzfO333xmyWbZhBEwx6Fes5QKSBKw==","signatures":[{"sig":"MEYCIQCeQiBmhvEQkeCLqFlC/5AvBXjKqeKMgqvkMx39/UE0OQIhAP4H/+kHMD2ZqTpExt6qGsn7DlYXtdAxhuDlMTVujKAK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2054182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH0I7CRA9TVsSAnZWagAAWFUP/jTJC3VWTVrkCs7d8/8s\nxkwY4sgGhJzxJLwr0YN9R/LMv1xjpOoKzwhCaIGI/6kYLhrDRbkPz52YWEiw\ntMM3voCd0aLFPsAhqAoPuVnl0h8EA0g/YcrJb1NRqCGrYX1/veTTr4ihY+E/\nh/SV8jPZfFrg25KYDZ+slD33z2baSeBBKWTG78sWpPGecMWWBTFwMcvCWeRX\nfqW51Qq/IzT3T8Xybb7mscpNpdzT9rn54VYHD0OXAMA4p0muLCs1bQ5AL9Ob\nN41SoljJaVJlJqQHWF/6tnpm/L4LPal/9UGzwzSG+AxrPEfRtL2KiaeH+Rja\n+d/PZHDlTKpJoQ3JjK946uy4TTFin2AKGT65Hm/DMs/i4NY/OFJSPb0FHVLH\ng9qWVplXJUhORoLD70wWrNkBIRm0XhYAj77EBOF3JqQ4WUya9oV4AZuYsxxJ\nCvbFI93QcChBlaIB9SCVj35ZTLoPlEnH5HNml8QaraMRcNH+ZNMbFAPjwSeB\n3WyWyRsJPTzlieYlSBpMwNuAWCYQqFThB4GxBZckjIpChE/aibEE8bJ16ksI\ntAygCK3LoOxAuXnrfMQ5e3QHI05Bj8P/doCSuJEo5xSyLbTsiT6cVW+DrWVi\nVIdfNNBBsl4fchIZNL7zv7KEXbfN7BLGToQmAYsMzQMzEg5IHt6G6M/EOzEx\nnC93\r\n=uxOM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"cc0c47d7f4f42f3256b5a48629176810724ad4fe","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.5","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.2","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.13_1595884090991_0.666365102470801","host":"s3://npm-registry-packages"}},"5.0.0-beta.14":{"name":"streamr-client-protocol","version":"5.0.0-beta.14","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.14","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"e5a516c261d831e79e7c2ef07e7f7fc114ddd508","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.14.tgz","fileCount":147,"integrity":"sha512-WsaC4uD4r8HydmNhtEvOkrt6nY0mlz20qBjMOSPXwgsVnab8+INF5qZTIUsKOlFtMUq+PaWFjSsbAY7nUxU2AA==","signatures":[{"sig":"MEQCIHRtE0L8sls2y96lAxGJjuXCc51FwFn+83CABgDCDszUAiBTAAZN8ZahlVzF36sEwJadjQ81tN8Av6xcNZrp/muv3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2056363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH0JJCRA9TVsSAnZWagAABQcP/1aFudBFji3WuQxMObAt\nisSGFqoHW22BJeGYtWWNiTC0GKaF3P/dZpOhZ1DHqwVmVsTFKDIyC6cTGMqe\nbFyk51z9vzc7znOQex0/UleVjdmw0sAvm6PEiELccpFZ1Nyn9Cy0RYjYqmlF\nqYloE526XlYekBgihSiIVnqJKAeOKcZxLDp+JRfYd5si4RGf5x+XB3dO93w1\nKn4JsJ+LS05nygvZFcfbS0TqflNTsG9dBs/AfVIr+r/YqloU08w7RqukDfzY\n8p6ZbuyureG4Bu4CP6ec/Lfhg4epyap4IXabT1Y7oABqPsJZSltv1bIreH63\nzqlGz0Qxwz2CRC/8apISDx2kE1nVz/yRPxxcI6U6bs8Me5vukBdrYrgWHhWF\nNoT0c5glKavkUOXexd7dq7aymhdisvzthBe9nnnWjWDxNTWGkmmwaGz9rwyJ\n7+tNbr3DdXSm7C2xi+6+w9NA7Aq2b20PwmhD0GIhkHb2OK5SgWLyZeHcuI3F\njMZ4wg9W7ueCj93aQFjIw9509pg0vtNVqnKKl2Yo5vGBh2KtSX6Lu3DR/FwK\nCmYyslETqMSgk4iIiOZSCXQk6eB5yMswD7vn2J0hTqSz5tBcmN+Q2tkDXBzv\nSPtUsKD5HFxX9Thu343EzKGGDcCXtaTMGH1SsqiOC7Ww6WnUbXulTbNwNMlk\nRZ64\r\n=7WZq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"d736da51cec673cd2c04cc58095e4b64326c93a2","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.5","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.2","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.14_1595884105002_0.21223082617011535","host":"s3://npm-registry-packages"}},"5.0.0-beta.15":{"name":"streamr-client-protocol","version":"5.0.0-beta.15","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.15","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"73c4adfb0d8a99ced7ae8ae0e0631c4e8c89508e","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.15.tgz","fileCount":147,"integrity":"sha512-oOmNAz2HpHLeACFr6Y+lne6jmIenCovUcJC+JMa2ujxdNFv8LdBHigbP8fNHXXqqFenlrZjh2xfSRIOJdWyUZg==","signatures":[{"sig":"MEYCIQDlRLG1hblNAsiyOJixn8Ysd2+bNPtq4vBnfQDr9wslygIhAPOmV1lzblZ8PHoPLgtNxizeJnz14KFLzmwCMFEIuSob","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2057255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfId60CRA9TVsSAnZWagAAUuwP/jb3F8JAGezVBj3mwH7n\nHf141sj8e+u3tstReW6b2xuDa3pMet45SEo6OJ7dHeve3RBbQtD6gcpbucq5\nc2bRXQ9QmKe50sXCyYwx1I/IS0kPM8//Js5SD6gHDwN+EE3U4Hq1nw42Kv/k\nq9OAsRY8n+6QZ8rJcy9QquoF7KA9eHy774KZXVjNjzOiICAX1RkqUS9pWqt8\n6sz6995RTjvi6lc/MGUJocW3HT1Eaup3kSoTa9ix5aWqlMf3WmpAY6xrr+1V\nE1ioSC06qSNFOJr7pXiyY+vU+1JUuxTfN2bQ87aDs1du6qO6epavP3onzY5Q\nZkQaqGpWN6Z++EkdBiU/JJZhOo2D72djgaiEtErH5inDsq5wxCvc1dc4o4b0\nQ7pCoAAYHhS8uFnuFbm+Puu5LtRcJUmeNel2hF/XWKmQFHt3g33Rg1z2Fdrm\nTAPrulefM2wMvhMoUMCPn7X9TBJurTMLNuwi5M+yzmFgObhEgtBMGhbYL5ee\nkBeIC5VgYgGPLSQHWKa4ynM+GtOFREZtmY1CFrDGvaDWxZ1oKL7gqn/4bATH\nBOpVtoWe6BukV3MblVMzqNCUqFwdvkWHW3hF/tLgaOLiuwdwVH1LOIUI+GdJ\negZtK98xQtri+mk9KnvMfL4Jz0hbFYjVyZiP6hXUEFgUCY57Yr4Aa3nHsCn0\nFzEJ\r\n=w1Yo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"72eb56d8b138deb7d8ff48a67f1871de45211917","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.5","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.2","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.15_1596055220116_0.27803699621041766","host":"s3://npm-registry-packages"}},"5.0.0-beta.16":{"name":"streamr-client-protocol","version":"5.0.0-beta.16","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0-beta.16","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"1d0a490a7690bd4877f24fb9addbb318ff984709","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0-beta.16.tgz","fileCount":147,"integrity":"sha512-LI4Yw5iK+UI4hhU+HQqiZl+4FxX9J7Ii8pcH1Q5PwBTurcwBXDUH4fX7l0WGK8XSUzt6EHgiBuHrhPefkwIz+Q==","signatures":[{"sig":"MEQCIFVIKei6uXT9rBkltyKhaREo9ZvDwNJmlUWBcoiRDAa1AiAu+EAQSt7SZUHxh3PMBcIN1EjS0ahJuchieKQBKy9Ryg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2061594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKUgaCRA9TVsSAnZWagAAPCYP+gNzlEnNcPgEhA+CZDlr\n9rkriwjHCIa0hd1GA2/MPhypdaGVL1uxBlsVTqMYOhZP3Lkbg3FQdYlW/6fy\nQk0DuxtdDIdXKyctoPfFwYLnBEcWgMl21WtGgX+cncB5Rwio0dsmGHvZfZcE\noXySQhM3T2mhfybY8rE7yT6hdNngKzsj37c5lNCJ3YHaewDL/AXR3DGoVdaI\nOzaKjCQgwyhKeHfGRrYjaZRdh3CE78vicXrt52X+tuyb5bxFpTSnenMecpr3\njFsNZsL7FaJcKqj9V2eNK5zFACtc24yRJyP3t8SfYy90+6dHrrgajK5oLmuE\nPJPqQLOEgSQmfzjLFcUT3v46BIDZt+8QEkNVykD0jXKw63Ry5nJv3EUp56Y4\nCl1QlmzR2pwdapDcs3+TJKavH4gNjNLBVx0nHjjs7js1UDDM9uEth2pOcAgN\nX6XSZ+vNNnT9arTUokM4lbxqZCvS1tYx7+t2F3grxVDtopd6XWIbDJvMUWCn\nRS38/Mp1toYbx5dfrALP6NUdp1YnW9E7FFCgfZ1EHJ+Jjbn8Edke0By0bmAF\nZ0m4h5ynr4MjH7FOzYBwMYOolWdFB96qDgf+Mpwgk3REa/4J2H51KrnyI9TF\np3oCWdcotO1l0rfHAPNtfvSmSjYU7QnRVYH9ONS0ey6GXI3mqE8QUtPIESsw\nAWoU\r\n=AYhQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"a4606a792d6c6f4d9fa65b564fe02ad545511432","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0-beta.16_1596540954352_0.435892073389607","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"streamr-client-protocol","version":"5.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.0.0","maintainers":[{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"0a43545d036d224cdff0b964d817abf5ca00e81a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.0.0.tgz","fileCount":152,"integrity":"sha512-lvcODgdK3uHQHRtZPBTGyRxctWANLBaQW8oyP4IyM/J6ZRbzgvJ6hVITEsKS3hOf2+BRrvO48N6mEqCZjq/1yQ==","signatures":[{"sig":"MEUCIFdJQPwwYRZ2JRZWwlELDj/WsIdEIInuaiRZaHDzEpuTAiEArs7mbGAD9RxhtxXTxHHg85UsKzrwwwK693751GzAhbE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2077250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUKP2CRA9TVsSAnZWagAATEAQAIsjse1UaJJlgsXlU86X\njIGsQvMbvhapnS/ytyDcofjVI4U7MDeIW2p8MRFQzXkMA5FbKypR7mg49jN6\nOW1lH5hIyMHr9vFD42ROrIUj8dieEd/R3hCarB19KgypSptZZRYmOq4NgmWN\neGpMg3HBMzoLsb1MGhX20PoK/whLH0ZBL40jTbM0waXWFMbdcq95AF1U8hRg\nBNZuWAf44lzAqPTNFvN0w4XtfkeHAFDsB3WQEIP7FebeH6dKhl6Pnskr90Vy\nCXoKvOzMUlSWI5DwI7h5D3nmM1Er41nyMPJ7N/Ivg7CYefYXpjf/ufJrFvwY\nCueqdp8CgdNLDTuzSA6jE2gwRgTVkmol4STG8iesf99lwPNPFJglW1OUEvy1\nFKufhEW9uy+kBbnOzpLVDYRhB7ZJJlD+zUQJk3G0yk/wT/8KdZpqbJC85MHK\nH5iXN9YyirEJ3XJznEjOpqUow+lDDuSKR8H4ArUyNVNWGzzeZ7TFeeufZe/b\nzLzint+kwOAjer52Z7bA/g+t2Vt68czood66aA9xwkeYI8kMpfX/k5v8slrd\nNA25QdfbilhXCW+s951xk4ZS4xCdA/yWNw1zDNP5yqnGDJqnyxeF3i/LTyFV\nR4qz+WkZnnV2Q4JBaOISM8LirqBFdeulWayXnhEaq9px/QzXxnM1iLhgAtke\nJtC5\r\n=NUxX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"d6f0611baef28e4c31bbe00fdc7eca7231be06e1","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.0.0_1599120374241_0.23997688146559026","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"streamr-client-protocol","version":"5.1.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.1.0","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"f035eff08ee9a43753aa677c04f0f20342adf95d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.1.0.tgz","fileCount":164,"integrity":"sha512-uIH5vzvrm6JObTjUOSRW9NTH/wVVST+2/QadZueopDXJXIuwmMFyY8ekKphCE3wkl55Jx6epVDiZABR6xzCJZg==","signatures":[{"sig":"MEQCIFoJ0wKfR+oIVrY7U7ENZgW5NXxcCTywkEeQsUPXVpPoAiA6bhEtHSgntA9u0LYXnMDmEde0xmaWxilk8bdC7oGLbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2142151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW0BkCRA9TVsSAnZWagAAfrMQAJaqeizeK9C2ES0CPI5f\na8tVzi7dcBaw6anjvM+6mLt2IumAo2JVcgrrlSvb+G0MIR78oGYlyDioH5oT\nsRF4Yz/Jdw/Pj3sNSaVVp6iFBmsbsfBna2Jd7EMliNOLwQI2xULEJZgTUxsR\njTdqTznUJLxtvrCfDiqj8O3Y0/Lm42xF6VntVaBmiCh+qQ3OOuCBLHSyE0+6\nJ6H2cU5SZSgydQzUW8Lbq4jGA24wlY7K7FRmkOkMz+6NSeCAYGJBRgmkYpz8\nZ5gtVbuq4n0i7MQiMInZKRQW74Ehbk5XkysauwLws2/+Ox8shMiBscP4W5r9\nIo92OViqfWavTkRWL+QI1GH65v4uIwO5oz/Vk+nE2L3G+N8OhAKDpGfTLN/l\nrRglJ2B1PlHik4crRZPDu3ybjzliG6MEfomNBC6VLbbnmkkYJuiDZ+8jNwtX\niLbVbtXmLx4gndcN8rPpnEU5yqJ/4QbHCf8b8COGBkNjG4KXvkG5nsaO6qO/\ngRnn7sZwrAjANkiUwBsd1D+q/2b00RcSzjKDj4/25y85MU3D0AgSryAuVShP\n/Orgaqb39r4+gNBcZwShbLzJXu2KNrekg7rqyzzSBuQGj/0u0mSdVIlkQfhT\nopf6GWHqPnb4e1KICiDmZTrTn8WF0srICTs23YXJTqOYOxmudttA4ExFYtjk\nuLu7\r\n=wJDv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"9a7eae21c9aeb8da980563a5ed855cbf2b2dd300","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"NODE_ENV=production webpack","eslint":"eslint src/** test/**","prepare":"npm run build","pretest":"npm run eslint"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.2","debug":"^4.1.1","core-js":"^3.6.5","secp256k1":"^4.0.1","eventemitter3":"^4.0.0","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.9.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.0.1","sinon":"^9.0.2","eslint":"^6.8.0","ethers":"^4.0.47","webpack":"^4.43.0","@babel/cli":"^7.8.4","babel-jest":"^26.0.1","@babel/core":"^7.9.0","await-sleep":"0.0.1","webpack-cli":"^3.3.11","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^4.2.2","@babel/preset-env":"^7.9.5","web3-eth-accounts":"^1.2.7","eslint-config-airbnb":"^18.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^3.0.0","webpack-node-externals":"^1.7.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.9.5","@babel/plugin-transform-runtime":"^7.9.0","babel-plugin-add-module-exports":"^1.0.2","@babel/plugin-proposal-class-properties":"^7.8.3","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.9.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.1.0_1599815779942_0.4260547058391728","host":"s3://npm-registry-packages"}},"5.2.0":{"name":"streamr-client-protocol","version":"5.2.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.2.0","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"d90495d5534b43938be3fdd97ffe42012163f3f8","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.2.0.tgz","fileCount":167,"integrity":"sha512-CclvCdgXPQbi3NV4skYPEgxyzcK5H3AdOqmLmWEax0KG5j5t7lSEd2+ZA/amCqA1uV9rdlXPIGdCLDvKnvfXaA==","signatures":[{"sig":"MEUCIQDOUNgzhiYIpF01oFX0hY3mYg1Fa5+YCop1XpfwaXR97QIgemw4hOk8jf6W7ZQZDybXpXkvICfh0+BQqZcqr72N7FI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5621610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfawGYCRA9TVsSAnZWagAAf9YQAJ+zwcPCrbwJTiCym0ZV\nLF349b2aClcTf5IBlM3vQ42JJY57nFD1CHSYb5bpFlps/20iwCbv+jOTiHhS\nPtcYPiByEmKXzcg1aQneLbxEyosZtl7L0tjEiKBZAgPB6vt0y0I/Ct860kTx\nASaGd3WBDootPXfNelbhBD19CqVDEF15DydtfQ853Z26MTg973wtak1ERuDP\nrv3FU39cUEpL/4UV/bvhYp1jyPJbDg3jCfQEkldod+YiftvCoR63cTq+5oNG\nHyofdsIIys/wW7O0gsAy2vySQxX5bvjMODoOKy4C3sWmi4km4z8k69+GyEFi\nGR9l3DIKb/EMOiR0QXkYJsAjFpNf/VSXobQnjjKVMZzUWqV7BmfSZKykxpe3\nG/GJJXnSh6b0BD9jtHKznb8C7bXpr088htcNsTFYKXuaMu1irX0O4hjFWxA7\nc7cr5nWiAoOCEZGpJ9iMvqmsKwNtkdpNNvCaNksMQlq+DvRhJMTGsSv4/uh1\nTp6OgvK6i907S6CVMI38GsMbsHR9ucNXruuYCj6JJinfY0AiOCESoL7tFkFC\nd03LYwutRD2ofiyQQdmhy6wC1GaMxpUyVAowW+aesgbtDL8qL27G7rlaJCzl\nW2AW36NzFPB4s9vUVxdMiVbri9nhYfPsEIDgdk9f/7NRGL8d6Tl7F/hXXoRG\nWp0I\r\n=cNy0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"b5a304b92dadd052de71bc5691da93ba7aef43dc","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","hashring":"^3.2.0","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.2.0_1600848279506_0.04785703155853094","host":"s3://npm-registry-packages"}},"5.3.0":{"name":"streamr-client-protocol","version":"5.3.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.3.0","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"81928165ddeae34c65e0a1aa20bce2a2e69ab01a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.3.0.tgz","fileCount":167,"integrity":"sha512-K5TFX6YcNGfmZAq3QEnC9NTiP5TbQNb/+p+/0SQmIyfdyk06g1ZVBDnKzdYJV9owcoa2YH2SMbFX+o61nNDf3Q==","signatures":[{"sig":"MEQCIHnTis8DXXh2WOEtI5V4pJ2RD9X2ArKVHTL1SHw6k8zQAiBkCyLK4/2hJ5Q/AZSvtkXkD3au3F1AGWuvnXNgg6BCsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5622627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaw/ZCRA9TVsSAnZWagAA9+MP/j3s/8UFihcJU78CiAAT\nq/544ouEPqRnRUaShfxpcDdw9YGwhnY6RL+cedS8lXc6iiaUJxNEanRocdY2\nzLFDcZ8jZRKfYy6G7IjQdaucWTuuOVVbkWPZqf5p6lk8gUuSSx5G/4+dROPU\n8/Nqsl40ovRJMxGvv+SESfLyCNofsNVryEZbH6F13XqWMkDyhSqzd386/oup\nlRD1wZcazxHiJHg4VlpNFcHZ1pZmEvMOXpiKbdgl5Xsl2MyjeO8SGxIOJ+tS\nLqVYl9BcFXjLuw0GVVvnRZnaatni5Ml8XAqOk1Z2OR2OFw3dOlicrVlbSlnu\nyEbril9RWXryYSy+a+74x/3OdMAHuqLsuosw3lrcm6v5WPCjbDFyzO+y0Kdq\npS2UGj++MB8EboGYlrm0I6QCpFm9kCeBFQNgEc48YoB/dgwqxnIUWJLHsWYI\ngS5dz4Fw12LQnuH7cOZpTjjTgzR7np32P7Pl0omtLaG9EqNwgyGe/nLbHGr9\nnPLRvdRRv1yuhca3zGmHa/LaTlJ/B7PNu0ZtjlyR1Yv42GrmyA2iDX+YfYq1\n6LuMgMfFojOtDGQPzBkOdjJ2ev4qfq97Wk1/SDkUDk7hUqM/DJVdwLqDnAmm\nepgTfQ6WM3iXQypt8jm9DqybbBFjEB8wjjb6EEC+90L79LgHJY3B1KNPazdv\n8Eix\r\n=2Tv8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"953d2e497b605464d445d746cbe34d1123d4c8f1","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.3","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","hashring":"^3.2.0","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.3.0_1600851928505_0.03215893245746293","host":"s3://npm-registry-packages"}},"5.3.1":{"name":"streamr-client-protocol","version":"5.3.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.3.1","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"be401ab122bb00efe1800b88c76dd0407de3bc4a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.3.1.tgz","fileCount":167,"integrity":"sha512-wEUlP/OCcmWv1A6e9xcd62Kyi8DkdLySuiHZlvETNsRzfQy6+c0C4C3avT04/dLdcvyD4B7zkvpMQCIKPrXRDQ==","signatures":[{"sig":"MEYCIQDEoC0OGvmmBlzW25iW99NptZXHzUf9nZRtRYWekm860QIhAP8BRiWH/dXXyWv2cSivkbJud6jV5cUkV558oEq2Sp2f","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5622700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbdtLCRA9TVsSAnZWagAAb2AP/2U4B2C4oKDQbZpJAL3i\n7UtkBG52AxLslcLnhzprajnf391GtFSpwxidujoN5Wm7U0EGwiRtHtGL7KGO\nrSQKxxSr/z0AFABXgebSpnz2DZ9MqsPL6FMt2gYjBATxpDhwyuyXqEmceAbs\nSbbXzMTF7aj98f7rrmkJ5ErCSliTNBXvXTVa6hmEaq8pD9OOeSk6B/YH/Mj9\nJrnUUrO3p6G86m+m5fCByqMJtomedk1m4DmFeq2byOOs/lzLav3fyoBFL03G\n94+F16A1H2VC+ZTkPIGGBDFbxuUEp7RrZF2ORZmTdSeWMNX59F4azWe7/I7u\nDNiWUIpbG31SrcNi7Bwa/jFigwcnhXYEgLFscF9xXnlM/jboeM3dIuaivf29\nULHAGqidbY7x5sNMMpieGJnJ+39P1H2i6W2jHxxKR4XzCbtfcNz26fcMOkIr\nlfRzpyW1gtEpxnQ/SbZqMd79E1oz6kwGSZW1ro8liObrjiFN9z2HQpMTW/0t\nbtL1f7DEQSh2Y/U7ag0jbE4FVEe+qCe6ZGvf7+NHluGvE70LmxhxX9PlTbPl\nRIS9VIT7+RZYtFMno1aOH3/4XtTfEM/9scThY6XLZeg7fUyPUBJ78kSqDBOX\nksEpHmOfgdNryB0IEJFj5PFrJxc8PWNqgqR3AC99Fa0AlYv5LfavLLEAwVzt\nnIjn\r\n=+EIR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"efd81f3c3f8865a87d5f7fc89b451797c8c3b596","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.4","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","hashring":"^3.2.0","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.3.1_1601035083266_0.1707301141150639","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"streamr-client-protocol","version":"6.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@6.0.0","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"7c939875df9771500061df00be00d02a992ad2af","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-6.0.0.tgz","fileCount":167,"integrity":"sha512-jmmjxTR3EtFN6ZdIsenZ2aIZdIZLz0EPhwSlP1SB2XKjMX89tadUlZG30higDGFkcZDZLNjk3reZCienDBxCJQ==","signatures":[{"sig":"MEYCIQDzi32fycNjjauXlYB7X3GKGTnqZULil8W9Pz6gkjZBOgIhAILPYs6NQqQVHB4+bU8xOpD7UP4eiRuLNw2jt7vPgkoB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4855058,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgFaICRA9TVsSAnZWagAAw4wP/R0wQRRaZBtykUs1rgE8\nEUEskzVREQfUN1hw7xJQdGO02344rP/uz5600evxl/WipS5h6kOzxu0BIlN/\nQPNYW6mzep60BO/Hm6CCacsFLfgNVuOp3B4mXjwtP3PDLvrq7yF+E/NHMIzL\nHim9pfV8lpCEbUGiUFY+PPKAwEwmGbyLnSymyo2tMdmfJH1qJLMomyPR9Z4V\n8FBhHXxxjD+/7KNxoNz+kN6ZM0JE2XyV7iL4sWTs4ycymtoCprPDjn+Xb2He\nsAujymFp4ZS+5sYxRJ+dF4pGygVoLl9fjcMOQH7TPYDINuECi/pILpu58Moa\nuEeC4Oac1jV/4CyCUpqVFIB4MbxkNZRy3FeK+tzuGaOqUNvuvcZqbZCWUmPi\nEuK9OYxwbYEqc/r+73PWk50XT51JEZlLXddwI+2esPDQvPz4F7nOeh3DKIs7\n6fjM0e+PeAnuVyJ5Hc/ktauxNA3lwzPBhV6YVjYVP5Xdii+WtNSFg9GJqGer\nwUo/Qvupfl8zrw4RF9VPogyg4Jajs81Jl/Tb4/wfP9IV1Jg5AzoaEbyKJ46w\n2mBG3WpMWmnTqNILNpvmwW9eOuXNhOSzHATqqm89mA7EsOX/RADvMoLWP0S4\nqmDSd6vmEEnmG9p5YK8pvdX8C/5dcgK/E4YfQMrayrZQCYPVShF6ZKWsYqY8\nUftr\r\n=gra0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"309fc18dc3677ffee16b213ee6310d5a011d71e3","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.4","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_6.0.0_1602246280095_0.16571700197050743","host":"s3://npm-registry-packages"}},"6.0.1":{"name":"streamr-client-protocol","version":"6.0.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@6.0.1","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"6e2aac57a07e54282e805bcda8523e7f52759056","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-6.0.1.tgz","fileCount":167,"integrity":"sha512-zMAXK8fSg0k2gRr50o/zUDg9GBXXeb526qTW30BZDURd9CRzB4swe0z4tbPXDqDIm0DZD3+T4MGYJ63SeBvUbg==","signatures":[{"sig":"MEYCIQCU/3NrsztVowcbmmNIXDiYkqL9gNav0c/ilbu7CZNpJgIhAJXGrWb7OicVYBakXeLIWXBgRJpiX+n+EyuJddYKkJuf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4855124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgGPOCRA9TVsSAnZWagAAR1sP/2l9wJV8lv1pJSzfUkU9\nqJNGTjIUcS+bns9LAl482CgunqRDvJDc9xWqBDPI5YMpsSwxhsq460PE9+hi\n6bN/t3ZDmQA+pT6scokzxhsDfkl3qQ1ggD4rng77XVXkIpLLWXg6LokgktHK\nuDZEcGVjE1+iGcq/4VfvXNPL35ZDU+lTLpCnV+lcB6wh7rUAodnGmS+fro9G\nc+PtqTUIsPcxVpgnKxw0czwMrSJwpK8HghV+bAx/CrTgJNqN4ebWSr2LAuXB\nt8OYtPoAsWfjAh+hh5IKOxXOm4k8HGtpnEn/3wfOtW0j4nAKAfAWekYkGQUX\nr2VbTryEHbPBPCX0mn5BsRPhLOUar+GNT1La7QMHkASe0axdrAOVTrvwEQWJ\nPqgWUa8XuGMzljLXbshD90vYRly7hhiACZNEs5PtWRSEC6BC3li++88dq8ME\nb7dMTlCvMLWMvoMvY4NTDJJFYT8zonTOmKBTEO37h+74UDct6Xf3nODOxdZP\nwkBj7chhFo2s9/Gf8lJJ0BOGuPp6yryNCwNAnNs+I1aBrn7IMQQvCz3FazDD\n8bDUwFcjciF2noxxRPHOxDvNIuz2uyEZ4gXvOp813FosIXNKaKg8UZWAJDtg\nTQwUbkuEf7lu/b9rp9hzvbslsbKT64vTpzN32UeE2nWa3uvxW1aB4X1Y7zSm\n2lqx\r\n=YqnV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"f8c7a967971b62dbc45c800a5e047c4d309188b8","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"mirpo","email":"miroslavpokrovskiy@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.4","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_6.0.1_1602249677708_0.3123839528699497","host":"s3://npm-registry-packages"}},"6.0.2":{"name":"streamr-client-protocol","version":"6.0.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@6.0.2","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"666e570f31a7a7a69ea91e1eb24d8831eccb056f","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-6.0.2.tgz","fileCount":167,"integrity":"sha512-JaIXly+AbjRe/sgvGt5ArElGz0RayIZAxs+8lgbawjYMNFcOqaQsJdkw0URZ4XZ5R3lNMAFQuaTVZ+9uPVmV9Q==","signatures":[{"sig":"MEQCIDKyYQC1T/o3VFENaFSceEpRK4ojTYLxaOivTfZeJVzVAiBj+C6Dv14CPIxC9vfdoXiwcrzFQD3TEsxsSTZwqjHFLw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4861378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhB1YCRA9TVsSAnZWagAABy8P+wWuz9+CFitU/cqhpFVU\nc62/QZJL5RV2gvCzZxst6hpNflV9SFySufhsvpxXY7K8Xwo1lyEevJKhK8/0\n3tZosxcrBrwh7fvJrQH+I6gfFoef+I38R4O4T7UHX7sCmOecxKAl8qaymjc6\nS77EiJtrPEVy3XB0cM8z06yo89gqUFHTf81gJzt/U7ZLcyH58aBlIZuYtMWZ\nh2efvKGzmrg7xylOVE2FN5Iqa6KJujtvJcHEKcF3/7uU02ghQKP4px3P0CEB\nIJRg611NAYq1Fx1mrjoGHOGBnJK/lVeV9VQUIRpP0WuU17Ywtj66mSp8HcDm\nOOFceD2r/x3LTRYdVfZQPCC/KURy52pjRdBQO2nrF3KDdR70aW7DyqoWBGOj\nOm3QhYd8lm3KU+o5jI8FSBoa4x5aZMD5hfS6s705lrCERQwoqLv3uvITfNAn\n2ojwDTlNw+XpIQmGoZ+EszRs2TdltO5Kht5xCvPfAhwMAqtiS+rnykdXY/4+\nrfqON9f2QYHwV0OthRzCoSIN44r5TFt0ev5SHkqc+ZJN+xvjQyLL+ZZCMOrm\nRzBw+fJfzOsbimwWG97/kJFj0iJBVPqCJT2M6eyo81KP39aZgrPhvk2D1Vk+\nMlxVC0Ws3Ypdwslm+k3Uz1qO2ZVAdqEAXDBDE5Nkm83WF2TFIBYl46Vn8lzT\njEGG\r\n=13Gu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"b9998424a8b380796221753c617b16a66317e3b6","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.7","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.7.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_6.0.2_1602493783905_0.04021643450073542","host":"s3://npm-registry-packages"}},"6.0.3":{"name":"streamr-client-protocol","version":"6.0.3","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@6.0.3","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mthambipillai","email":"melkiorthambipillai@gmail.com"},{"name":"mk_streamr","email":"mikhael.santos@streamr.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"d77479e12d019b8c9f11da182e4ee62e8b1718c9","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-6.0.3.tgz","fileCount":167,"integrity":"sha512-8POSbBWzethkmwKq5KAjy6iSCeoMPi6+ZaEoJy0jrH+NqC8b4yoYH31kugUy9PXA4ZHIHKVQm86U9X+ZWQT2pQ==","signatures":[{"sig":"MEUCIQDxjoZ6ek+gwzuefdy7vytNN6cincLomNaZkJXWRFd+LQIgIUzFtDTMvkBH2t2emUP5vWCU0FX92iPzWLsa2f67JsA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4860206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiBUpCRA9TVsSAnZWagAALRYQAJD0xVnRETnI00QF4sKJ\n8ALupj624KoYw5AaWCmha1wGT74nS9slORW9+Gx0O6vYabH3zsOowEJR2+10\nkksMmU/Z4ywiU9aNrQ7ECGVRF5EqxmNRDEQz82qyUTQel7iuFA5nBphKx0dl\nSuUgAXj3Q2qjTWBmIOcqCnDA4mkZTBI0q184ym9+6SXiIooKS+6wdkjhIsF/\nQPXnfH/Uw83gZ2geK4DYkyMnKi142yed2IWgVpHEFOS3HyYp2FW7lZfWbKb3\n2mVz1ZJTx/zE7vJDcyYhbzvajt1kMveB1n34vwkL3JucliMO3hkYpXdKXaui\naFKLpA+Ych+W+41USfSjYvhxY51dSvEh44wI53KZ/2V4y7MP/mehjY5IO29A\nuIORvh6t6AOZWhE0z5ocJbhXOa3A3XJKHkGNeiBwK0a6WpGqMzrxQNpPo6DV\n//p+QACTYThPGt6HdIrQ1iDRrESr/auIuZb1xaTDAGdxne+soaKfnHIUNRyK\n/lNR/trSRIjxVU7lKT25CTxbkewHOUv5piBI8l0yV7i1fCRK9M7VVOKvLAex\nASOTTj5T7ql4FgYirpbEM69ZlP2T3QDr+UNn9SnwYNZ5Q9ke80hJ+0Y4r/GY\nsZTf3RTW1AEMbeYxfCzG7GzNX/bbTmpwm0LWvUY98vDb6eTIEnMn8en9Lgbr\nUTR1\r\n=M9ib\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"3b740f03c04c331b885f698b93aad3e8ef90b107","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.6","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.18.4","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_6.0.3_1602753832625_0.46483585452375076","host":"s3://npm-registry-packages"}},"6.1.1-0":{"name":"streamr-client-protocol","version":"6.1.1-0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@6.1.1-0","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"1b189b9261b7a6ac0dac78a91102ec3781b540b6","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-6.1.1-0.tgz","fileCount":175,"integrity":"sha512-2ZjRh1nQvhMsjCB/4gwkrcSrCMCQzeGDZ6zEoF4sSgzj1DMKoCBxE0pVn9WfX89Z+X0JKA6Oi42uOsY/FAIFgg==","signatures":[{"sig":"MEUCIGIM9t1QC64R2pQ4vRgl+v8rqZ49rRYQZMaexUGSSIWIAiEArp+rjyjAeGSGa9S99PlAvDqXRYNm7H/mxZnPDnJXfno=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4906362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqUODCRA9TVsSAnZWagAAc2kP+QBiw38QQUkrIe3VHUPC\nWL89m/YqC87d//iys3qUP616PKsnyieHi/xdGBWskfa1HoI3EcSHfGA9hApp\nloVkLkRcnPxIfmjp9TMmbL80PXWL9eqxbbims94J6GFlVUvtL4wxMSsN/SQO\noCUBzu0xz/1qyNh6oieSMwKRVkXhMe4lttr+nCWCZ3kpW6B4T96gOr5QXuDL\njhRLJBk56wm37km4n5mRmRkiv38OHjW9A/ioX7YBZV1PT7LoClb4J9OwRxoi\nTJbeiYeqT7td9QLyiVtOexAax3D/BNvNj0EfKcIoeiG/zihjRUtPWLSNu0Qq\nwgpxqPrY3vh0AksKfd9Cm6s2cRNymOkfOXZL6RWXBXXNtL58UURYIWU6xcFk\n1YX8FnoxJhx390tppQNekc1hW/LdBSA2udLjdwLbkmcqoHa4QQ5S555xCi72\nDqFqvrveAPY8YqtPHcTPL/HTNotWpg2fML1q7E5JAlmanC1wzFZEzjYu5vex\nQzeA/j7inPG9m8DFlRo7mukxwNfvB5uj0scY2AsCHO/7s2+D+M2TsGJ7yy62\nhioqDfGVAfxw+qgYS/GTFw/OJRa2k+2VwMKo2Ft/TiQdaR9YkE08jezotOrX\n/8DTsF9lWGvSlAL2JeQO/7wox32SQ4uVUDLf3j+CcsNk6HbkCeDt7RaCYpeU\nXkBm\r\n=zl5N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"c5470e0be9f60bbf9749856f503bd4f37588aaea","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.19.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_6.1.1-0_1604928386495_0.6479214335553118","host":"s3://npm-registry-packages"}},"6.1.2-0":{"name":"streamr-client-protocol","version":"6.1.2-0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@6.1.2-0","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"9f52ad672942a0541f0dfd013d87602f7a92c405","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-6.1.2-0.tgz","fileCount":175,"integrity":"sha512-a0C73T7g6b3LFFVph+ZBOu1zlTTrKRTn9UoTckxjG2mWNcvnqi1qO2slKoMnONkAEoEFpgdekUsNT04P+yspXw==","signatures":[{"sig":"MEQCIFZ6iwcSTPw9edxQ4T5kXOzsPi0O5aRIbQVJx7evN+VXAiA3a95BoB+q9vHCoi3erPIsMMNwW48fMOY1a5XM7jH7aA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4905809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqWx1CRA9TVsSAnZWagAAJLMP/iZtaooPSEoyWhBoclRk\nxbXyDzBcpT+YFcI/wmQgDANIBP40zJtnbyWFJ5E9A5AW+J1iNEQYS+Z2NJco\nkoNWS/lECBrSfJKV5IRm0+zrMsNvNLCGS7hY6T22fWVhTHf5Dg/AznoP6kpP\nXdFxFpigo5HiMycR6PX29SS+3sbvfH8vANt6te+5zrnwc4TC0uBIU78gvBil\nGQSkmap2BpKtlwZSsZqfvgU84u3ZXzLxSvlXsaNCZjokbxvOl87gi51JgxTA\nV/hcwOPM5suFew+e6qQlZK5tZlh5E5N5fRX16F2vFIz9V/kRjxgI54VxOfdv\n//K+53/PSe21Y+QTtowvkO5VGgHZlP0H7EuU4/hMLVSU2Jfs9A7vP26593Bq\n/AbMQryha9VFArTRivsZZ4X9UBwnSVhEfgtEe+uOv2mtwySMRJMUd3Uk/3d5\no7Wq4aD1Qr34Y3jpMWfYgTWydiaKHtzPm69oQIuIdM7iS7exwSOOVLnPhvB4\n0jS2imFv94dnUbXTetavLKYrLScIudQQG0f6wu2GnS9coFzYuBwfSO5TPcdC\nixnvUf8wBqX22k2qLVkfhyPGxlo7ljb7zk1ur15pmNdFDoAskA/W9AYYycty\nYu8eoAPGiABZld2AL6pebuaE3gSpvtxUDEZ5pyaxnKtComYjKoJ9ni52aHxH\nXIIL\r\n=ANdb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"5bcc2d6c1ad30248ad36e4b0960f84d3727ef519","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.19.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_6.1.2-0_1604938868828_0.7740931674685045","host":"s3://npm-registry-packages"}},"6.0.4-alpha.1":{"name":"streamr-client-protocol","version":"6.0.4-alpha.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@6.0.4-alpha.1","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"088ae25ee2a0fe820ffcf6bef556cc64e8c30c2a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-6.0.4-alpha.1.tgz","fileCount":167,"integrity":"sha512-DJorQetpp+zW3DAKaUfY6erx1HkPF+rz4TVLU4lgDNmOQeJZuLsIFkKuTlBev/kH8Rx7p0jxp+pQ5BzsBcRYeg==","signatures":[{"sig":"MEUCIHrIeFP4blxg1YpAkwvBpJU7jGfWRWcbC1ndKUUnj5PbAiEA3UZ6qPvrDPCgGEV0vMn+tBuXdlfKb4lDjVnGWiIC79g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4868393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfuDU3CRA9TVsSAnZWagAA7rQP/im7sjNewFtbMxdAcTTh\nLZTjReDDXEi29VYEuVP4kp/repDjQ4YdF4qCIJ0fmAt/ribyjTF/ZBwibC83\ny3uXNjAAIJK3OmVvYyAgIB6uXNzpzdbkeYjJ+vZZCdRCAaGBsO73SU8Ynl6e\nWhF7F/Z9mfOdLk4vwQrFWnxSbPnt2IR/+jZWhN86J8kGYxvUp0empQT13EjZ\nGqGZXbnUg84pSBqm+Rh+3qjRtZ1U20znmEmo0okf3tTJpoXoqJKyynj2juA7\nwuNDk/Fh57vaPgfRILeVnGlWAOkZqUMfVM2kTcYYk+4pcN/OzmhpNWw4TBdq\n9wql+Ng3tRm2qaC3OV4BpFCQ7G1BgLF9stH/NgLYitj3HYNErqLILMv24GE1\nv/VH8mOxs62n5FSYlgVZIPvsukw224EYasg8j0P9AvYS408B4d3CP28OhDcX\n1amS1FzYC1KMSyOAug1d90PCBL0YRAbBeRtTfX4KVny58HdcJSnfRs/VZQ/G\nYO7bpB/vep/84fb4G9U3wwb8e7iV/ka2DfroC5RqBN5lknwGAYSPXdhctGOP\nS1Nom+CwwWoAYRKIbH4NGolnTmrJZB6Yz9+RNKkZlIJyaPplmWS+9IbW5q5R\nHtHtG3oeY/1ZxC85rXjqtdm1mMoOLrn++vaQAPUY8ew+cNLEPorxmecgAYOw\nYTY6\r\n=U5J1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"520d0e4823c8638c9ecd31fccffd4271d2040727","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.12.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_6.0.4-alpha.1_1605907766876_0.688283091718696","host":"s3://npm-registry-packages"}},"7.0.0-alpha.1":{"name":"streamr-client-protocol","version":"7.0.0-alpha.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.0.0-alpha.1","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"0025b986918c2b8aa915da033d0cd3f8b3a4eb90","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.0.0-alpha.1.tgz","fileCount":167,"integrity":"sha512-hu9ziAVaA5JHZctcczsEP6V4ptdITStq7EKVSVdybnVYN+uMDhyvusrY8HyCXxOhjURStb3sZrYLjzet5FiaTg==","signatures":[{"sig":"MEUCIQDDVhi6xAjqBw/Y9Hj2Oa2rEU2K5KJxRPN263Y5h1ibTQIgGmgpMF7U7nrL3pH3xMVjTCHDT58Jc2sqC9F/19nruUQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4868393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvU3iCRA9TVsSAnZWagAA0o4P/26CWeCnGOSd9o1ebCLH\n6+XBQo1u8xZ5/AzFPgLfBfAL1+COP8l5J9UqJ4IpwgCyfuEnV8zmFgo0ggv/\nNQOX1lYvI+3Gw1uR7X7Cx8E/ruiwe0E1/qpz9F4kg1QaXcOiLZVQOcyYZ+Cs\n5r7L3ZZEepqjDzZVBke2wmRBotXaO5YpbQYDclREWNQTFboBSSeyYCz3CsPN\nH8szH6BI2W8kUr/8QfyDGeGW8+K2+ozdMRQuu1Qv076JOLwFZMoUn3xdaayF\nOwEynp0BxFd9KY0zavKziMmfKrVwB3uVh12AaK/W1/0/smlzOHN7uX9pe62c\nO/Rm9CFL3XHp+1WqTfYNp7NwwWDJ+f2P2yC3FkGcgs2KcerQ7tS8lWofBagR\nrBfzwMmeTahKs1NC0r0ADj/+5QXOxGFbszLWu51H0EGVrRnNxY+ZsL/mOMM/\nuIn3/VhHSpuKkJNtlQEHTk5rPr/ltujQuoV0lCCrRs/eha+m9JWT1zyni3t0\nCIEVR9oAUeY+KG01M3j2dHhVyJ4Tzy5Ju7bXe74I3xsclPb1GRW10HepBamY\nJE1X0NIm4TsvTwtb/SReM7Umm0WCyLf1J63w0ty9WVxUxQ19xHUsf9axy6DU\n/77eFL5ZU4ya+xm7iPpcE6x1+9NXEUYPnjUAWQHlFRuBoTF8K0yytVmBotp3\nNvtn\r\n=3YMw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"b9ba2c374b3c44ba3a9778bf2a322fec78e1d632","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.12.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.0.0-alpha.1_1606241762049_0.5513375066171757","host":"s3://npm-registry-packages"}},"7.0.0-alpha.2":{"name":"streamr-client-protocol","version":"7.0.0-alpha.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.0.0-alpha.2","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"14626f727210c978acdb0b64108b7ba59237153c","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.0.0-alpha.2.tgz","fileCount":167,"integrity":"sha512-Q9rSAMY6Mf8Kk7z9b847jp1wkN3zFESdrA2cjTWcV3b661kxQRbTYQcza+vkJYzo6MJZZyYfFEp+OSoUn69yVg==","signatures":[{"sig":"MEQCIEWp50wAGrwwiyxDhtXzI4qHl9ED/4T/ehdQ5W9v5T6TAiBaxrt3V0zx38+KdTF+9TY1PHxcFeB8ulXcTCfp15a7qg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4878111,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvXW5CRA9TVsSAnZWagAAVIEP/i/6inwzaDxL7iUoQhMM\neuwCwoEahP0EszlNxD5xCtBSAnk+J/hDQR1KVWSrT/vgClk/qIv3cHXJNM67\nTfv6zoRECqjrn20KViD7yxY8AjgY2P+APAndMUHTkKMoTXnR8qMVxjPt3idz\neNO/Z+5l41poNwZZvSQKgbx0UTbkgFlCCufSerDSA1Ep9Z0dJiBBHvPoCxUz\nlfgAZ0Con532/WBwGq0uXE/iUa/8kw1rIkTz7ztJbOHpIBEMWbEzJuOXqwAv\n6e5hDqCdjzht2luMccRVTpkavoGhPHoYEXZgkzA0l+gL3sgbfLhnjahvTTDH\naFjbB9WS8RULGZSGniOs4K8TVsyQgdWHJFh2SlGMath3JuOB+LbQvptXjTrF\nzSJjWVEz1kFcBYRiPAeRZPJ/t+G19IccgpXCgLagH0ICVK33Ce6Hzn5JFNuP\n1cv6Fm04OhJ266fRp2e7IO2F6+Uttqp0ZHIpMWrSFdYPQFEF7NCn/VnDYqhA\nuPINtDwDrv10+/VlZ51hGlSx08SkodKx7yzNELkB3tpPcglSG6OJ45uk4yVn\nAszh2lV86xKWzZQokGQ7X9nzitqLPmJ9t+hHynIRLePXXpQMCpLUSk7QMKHD\nLqQ6yXsHKum8lWvGC/Fy4/JJy/5kymuMLVi41PnezB69Gnr6iO214gXggQZz\nB2ZM\r\n=ITlB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"8729d83c50b9e77a55901553141e67402fa7a3de","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.12.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.0.0-alpha.2_1606251960661_0.05009022019179121","host":"s3://npm-registry-packages"}},"7.0.0":{"name":"streamr-client-protocol","version":"7.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.0.0","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"bd19c98d9ae7bb4015d035791d2ac6b21bc61d60","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.0.0.tgz","fileCount":167,"integrity":"sha512-QQINsEZ72F5zV6LOuhqGtfg0WhB18gA5+L3+jLJrd0uf2UjejoCxcz9Mm61JBygm3ijPR253ahB9EYWbFBjZUQ==","signatures":[{"sig":"MEQCIFudW26/CF2tec2mTAvAjXNVj5LPNCtcIzO5QrQeGnB8AiB6n1kiwV+Cp/mjEdqTjRZDbLNpc/tWjOmEoT9AxucD3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4886867,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfz166CRA9TVsSAnZWagAAbPwP/2c1nSB8z3/AM5qzAp7U\nmJPcwEA4WcQ9wchttvI19hsS7PCd3kO9ULpkhPBSXLrcy5ih5iOV+wTuPDph\nWfPzOCD+IKe2vPq8UyVhbrZ+8SupEwb03fXwJvgtd3cAIRrp6z5xWzwTrDyL\nXGDcorALj6IS+YwWynkyulaEJNkFSYfZfza5AAJWu71NTlSIKpCd2QYQORS2\nP5KaMy7plu2dD97vgx48leT+zpO3kAV9TbbZnFF0ymMqrG6Z3XzKtoMde01a\n3XnjOBsMRGd4A20ncbgZuPUuhYs2BFFBai0WCyY3Ql4j8uG4VEx5xBpdOQV3\n8lwIHmUnhfN++PKtoxI5T27lDMWU188P6xrjWK+FNHXg61TsCjqvg0NNMpoU\nVb/neGYB6z/b/MO9mRSFWvV21fIC6iP6tK8uUukeixuZyLloBZzowh8tkPM/\nTIJIf84F/ZEScAZKDEtauRCcecPoNUW6itKQ/cRPtT0q2fBshK4+r2ux8u12\nWYOtGbmWxcR0TfiE9PpSWhQlL+1V4MktOsKmU97kES/ZTJNCnTJNOLAxWmu3\nUJsi9rsWcWqd2YWd2dNFtPZIs6vteBBC+OLVwF90WsTbyMAGurDlmyQejT/C\nEG3nZLmDAaiTB9v9logal4GWcboroQ8EQzRFqBLwedM6G0UJkIjfjQ++/btc\nG6Q9\r\n=4Kl/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"9da1610ed510f5003e3cff8edeb1d8e84a5b8e26","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"12.20.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.0.0_1607425722077_0.34945846739766306","host":"s3://npm-registry-packages"}},"7.0.1":{"name":"streamr-client-protocol","version":"7.0.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.0.1","maintainers":[{"name":"teogeb","email":"teo@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"e8af91aabdd430d179cc8f063816e9ec9ae9a207","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.0.1.tgz","fileCount":167,"integrity":"sha512-+d5LLHV3sY8hUPbHqh58vX2DgnCj8kEs6/mw4aIJXJO+lt2pDvFJtPm8LeARE9LMGvfZceCVsHorMZ6+xOpXRw==","signatures":[{"sig":"MEUCIQCF5Lg4qs+gvZ1h6ngAqzf20tzg8VHel3Gqmbp3f8L/sAIgPuBIUVXX8GBNbjNPIsfvgzlLI1ZVQ3N17pKBGwYaWCQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4355037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0OWjCRA9TVsSAnZWagAAcGUP/js2abgu1aJ3Kg/lC5Ee\ntVojXAOmw6FJVpmwkC+xsyWE/pV7fB8P6OlQH7EPzlM5Q4Yd12JXaop3c5Q+\n+GLOBARtLudNYsev9SP40Hv3tnjoeH497Iep0Mv2QAj5+C0ZKZCJmnJDXJHB\n9JB/PUPoEoAJY7PY+CXfAC5nWrJb4pi93xqUEcS0c9CmL36heIhOXMYCBjsH\nouT320/2dEOEmS99GcJG4q7Mf7NSO5v6wjK+XGOR+fFoWi3O3EWHTvin3hWW\nmZUewI2a1bl4zooQkvFCPfdagUsusoOF68rRYAwv6J7E/Di8JcQJOyo8O+PF\n7UfuvhILLTutsHTdvtyP+ljKZM8lGvrYIBZ3+B67JoJGAIX37bZqc78QF2IT\nWuM1e7kkWfMk6mLfDBITD01rJ1I4jkYosb36KBzNYYYOPuOlLz6zv7x/lRUm\nwtRJfQEkQ2nbmEFnsym5Vt98//102jhXXD7U3H1VeOD8gLNudwG2kSN3fTd0\nIw66tkua+8w3qbc1LQSQ7ALvt6/QhiG8JA7kBgwOYZMRQVsoxHV9KNJC8S41\neLFezOuWW/ZmfYMn465WEO8w7g5XMB5d7e3h+iuHLp4nhwyO3Re/4hV9ly1t\nZSZTb5Ojf4zqm27goOLegz1VgQsKj6clYzI99EJkoiQXs2C+IZlikzpWpEmV\nd8NF\r\n=LlWm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"4092dd84648a78c3f31a91cf5bf6c8a5b1b55c47","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.15.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.0.1_1607525793134_0.472880646658594","host":"s3://npm-registry-packages"}},"7.1.0":{"name":"streamr-client-protocol","version":"7.1.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"2906c6c060c0c4d1cbc3703068db30065295d4a1","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.0.tgz","fileCount":175,"integrity":"sha512-wTDU78LsVLsBOBM3BwWHZMOUp3CDyDyHh97XLVUs36Zg47gOKJtiE30uCcUgtLxrmkMF71RG8rFnMVqGNc1MoA==","signatures":[{"sig":"MEYCIQCELsdTBQAUly7od3M2Yy6mf/H4d+SdXPY9DB/5iVsY5gIhAIu4PKjILhLy76Marq1GiND5MexTZXCs0KDDEdj1dl2h","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4932123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2PviCRA9TVsSAnZWagAAAtgP/iU6lhsoAffc/C9UdQMs\nLLxfnWeHwTbG0+skocQ+a/wjgtcqmYTYKs8olyQAaQ0B1az3+xT5Nz7p41Bg\nG5XVsYwfaWQ02//KRC5oPSoYtpV/SJxe9R3Xdn3tJfWTwtyxKKPahqDaC4dA\nJlKWg4+BnEcXDaWmKgWSi76j1+dFNssVLJjlAo9hWOwFajiYhilDDmmOOZMD\nuKUMHTxhXZL64vjTaSxM3aN1ci1snYtvMNWSFZnKk1aRFb+3fENMkacU6tJW\n3eeW91rahpVB1Uax65GPB9vdcxTttfGxf58WM46Zw/vH6TEPDOOonjxOJjYt\ntLzHzcsCxq1gTdDoN7u9++JWK609mNaf9s//3PcIrFWe1JSdLF5scrvKkTCW\nAyR7hJ1CYYQISrV1a1XLE2EpCYpWV0dkVJ2D08TxfidIqhUSssmgoF9T5+Be\nRpgDzFpbAz6dJGqpt5K/8m7D6rEA8Kdq/S9llUTjnMgdThJdv0D1eCAukbt6\nHMVuxqnQ12xPK3vFYTVACX5xLdMHwOLkq5uujo4lQ62DMw40ltYez0JcLsKL\nCLjwJcixExoVKDyIpqgqm+O50YCcjrYRtIqVTtH8agf5wyFoebZkFvpBodBq\nyayr7ujO8M1aPJL6FuesmpZCl6c8pr6qDpNlCruU2+xpTyhCLlzxV/kl6XnQ\nD3LW\r\n=zZ9R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"88bed06754fdc02bd5ba65466e9f14df74e41203","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.15.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.0_1608055778265_0.2522483867980425","host":"s3://npm-registry-packages"}},"7.1.1":{"name":"streamr-client-protocol","version":"7.1.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"38a4ca263a41a16ae84004784786530ae7c4c968","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.1.tgz","fileCount":175,"integrity":"sha512-wApsE+cOVXxdoDHMcJkNbLDuxfkSr41yONMNpZV+Vc6QvM+R7Z9opesXzw6NT303/dkBH7FZtyMEW3B7C/yk6Q==","signatures":[{"sig":"MEUCICMuVjgDCFGmq4kW66kgnhMNPGI+aKEc1TfXiVrfZXNKAiEAiILeuET6S+fUZDBo7CrrF6jLT+V8zl/LnQIB9+wPItk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5742867,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2yZ4CRA9TVsSAnZWagAAdg0QAIzOfIrC/3JRGHXCPPpN\nlmZEUOM9rR2AJw+xgXJhkg62U7wCm7bMoxlEhB9NV/+zNFnRdyvmNbNiBkRQ\nt7Bbtxq5LL1Maj9Jsp779wtelVv05ApGL2a0+Pbx2tCPKgZjFMy161ZBgJZF\njiRyCDnQDo4p5NMVdwRzeDLi+GbTe8kpuKrOgIZIquIRdAL7/qB/CSAJjEa8\nsRiXTUgU7ZEE/yI2cnw9W4VrlqPJtVOWsY/z8pcQehh1FAjVugUukxI0qFfF\n4WR1gkH/g8nloBEKkn03IKaIw2jtQsWqVkcJ3feohLVGtrmiA6fvJsA8BMHW\n6Dl75BCQszM7IP8PzywwktxjQ2DZUsIxkNjIP99rNa6VkxONh2KNfNOyk1GG\npBQoukg1dqF9aInDY3Pj9mlwRwY4qNZRfabpTtqiaJFP7f4FW3LK4BgMWGJE\nWVI90v9ANeu3en6bpYm5HEHMRs4BQ++YjWZtrOYgd3ga6hAEY/9IwM0mmCkT\nRe6H/mnQFrrHsyXdI+dFxngfj/bF3xLPig2JKwviUE4ABzkVi+Je75F1yuuY\n2PW7gCb6xnFFT5zfVpyXjj5G66NEOXK5lAP517D4DC+tjt09KYtc/exktcu6\nk0tzF/uIUsiV0sGMXXlOP4S3EmOzoN+buRqq9I6byaOS/EDn7uiWTAACK2Aq\n7gUJ\r\n=XYWU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"264759793a770a053c71877db3988f3f006ea121","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.15.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","core-js":"^3.8.1","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.12.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","webpack":"^5.10.3","@babel/cli":"^7.12.10","babel-jest":"^26.6.3","@babel/core":"^7.12.10","await-sleep":"0.0.1","webpack-cli":"^4.2.0","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","webpack-merge":"^5.7.2","@babel/preset-env":"^7.12.11","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^5.0.3","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.10","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.12.1","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.1_1608197751848_0.8433584574888777","host":"s3://npm-registry-packages"}},"7.1.2":{"name":"streamr-client-protocol","version":"7.1.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.2","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"dc7ffa70be71a9750bd6f9028e2731830154e200","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.2.tgz","fileCount":175,"integrity":"sha512-JibsGEEGaqKHKhTSfxuy41bARCQQEAVIeCUvEHry9aJk03QrM/0/d2LdT7d02Naxv2HX1RF1fQnJ2FxAMA46Yg==","signatures":[{"sig":"MEUCIBWJaLuQac5CGwH/eMeaGchFtaBC2h+3N292uJzohWEvAiEAkENNfMkyW1H3ZtlpcRpDCgiusitzveR+MFo680jQSA8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5776108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf39liCRA9TVsSAnZWagAA0hYP/jBP6r3OayFh1+WqIgan\nHDhg6pBmbkAiyP61d+rMhD6bMlrXwXssbt7oMJkm0tHmcEk/QkMM2kMSUZVZ\nkT9GbVQ4DXzxhci45qFmlSaMxyIehU2S26xG3KqZIvqBwH3X8CSn8AvsX6lJ\njHe1QR+PA2Mhuc5EdbUqPJ+RsqJBp9VRubb2sxd884hnLhFNapb2bQ8bZjpW\ni4HgXczV19pcx3t1bRtXxAnE5NRK5ixhiuLxIpMr4iAS3/FaJbqrv3M3/tWp\ng7f3sFwu81mVmHD6z+XkC/KyQGbC5/eDV9uoOBRhJZS8ylZ4GhuklocR+Usm\nHSKRpKkjgAgsy5jBdQTqcAC8PDbM1rthSYWMQbvUH3QWyVxvk/4DTOIR3qVe\nRs7Q7/xv4L5HvzJiorY0C9BfsTlYCVja2aydc5+7zdtsQrzjpLQL30fNxJ77\n1haIH6WtyxeFuEgwfDcMbiE1yqECI0PonIROB358RlQIQir/TmdL4WNwxgym\nJ3AjKj1FRk7bGodi9W6KYMYmpimMbhdQH0MNkHMetVGlFC9m1ywlMA6xVRoL\nVaTuGN8LZSEZpb6WXYRo1PCYsrpdCWt6EhfyodND9Q/Y/zqeTWV8xPxJOCnM\n8umrRQkV+qbYQ8N7PlGKKNhcl4y1vu/4CWV5Q9oXnvAsFKTXcLlv25p7mT/6\naW3i\r\n=XSDU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","engines":{"node":">= 10"},"gitHead":"4e59f37f81d3e4d907081a134a7591cba4271e49","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.15.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","core-js":"^3.8.1","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.12.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","buffer":"^6.0.3","eslint":"^7.15.0","webpack":"^5.10.3","@babel/cli":"^7.12.10","babel-jest":"^26.6.3","@babel/core":"^7.12.10","await-sleep":"0.0.1","webpack-cli":"^4.2.0","babel-eslint":"^10.1.0","babel-loader":"^8.2.2","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","webpack-merge":"^5.7.2","@babel/preset-env":"^7.12.11","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^5.0.3","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.12.1","@babel/plugin-transform-runtime":"^7.12.10","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.12.1","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.2_1608505698305_0.0640086677070828","host":"s3://npm-registry-packages"}},"7.1.1-0":{"name":"streamr-client-protocol","version":"7.1.1-0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.1-0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"910f844b6ba7bc94b243f1fbd521ca33ef255c13","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.1-0.tgz","fileCount":184,"integrity":"sha512-1CiaFcXbDHT2BrYjqFhnKE0MrYR+u8/PJmuHX8VX1tDHxNV/K4Kfj70k9YEX4hbqSFWl+kAi7XWD8AE/7xkFGw==","signatures":[{"sig":"MEYCIQDcce79O/4UTiyBZa4DW3df7Yal42nZoSiwEBl+L6v90QIhAMW45x1dgufoh2HnoTxTd52pih2Z+w9VqNLHwSbjJ4kM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5511137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4ecGCRA9TVsSAnZWagAAlrMP/0/GBtDjhh8DAHeQ1Prx\nlPVrXXHxUo1+o2UAGg3b6wz06b0JKsNGkiyvd1c6TpSsOVZi3XldrybX5gNH\ngTGwC/AQSkAyYxekn+8DrpzcoZohzit/CtadUz+Olk5HD6bjUmVDtXm15Kb3\nX5Kw2/qkAIXi5vYjRR0/dlSvJtQR3qOgZQc47AEt0Aol5W0RrVOKBDhdYjf8\n1Gf2RpISg9r7puX74Oo/n0AJQo+U4/M9hJTOlU4oc9oWQA/CJWWvpuOVIGLM\nSZfZ6Q41MJYkXtASlokAckL8xNxotspVmifMUplw5rnaiLcJ9+GeMSQCJGoY\nPuhRh6EpgQfQtdWM1+J0b9eIrck2txqbpCSwQnlh1i6B6rKFmZl4QN8hOcrb\n8h2um6DEbSxoads5sqlrEMOoBztXygfVd7ubhQP4vFYVxGsEVuHRqLHjHkCL\nL501Q3o2cDTRo1rdKzALyYK+pAjrwEERCFvACQw8pVwdk221WyRBZ4n7yJ0U\nJryeTEsbNEIKhemMLSjz0ePPI6kQIVOaFksGWU0DYEikhS5WyfPtwIOZlWTb\n2w7skjB/SkIPq5olHlqxdoEkdIZ7xveNqi2az0PSYILNuP+XSwDxk+ce5stf\nsrb/ae2ctQWUME3cr3T8wbixAh5XLPpyYR9EnQcTN6KGGd5lM9CjyOfW4IjP\nUNL9\r\n=8pVf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"405b3bb92abe36f71c528958dfea68f34107986b","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.1-0_1608640262130_0.5863727114303794","host":"s3://npm-registry-packages"}},"7.1.2-0":{"name":"streamr-client-protocol","version":"7.1.2-0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.2-0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"72a10b2152a869852cc42f1cb706a403a4e9991f","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.2-0.tgz","fileCount":10,"integrity":"sha512-0lM3xRknHwJiQm8ufMYzIHvt4prATAEtN4EdUV58mUaJmmELjn8lnKrmSjskp391PdKXiayGtzClq2dnbK5kfg==","signatures":[{"sig":"MEQCIBxhfjwyjp8lmj2Hu8/lGjPWeGYJQKtAFP6IJfj524apAiBrb4rVr5cCyFWBvAnSDY29Gj/jClZ6FqMAiN8eESYcwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5301355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4eydCRA9TVsSAnZWagAAoYgP/RhqzhBJPY9EFfmfCOgE\nefUEhzG4hZDeK79vW1pgxTOZezhTrTYthojGXzltl2NxRCUPs1dMbrRjq7cX\nKoX6rXjHb+JE2+Id0QOfn4JbZNXSzhfpBaKBrdbWGeary2gsZUd91Umo50GE\nqWIE34Se7auPqB3JdMoIIoC8N0zvg++MNlyJbv+nBQ5F2mmQCqZXUVSInzx8\ni/Ob2yWxCyxkd4Oa/6MoGWuCffN4l4IgdYo3DKM5/Y0lP8Xgyg4tWIib8JmU\nCAPbthq7xY5xmI7HKAj5Eo5CNEeZoBd9a5ZaD93GStEKXyYI3W/b/2j7t1Ft\n9EnTYioVhm958QKBl6Av/1JOtaiwvxZrJKMwNxW/J87U3zckCdYq9zaiokZK\ndGOAoyL7JrARayctKnHhnCtzOeMlgHjP54N+GnrjYaegq8g7NvdZMsYHH8AQ\n2Jwd02utzToVLnIPHVtU45chvZ9VuK/+ww76sKSQT0fpF4XhHBDI9/YlQERa\nKFgfxajy6uci81sC+YdnTWz/G/Uh15mSe20GyjRNL4DlCM2mTJyh+DJfa6VK\nYeLgVIzJZnDgmtALhVVzNjB1xbK6f0qQHM5s9XXLOpcmvGVHUAXg55Z/vBzL\nKRAHrVPv341dGJEY81d5kl7D8NnTPJ92Asxr8spaZK4xylJPniiWOk05LrEx\nrMOT\r\n=26UU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"bbd599f5e90de47b0067b83ac5824b74990a9f2e","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.2-0_1608641693398_0.16845719505248202","host":"s3://npm-registry-packages"}},"7.1.3-1":{"name":"streamr-client-protocol","version":"7.1.3-1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"ae3ddfe405424bfd345fc0eb6d683d4a01b2f31a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-1.tgz","fileCount":3,"integrity":"sha512-mQ8Gp8Z3HPI3Bxv46V2Ki03mXJPQISfMB73HJotSknxX3QBOgsHncGpVerv1izVXtLdPGULp2LbUtHN1NluxFg==","signatures":[{"sig":"MEUCIQDLPsjsXPrcf7xO2EHOAqPiRZzk1Dqw5oXfGhfcsQeHBwIgX0tKs6aqkBcQTGX1bM4Ycz+omoJ2+G9P9KnNs/RMsD4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4e0GCRA9TVsSAnZWagAAFfQQAIyiJCCzFXPx1ZobdcCi\nkAL1It8OgDdq5XgaJ+ikbsaoOQPTzuw776bb1aTrWbnFB6xjeTmaGS4H2PQn\nVfr/qdtWNQU5mUoIj8w8Ikcf1aYWA1Iybz1OHLe26PkWyg06z9Apox0hl/DU\ng9xWWk9tduR0AAo02+phLJCyaMVXzGKMc/ucywclnG2PUN5KsyVMosN/pNdQ\njspzOW4B3wsg++DnzlgfG1Vh/ANXUWfLlkKQEOYmTEdta41iC+9cDkRjnlwX\nBoclssl7tsPbmrrmFN1zIMujk9HM3uv+WeVtHqZLgzLQ0chg+LKWVOLYZj9f\ne4S5iyx+M2RL1Ibn+7GU1CIfSGTJinHqnT3FTwzH6ZDEPBpz6c9H9W1uvFcL\n+p5Xv5FKLpqgfHlFbeN6U7l/rhwxt7pGI3kXVkmUhZX4r8daqlaOxRrW3beq\nP3ylBFD2N4uhkyX8bn4WacT1fqywkZgnPX2KVrQdacTQSu8PsIVcodcw46J3\n4xjRmwcGzALmFoayAd6hFsvquFRLG95WSSjmzGrB3rWyUTdA3/q2ZTJiDAzv\nI2yZ3OjKhhdWozzDuZXQd8e1CWGXq/FwEwAEHobTYI6PS8y12DVt4gks3GW0\nL25RuECZu9vfpH8c9kXAwZC/PThQ1X0jVxSv4NV0J6TJR6uQkCbxs3F7KZur\nweKz\r\n=pInU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"fe685b19dd084983026cb6ba2c25b5f4693d384c","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-1_1608641798647_0.07610322327591135","host":"s3://npm-registry-packages"}},"7.1.3-2":{"name":"streamr-client-protocol","version":"7.1.3-2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-2","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"bdea99e559c126d3b1b6b63656c716e79a0a9859","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-2.tgz","fileCount":177,"integrity":"sha512-CtUgcM48gBati4cMpi402Gb6fYFtdMD1WgqWoWusepgpxxMXdJ1+tt7iBTluJUzYSVvqM1gND3296Ql01VQIpw==","signatures":[{"sig":"MEQCIDx5tzwcWVd0JCiqgDJvGrbjzlfRfiTG30D8IkGltrMKAiBImoFlUoSF870meZGI0+AthU6bQeJ38DIEV4t108wQeg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":225033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4e2QCRA9TVsSAnZWagAA+GoP/j7zS9JmM7OYlqoEYWmb\nDTeDP0+w4NiKftTHpkIRJY7/Wdwt34rRZEElM4Fs3yoO13LuRRiC0t1ZZK7V\njDoTY2KE3p/SKkiby7Rutx8g47ul7DVE9UkpQ7vEBeI/M6PJBlOWvcrl3Om4\nJkp+iU/2dqBQwf0wwch/ygNbUsOP7c2i7N3ZUzQQ/XGUcpFeCF+/cjDXNThg\nTEUsi7goRU/pjn3YsVNEkVU5WlHzbqywxrYra9mn5ZiPekmixB82d0thUtc/\nby+SsLWMuoqDgpXWe2s+AMx2mhjztfkNUfoY/EQ7C8qMAxu70F5Rwut5I2jy\ntaSR639e+I/XfxdIRocHTzQ0cib36ddwAtuNq/BarVgKiRyo8I24MKg7v65T\nESFJIOtZcyIjt5e6fBiVsi7oniuQL9e/9062HWjTV6Aavol/WnqBdpyvwsoa\nbpJW1KcRTX+1bAKUbVQ1D/cPkwsvxQC6dw1DlHb0RCHEkN9Ghmmkn0f2ZS2u\n88L4L1Mh+ro0S2uEi/HJ6Jv53AL3Gh3S2t3XVEG0zK2UttxRWo2TMqdiRr0Z\nGF7n4R7ZYhTALgRoEPVGcThd5hM8XWmdmQ1ZVk8IzAJUL1FK/cy7E9h65vlu\nBVkrusFmZcKcXM7CgAcfTZiAX/AyU81MdNiWbW0hyqJEQraHUfQT35M/gUKU\ntSp4\r\n=k9Pa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"cb7a19e3d300fe8d630ebd249d5a72680a8bc008","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-2_1608641936057_0.6043134811360851","host":"s3://npm-registry-packages"}},"7.1.3-3":{"name":"streamr-client-protocol","version":"7.1.3-3","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-3","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"6a12c3095a65f007c15209be65268d44ef375782","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-3.tgz","fileCount":187,"integrity":"sha512-be9ezay5J3nR2YgSO+nV2MPaWOQ6dGjlmu32YiXOnudlsDJ/s/ZAS+Nyra/BvY5hJkib0qEdYDkYBNHt/mE9Xw==","signatures":[{"sig":"MEUCIACDhC7S+ibDNUBXD/dJk6WTaU1PbqXMDv20ImgTk3XAAiEA0E5bq2IxOoNxUtE1CEncnGCaj9pbmRcZSRqmZmsxdu0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":224646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4fJoCRA9TVsSAnZWagAAB5sP/1s4WoNoSLlHNoVdnJm2\nHCoCkxW4xyixPC0CnWLmWJ9Q3XGXI807fFzI7m0iB18fp4EbF+zXGVMNkilE\nWKy0wplc18jdM8a3CxtDRxgZ/aJSd5YIu1HhLHGFEJJUaz6uw+8XFr11MBCG\nc8vTtre24fBpX9/W5+qLDgSENLEOSHP1ie8ffSjjlGdOVzDuxzQwMxJDK/U4\naqx5nVFf6amIqb3OyagRkuyxodnyVdPKFL2dVuZAeC6KxdKAXW+jRTpSnVqJ\nAAUCX3i2kJd5uxB4gJOWJeVgqSbtPWPsmWUlXh+OPPqopZHsTKsI/JtTPtRI\nzS6bBf8MBGjeKyTtDOoK9xW/z19CXJTJnJ2woQ852ZK4mvFZzfxtggXA12vQ\nd+hYubkK2cVxEGOMZAeRdvHJ0MvqbynhPBgwjvJlWo0HhytCIoknsWVdPgcr\n6xeDKT3pTOfTxO69QmxX98ssdVnGj08qNvybrWUW7WXRXFB2yCodDzfMbjBb\nbSACb1dmZJ/IT2Nj0uuDgBHYzFaiHqTco8QYbFW/hL40eifZAdJ1IAirlWUm\nVGvhSMToDnULaXX7k2gLKH7vZ5tAKFElaGnAkRTQKJZoKarNCzdc/+rLr8ZB\n2TP+FGCeT13DXl1/jNV0NYe5hFk5OF5ZW/5otmLJbLc9o2Phw9kjR0bBzJ0f\nX/oB\r\n=IGYh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"7e5b366454633b0f9096710c0292f7eea5afa1cd","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-3_1608643176513_0.8058047336506973","host":"s3://npm-registry-packages"}},"7.1.3-4":{"name":"streamr-client-protocol","version":"7.1.3-4","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-4","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"bba652af0e873f9eabff0bd272a4fcd0639aea45","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-4.tgz","fileCount":187,"integrity":"sha512-tZ7VlL2bVwQVnGwOAtRaKLXxa6eXRIMGu9Z9ymDxlLzf4d5kaYn41ueUd8SgCDz7aV6Zlin0zz6amiqomhNhVA==","signatures":[{"sig":"MEYCIQCmfP2qV9DhfmIUsgoq/hATwHecjjf6dj/HOepOof+etQIhAPOf+Bn1RcUbNGqcdb1Mn/p2Pc0a8cXA7Fa7A9Tb+9ZD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":224574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4fg7CRA9TVsSAnZWagAAkpsP/3lsR+Yw7Th9zYIzggrd\n81ayMaQaDIiH/XlVLQKWKtGdo4bPhT1n6d7NYHx6MnLn8yi8EezCE1mi99mT\nKHSfmsUKcMFqFsEitPoEdbeWa7j4kr8Yf8ZTPXu0jbNOULch4LcozvT4AXRg\nGy5Kktbg+vRweURRrJLvZz63QI2CayhBNuIaNuTAFqUjqkJxsWPlQwh+NE59\nLHgtoyziqpOSUSwrRs/lyN8YnLW8ID+JQy7pOw5t0nQamhUrkA8z+YMFfjOy\ndMtsJtT2+gIHsJ1Ky0dm11jmmSAJp130nMUpI6tR31OTt4QMZCfGUimcLYgG\nR6KBE+8x+4t+pcyECU7DQ5eH1FmVbmVkIBeiEZn53Hi8QW60IlXzjoexn76k\n5XEe/t4sOUGTSAO4eh7+aRSN6/pslYHBDonq9IBuC7G9M14yxf+ip8AbnT+G\ncrIPGmBz4yJtX/6CKonF3NDA/BCXuShzkzdxXfCubOBiDonW8RezdYbmGKkN\nD/N33RjrN0Ns1ENglcGpWDj+fdG3Oz9My8zKHHOda2LNKYmPjTbUA4jB8Z5O\nIWxJLx8hQWFonOdNy97bQ8HRYsNf0fXfaXgNc4tMWtn5DhOjTbi4G86YqCvP\nbOohzvp9uB+tSzRGI5d8YHvd7sFdYaxQ4a7FtQorVs2Fb3zVmauqrNyukt8Y\nQ9W3\r\n=WvSr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"dce59341b1aaaaae3681e181196b25f08336ba18","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-4_1608644667467_0.05788493238720949","host":"s3://npm-registry-packages"}},"7.1.3-5":{"name":"streamr-client-protocol","version":"7.1.3-5","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-5","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"37becba086b8774996cd3d73bfe7445700185d62","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-5.tgz","fileCount":189,"integrity":"sha512-z5UAFKYvKKBLxdPH0Q6uH7Bf+pqXg9QcW2W3vf6bq6St62mj4sbRiXOraU4eoRxJvpG4RguiM6cx8cn+3WMUWw==","signatures":[{"sig":"MEUCIQD8TSujlzrMPtTkHvoA6DYNivQWS1DGzosRHlrjZlkWwAIgEVHFEAWfqUZMV2Lf5mC22ctlAGMi2OeNb3EKLwVa1Pk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":224776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4fqlCRA9TVsSAnZWagAAjq0P/0kddKcAzUOAC9sb7W7i\nhOjwKLMYIzAOAvhSLdCEP5wogI5dxEEH0zFySHxfAQZOqTvYmtUFyBwVS5X3\nxx34yVf7vSKTT0kpo0kemOLHYsiF1OiJyGYW40N1K2UglOIiqLNM9iOzn/dL\nLnN5SIC8SckTgj3F5mgetU5oBCzCCuL7pU8lZKT7vHn0hCvalBKPYABgxxZt\nSEiTRd16YiMRVmWOQMKeBq9vkziVN3rfAZacSNQDzIc6U/mldqlTe7tnosri\nGWbPqhGUXyJiCAxN7D0wSsYfFyLvEvqwDNfvdN6OTFBI4768ice+g1X4PHsy\n1pCzfojy25Eh/V9BmZ6HXul7SCOPlS76Tf9fLwLo6/YlO32+gCf0t5weuU83\nCLKQ2Xg+ILA22OLIndKhDZPhaf0U9qrp3o5ntUcjHQKHevf3abPNauMsA4hE\n4Dx2+cG3pGUpio3lFH8Xg9x+yFbf7AJtMOJOZDDIq18jVUd/uICM4x5uhapw\nNyKAfPVgaUWkmjwwqt2ZH6rVm9nx4a2m2DmpmN6pK2fUc1+HtnHDBUK1O188\nkfbI89XpXy9hKgUjKD+0ZTDmGoAz3LBAFs1Wprd9Mu4aLJ41/4av44GM1rRA\nzFa50exla1fXrbRVl6OD+YBL2sWbn6r0lXoChTUWbvHP8+4iRRnQU60VUt8e\njRYO\r\n=avuZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"77684c392543eb4badd2be771f2268c7fa38db1f","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-5_1608645285313_0.39384232381106177","host":"s3://npm-registry-packages"}},"7.1.3-0":{"name":"streamr-client-protocol","version":"7.1.3-0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"34db7c3c876526571e7a3ed0bc5b88514ea46337","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-0.tgz","fileCount":187,"integrity":"sha512-d9Bw2InCvWMwAerS0p+qCsKzA9oICgBaEhdz5vhyQmrbGiv7iOEzOZpSAlaIyy4K1LarEoQNCODYVqF89GlISg==","signatures":[{"sig":"MEUCIQDERt2s23Ratfbd+teYS73TKFJpxj2mBldcEtDvTJQfegIgELtRaCmq5fDSS3DTeW23/Q4jw/UrqZATSezWv/ZvNRM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4z22CRA9TVsSAnZWagAAvD4QAJNsf04CSDfRj5dfaVIt\nxYjUNViysG3A3F5dzjsl6IrHsly56LlNFUg8fjtBckmj257YVuCBsqslfqGS\nL878Hmb60KczWQsBbTjK5FBcYYpOmUyPhckDzj+Ljf+y6QEBFWptPNHBGH43\nan2AnUKYJJQCxIWiqrzWa8pftvb1C1/CvEqIKiUSjx/S/amq4JZyJQ0PONNR\nGJHkiL1mkz51pli5gqJgWSSQb2zUcvS1OK5NIo3XapB5V8k9EovawGp/E2zz\n830JF9Nb+SGYUf7QolrideB5gSIVYGRhuWqexgBkh9dSnGD943HRj/VhKhOo\nnCANnyFMFdIT2B1dOErYbvJkVsK1KoRmuLtWkl7q4I/jNrsrieS6EEK0AGj1\nc5Ph8ktEmUDq1Z5YxyXEPuvtgRF0dfGKMXQxP9sOZSmFrXEdQIyPlVXeFIgT\nDFUThYCplkW+iWGyVCDznRGgaFpspIjjQ5XnLOVZ4fNH+aEDwncap05Ba9lY\nAhQhPmHGDBDmsgCrCFmsjP08+BqZZPxLN8wvZ8uks/yv8EsiLVzHunL61j+R\nIAUHH/Yexztk6Cypln0UtAKyE12zQ5jKJ2XRnxOWUA4h74bsP65zxqytY1gD\nB5q0quf56bQ70JiWWDX0Y8tbnXb19iw0hLXpHeUvcgYUHGK9/1ZYFYB5z4AJ\na06o\r\n=pbkX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"28d1a6aa6d6d03eb04218f37ab4e711e0c804bf5","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","buffer":"^6.0.3","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-0_1608727990183_0.7494969061958041","host":"s3://npm-registry-packages"}},"7.1.3-6":{"name":"streamr-client-protocol","version":"7.1.3-6","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-6","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"bb51be2b898080ca16c6f6c3d63426506a4ce483","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-6.tgz","fileCount":187,"integrity":"sha512-e1M0TjrbFKAn59VYnljHgYPyORK8Vz2SxE9nYzu+Cr8dXslY5rPjwEXtWqbywsrsi6WUC85Rbcu9ThXLlQUptQ==","signatures":[{"sig":"MEYCIQC6fda/w6LTHaeZ8Of02+buIYk1RMd7Nix7+LfMKto3AgIhANvNI8CYGvTJ+jEZvWfFf0vb80Fr+uzbS4NhmUbICUFx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4z52CRA9TVsSAnZWagAAHaYQAJTTMP8wVxE1EOrzbZxs\n50QdoCq2u7y+BbE0cVuxFYfSSWKFsqBo1A9bxZCkCUNODVC8Cubl0bQtih2t\noGuZjnMXjjRTNRYKpsvwH/Wz5xGUDnGjRNC3VD0jnmuGk1JCaL7C7oBY37Ax\nEwrCTp2v+WnKIRa8DVLErgxs1Bg+pqVlPw7bhzK2oLpQ4Fb45XaY7DE8vE4a\n0t21bVGAs0TVy73vvEG6ec0TYpohLy7aX5nrCy0ymzgoE/uYxCVmZi59Eng3\n6MYdRqslYRC0ClohC5zc9t5QnSmZ55EbY9K4F1P+TSpGFDB4nQIQ9AcdOFde\nXl3mjqerEMWD6JUzWicTSpsFG/fHoS5h4S0ift7mTFf/ehZzfBff5DGsE/dA\nBucjRoVopAj7ojhH5mYuuu31VpMSvXElppOwMFqMJ1op11RCXz7ZNIyGzWpO\nQul/113dDT1s7JmFDfOETCK0GPm4KxLHeKgEAG/xPSlabMhh7RiDibrdgxHE\nWshNWToRPzO8lwQuSdGAbMfM4JnM44exuHOjN8jFBDUu6ZHKOgaZC1olDe0j\n5eAMwSyH3vZL3vHdV1p7uVOUwfaLykBn5x98cehn/0EAY1CeVjUXYpOdpt/2\nJuJtaJG4CR9FnWZiRlSB2sLg3YNH3OUngZ7TMKJ6V0nZnOmpEiTREOHsfYZG\nDOIl\r\n=RziM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"6fc1ecae4c9c0b670fe38caf07a4af3fa366292f","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","buffer":"^6.0.3","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-6_1608728182184_0.5247717174039692","host":"s3://npm-registry-packages"}},"7.1.3-7":{"name":"streamr-client-protocol","version":"7.1.3-7","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@7.1.3-7","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"6e4f6eac8f0728714bceeb27797a8de2e9242537","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-7.1.3-7.tgz","fileCount":188,"integrity":"sha512-xgOrGMCZAojUM2XU8UVd2GVXBWiaDZX1dy7OFCzN+9lPPzbm15ha+A6ILfp4KlUN0dluuume4ldUFzG+31maOw==","signatures":[{"sig":"MEUCIQClH0BRw7Xf7i53PSMhyAm7WjEjCEoKYbpJ5ZeDj18qgwIgQ21X+IFoSPxlqJnzeRXMLPanUqcuvxWeUHZ14+sAFMM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":404964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf40LECRA9TVsSAnZWagAAsIAP/11S8Ut3aol8Fi4DZaZW\n2xAI+rkx6n5Rzh2fuiDqdNk/exM5DAIymH2uBSIdCRj7+RfPcT9YronsyALi\nmmh/mVLjnPvmys0fc0buNOVukLyPwe6OpZKVty/tJ8X16oH+AbdxxlyypMT3\nHIpz5joPaqmV0kX5pvPKOfK+1X5XxgEyTEelQAZy9ZoXXpUkwlEu2choCFUC\nSeVU2e9UGu8LyM8aFt7aLhZ1hTAzbdADvuRG8F1AZoUr7W5LKJyRedkgTwzc\n406z9S/7uE5boScP8+KRQYZkYaqoSxs0Kgt/DoDA/sNET+KaJKbC8BJqoz7L\nN59pJcxwjAAkCXgLqete+BFfxDu34o+gPfgbKVmkNJAcDJCg3W7Q5Lar1+12\nlhy6CdFO8hUzVADfKGr7loeFA3mO4vsamujm/bXKm70oZvFnJ+ye5VFOtTFc\ncbjDqa844AbXAxfXPQ6Umz0O3lY+kbIkfAxfpJzezEsDU7jB5fAuacRkLHe+\nRvaQqkv+fm02puv7aLOW0uyOPkUDOGV1uoGJQSpF8vGTJr7OypyDH0Er3ql9\ng8WDLeACzse4SS4zEa8iNIKrJdVPoBPKXDGeGrJYDoNQMSOzXj5saLOzsTFL\njtZ4XFSlCPjQ3d0cUJLjKU+dZiav6fMD/qgYpgncioNWJSXYHply4OyRjyk/\nGCVP\r\n=5QOe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"1c64866b2e0371e1f3a7bafe23dc5fc51a5914f3","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","buffer":"^6.0.3","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_7.1.3-7_1608729283787_0.2456250924574983","host":"s3://npm-registry-packages"}},"8.0.0-beta.1":{"name":"streamr-client-protocol","version":"8.0.0-beta.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.0.0-beta.1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"7d6dcc6f7e53c777b687da616e54b20274a873cc","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.0.0-beta.1.tgz","fileCount":188,"integrity":"sha512-sxkn5ef/sqCo6hC/wy2f81hy7ONR/8aYW+H6TlQ2tltwT/q983QBmGtOW2Y4mT0I2QX10f6NDUIlfluemydsyA==","signatures":[{"sig":"MEQCICTHGvp9xhtHkfgYwAadRxsLGzybBwhj2T7CRZFKIHFfAiAZBZ45nf7qUsmL84Al6cXsA8BbaVI6uxRdujSfn2Rm9A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":404945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf42DMCRA9TVsSAnZWagAA1TcP+gOmeLgAQmTV4cdWjA69\nBjEG/Y6M2u2CVIG8Ae0E9/7rEHReJu4uPNEgWhUgHPkrjqHrTJJZkWrwPfMg\nbtv7TDBQcZpE6GAAtvyiphqNfB2cogrvae+QPDo8yMue9tChWG3Jax3OuvyB\n2xJqIj5LPvEjcOISnV4YY9TOVCPbpCrtu7TIlaCurc+IHlVio+DQoNrmK2+/\nGz+AJBvfKf5UAt9otgdDoe9Z3+sSP9qqbGpoNcU2UehZrHsPxAhBJxhGy/qW\n6wxmO5JTyrgB63vQTxY0aqW1A43NsYic82CA8i4qs97wuWikDEw7d08OXwsm\n9IjJIJe03MzyomlSUz3cbLnilogpzlbUSYcSf7uCATqT3m1sxChe4/o3QYv6\nblpIL5kRNta+Qb5zIPuNwE+JwZtJZv9atyBcWJEjZeBGDp/C51xwLCCSj8eJ\nBmonljAxz19oUmnxj6PIbhZIRngCOjR6t/UcRLClIAFHH1jnO1kKpu3uKTjt\nGP/OUL9c89dNxtMok/uz2imbFqfZCpmaLQ8EAsCVR8qUq6Ik6ksOyh1ii9DC\n8UfZaFOF51hwo4mNL5Q/oR9q+TkFdzYdvO4zm0+9S+3HghpaY2E3kHHoEnbn\nHVRE4a8VXctp1TO0aybjIxOp/MTzEOFYSUfqEFzop5QHHHaiWWnZ3dJeO5Hd\nLnNi\r\n=lml1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"fd53a501e905023e1c235531afe98fead1c416cc","scripts":{"test":"jest","build":"tsc --build --clean && tsc --build","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","await-sleep":"0.0.1","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.0.0-beta.1_1608736972461_0.8697687451113509","host":"s3://npm-registry-packages"}},"5.3.2-beta":{"name":"streamr-client-protocol","version":"5.3.2-beta","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.3.2-beta","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"85effbe640ab36372a1b665162ff2c885036fe18","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.3.2-beta.tgz","fileCount":167,"integrity":"sha512-fCblr4ksr2D70kf9hi1ug3CRla8mVWQSLFw81a/V6FTuA+1a6IXUddRHQzeLrEg8m+tO3ZmhqRL0p4idBpWSpg==","signatures":[{"sig":"MEUCIE72NrVCsKKFx+RGAvNui2ur+G3+DBoAJGje43LLCX4kAiEAuq3hK8Ko8Teh6be/z2q7MNFlgwmrbOHZGMwJTdVxLUc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8948836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBHYWCRA9TVsSAnZWagAAZrYP/28xZHhIuwROmNwVDv7x\nZ1uB61LN4hZ9alexK6f+kHLQUw+OJasT/oBscXBstbOt62Vy+Hoe+ToOQ3P3\ndiBkWTmNOGwH/NQVEjKi8hrwuY9ieNoY5Xuv+WrgUikq5PEGL5Trkr80LWGr\nQqZf/JgoEOwjXfSBLrXgSB6dECK8OXuKjygOfi8gqtaqEaR8SR/nXUaxNMe9\n7cgwRAQUqq3kSF0uSZRrRG3xcTEj53pShB+g+/KwxaoxbbBXMRs/GVHgk7w6\nnDl7YbwfnFoMpGWBxIsg+89LxNXfjkiSHTyi6Z4xefZXvQndCigd6Tb84q3Y\nWSjbSpayKzn6SaJsbXDdRXqNUD36IiZzQ/+Fbe3K1lvYalAvw4l2sin1retJ\nbO3fhsbz6O+n3rHme+rkcHJZvX3/f05kjWCGITCMubi7xMY53ZRrg57uJ59D\nJqxrSCHYlFsoPQuxFUbT9NKG6F/+K6judtYQtOszKEzV7GbXrYgMikanejz6\nIKbdbFZdVwXbjNU7n5mC1y58nqm3+CF8eTALIz9W4D/MRN4WebtG12dsfEXV\n+YT67eH+8nYShbTt9Dz0o4xhU9SFffgGleSV2MPpsz4qqzyzJfsBRblU5omn\nFm5uKFwWVj0buPKhybaRL9QqrKXPO+DdFWeEiPjrsj/jfalERj2CGw0OTc2l\n4sGY\r\n=U8HT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"31fd38314f951bffb03a63d9194d2d1ba38d9183","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.15.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","hashring":"^3.2.0","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","buffer":"^6.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.3.2-beta_1610905110064_0.47087137420626424","host":"s3://npm-registry-packages"}},"5.3.3":{"name":"streamr-client-protocol","version":"5.3.3","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@5.3.3","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"fb48263486a78874511d733e601b3388dfc7bfbb","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-5.3.3.tgz","fileCount":167,"integrity":"sha512-9pdyuzAvE5QZLAP/bwt5m7LRtIsdHVmN+TRhx+NSsw9K9FdaXqJrnVlci07uPfidVlITu23/ahXDm629ZvWwfQ==","signatures":[{"sig":"MEUCIQChVKq72mzHEm2cSbAlsXbuVqXQjHA3Rbff0SVY6OzYOAIgFucgZrWsoqaRKJru13FeX/hEDsf/4JDM9SRSPSHjLwA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8948831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBIs1CRA9TVsSAnZWagAABpMP/2wh85aN04TXyTfJvqXA\nFGhV7gOr7sjaL80HxdR9RgekyOIImPTjV05EhAr3avjn5cnlmpPBYQNqP5yW\nhz0lXx+6V6eKdarg7cd0SWIiCgT42SxoeJFj599XBNC2RFoa3s2nFW/JWELE\n11imbAJl601SQY308w93liyuFj1xtdAD6zJzzXzOxRkPKuzRjiH1xchet7dz\nnGq9JmoQ3ygJnexv+ZuoitgdbWvuhVMW21NERxcKEH47aQtUaNo47H70GXp7\nTB0tBny3NN5Skpn4rrRhxRhyVnc0abeSCuZko17ZTbXw5Lxy7TApA596HXQE\ntAgEQzEQptr5+o1JhgBErpnz9UU4ASOtzAwQ/ogL/yUKH484Ks0YGi87FRrx\nrCmutwPZeDnTs2aiHMuy7mfvTKmGGXpCPFU9n2VIs5yczo5ASWHXkM1bfAfA\nMeHG2HLBeyvTJaTPASb3TgiBiB4KtxdgYdoEC1524cnmJS+GOU/ZY9VDnC/X\n3n4vuFvcHhYPDTdCZmQV8uJla8a6SxL8Nb6EGQOCxoayDG+pEJCnszNSRQyh\nHKpZ83Gc5A3dH5LUcwCwaeqNZOAG4+C4OSwu/O6DMdnJ7g0n8HzndPA6rkP/\nsqWI7KzAFglEYahlTblXqXDLflgSEcO8hVkBFRtYyYwJXmnWFp1A4nwc0o7a\nnE3I\r\n=IrtM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/streamr-client-protocol.js","module":"src/index.js","readme":"[![Build Status](https://travis-ci.com/streamr-dev/streamr-client-protocol-js.svg?branch=master)](https://travis-ci.com/streamr-dev/streamr-client-protocol-js)\n\nThis repository contains ES6 JS implementations of the Streamr [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by:\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [broker](https://github.com/streamr-dev/broker)\n - [network](https://github.com/streamr-dev/network)\n \n This package is available on npm as `streamr-client-protocol`.\n\n### Usage\n\nThis section describes how to use the Javascript implementation of the [protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md).\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Publishing\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish `latest` or `beta`.\n\n### Publishing `latest`:\n1. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing `beta`:\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","engines":{"node":">= 10"},"gitHead":"308bde94686b979692e86867965c18c7f8eace7b","scripts":{"dev":"webpack --progress --colors --watch","test":"jest","build":"rm dist/*; NODE_ENV=production webpack --mode=production --progress","eslint":"eslint .","prepare":"npm run build","pretest":"npm run eslint","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.8","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{"test":"test"},"_nodeVersion":"14.15.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.2.0","ethers":"^5.0.14","core-js":"^3.6.5","hashring":"^3.2.0","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.11.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.4.2","sinon":"^9.0.3","buffer":"^6.0.3","eslint":"^7.9.0","webpack":"^4.44.2","@babel/cli":"^7.11.6","babel-jest":"^26.3.0","@babel/core":"^7.11.6","await-sleep":"0.0.1","webpack-cli":"^3.3.12","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","array-shuffle":"^1.0.1","eslint-loader":"^4.0.2","webpack-merge":"^5.1.4","@babel/preset-env":"^7.11.5","web3-eth-accounts":"^1.3.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","terser-webpack-plugin":"^4.2.2","webpack-node-externals":"^2.5.2","eslint-config-streamr-nodejs":"^1.3.0","@babel/plugin-transform-classes":"^7.10.4","@babel/plugin-transform-runtime":"^7.11.5","babel-plugin-add-module-exports":"^1.0.4","@babel/plugin-proposal-class-properties":"^7.10.4","babel-plugin-transform-class-properties":"^6.24.1","@babel/plugin-transform-modules-commonjs":"^7.10.4"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_5.3.3_1610910516622_0.08623340038756444","host":"s3://npm-registry-packages"}},"8.0.0-beta.2":{"name":"streamr-client-protocol","version":"8.0.0-beta.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.0.0-beta.2","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"806e1a005b570604757948dcbbb54144429be8ca","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.0.0-beta.2.tgz","fileCount":189,"integrity":"sha512-TwNkaBIQCyarkkTxpQuMBCu7Uqs0sH5CUK+/g6751J3ZL7VenZgv/dPRuQaatFDP5LboyRTo/qJxD+75TBfZBw==","signatures":[{"sig":"MEUCIQDhZuDQEPsC5PYDgKPbkFLUNLEusb/YBvqadFQ34/UjUQIgNiZ7SrnMRlmdSgL77orzMiJJx9HKrsAkARioZC9EZTE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":416769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLDT4CRA9TVsSAnZWagAAu04P/RVCN71MJ1TZUuGETS1C\nZpbr6A/fPHVVLBjofqgCBy3ToyGMC/TH21fPFuJNpVKOZl8n77Bk7mlyKUYk\nejIQNqSgIB33VqZ0pyCI7xGSTx9qAJPelBcXODm6PBcWc4QBc1wCL7gNkrfC\nILTspMDynrOxOKntUC9WYO0Kpg5Q8ttz7AO2Y9N8BGgM4Jdw9Je0RGasuFth\n+64+/O46ij7sMXU2S1h9eC/4TWU5e1nGO818w97syCOJDr5Bw7VVElwB32wj\nSJnQ7HU/7VdNHXU8xKG+DtVcqQtocDIElC6P/8BP2KUGv52qg7zFjOMwkFyM\njY1JfkxeSNHpzU6FyxzpJjYKt2dL4m9OFUwnDd778VwWwOyBFHuHxpTofEOy\nDCSLjtDFFgQf0F95C4yVq4TXP4TmxvJllY2As884fFcTN7E6BBwdKxR2soAN\nN+LCuQfw58vxqzX6hawHOjFe4ircEBkunD8BxfgRr1XWF1UxJ5yfdCDUE3N8\nIv4cAdS/uSAhmpa3SppgnGK9Be9Rw12EVAch1QLvYGODoYEkMKCzMC0x7GLz\nGYp/9wRkjJcvA7Wt6wIUaoo+eO/0LJv9fU0qPj852yBEc4oS7YB/iCyXslK2\nncIMmR4g2ngt7oyS2esWQp/nIYXD5cNM078tKxp9wFzLqwHL19+EOscwmm3F\nUjJn\r\n=7xb/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n \n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","gitHead":"1e4942a00ade45004d99405c77a59e22cffa9313","scripts":{"test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.15.4","dependencies":{"heap":"^0.2.6","sha3":"^2.1.3","debug":"^4.3.1","ethers":"^5.0.24","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.12.13","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^26.6.3","sinon":"^9.2.2","eslint":"^7.15.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","typescript":"^4.1.3","@types/heap":"^0.2.28","@types/jest":"^26.0.19","@types/node":"^14.14.14","@types/debug":"^4.1.5","@types/sinon":"^9.0.9","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.0","streamr-test-utils":"^1.3.1","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.10.0","eslint-config-streamr-nodejs":"^1.3.0","@typescript-eslint/eslint-plugin":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.0.0-beta.2_1613509879999_0.6649923553392507","host":"s3://npm-registry-packages"}},"8.0.1":{"name":"streamr-client-protocol","version":"8.0.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.0.1","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"9361384122b4e47a4ea1e166d793196c800ca3c9","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.0.1.tgz","fileCount":189,"integrity":"sha512-ZoJJMx8H2+npsreKgdkwTSXHnduNg5ARoB4mWHZSveTz9u4nmaJXEHoovsb745F3lPzOz4zjYh0YRmduqQMc6w==","signatures":[{"sig":"MEYCIQD+vEGLIfzbReWTV6ZGzyaGMGMylR3x1i10q230mp3l1AIhAKXMAwhK6ToRVb1dZEB1tl0/TR0OpzaKBs3evoBhrHyI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":417414,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYfusCRA9TVsSAnZWagAAy9UP/iDX5z2Yt4neBqWXAg7k\nsAo3ss25Tixi5AQOknlAdlOsIujNpiyGIfZi6/E/ptwelaBrG7UggR/IGpns\na14oMbBISIOQ3mfN32ep63kwFSpVqVEhD0SBHUBjdSl9xpHpE44EksHm1XER\nC+LRQw/apRhe+gEvK0TrJsg50N0wmWXH2k1LIsv45+ydmKlXtGLvgrLyme7o\njTrCV0QsOsYMudYdoGajmgqzzGyYAJsCtcUc8swgKjHVnSg/jNmUuCdcOddT\nYGxr0QMtGQbFwuXoASaax4lzGHkcbg5kWDCv56rDKxMxpaBGQ2jWVP/VcyWe\n39Zgro4XjK8v+Qjg2Xntd6vpNKXxDqMqCW73VQGvjYWRbo8OklWA0248u3gz\nNpXme3tvfdqy6+s+lVPtwrPRuekHEnk0z/0tJcFqlM2bgLUuMWfzgPGL/Exl\nQYfgjiqv17mpEJ/V7wuXbl9ydxAgKmPPAn4z1PEBYXTiuMTZ6U35NPD64DAO\ndHz7R7vexXT2ToNESgqQzsOOX9XGHfF8IP7WFJOwRvJAThHpk+e8Q/Uamgmd\ntSjxJDyFZJ8smUAjbSRlG/73b0AQehkSmorlThwGmpGsBdzMUTldpgDHAgfQ\nbCZJx1LqXUbc7t6CV17D9Df1dHmM8aiXw6fysjG13HpcqMDqAEh2rvMRUFW3\nTZby\r\n=qNUy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"909f2f00601b52f76fe0ced80116d4403e136f5e","scripts":{"test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.1","ethers":"^5.0.32","secp256k1":"^4.0.2","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.13.10","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.22.0","ts-jest":"^26.5.4","ts-node":"^9.1.1","typescript":"^4.2.3","@types/heap":"^0.2.28","@types/jest":"^26.0.22","@types/node":"^14.14.36","@types/debug":"^4.1.5","@types/sinon":"^9.0.11","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.4","streamr-test-utils":"^1.3.1","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.3.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.19.0","eslint-config-streamr-nodejs":"^2.0.0","@typescript-eslint/eslint-plugin":"^4.19.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.0.1_1617034156072_0.8006841280222734","host":"s3://npm-registry-packages"}},"8.0.2":{"name":"streamr-client-protocol","version":"8.0.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.0.2","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"4b051331607d9e5afb98591d0c309d90fca5e2c7","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.0.2.tgz","fileCount":189,"integrity":"sha512-L8BYYkffM3DOqpQ+mMHvmnMAFuF0Qk/Fgn3gZykiRRDFA9urNqlr/MvPWGQbK/1q2/RC4czy9Xsa6l5MZVT4YA==","signatures":[{"sig":"MEUCIBhLxHgco2iPfwnZzJkXiB/aLY1wVPnaqYi0xHaxJTg2AiEA2uyjo4yGnTF6DCgQtdqjH8bZ1HKT/CoNJd2CHawRgCQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":417414,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYgQnCRA9TVsSAnZWagAA/b4P/1HR1NtRwHT5YfOEpP4P\nFG943U9zkouBL68WOJHnn2nR6hrLCbCu3Evg71+wjx0jHXozz3btRiE+Q/By\nbwhorYywfmyD1gHPgUXFbR1NbmhrIpr3G5ofvc9wy6weBVdtdvVxyMCprcmm\nYIrQjzVkJbCgnHq0TyCDX44uCbU8cOYGPE9QUqfPGZJcQvSnKV9lo5c4ECpt\nj0FrXsqjkCDr1JwP7oCwr+AVu2XZdUb9rKt8SoFSo8oW00PZG/phjAie1YPD\nJZgzPE8iQIkQwKz34oS5BqO2QTvFAOLaExfGc2wC0YOzJMvDm2LXAOnppFrG\ni7q66RRX3bMlvnfZUBWtY3I5IzojyEDHXWckWya4YJlLU+N9QuJrZcNpQtil\nzxkOPXZRYAiviDqwoLGKCzwOdyu+1CQ0SjLOesLK8LowFI8uTMcKCv0o4m1q\nklHLD2eZAEYl7ItPfPBqx2+6YcaAtAgcCiaJaarJxwlbGhC38ycdn+q8+O00\nAn4iS7zkS/uEyUDxi+RNT/LfoE78/BGLqpqzISDqwBM4M3NM7ODAe1bfUNHb\nM+LiXqWn28ftFMMprpz2brIDHmcnrYVTTspoUBFVHLUiOAbO/+g9HPjMj1EN\n5nB0vDZ/yHYgL80kZG+yW+5aZwLNYzUL1q0jwEmoNTyIZpgIpo32Ao+dyI6E\npbQd\r\n=TOQY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"1b700d5facd4fa45b1ce676f6b1b34510adb9c2e","scripts":{"test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.1","ethers":"^5.0.32","secp256k1":"^4.0.2","@types/debug":"^4.1.5","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.13.10","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.22.0","ts-jest":"^26.5.4","ts-node":"^9.1.1","typescript":"^4.2.3","@types/heap":"^0.2.28","@types/jest":"^26.0.22","@types/node":"^14.14.36","@types/sinon":"^9.0.11","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.4","streamr-test-utils":"^1.3.1","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.3.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.19.0","eslint-config-streamr-nodejs":"^2.0.0","@typescript-eslint/eslint-plugin":"^4.19.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.0.2_1617036327397_0.09911488302950455","host":"s3://npm-registry-packages"}},"8.0.4":{"name":"streamr-client-protocol","version":"8.0.4","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.0.4","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"ca6445ab40317993f1044d733cd71da794e64f18","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.0.4.tgz","fileCount":189,"integrity":"sha512-bUNCLWX5XJn60QsbLOeGWjuddiTUDViyHcl46s3reKIsF92z0YEA2ZzksadUa8RVeH3OnUjGqtT9bUk4Tk9dhg==","signatures":[{"sig":"MEUCIQC3qZFtz2tZO+FW1TW4/PshhoKZNw004t6bNIobfsRTeQIgYFQU7Vr+dp+kmW6WWx72BUGqurdHsMKoUiZ/XF5MkQU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":417486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglT+YCRA9TVsSAnZWagAAFhEP/AnAuQf1/WspOhqA2F+f\nyZ1wu49oVfTs8CwflbArZuyFdv7+hIrzI3OtVai5PORedGouZFeDF3ceXAvo\nRN5zxez00HgBd+11s26OLS3eOuJiATr3+Pd2dNvuvXIxBV3Wwn5RG8wRgTjw\nZ9XhFLqrunKt/86dxHqP4JBHrybPmPbYlZPDgjSxXN3/qbvKISPZKcthdMng\nyIeiDLeH7vKC77mVUWvyIKDFdxE0sHHdYyDe/lkgr6MdEFOFuFRL09Oe23V/\n/l0eUwNl1blRw6qUMs+yxpyFehULPHX1MJmOTPBdO2mHRL3j/01kkiNYqeJ0\neBCHD/PTiCAY6GsYzvRN81V+qXk5ZZDrLh4+XPMc6eLip29n8s2KjyJg6qiB\nr/AgpKl73+JXEhi0+HZieNiqla1NnBkv2N+e6PdUIfgBFJKB0hEjzkxFkfdi\np0UhWpyDEvkTKlgOhkPGrhLE1ytCPtgpFYKhNy+zxyeaIQQwJL7Ie65QtQLX\nauD517hvc2Bx+yXx/r3tNYZqlalEazvE8LbQZqzn1MjueIf1xhfibTVcskn9\n8pJnaz6Gj2SRFrtqpufJijKRjJMm3opGgWJqk5fwAaEYRZ5ABIBR/eF51trE\nBy0jMHnKk9ElJwK7sXa/yE2LiXy3JxtRpJaehyOcHc2vgsdR3d5CVFQFq+QT\nWweS\r\n=nJ61\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"e8c74a029a00340c69cc66c7e0054b13b9b85f6b","scripts":{"test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.12","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.1","ethers":"^5.0.32","secp256k1":"^4.0.2","@types/debug":"^4.1.5","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.13.10","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.22.0","ts-jest":"^26.5.4","ts-node":"^9.1.1","typescript":"^4.2.3","@types/heap":"^0.2.28","@types/jest":"^26.0.22","@types/node":"^14.14.36","@types/sinon":"^9.0.11","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.4","streamr-test-utils":"^1.3.1","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.3.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.19.0","eslint-config-streamr-nodejs":"^2.0.0","@typescript-eslint/eslint-plugin":"^4.19.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.0.4_1620393880131_0.3933241257349862","host":"s3://npm-registry-packages"}},"8.0.5":{"name":"streamr-client-protocol","version":"8.0.5","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.0.5","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"c3c2a009d5530ea0a0e6eb6db1e435fc76600bc2","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.0.5.tgz","fileCount":189,"integrity":"sha512-GLTH1Kh06eIltGafyVfY/L4UU1m21RxBVGdwfeCYpqt3WhriZOY7zVsO/iNksUukDBQcyL/rfiRBjFO2YBrBvg==","signatures":[{"sig":"MEUCIQCl4z1qvREFZZh38OGPkAKlOkkyrLbSXCdvwnf/02pbhAIgcUbQgXO44cmNA/Tfu4wxkOCSGM9RywCrzGL4ail+Fpg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":418377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm6FyCRA9TVsSAnZWagAA/HkP/2W/v9UaPhUEWO/iaQGA\njnw1xR0RUExxSIVXfi2XbByhUGpijoMwEoNDo1+RlYGo9MibQj3C6GQ2fOGa\ntvcM4uu2KXjGvobmNzS8EpQy6t9rchORoFEXwCTCYO+WEvlHtoYkDtkRbXlu\ngDZZBLnM1IdTCwhziSebfEQvnbPGcEX+Kg42VIVlosSP5H9YwTliWtUzrF2r\nNH/Fyn6hM8uBXc+4eHNE8TERsH2xJ0qb12WuVp6I1gcpcTVpvnCDT4Glb6Sd\nq0bYq8HqTvSiA7/qmbfOHwA50i8oPWovtoLkcofXMv3udgQrMw+F953RdJgJ\nb8LRGhhcnvdpCmf1kcLO1mw85E/gVuq4+DSXNGT80C8tlDE5JNcoCx1rEWug\nfe274GenEMwfqZBaThwL5D5SddZN+8IKwdVtMxKFeVytiyQ2M/Dv7IOa/yPP\nPLnTTW6lbg8UJsqItRnyNf6LIRKqlXSw2CgLmim7DnW7NKQ372M4yipxBYlt\nZjyl43/88PbZxaPlsB6BO/+tg5ebGobBxIAWrsbU1YC8ljyKb/g3hvuN9MY8\nxCT4nsh4IimV/la12l2QVauhMc4g2m4RK/q8hXgwwW1+J9cfz7FjuOOcmU2L\n+kl67lId3d1m98Qp0Tt10c1HNLAayLFilMhyX3NphIn2CP90aav9BZGrzAUh\n/dPt\r\n=QkPH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"b20793020309d5322532c369c6ad5d5652b087de","scripts":{"test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.12","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.1","ethers":"^5.0.32","secp256k1":"^4.0.2","@types/debug":"^4.1.5","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.13.10","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.22.0","ts-jest":"^26.5.4","ts-node":"^9.1.1","typescript":"^4.2.3","@types/heap":"^0.2.28","@types/jest":"^26.0.22","@types/node":"^14.14.36","@types/sinon":"^9.0.11","array-shuffle":"^2.0.0","eslint-loader":"^4.0.2","web3-eth-accounts":"^1.3.4","streamr-test-utils":"^1.3.1","eslint-config-airbnb":"^18.2.1","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.3.1","@types/promise-memoize":"^1.2.0","@typescript-eslint/parser":"^4.19.0","eslint-config-streamr-nodejs":"^2.0.0","@typescript-eslint/eslint-plugin":"^4.19.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.0.5_1620812145840_0.8673743376503797","host":"s3://npm-registry-packages"}},"8.1.0":{"name":"streamr-client-protocol","version":"8.1.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.1.0","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"ad77944b7a8a7b246905538c8531ad2c9c0c30dd","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.1.0.tgz","fileCount":193,"integrity":"sha512-RmR/6Xo50lBbOxMUuqW+gphyKGtVkLEzd4d27FTBc/w3iy2fbAhsnF2YfpuI7EXAIdpUEU260Au82GxqOwJDzg==","signatures":[{"sig":"MEUCIA1cUMa0Aku4La08m6SOEzJPpdaFZaWPufeP2jJlbm4GAiEAgu2mBV35IQjs8GuqRv08YthOrKIXbLrDlBqECdobGNg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":420669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpNG1CRA9TVsSAnZWagAAuFUP/2tEGxHQs/kpR7ow33Jv\nBgnFerUXdUABWCv2NKJ4x9mT1eIgnlBXGsNSP5HIXd7e6XyIrLXLXnDZEjB3\nVQmeXps/Wd9yzSzRGa2/PLaHKE/Ld6cbWomaQKqqrxCEqj0lxiYC31Ew3d26\n/F/kxj7xVi2E22AsgAKjOrL5fWI4pftWyx6IR6OHSJgbXbAizZGDEHJmCGnf\nET4s0SLccW6XDaSINdXOqJ3qezRmX1lRO52EE/hcs/sE/7fhzgjXp4rvltAV\nuD5Ugr11pVzF6z+r+dNSgBo0GvXQOT0djUr7VO0/uS7LDT+zbpqwv+5SDrAN\ndhixNPAS3Fq505ClC0BNs+BOkkWMspEECgjYiNCOLN70+1Kj4mYbaRfgE0Jh\nicSZUNdTdWEyMlxsjbzXSfO8acI840PglwDGnbGxJrNItI/18r3XzybyQS2I\n85LfGs6a2pKUSuVEUfuPFVUVKL259GkAoNSnRNnVk0wdqpPSm1xfVHS/hicB\nsNf8cpO1A3P33aQLmpwxWUJj1TA+q89JOLoT5MCygE1fk/jhHA0T5bXXE3Vb\nmZP+RJm3siuleV+x1a8p23Xvnrijtu+vjXGAoNfmAOztkOnxIz98/PCZ9B1n\ncQqNYxTCeKV1gi3o3NwkAOaCO3JW3njiwjpFTUgSCe0YANxUuqvFr0SkPUO4\nQUQX\r\n=nSKh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"73dc3e0850213d0a0baac22132f701be38763676","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"streamr-dev","email":"devtools@streamr.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.12","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.1","ethers":"^5.1.4","secp256k1":"^4.0.2","@types/debug":"^4.1.5","eventemitter3":"^4.0.7","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/node":"^14.14.45","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^1.3.2","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.1.0_1621414325222_0.5188449153424135","host":"s3://npm-registry-packages"}},"8.2.0":{"name":"streamr-client-protocol","version":"8.2.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.2.0","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"c9ae2126beab4ca0ae731cec82c41cdd56c71cf6","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.2.0.tgz","fileCount":275,"integrity":"sha512-UiQ8Z4aRKYKPm9mEzfNroP5dCfQbquwjz6LUS3r3x2I3C1PlO/emUzJXsUXCit0iz3e2MF8p4EOPCRm0zRqs5Q==","signatures":[{"sig":"MEUCIHHKslKadVk/r2AdvMTExk3FdUxXzuULmQXofy0roKZcAiEA+dV/Lth5Epb4GDwJFh8WXiQSyaduuSc8Xr35Bkk5Xu8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":709482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgum3UCRA9TVsSAnZWagAAkfQQAIxpqWYMGostPgY0NnBG\nUVsucV9x6Jx746XaSy3Ak2Ih5bG/UXUKy6ojha+hpTxC3C0PvoIpEdDr0nOp\nPDwn8PHkaOQQk3YZi3AY+hdRq+YYaMocggrFCZCG1+68swEXjmMmDkwZXud9\nlf/PMUWOg9PEnYc08qJ4Yh3SXsqrmWnE4TdU92jXQsfTEB1/ONLnVagFHqia\n076ZdTfHlXJ5q61QdbZUDFNDccAIJqc1QvP18bIZHwHNQAooXQA2rp8DsR67\nkzd0a8VoGhflQdvTIfk7c6tgdQIJ21IDGHvBRrl/sJgDnwfBKOHBXRBk/NP5\nmIjxJhRQKELHF+La3XllRf82Lqqmf1mouU3OeVVwrpMWZ6GsAefC+8UWRwDT\netB0i6i7cvFHUnsrvaWhA6mYjpM2p2N90qSjdF2qy3kE7uMP150/yR9gNcD3\ndVq6t1tDWcec2l9Q+UzFksjR2N6ppwgfb4YYkWhZHYI9O5UsPpBE2aNJnjuI\nuPQWR+Ttt1RtZKey5xVH10z1DmMoVVpO/VVo+aif29Y6Kjc/+ynrcFTCKkfq\njnzsBnSM6y0gpPU2a0hgYfjNqaeB554dahhUyOk+u2nq6PifKdeOaoHr+izh\n8FH6ETnK2PsKmAtoBQOsfqyzvlHUY4v5HhW8kRWpw1abRKnJ0LeawaMyEaZL\ntks5\r\n=Hwsj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.13","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","ethers":"^5.1.4","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^1.3.3","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.2.0_1622830548177_0.9905219728698984","host":"s3://npm-registry-packages"}},"8.2.1":{"name":"streamr-client-protocol","version":"8.2.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.2.1","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"5e26fd70bcaafcc139787f6628ee1bfb47a43998","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.2.1.tgz","fileCount":275,"integrity":"sha512-IZR1/D75o/1dAWJNxJY5do1tg51Mw46UHutxcWdazM6kXLW7oaDCc1QOI3zcokv8eHx+FwsOo05fGxYu+WkmeQ==","signatures":[{"sig":"MEUCIQCTToz0nvSSWfqZgjOnls9/UMsJ+0ufQJoLWU96PV1jNgIgGMwbeofUf/0syXlkkNTSC1FCpVup9o4YqMkOHY1XLXU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":708625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyxiKCRA9TVsSAnZWagAAP5MP/Rn/fmSYDOWxjOHWaQQt\nkScPT587xQGUus1B3g/PEu3/fQiBMsXcSIa6vy9iIWp9gNPQABw9ToAHb+oc\nFAu71yx3SMGgTMfcIE0acBcbNbHnty1aiCL3nV4Rm/wKI+SWfXv6zrCKK6QP\nBK8Wuo1DuZKQAHLytE2c88EMJGsNSzjwIJqvBjY27CZNbmsDL/7CVQ+IjfcV\nh7oA/0yVwq7psLUJzES3Z36fHx0zHId7nfd5rTLIufjN7+yy4cJlzAwUwJmj\nmv3/Y2i1Wuoa5CuGaKsp8H+Tr4QUnK78x7TpJ4feu2i6ru55k9GfkFwNhuFi\ne2ns0dkETHVFK10Oh2ZZo9U06le6kkSL1d6SE8fG0PIoY5ULrdGg6FU70Vyo\n5IJSzI2CAlnZEHt2AQXBY6d9ksdYw8b7zSnV+AYLT1V6DNIhP+N67fvRvnS3\nqMA9A7jqciMGiA+ShFStX0PdKkF3iEoMOe2cD6iHZI4d3j4acW3IKqCLYhVp\nN9se9PGxscUKfDqGGxwuwxJLUT2PhBvMBQypEoV9P2LrCNAiN1xBQn+0Q9Ed\nF6I2jXvCij9ZtCAYFx53QP1yD5l2tx1NSryXqnjCKT+Jo3jzvATotEfEoK66\n3041+9wBzTNcuuUUbNPJm9aBuieA/Anqt9avPsbtNUJApV+LMBxkFDjn8RjE\nrLlL\r\n=8ocR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","ethers":"^5.1.4","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^1.3.3","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.2.1_1623922825545_0.8981681716047625","host":"s3://npm-registry-packages"}},"8.3.0":{"name":"streamr-client-protocol","version":"8.3.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.3.0","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"bb51ac2b35cb7094e31e76d88276f51afc73f86b","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.3.0.tgz","fileCount":282,"integrity":"sha512-8+msPiUhdYhs5RQqi4EA9Slbv7HBmGeymKIHgQV16C9A/jum/HSL+6gkBaO2OlaIHRg4Sn68qaKINfUJUL05JA==","signatures":[{"sig":"MEUCIEKXGeWlWLk8l3OISWB+q734+8+t5aXeujRWym8EVmnMAiEAvwRXqZ3r7aCPxQEMMn0CkIbkgIDZTshTjUETr2HuQIU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":646607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7Vd/CRA9TVsSAnZWagAAlz8QAJURLOmzcK0K4kfqOoaz\nP+5wqMyAZkYpAyeY9LRJ4MLQdvADxSImL3U/7fXFccjUUkvPiJO7MFZcBB6A\ng9ZIeTzdJ/rV1ZbCrxqllOykaSncf6s0lGL1kY4dItA8wYcMFFv/nqPKvO1z\nIa0SB/9ROaKPEu5J5iRQ0IKVNtuLH7QuIrM4R0sOSLdVaOvt2Td0vhMpdNK9\nGmUm0oBMbPYvCLlnt1cGGCWs0AuqFLOEF5paKPGUrqzKWSVPa6DSQbg9j6MN\nlwIpe9Vj0nplqlFOVsc/3q9v+y4+uHvKrTGu5S5kAYezLm/mbKwHK89cYOw7\n6TJqWFnyDLvs+SRILXZLv38hlN/e4F/EJGZjn0QgjEoCQZY6n7xrJYWpGh4t\nqIhzjqH+uZ2CYzNKFcPmXI6yJFtbgYQfgJOgBOY/QZn6o9cfjCLgTXG2/eMj\nGcRBEiaLZaLw79TeJOG3gbHnX1Sdjgdt5kDXN8aEUnBW8yVzAXi+XHR0Ljgs\nJiDFOmWuBSMDsK4VC3db45zMjOE+4Huz51Bn46BnEctrrp1ERRi9nTa943tm\nZyxmRVBDsvcNIsyD60pxJRhMNVFSP/Wfxf+VQsM2Ox1yikJy7+UTv7hJ4i5G\nQmOVF7Sgf+w4Q3uo+eecHU1EZLWtKPOA6MXlQfM9QD9Gw40xDrQhGYAamtDv\nluuL\r\n=j/kX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","ethers":"^5.1.4","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^1.3.3","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.3.0_1626167166930_0.09820566799497987","host":"s3://npm-registry-packages"}},"8.3.1":{"name":"streamr-client-protocol","version":"8.3.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.3.1","maintainers":[{"name":"simppafi","email":"simo.santavirta@gmail.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"0d267a3b51d85cd3eadb754cfa483d3992c1a0c6","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.3.1.tgz","fileCount":282,"integrity":"sha512-+7JsXo922nqa30um1wT2Tev0sUioT6mYUTnTYf8HV/kLjGOLJ5+awcRwqmSDYlmacMYEcm546dbNtvE5AczgWA==","signatures":[{"sig":"MEYCIQCL137yzOLeqnwWHtrGayAyeo8kaIwGhLulOkSh7Sd+jwIhAMryYaC/D5IHD+Sq/CwZpQCT0LggBpCZmaJwK1iG2oZX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":646607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7V40CRA9TVsSAnZWagAAIbQP/3v/Uk+ps48gUof3YlGu\nJMyLU2wjrsWLwZzrUnk9YSlRlaBYVdx4bh2DDavwApWd6enk+7YdFWxTWrfs\nh8i5SjLf2gOmdgC48ENBL5FBK+eFfY4YvlK30tdSIDjkpN+gs39zlcpvDfG1\nqnIa/Z9JDKa/+S1T74mS053BniTpmEEQi6RDdMdWCgW8+oy1n85+0FEEVciN\n7a6BwxJXcseHycKwZ4uRzBLQRw4Vs7zKIcttA8M1bPdK40Mz1yWxTwa4h2R6\nc01Y7f8jyzmrIzkLgJXiqIEvJsFKANqvFI0p5Np4URVzKADzME+kheJKFgDc\nS8dC0/HZZvrY1s7O3dqoSV9qfrrC6ZhkU5PXt4BmCYP2MVu6iddgxGmdnE36\nlcKptPlsQfGjkLI1RM+z+YxlSjzPJmSB23ocN2ZhqtJ5imcWR+c5CEPlKA9i\nJUYBJDtdLRbVKzx7lI7cnybAtad8bWiJIn+z77hiNkZhqziriJfOGcc2jeWa\nCOa2Sr4Sr+rKQWVo8aNBs0TF0UFqrfNDynm6tPhCs0I37p0C6rUj6LlcOJxN\nyhpgr4oAMmRLHruVHk9LspFJ1fRYqsdswjJg++CAxUvh+umY0mm5TVjXNqsH\nwTiI+3kvuOQ9pcCQKrLNzWCuemIba9SABQtRFb4FEzpkICoujyLaWki4Boi7\n86ud\r\n=Q8R0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","ethers":"^5.1.4","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.3.1_1626168883592_0.8746347181601517","host":"s3://npm-registry-packages"}},"8.4.0":{"name":"streamr-client-protocol","version":"8.4.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.4.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/streamr-client-protocol-js#readme","bugs":{"url":"https://github.com/streamr-dev/streamr-client-protocol-js/issues"},"dist":{"shasum":"df49bc95093459f1246885548fe7255e77cf3bad","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.4.0.tgz","fileCount":285,"integrity":"sha512-fAObPf1SPHAkB8SNRbFrbHBlFKcVHtNwbI3Hte+n9SAuQW/CCgweB7sdcWKNIgCezuKgVlCVJdkvT0E3TuInkA==","signatures":[{"sig":"MEUCIQDvS1BMuQhT1J02EFPJ4UGeRisBp8GF8FhAY2lns4cbeAIgOkKTxFdSRmrqdOZ9nrcWs0t4ZxS+GflNZ4RxxsVvyDM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":649540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFlIMCRA9TVsSAnZWagAAlnMQAISyjJceVixMYz57u1ue\nCtnQa1N7rPC0oxBVfqX5Gar9OC+t7/4seVCu7ecVDVrb/r7HWsvKeaNzG05B\nxqjuuYgFfzjUoxvSrk9SGeJuSnO3yaeblAEhidLixn1kh4CzxfEOWJwY7eSm\n7QlcYtzYx+RtDBweu7e+Sf5Zr5ULJDNyvDNsvJUsF+cP/eUre+gdsugBudJY\nmUdOkeyrKh6iwHyf4Ce+YdiwaBJeDw8jXVHVSetlDQYG4uJUChGxvrIQ71tw\nxgo1xim9y5euHo0cjfSn3HiHJ2dY6OvRnroH09fQ1E2Q1kv/oV4js69v4rV8\n7/f01mlm+CdVOUWZViYmr1j5crajLiw2e3mjYhdJkwJeUTEcbX73Eb4CiPPV\n8lLDm/tNMmlC8mVs09uUTDJdQwCaalMwysKodoeLhX41Yo3sfww4l2tiln8r\nOPK49ILzN4ZhKWHD0DkiQ4yqSdh9ydaDH4u7ZkzxOQCPYEAFNUGfVhcqBJfd\nm6LRaB9DsZ9IuPrk7+CnMeYdSTnVVK8Nv+IS/cRalB0qoOBL8+VBeDZAp6Ib\nA33HVJED6iqu2S/K3lsM+fy6LGpJxgzjIQGLRHMl7SYbcuwlrzTjEM2uG5R4\na8Eb7lCCLe37E9usPh9Bfif1aR3xQFnsSTrmda6GaXfHx/UBcSJ6k3LWsaBk\n40bd\r\n=yNa0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git://github.com/streamr-dev/streamr-client-protocol-js.git","type":"git"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.1.4","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.4.0_1628852748621_0.6595290199257586","host":"s3://npm-registry-packages"}},"8.4.1":{"name":"streamr-client-protocol","version":"8.4.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.4.1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"3156ee9b50e3cb2d69432dcbae45051bccf8cf6c","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.4.1.tgz","fileCount":285,"integrity":"sha512-7zb5snu0eXBLQhmzzAm6r1LIS+kmQmo8mwDCLuwZr6CRqxmYXf1u6ZivAEjVPcODvz6tUXeyPu7mYpRXu2ZDfw==","signatures":[{"sig":"MEQCIGVjcUsuPH+z3vnRmZWyOaw/KBg0DX0MFTctb2O2FeXwAiA5hsykr4NXVbFQlNwtvYpiNOsgRKW/jEd2rP/olczl8g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":650483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJKLNCRA9TVsSAnZWagAATlgP/RdWoAfC4yTGKKoQOnst\n9M1z7ZUn+b688AU4CScnmyWICch6SPep+DjyHVV/MW//Ern3GjIZtdpsXyWw\nHiqEiR3F2cVcKuyDwn6XpwH1RZtxBdFUmt9iSejD9rqEDLFAUPbx6LzD4Ftj\ndPRnwNU+ozKkRHgVDYfq9Wh6xful1ygkfo+4I1Q/erBYEpKRod9jCJDrnmeX\nEJXRmZg+tXBqtllwSA9HkwEZujMbHX0J+1jibat/zZJAX5S5mB3vxxs7YfVz\njpguux6hCx6a9VbB9HWj9+Y3XAXaE/lBVYL9QcHTAjAssgVyONs9pbabGm1i\nP+atLhu/VauDkoLKhWUvtIyAS+U7Vbzx2HHCuvcsEAQLj5X8dvy+jsyp/EYH\nPbd+mLs9X5ycBZBcDCoAnUh5pxJFOS24Br2V5dB0qcf4cxcJq0SkVAx8DnYB\n9AwBfQ3nm4SC9uu2DbpPQSnor/gKPVeMJLn7SCSxawAtZvW4Q2YWuaWVp2zv\njy3RzaJirMZsRaVfMNr+QbBRb+OOzgdKxxryQP7+HIjyJ6UudpqbgsWkfRGf\nNV3e3tjH02kLR1VXWTLW2ZicKoE75W2lprMrRiZTmeNiIPuMhwvMqxm8i05J\nnm49AAZAUYbrOO9fXlgLqUCegk+xI5GbPrs9yrOBvu3vXc9dlW8yYrc1tdC0\nXPK2\r\n=OvVj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.1.4","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.4.1_1629790925594_0.876141569172598","host":"s3://npm-registry-packages"}},"8.5.0-alpha.0":{"name":"streamr-client-protocol","version":"8.5.0-alpha.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.5.0-alpha.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"dc59e1fb751c391d5814d6300a9fa182c87570cf","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.5.0-alpha.0.tgz","fileCount":285,"integrity":"sha512-qWiM/B0y4l4btqNWYBaaDWZeo+IaOZ+PFoyhjrFxHn4/E6XqQcG2ahufrV7Vr/6KKuOyWBE2FNpOu4kv8aiXXw==","signatures":[{"sig":"MEUCIEjW4e1LNq4apXXk5xggLLfmmafvCktv0HYPBuKndRLkAiEA2yN5cyVr9x3RigF2GAQyeGPZYLDRdpGvPwFPiu0bEXw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":662922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhN811CRA9TVsSAnZWagAAOwUP/0FpH3KVh22i+zfk/JiD\nXEx1Yt2PxwywOlvP76QxzgIiq7hlsXb0nkB0CsklKEgMo528R8su3bgt6fok\nKxTo6X0QY9sb0nQl0Z7CjXup1eplDsURDK2O2bNMaRsnOfnBAESYqGs49AqR\n10M+x7YXrMvKVdmDIFBmr2nteLbN+NdDbLcIWIDVvUNsYY4r3ddMALZfB/ph\n6odm62xp6lKBBmHQXTW1hJAnurw18YBXthl+ief5GhgZghnFfNE+fViy5leI\n4CVg3GBeDCA3m+n6dk9kipdPegeOrtnB31Tq2LMMr8FsEzd8CwpDnajmi3i8\nv5ajS+WXLOdkRNXC8gyyCxHQlC5Fsu0ImxBUfagDNUsPwmk7dAv+QYJ5JIsI\nH/l3b+aCmwqrcbHt2LjMvdeFpdZ6R7CxDdVuOgFw6pHJxzBrb7uYSgXXTFqw\nfN3NyaL2NMHCYVCHG4ggaerEKu8ofbEchBkswEJr8HtjHo70K2gO5Y+K6Vti\n7YJRtIiohwX6RG1RDeQ8XpsdxN9YaGKFqnkuOlD71wu213tnzHvfMrCt3dq4\n3OxVXVr1YBI0HDMivOxOUUogXPQq9+I+tHPXV6niuAfcOzbwB/wKlGHl4EmC\nxb3/ClxmdvmFtLYnC71xL1uy/xnlb4NdlfN2sHUT5h0BSndKbcKNyJ3UXM3H\n/dSh\r\n=tKQY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.14","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.3.1","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.7","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.5","sinon":"^11.1.1","eslint":"^7.29.0","ts-jest":"^27.0.5","typedoc":"^0.21.0","typescript":"^4.3.4","@types/heap":"^0.2.28","@types/jest":"^27.0.1","@types/sinon":"^10.0.2","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.28.0","@typescript-eslint/eslint-plugin":"^4.28.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.5.0-alpha.0_1631047029026_0.6725376534312453","host":"s3://npm-registry-packages"}},"8.5.0-alpha.1":{"name":"streamr-client-protocol","version":"8.5.0-alpha.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@8.5.0-alpha.1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"f79ca8dae1f8bba6a134d38246863c06b5d23ece","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-8.5.0-alpha.1.tgz","fileCount":288,"integrity":"sha512-C05fDHHKsAdjab40QkKDBomptZWU666sKoyqLMYTVVWeo0RMESEyGrk1mx8IIgumQq+hQDl3FpiStUzJsRsO5Q==","signatures":[{"sig":"MEYCIQCFbjLAq0fS0Gf5D17Za2JyxQldfxz3/Ro31yBTBGe3ZQIhAPWCRLrWj3aU2qhdeqQvhcB4YCpAdom+iN9nNtxoOUm8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":665492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOJKVCRA9TVsSAnZWagAA7oYP/RNiFMegOCTGVoVYY0T7\nbuxoxYCiLNUX/GB1VgzxvTCO/w66xLWdhgwLrZ39Feu+1Jnj0DctFAi4pzSZ\nBt5JiIyIJBjk9jMe1SZXalv83q82iZOoEdmetQ8d81K1zGIbomZQTPY3kjzZ\nsQ0VReBhx9W15md/d3BXRCoJvH4LX2yITNFKYWQ8li3Vu1xPiof8cpu0z4R2\nxn3NW9iSHqBRn7Wfp0C07wmu/dssUQx58rcirChBqr7T3JwDY1C0U5GmuTav\nTRH7sMTtTLotk4rWoeKTOZAVt34C6iCNaEJ5lT8OMK/LBMhByfdcR1sE11YB\nLBQAH0LI2QvPsrpltjpJq1jTT84kwpAKEFjPty7DumlkAU34YYvKbUAN4Soq\nFn0dIdFzWpLt9LwxxxnY+itTaDkcRi0Cfw3LGpTrW0OlFCd8yokCspqriGnK\nWFqMLOv8TvWWflOI/Xqr5M6wzU8N0mWieqCghxAuO6smB/VK1XMbeu7wIKL8\nJUjxUlx3xVJUNRGNVX+NJ6D8alE60spoulHSSJIq5YewxdP6L/4J9Xzu662B\nwlzfSDOho/WMEjk+E+ptSkb2SxC8osSwv0VFPlA4yDKND6fa3VOjMbWK8VWv\nRCI3Hk3QNgknQrTYmgoqMYFwZ9F0+sb1ihOqfdL3nxRqQgkO0u0/5pNEdK8l\nW4wM\r\n=FVVZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n\nPlease see the [API Docs](https://streamr-dev.github.io/streamr-client-protocol/) for more detailed documentation.\n\n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.14","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.3.1","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.7","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.0.5","sinon":"^11.1.1","eslint":"^7.29.0","ts-jest":"^27.0.5","typedoc":"^0.21.0","typescript":"^4.3.4","@types/heap":"^0.2.28","@types/jest":"^27.0.1","@types/sinon":"^10.0.2","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.28.0","@typescript-eslint/eslint-plugin":"^4.28.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_8.5.0-alpha.1_1631097493110_0.16762434342489763","host":"s3://npm-registry-packages"}},"9.0.0":{"name":"streamr-client-protocol","version":"9.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.0.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"5174c1207da2c481db394e8c9951d13b2de5e81a","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.0.0.tgz","fileCount":288,"integrity":"sha512-O0NJTbN7oGRxOUriwJ+gDJwAecAgLLnFIvWSa0CAzk8QYUtisgFLxNrxqffQxk4m4/j7cdqxBvSIQbMPMYUrtg==","signatures":[{"sig":"MEUCID8a4xcOef7HlIK4F5eaV76XGmHHithZG2SFbVFzlXDKAiEA2hpsBBqdMUbX+ALWiVq/SLhDI51MTzN7Whq6MNCqsek=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":653043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPycICRA9TVsSAnZWagAAKxsP/RpqQHA0uOOqZRRbNOQi\nuzyR6RsxhdJwYweZm38oM5/j43WO1Aruz2n/acdNijupYkO9TEXMT9hl3ElY\niGLa20BfEosFEGtFlCuJEnE5/gOyHJEwvTAfrwuxbrehyn+GKFfc+41WSC1h\nFIRz/e1S5c1gYT1IzuX1O8gmpmBuvoiv71CWq5NVYlZKxSMt/LeHswch06LQ\nH3OrFdZHuxre3c7Wk753Fdl+hTZjIzAw5yBuMeGAYTDOtStt4feDVstJfQU7\nKS19O5qzRKUnHI1jXcyopVDzRkZNrc4cfYPultm9NL4LXh775oVzEjlCa4v8\ngB+2BlrAhP5KNq2LapwR/hbnWt7JhtuP3YZdvq0+mRg2HHb1aidehacWU28X\ngusjWKRGqRVlQp7eSIMgkhGXm3dms9uKHAmNS6cCecKa/fGZEHTb13cPiOkF\nxZMknioLDF205UeWEMKTvxthF2x2gZXXiyJ4QfFNVuOj3Z0HG3Z206FmAOOP\nraHOJ1HJqI5DeGRg3O0jbYAv8xTsBoRJs+iLxljuj+VTe5hIKwYi2ejTkQLY\nM1AdKANGWoizfabyNarGvU4bZ2NxANci4taKLxNH36KOjlaAJxnMe1eOKrdi\naN9kG35uAgYm7kCvbXBV4h79nqXzNvvXc50x2g8edeyJNoLvCQhixU460qWj\nuUw6\r\n=Xxc0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.11","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.16.0","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.1.4","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","sinon":"^10.0.0","eslint":"^7.26.0","ts-jest":"^26.5.6","typedoc":"^0.20.36","typescript":"^4.2.4","@types/heap":"^0.2.28","@types/jest":"^26.0.23","@types/sinon":"^10.0.0","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.24.0","@typescript-eslint/eslint-plugin":"^4.24.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.0.0_1631528712558_0.10200597656432975","host":"s3://npm-registry-packages"}},"9.0.0-brubeck.0":{"name":"streamr-client-protocol","version":"9.0.0-brubeck.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.0.0-brubeck.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"87d6f0d6e244b7d045dfb72ac3ff3f45a9c6908f","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.0.0-brubeck.0.tgz","fileCount":291,"integrity":"sha512-J3lm041NPKaJCnCtimiC+pkmahS6k+knJoQcpmSprJ6Ezg8jJbisQX4bK7LHc5v+EDkf6u546MDuuXgV8yESTQ==","signatures":[{"sig":"MEYCIQC1xhPM6CUdv/qa6vGMIpCq3NGNlwMiJvtZC8U5L6wctwIhAOBeT9dVGNBNgNQo2jBBheKTNnxSqa5nQfaC46zXwXhB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":667572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQn3/CRA9TVsSAnZWagAAbKAP/2Jyjw5z8S+ml9/xMHep\nIqzi3hCYWZgRstdZBBLBY49pPwHYeEBH6DBjxWfEM9n8J6nGBOodG1DVoP5a\nuozCj9P5jbqTfo+AOqW4VzH/1QTbxSve6HZFVVorfKhfrtXQraEmBoKS8WBk\nu/vBsbeVT52FEvJJkgoGzHX/pRQZN6bMabiDLeLZhoS27owS8pjd/NzbfMku\nQOLnL7+TtPwvpuUajt96D7BTKkf3qgBIxEUKUfxDMBcTJdklkE16LzKRNTI1\n8oNjTAkljsnpm+B+hghGsJKXNZhs+HF4ohf3kqY033OYEVrHfWf2OLe63jKp\njDFOYxeXI0nASee/VW9eZXZbkHvVWwFptYVsK6z3Qr2mGAuek1Dm2NHrfF43\n2ktceIl8iNBlCkOSnvNk/eTkxYV3cgQ1i5DDMF4Ku/2NIQMCcCYuLYoC4wgZ\nEc7sEZU+DRNcGfDtsMIMGOF1t1lNFwGdcbs/PYnJZvXS0qkoYDr4Sfu+KQYF\n/yDfknx+5zHfFfZHu/XNRnL89eOEJ8cctlJquaJdtVOsKrcLjWUQXUcIMFQs\nT1W1CERML/F2Gqw8QgfwUtctLDu4dvJRbCcKIzMqsjDck+R7yP3NMNBJSgTU\nbCAGgmvJ6djRDmxXoNuYtcKywlbfp5cHQ2J3qbrEC7Bl4XnN9xSms0wDffSu\nMMwo\r\n=np95\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n\nPlease see the [API Docs](https://streamr-dev.github.io/streamr-client-protocol/) for more detailed documentation.\n\n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"deprecated":"This build is misconfigured.","repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.14","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.3.1","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.7","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.0.5","sinon":"^11.1.1","eslint":"^7.29.0","ts-jest":"^27.0.5","typedoc":"^0.21.0","typescript":"^4.3.4","@types/heap":"^0.2.28","@types/jest":"^27.0.1","@types/sinon":"^10.0.2","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.28.0","@typescript-eslint/eslint-plugin":"^4.28.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.0.0-brubeck.0_1631747583599_0.5746278326219516","host":"s3://npm-registry-packages"}},"9.0.0-brubeck.1":{"name":"streamr-client-protocol","version":"9.0.0-brubeck.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.0.0-brubeck.1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"88da31224fc679dab905529754441a289fda4af7","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.0.0-brubeck.1.tgz","fileCount":291,"integrity":"sha512-rlxAX+8JbCCi/uCyIHjMYa6wSC82yT8BBYs7KjlNIow+55ACQ4C+Xe4NBqYZz/fQ8ZqdsoP03AWBYyVTOnnWzw==","signatures":[{"sig":"MEUCIQDJEYY0tkiGwP4C4RFpjPFrCO07x6fkixwgQg026JNtawIgTvTImsBbi3cDMzVGn/QiSTbA82IMWsh4usQ/VAkAUYc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":667572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQoOpCRA9TVsSAnZWagAAfV4QAISbgWxzey1IYyOCHGiB\nY3ftrur5zp1p5rk+ZwPmvuBSMRZScbVtcPUutLnt6IN0ZLHFOHBmUue3V16v\nKt8fkoQstLw3CkuvI218Gg5pYlqYGYPFMsp2Zk/z6Y9B6qDmPobXISuIXGKp\nkvIDzctADy7+X3iEVxPm7D1ni9i+MUDZbTQArG0lxhk0itRk5opgD2hD+k7I\nZabMB/Ra4mxJPGjYRw/45ZEd2tWpLtvIgLK3u5m2ekbnQxECBYtNl1exovYT\nGErv4gUSPN3XcQYFCK0ZmiPNrDswDOV35rpVwkUMTsCcISf2/0sjONriEhHv\n5v3+AA/luB1DxNrWlb6R7NI3c/Nxhyqjx7CKuKtY7El11KfMIfJvhMJWumE4\n6syhKwWqTaXve7BFZn+QdhVw99jxhlfk2ITsXQx4dxqGu+oxLfyyZJ3hTm9P\nalGOz0vAAUXRwgv85WZS0PiuSYAAVMgLvUWfas+ab8KxNwcEdarJ9+cuSZ/h\nT2ykpvWhZhvLuWAOv+MXWONgttUThMYk2jhfZuEAeFuXK8LvjL6TMHly1fe8\njJj0nNgYDoffvNy28TjdSp7T6+ChNtPVae4mDel+Ebij/K0qP/b5nlGoLNB+\nfa1efJlavcoXb/1pHtW43RJ5B1lvEs5fKz3XsQN5tKDEJs098B/9jFIc9dXq\nc+qO\r\n=06rI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n\nPlease see the [API Docs](https://streamr-dev.github.io/streamr-client-protocol/) for more detailed documentation.\n\n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.14","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.3.1","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.7","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.0.5","sinon":"^11.1.1","eslint":"^7.29.0","ts-jest":"^27.0.5","typedoc":"^0.21.0","typescript":"^4.3.4","@types/heap":"^0.2.28","@types/jest":"^27.0.1","@types/sinon":"^10.0.2","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.28.0","@typescript-eslint/eslint-plugin":"^4.28.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.0.0-brubeck.1_1631749033079_0.6153351369789664","host":"s3://npm-registry-packages"}},"9.1.0-brubeck.0":{"name":"streamr-client-protocol","version":"9.1.0-brubeck.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.1.0-brubeck.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"6d6088a4fe5522dca2177f79031a9d8d371849b9","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.1.0-brubeck.0.tgz","fileCount":291,"integrity":"sha512-8tMrTSirLISG0v9/jXCztI0ZZbpVBpvdC3Z6S6dUGIIYLOtGQaaLse6IwzGlntU1KszgD6EdLgmcqak73q9iEg==","signatures":[{"sig":"MEYCIQDSOk+GTPiAfBPtm5Y4OJMCYJcg5P9B13F5YBDeqzepbgIhAKlOSC7wMF1fIfzJ+ah3ddtI4gZattZG9kEMh7vl+dmU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":667572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQpuQCRA9TVsSAnZWagAAwPQP/2lBOjlr7tzN9iPR3LcC\nEFHYxyPMZRGc7wge4onichfELz4RynpepsU8MyEW4ua3fQrBgMqILvO81lNf\nyoAbYmsW6OC/C44BTdDvPgHo7aT2gRhklBM5olm70lzF0PVWpVHZTGE3DFM/\nr+AumK2SrmTCom5KnI1nL6c/i7DzZkFhAMroIMdNvnH+kVgf7HNQO8EZvdr6\nBsCIgmYGmGzHfL+O8OMJKp7KV8FOFsBBLEUikx1Vo+AIrjx5qWRxFpazjSo4\noLRSNNwgT1/jdsI7w7pGzAvNiAPM03HazQzco6YJugAPmQz/ihsRh5MVuSYO\nNpqYPAtmeAGmi2fPc304Iq2ad4us3J2raL19TbJg38bZHGehnLygGzej6KhE\nABDwrJXEoGnlv5kFc0DedVooAyoSwdsjaJuiBaF7A70kDQJqgaDhz7m6tMfD\n/IVPF6swiet06CUbCcm0YRbaDJ8tzgN5NVTl/U2xb6cM0Zxv4kaceE89LpBp\nIZQjDD/4FnhF1MhUjJZ6JAtwannezl38OVhD1yu/XV6OgCIw+HpfpPwB4bdg\nU9zlOZNQ+XBoylDkN0SOQ9WLlsYT1CkQTBbELImxwKqHulFxOYWAF6QdB/Rm\npxaan+4AVDxV8a7DQSMbvTTwLhL3KkF/w1M07O39y76p1lZv8ooTgI3jrJzA\nrwUa\r\n=Rzmc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n\nPlease see the [API Docs](https://streamr-dev.github.io/streamr-client-protocol/) for more detailed documentation.\n\n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.14","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.3.1","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.7","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.0.5","sinon":"^11.1.1","eslint":"^7.29.0","ts-jest":"^27.0.5","typedoc":"^0.21.0","typescript":"^4.3.4","@types/heap":"^0.2.28","@types/jest":"^27.0.1","@types/sinon":"^10.0.2","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.28.0","@typescript-eslint/eslint-plugin":"^4.28.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.1.0-brubeck.0_1631755152034_0.508732615529885","host":"s3://npm-registry-packages"}},"9.1.0-brubeck.1":{"name":"streamr-client-protocol","version":"9.1.0-brubeck.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.1.0-brubeck.1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"ec737435f4bba5fb769335d6117cadc20fad993c","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.1.0-brubeck.1.tgz","fileCount":291,"integrity":"sha512-FeQ+f0PECMRjaz5eATAXLc2RjT6nbMERnMm2v89M/Gi+d08FuX/aP1etsZEYg5QjpXynsU7j0oPiB4rbi7ubXg==","signatures":[{"sig":"MEQCIG49d6LDgn+X3qYlkl0uA22VtCOX52zTQWxv6wPlG2PLAiAPlz5HE+IY02nBWgBHFOkAsfoiadr9qBEuhNXpcGQozQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":668681},"main":"dist/src/index.js","types":"dist/src/index.d.ts","readme":"# streamr-client-protocol\n\nES6 JS implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages. This is shared code used by (at least):\n \n - [streamr-client-javascript](https://github.com/streamr-dev/streamr-client-javascript)\n - [streamr-broker](https://github.com/streamr-dev/streamr-broker)\n - [streamr-network](https://github.com/streamr-dev/streamr-network)\n\nPlease see the [API Docs](https://streamr-dev.github.io/streamr-client-protocol/) for more detailed documentation.\n\n The package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.14","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.3.1","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.7","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.0.5","sinon":"^11.1.1","eslint":"^7.29.0","ts-jest":"^27.0.5","typedoc":"^0.21.0","typescript":"^4.3.4","@types/heap":"^0.2.28","@types/jest":"^27.0.1","@types/sinon":"^10.0.2","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.28.0","@typescript-eslint/eslint-plugin":"^4.28.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.1.0-brubeck.1_1633464547401_0.045720110995974395","host":"s3://npm-registry-packages"}},"9.1.0":{"name":"streamr-client-protocol","version":"9.1.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.1.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"6bb30e96b62d06b3b5c4ba3adf37a0ae54fb7067","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.1.0.tgz","fileCount":291,"integrity":"sha512-n5Ehl26VT19WbAhWHNJoC0hmkyH2uxwvis8ebXyEY9S+rzEybhJA9oAKQgkesCDI43//GrUsSB2dd8T7UE/E5w==","signatures":[{"sig":"MEQCIFAFVtiOT7DX4yhI3R9bCjAw1mi0hkc62qU3Kx7e6TDMAiAqNXGAAhrVRyPO4+ncpDVQkTVM8s+CVB8yd7K1uoazHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":668671},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -p tsconfig-build.json","clean":"rm -rf ./dist/* || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","prebuild":"npm run clean","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.14","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","bip39":"^3.0.4","debug":"^4.3.2","ethers":"^5.3.1","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.5","promise-memoize":"^1.2.1","@babel/runtime-corejs3":"^7.14.7","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.5","sinon":"^11.1.1","eslint":"^7.29.0","ts-jest":"^27.0.5","typedoc":"^0.21.0","typescript":"^4.3.4","@types/heap":"^0.2.28","@types/jest":"^27.0.1","@types/sinon":"^10.0.2","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.3.6","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.0","eslint-config-streamr-ts":"^3.0.1","@typescript-eslint/parser":"^4.28.0","@typescript-eslint/eslint-plugin":"^4.28.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.1.0_1633612671301_0.6848036517866662","host":"s3://npm-registry-packages"}},"9.1.1":{"name":"streamr-client-protocol","version":"9.1.1","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.1.1","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"24f019bc06ec5b79f9ec4a733d1bbca2e98d3603","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.1.1.tgz","fileCount":288,"integrity":"sha512-RAzXsIonPPDkZlP9wxKv7lwBOcvq6+CFu6n8ajSH1O31kSJ6rQweI0UC/Gk1sUXUQpBdmYBOXWMTIAVW6xvBiw==","signatures":[{"sig":"MEQCIDYDevFtCcpJgQf8RJYGn1RrDdQDy/Dd54DNuE6YrdqPAiAEw41dp+sAxfQkkOVYXuTc9cChIk11JBpJRQ2E4I6VTw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":661924},"main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -b tsconfig.node.json","clean":"jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true","watch":"tsc --watch","eslint":"eslint '{src,test}/**/*.ts'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","prepublishOnly":"npm run clean && NODE_ENV=production npm run build","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"6.14.15","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"14.17.5","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.7","promise-memoize":"^1.2.1","@ethersproject/hdnode":"^5.4.0","@babel/runtime-corejs3":"^7.15.4","@ethersproject/contracts":"^5.4.1","@ethersproject/providers":"^5.4.5","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","sinon":"^11.1.2","eslint":"^7.32.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","typescript":"^4.4.4","@types/heap":"^0.2.28","@types/jest":"^27.0.2","@types/sinon":"^10.0.4","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.6.0","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","@ethersproject/wallet":"^5.4.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.1","eslint-config-streamr-ts":"^4.0.1","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.1.1_1634571533643_0.5085345743099079","host":"s3://npm-registry-packages"}},"9.1.2":{"name":"streamr-client-protocol","version":"9.1.2","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@9.1.2","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"83d9f289f4a0afb9f12bc6a7c09ba1a38807044f","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-9.1.2.tgz","fileCount":305,"integrity":"sha512-IIdZjcTc98fo+MbnsIAzhYv7x+1Q3orNeGq5gWcEmsfPxtYxZbIkCnANxyMzgDRHvs+tQux3rVeBr9bMO8zDtg==","signatures":[{"sig":"MEQCIE5uLWwtZ5+alOa6F7Fiojn7UqBV0CcwbCJI9UeIMj+FAiBNbfwi88tJNqoqKq8PebUF7Z2oyLwVDol+qNT2yUTYpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":685440,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsziRCRA9TVsSAnZWagAAl3sQAJ6NFcmqSYQDTK3GLfGt\n7s7gH7amskkm18aL2fxi1UM7SrFr2IMRVm9t9Fu1+MscjGkwQJHLar8t9Fcn\n97/q7r2V5K9g2Agu2u4dzgHi0qdRF7hoKIlPqqBYldYeOGyRVPKnwGq4yHuo\n4+bLK44XtGl8xXIDoRgzwIsUHUI7ga4vGZ0z4L9PqnemnxQ7oQGWfM6ogBwP\nSeLhlhdPlejYNyjyUBvl6JAtIkAFC8aVbd3jbLSO6h98cqT62B2fffUIVruS\n+U8DCTuIqYQtS8UvrvikRYJ1VtoLP1OjTp+DYAtQohcq126irSYjwqszA7Eu\nWuOLPR0IO2GO5xdAGBfa+DniP8QU+l+lhzo2MH8vONtNVod6R8EG1L0/vnp4\nqkNC7wkb3ZqaygsRVqXA/LwIaAcIw6c/uXe+HXpj7f8qLq3fGfHawjWi0zDe\nMC2jIpzSPbaLD6Om4DS5q+s1tQN4y/NEKM4uKVkK7Ya2+kwZxXtFBbTiLJAC\nDwjuOTiVj7Ncj2FNJKB1uVADIarc6lebVFHHk/uP5mwEPGtY0gNONN6AORbJ\nBQyKXjlkkaN/AqrY80V+HN6zKoZZVyUfd2490Lu86w1rm47sN93eRCF4bo6y\n4RxDaPepYHre7ktZM/ARuZ8RvZ6vyfNVWn1agrehaLSQv5ADnKao9SkN0ysF\nYGFs\r\n=FRF3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"902e9c62c9b9f96808eee921a8d6cfe4ce7ddcd6","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -b tsconfig.node.json","clean":"jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true","watch":"tsc --watch","eslint":"eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","prepublishOnly":"npm run clean && NODE_ENV=production npm run build","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"timoxley","email":"secoif@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"8.1.2","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"16.13.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.7","promise-memoize":"^1.2.1","@ethersproject/hdnode":"^5.4.0","@babel/runtime-corejs3":"^7.16.3","@ethersproject/contracts":"^5.5.0","@ethersproject/providers":"^5.5.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","sinon":"^11.1.2","eslint":"^7.32.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","typescript":"^4.5.2","@types/heap":"^0.2.28","@types/jest":"^27.0.2","@types/sinon":"^10.0.4","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.6.0","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","@ethersproject/wallet":"^5.5.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.1","eslint-config-streamr-ts":"^4.0.1","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_9.1.2_1639135377612_0.27998285642001175","host":"s3://npm-registry-packages"}},"10.0.0":{"name":"streamr-client-protocol","version":"10.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@10.0.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"1cd2f1cdb0f093b72ff932564a4a31657d62eae3","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-10.0.0.tgz","fileCount":176,"integrity":"sha512-NBMXtaYMqIiITIxWMfRaoKJIP//Ysyd20KuGkN+54M4A6NCNse2El63P78zZMDz+FrynPV8y2kSXkJAvP8qUUg==","signatures":[{"sig":"MEUCIDb+UNevFmjsiEPb5PPtzgrQMKFJDXLooN7WiIQCbu8hAiEAufxSmNjo0PLmZItIjQKln4qI3OezoHwB8TwsNpiGlO4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":553769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5/XXCRA9TVsSAnZWagAAToAP/3erWjp3AXqMJxXieF2D\n9gJ1PECOl089x5NAgOJY+kSvr083HUmGGPzBghj6mu4HmZbfX7XVYWU9CQSn\n3xc/PH0b4f40Q+oecp0Kmp7nDGMDhc9rKtz7uNYDHHM6WsDWurNv7MYeVfg7\naRQe+WASldjGbgmCmeMtSpOnGGITS5W67rMR+tQQ2pk7HY+2witttn9LqtYW\nw6118/vTNHPBsuxkPREmLD+Zh14NXjOpJ9PnMe0tvcQ0i7IvFRLvjkhUSOqJ\niqpKlmvLdqLl/Dlw4Incnis5GGEOaNQD1DnCXLL7r1SKRl5aQY/S2hsY8p1o\nl7kVxhtUEF9n4/0slLypIX+RdJzsCC922WV6y0gET5oDYhUWYGVqAfZlh6IP\ns0F3lefYp+NG9a7y2tRurR12FOqpDtEbYF7v/0S7uCwfwx+BYPDrRaGEY9vt\nIpkftx4TVfa2x/m2ZyrEf3R94gIKQr3IUbONah+TEaJRSWCNR/S2y5Dfqtvj\nizzriJmffgyctjboThNQyD1KRRRHkAHqMlMeomjSqtXg145S0YVWtptgVQlr\n9Dxg4s8oiQY73p0Ud6TA3eF8YQnJ6rNy+k52bqtH0+54IAxrSTxBHUKw+Cvd\nq1kb7Gw/MBEsvrx5VBTjiYw7YIw3IKSpF18IRwlFfc3eA5L3WgUOsLpStmNg\neyCw\r\n=O3Ij\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"64f305c014afe92371af65232f268369100c562e","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -b tsconfig.node.json","clean":"jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true","watch":"tsc --watch","eslint":"eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","prepublishOnly":"npm run clean && NODE_ENV=production npm run build","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"8.3.0","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"16.13.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.7","promise-memoize":"^1.2.1","@ethersproject/hdnode":"^5.4.0","@babel/runtime-corejs3":"^7.16.3","@ethersproject/contracts":"^5.5.0","@ethersproject/providers":"^5.5.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","sinon":"^11.1.2","eslint":"^7.32.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","typescript":"^4.5.2","@types/heap":"^0.2.28","@types/jest":"^27.0.2","@types/sinon":"^10.0.4","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.6.0","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","@ethersproject/wallet":"^5.5.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.1","eslint-config-streamr-ts":"^4.0.1","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_10.0.0_1642591703288_0.5183043970391501","host":"s3://npm-registry-packages"}},"11.0.0":{"name":"streamr-client-protocol","version":"11.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@11.0.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"2b27e87f7c5b2beec37be6ab3ed6f376e96c0e4d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-11.0.0.tgz","fileCount":176,"integrity":"sha512-bJEliEalH50/pQkK4aPqiXb+C+L2oKprEnR47DYc34p9Hfgp9Z7odIXdBfQ9AXQUKJisCtEgLoRG0prmBZTf/g==","signatures":[{"sig":"MEQCIDq+R70tJb2wggOOsk2VIxDQOjFZlMNEm3vJfTE2f9FoAiAULFGCr34AVZFrujoxaa4R5hJPnz4f+5fjIWcw4hzmyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":544872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8T4PCRA9TVsSAnZWagAAWXEP+gJ9TYuXyI5QUSDAQIgt\niP1V8WvE1LXPcKdAJHt7nIAFq0i0WYOpt8d7PfSJPFkLfHj7vXaQ4l0o5pGL\nO3+DUReMQgIhyRyyJikJjcqBcDsFN42gOL6kkwebFVGaGfF0ic9Xu91T4K//\nSf0L6JkR0coIIgGALgXJIl4YeP5Ro5kG3xE/Z1NtzOQC38B0M6qz9F09b6wk\ns5UEvb17eeIExl2JURZktsg1YHhsDom1XNHzlql3QfAhqoOBZXRVadLcHcP9\n6MToWE5JO/m+LJPbjldhG9oAI92b4P1N5cIN1Zvrws7ZuW0clJ/dq2gwR7yN\nMOhrPaLhz9vVPJgPgSHRCbUTg7E0Wku2bKJmid+kYwuX7A+7qyHH+o7MnAVm\niPXuuKG7CMKDKEgSztG76vKXcW0nULeUvrfnpz1VfhxUDsDThSY0IMVNtR5j\nA7w4T+x6EMCA4dTj11zpsJiKi7XMLLDZBf8VQsTHAtG03yeFf3OAQLlToAxD\nPvH02LKSCk5uHL9bnCyxMBEfak/mRBKjWGI/v1GCGbcx/ovi+fD9OvybbaPJ\nqr+LTA5BSszeGose0igFR7jHPMECh0MDE6w/h1FYV8w6OmfOrfTZ68t8CUpA\n9OJ+GKUqie1RthpY3FRbYUq+TpFtX28Yz1b0pv9/sZ6orbuHUiJ1QOu/P3v6\nM7Vj\r\n=W/wb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"9b39f476fad5acea65d136fe5ec9ef0bb0f287ae","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -b tsconfig.node.json","clean":"jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true","watch":"tsc --watch","eslint":"eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","prepublishOnly":"npm run clean && NODE_ENV=production npm run build","test-integration":"jest test/integration --detectOpenHandles"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"8.3.2","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"16.13.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","events":"^3.3.0","secp256k1":"^4.0.2","@types/debug":"^4.1.7","promise-memoize":"^1.2.1","@ethersproject/hdnode":"^5.4.0","@babel/runtime-corejs3":"^7.16.3","@ethersproject/contracts":"^5.5.0","@ethersproject/providers":"^5.5.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","sinon":"^11.1.2","eslint":"^7.32.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","typescript":"^4.5.2","@types/heap":"^0.2.28","@types/jest":"^27.0.2","@types/sinon":"^10.0.4","array-shuffle":"^2.0.0","web3-eth-accounts":"^1.6.0","streamr-test-utils":"^2.0.0","@streamr/dev-config":"^1.0.0","@ethersproject/wallet":"^5.5.0","eslint-plugin-promise":"^5.1.0","@types/promise-memoize":"^1.2.1","eslint-config-streamr-ts":"^4.0.1","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_11.0.0_1643200015430_0.2973707622307473","host":"s3://npm-registry-packages"}},"12.0.0":{"name":"streamr-client-protocol","version":"12.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@12.0.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"juhah","email":"juha.haavisto@streamr.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"timoxley","email":"secoif@gmail.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"jwolff","email":"jwolff@isentropy.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"},{"name":"simppafi","email":"simo.santavirta@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"f81c34eea48b3ed852d158d9982f5e86f24abaf4","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-12.0.0.tgz","fileCount":171,"integrity":"sha512-49qXmjSWXcL3zN6VBu+oR9vuAh17IT5SVjP58OgqCT6H/RmSaJMw5nz2uUMDh1d7KCqzoL0SYZgxYgZxaoKw/g==","signatures":[{"sig":"MEQCIF5ZMnmO6KnW9J132hRHtBgQtpT222ncySljD9uUTGEZAiBGzlbHADv9s6DH+FQ9IYJyJrqKxQLDEZM6u6S6nWaSqQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":290966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/RwvCRA9TVsSAnZWagAANSkP/3abbN/hSS4dJeGb23v3\njOHXgr0IzYpAe9zWbzlQJtaa0qoO/K0hzwmFqzEtJ5LrheWZLXa+Po8KRHVi\n8W9rOWoXxoM451jPy/rhkdtBTtQUDxR3PHIA9J7Jcd/SUrCyFzyMK1xTdNjV\nTLnabCp3kFM6WGgtOl4WTbQr5Wx3wr3xPhDstF+juNe1dY2eTEHAMNnE2O+S\ngbPTPZ3s/8blXJS6UpLGhJLZJ7+5XNP05B94vPkAENeSJan0erBXB8JGN+D0\nFIVD6j/iRrCTlyyRuINDS3Aqa00E2vRDQS3T8O1G9QRxTmLIbjLO9kXu5Ubw\ntlO3s22HeJmN21uLiKCggGYOYGkX9NGtlbBV6GWeMqNnsZYiqmcsVVKJj4PF\nTGvlpHT90IuBHeexSJfZ/o3LZ//GbZXc02PXWetyqR0sHfXpiPeKxha69jHS\nPkoNqUvu4LJPu4WkDoz1tqwzyfTCdha+DkG+uYMPm3FOjt9I5/51LE6q917E\nUrsk0dC+MEbPTFctzWh+W1DzOQ8TmI6fEr9eM1jgz3a1YvAl5+y0u1fW59So\nt/pc5nR/+XCxVREWvb1cp9cKaWIWDqWOB9rwUm6qW3OahHPEoe7hBnbIZZOY\nqj2S3sylmsXZa09Amamg6jrf609D6rkfHfOLVbg1uAZyTpLvbJz4kgi3GOxA\nJ3Kg\r\n=Ylve\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"372bd1818cc0d733fe085adf9c140ce84490cdf1","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -b tsconfig.node.json","clean":"jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true","watch":"tsc --watch","eslint":"eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'","prepare":"npm run build","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","prepublishOnly":"npm run clean && NODE_ENV=production npm run build"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"8.3.2","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"16.13.1","dependencies":{"heap":"^0.2.6","sha3":"^2.1.4","debug":"^4.3.2","secp256k1":"^4.0.2","@types/debug":"^4.1.7","@ethersproject/hdnode":"^5.4.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.2.5","sinon":"^11.1.2","eslint":"^7.32.0","ts-jest":"^27.0.5","typedoc":"^0.22.5","typescript":"^4.5.2","@types/heap":"^0.2.28","@types/jest":"^27.0.2","@types/sinon":"^10.0.4","array-shuffle":"^2.0.0","@types/secp256k1":"^4.0.3","@streamr/dev-config":"^1.0.0","eslint-plugin-promise":"^5.1.0","eslint-config-streamr-ts":"^4.0.1","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_12.0.0_1643977775436_0.5508195860486651","host":"s3://npm-registry-packages"}},"13.0.0":{"name":"streamr-client-protocol","version":"13.0.0","author":{"name":"Streamr"},"license":"Apache-2.0","_id":"streamr-client-protocol@13.0.0","maintainers":[{"name":"kare","email":"kare.nuorteva@me.com"},{"name":"fonty1","email":"mr.matto@gmail.com"},{"name":"hpihkala","email":"henri.pihkala@streamr.com"},{"name":"tumppi","email":"tuomas.koponen@streamr.com"},{"name":"harbu","email":"harbuzen@gmail.com"},{"name":"mariusz_io","email":"mariusz@mariusz.io"},{"name":"pzsavola","email":"petri.savolainen@spaceify.net"},{"name":"mmartinmo","email":"martin.moravek@streamr.com"},{"name":"juslesan","email":"santeri.juslenius@gmail.com"},{"name":"jtakalai","email":"juuso.takalainen@streamr.com"},{"name":"streamr-dev","email":"devtools@streamr.com"},{"name":"teogeb","email":"teo@streamr.com"},{"name":"samt1803","email":"samt1803@gmail.com"}],"homepage":"https://github.com/streamr-dev/network-monorepo#readme","bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"dist":{"shasum":"0c6c27d476f50c50facc192c1ef630d49a68a65d","tarball":"https://registry.npmjs.org/streamr-client-protocol/-/streamr-client-protocol-13.0.0.tgz","fileCount":150,"integrity":"sha512-9q6fv/Nx8qYTAl6aCU4J/RSPHcFixNPhCWl/+hv5sDVlvior5eXErRDwBoJBy/JIBnQEZEKHx28O0VEKc9HVPA==","signatures":[{"sig":"MEUCIGJAdl28gyus5AXhTbqal7zGLYgztAO0WTASYjwYfXHGAiEApqtQgqo9U6Sg1tcQmZ6alLUPXu/iJ8b1mTjyJGDiDHE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":184623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjR+exACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4mw/9FIszxujZDrNC6tIO7VQJDHwsnN3KaXHBAynAuMf3kmTN3eoI\r\ngmhmcS+1AK0uMHouubnrqMbnw3RceUlrX0CIuLq4NEjDNcnOXibChfXiL+7U\r\nYeFXcCfKvp8JCwUgpJXcSZoKPXG4zW51pQIPzD0eDzsztuc0O5V9SlBitfeZ\r\nBkPBu5uKZC8aWW9HXVuaQWZl6T/iGncqVXb+0fK5UPwhEcOYCKNTjtpAfpt+\r\njBMHsYO6LtMPNCFGpsLJN4K2qzEZJjOEwjpo1qak7V2KyxXV8ze+aenM5lIz\r\nqrfDIJrRIcQO984MuPD+8Nne7PEtgqykTekyHLKSl1Qq+ynUQoIkxU4h5fJx\r\no7Vqb/YRVnZol+eys2ZmVvYL7Qyq02J7Gqmayn+SJljWk64W2p81forkZeli\r\nYJ2pjfT6Bmdqww3EaI6Idm6Zi7dqGlvA1ZW9UUFvMK+HHipIKQjWv4um71W6\r\nZQHQqwhZ0wqb/1CzGE4SMMJnUu2O65CkZv3kLMt1KFrR474pEBSW8PilC+k/\r\ndqNyn7vHM6VCPnrMmZjYFo4mufsY5FTOZpdzXgrgBdmrAokvI0oDHpNlpJ8I\r\n+AwUglQpuBnDqPKuH0kPcF6L+mgcDL7HPhz7d71BoGXZNUvqNAGWFqNiMRBv\r\n6iKNhux0DToObrZlp/+7b6IdhJRQRv9Ze70=\r\n=nWXD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"5e21487ff7fe9d0d23751694f3f4011109972a00","scripts":{"docs":"typedoc --options typedoc.js","test":"jest","build":"tsc -b tsconfig.node.json","check":"tsc -p ./tsconfig.jest.json --noEmit","clean":"jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true","watch":"tsc --watch","eslint":"eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'","coverage":"jest --coverage","benchmark":"jest test/benchmarks --detectOpenHandles","test-unit":"jest test/unit --detectOpenHandles","prepublishOnly":"npm run clean && NODE_ENV=production npm run build"},"_npmUser":{"name":"harbu","email":"harbuzen@gmail.com"},"repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"_npmVersion":"8.7.0","description":"JavaScript classes implementing the Streamr client-to-node protocol","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@streamr/utils":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sinon":"^11.1.2","@types/sinon":"^10.0.4","streamr-test-utils":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamr-client-protocol_13.0.0_1665656753237_0.9004460124906333","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-10-26T17:41:02.005Z","modified":"2026-05-28T14:47:37.608Z","1.0.0":"2018-10-26T17:41:02.143Z","1.1.0":"2018-11-06T21:59:27.223Z","1.2.0":"2018-11-28T13:26:55.489Z","2.0.0-beta":"2019-01-10T18:44:06.714Z","2.0.0-beta.1":"2019-02-01T10:13:40.963Z","2.0.0-beta.2":"2019-02-14T16:49:21.854Z","2.0.0-beta.3":"2019-02-25T13:28:53.072Z","2.0.0-beta.4":"2019-02-26T11:06:41.937Z","2.0.0-beta.5":"2019-02-26T18:03:23.608Z","2.0.0-beta.6":"2019-02-26T18:15:37.996Z","2.0.0":"2019-03-19T16:23:58.509Z","2.1.0":"2019-03-29T10:28:15.135Z","2.2.0-beta.0":"2019-05-29T12:59:56.056Z","2.2.0-beta.1":"2019-05-29T16:06:10.378Z","2.2.0-beta.2":"2019-05-31T07:21:55.288Z","2.2.0-beta.3":"2019-06-12T16:13:11.892Z","2.2.1":"2019-06-26T07:05:58.393Z","2.2.2":"2019-07-08T15:25:52.145Z","2.2.3":"2019-07-09T09:51:31.796Z","2.2.4":"2019-07-09T12:34:37.327Z","2.2.5":"2019-07-09T12:44:16.526Z","2.2.6":"2019-07-30T09:44:25.646Z","2.2.7":"2019-07-30T09:54:25.770Z","2.2.8":"2019-07-31T08:58:09.993Z","2.2.9":"2019-07-31T09:16:38.829Z","2.2.10":"2019-07-31T09:45:16.227Z","2.2.11":"2019-09-12T09:50:16.536Z","2.2.12":"2019-09-24T12:27:51.964Z","2.2.13":"2019-09-26T09:38:25.245Z","2.2.14":"2019-09-30T15:21:06.164Z","2.2.15":"2019-11-05T13:13:39.819Z","3.0.0-0":"2019-11-18T12:24:50.460Z","3.0.0-1":"2019-11-20T05:29:27.958Z","3.0.0":"2019-11-25T08:11:57.240Z","4.0.1":"2019-11-28T11:52:07.905Z","4.0.2":"2019-12-16T07:40:03.237Z","4.0.4":"2019-12-16T10:11:02.956Z","4.0.5":"2019-12-16T10:53:20.213Z","4.0.6":"2019-12-17T14:03:10.192Z","4.1.0":"2020-01-17T12:02:37.079Z","4.1.1":"2020-02-26T12:46:24.757Z","4.2.0-beta.0":"2020-04-26T16:33:30.947Z","4.2.0-beta.1":"2020-04-27T13:43:58.706Z","4.2.0-beta.2":"2020-04-27T13:50:37.339Z","4.2.0-beta.3":"2020-04-28T11:47:50.155Z","4.2.0-beta.4":"2020-04-28T16:46:02.551Z","4.2.0-beta.5":"2020-05-04T21:37:02.032Z","4.2.0-beta.6":"2020-05-06T17:38:43.082Z","4.2.0-beta.9":"2020-05-08T08:38:28.164Z","5.0.0-beta.0":"2020-05-13T17:37:41.006Z","5.0.0-beta.1":"2020-05-26T08:46:47.196Z","5.0.0-beta.2":"2020-05-26T17:41:29.568Z","5.0.0-beta.3":"2020-05-29T15:44:53.238Z","5.0.0-beta.4":"2020-06-02T15:36:52.304Z","5.0.0-beta.5":"2020-06-03T15:45:21.796Z","5.0.0-beta.6":"2020-06-08T15:44:28.653Z","5.0.0-beta.7":"2020-06-10T21:02:08.412Z","5.0.0-beta.8":"2020-06-22T16:12:43.640Z","5.0.0-beta.9":"2020-06-26T20:08:28.834Z","5.0.0-beta.10":"2020-07-03T09:26:50.507Z","5.0.0-beta.11":"2020-07-03T10:50:33.189Z","5.0.0-beta.12":"2020-07-27T19:50:54.154Z","5.0.0-beta.13":"2020-07-27T21:08:11.235Z","5.0.0-beta.14":"2020-07-27T21:08:25.263Z","5.0.0-beta.15":"2020-07-29T20:40:20.265Z","5.0.0-beta.16":"2020-08-04T11:35:54.626Z","5.0.0":"2020-09-03T08:06:14.376Z","5.1.0":"2020-09-11T09:16:20.171Z","5.2.0":"2020-09-23T08:04:39.967Z","5.3.0":"2020-09-23T09:05:28.718Z","5.3.1":"2020-09-25T11:58:03.516Z","6.0.0":"2020-10-09T12:24:40.348Z","6.0.1":"2020-10-09T13:21:17.909Z","6.0.2":"2020-10-12T09:09:44.125Z","6.0.3":"2020-10-15T09:23:52.761Z","6.1.1-0":"2020-11-09T13:26:26.704Z","6.1.2-0":"2020-11-09T16:21:09.098Z","6.0.4-alpha.1":"2020-11-20T21:29:27.469Z","7.0.0-alpha.1":"2020-11-24T18:16:02.272Z","7.0.0-alpha.2":"2020-11-24T21:06:01.028Z","7.0.0":"2020-12-08T11:08:42.245Z","7.0.1":"2020-12-09T14:56:33.303Z","7.1.0":"2020-12-15T18:09:38.500Z","7.1.1":"2020-12-17T09:35:52.151Z","7.1.2":"2020-12-20T23:08:18.566Z","7.1.1-0":"2020-12-22T12:31:02.371Z","7.1.2-0":"2020-12-22T12:54:53.608Z","7.1.3-1":"2020-12-22T12:56:38.760Z","7.1.3-2":"2020-12-22T12:58:56.209Z","7.1.3-3":"2020-12-22T13:19:36.710Z","7.1.3-4":"2020-12-22T13:44:27.708Z","7.1.3-5":"2020-12-22T13:54:45.494Z","7.1.3-0":"2020-12-23T12:53:10.348Z","7.1.3-6":"2020-12-23T12:56:22.375Z","7.1.3-7":"2020-12-23T13:14:43.981Z","8.0.0-beta.1":"2020-12-23T15:22:52.621Z","5.3.2-beta":"2021-01-17T17:38:30.203Z","5.3.3":"2021-01-17T19:08:36.797Z","8.0.0-beta.2":"2021-02-16T21:11:20.231Z","8.0.1":"2021-03-29T16:09:16.253Z","8.0.2":"2021-03-29T16:45:27.580Z","8.0.4":"2021-05-07T13:24:40.325Z","8.0.5":"2021-05-12T09:35:46.019Z","8.1.0":"2021-05-19T08:52:05.389Z","8.2.0":"2021-06-04T18:15:48.347Z","8.2.1":"2021-06-17T09:40:25.780Z","8.3.0":"2021-07-13T09:06:07.022Z","8.3.1":"2021-07-13T09:34:43.724Z","8.4.0":"2021-08-13T11:05:48.780Z","8.4.1":"2021-08-24T07:42:05.745Z","8.5.0-alpha.0":"2021-09-07T20:37:09.176Z","8.5.0-alpha.1":"2021-09-08T10:38:13.276Z","9.0.0":"2021-09-13T10:25:12.784Z","9.0.0-brubeck.0":"2021-09-15T23:13:03.778Z","9.0.0-brubeck.1":"2021-09-15T23:37:13.249Z","9.1.0-brubeck.0":"2021-09-16T01:19:12.216Z","9.1.0-brubeck.1":"2021-10-05T20:09:07.589Z","9.1.0":"2021-10-07T13:17:51.481Z","9.1.1":"2021-10-18T15:38:53.859Z","9.1.2":"2021-12-10T11:22:57.785Z","10.0.0":"2022-01-19T11:28:23.472Z","11.0.0":"2022-01-26T12:26:55.591Z","12.0.0":"2022-02-04T12:29:35.600Z","13.0.0":"2022-10-13T10:25:53.452Z"},"bugs":{"url":"https://github.com/streamr-dev/network-monorepo/issues"},"author":{"name":"Streamr"},"license":"Apache-2.0","homepage":"https://github.com/streamr-dev/network-monorepo#readme","repository":{"url":"git+https://github.com/streamr-dev/network-monorepo.git","type":"git","directory":"packages/protocol"},"description":"JavaScript classes implementing the Streamr client-to-node protocol","maintainers":[{"email":"henri.pihkala@streamr.com","name":"hpihkala"},{"email":"petri.savolainen@spaceify.net","name":"pzsavola"},{"email":"devtools@streamr.com","name":"streamr-dev"}],"readme":"# streamr-client-protocol\n\nTypeScript implementations of [Streamr Protocol](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) messages and their serialization and deserialization. This is shared code used by other packages in this monorepo.\n\nThe package is available on npm as `streamr-client-protocol`.\n \n ## Table of Contents\n- [Use](#use)\n- [Release](#release)\n\n## Use\n\n#### Creating messages from arguments\n\nEvery message type from both the Control Layer and the Message Layer is defined as a class and has a static `create` method that takes class-specific arguments to build an instance of the latest version of the message type. The arguments for each message type are defined in the [protocol documentation](https://github.com/streamr-dev/streamr-specs/blob/master/PROTOCOL.md) and in the definition of the `create` method.\n\nThis example shows how to create a `StreamMessage` and encapsulate it in a `PublishRequest`.\n\n```javascript\nconst streamMessage = new StreamMessage({\n    messageId: new MessageID(...),\n    content\n})\nconst publishRequest = new PublishRequest({\n    requestId: 'requestId', \n    streamMessage, \n})\n```\n\n#### Serializing messages to strings\n\nEvery message type from both the Control Layer and the Message Layer has a `serialize` method, which takes as argument the version to serialize to. By default, it serializes to the latest version of the message type. The `serialize` methods return a string.\n\n```javascript\nconst streamMessage = new StreamMessage({...})\nstreamMessage.serialize() // to latest version\n// > '[31,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,0,{\"foo\":\"bar\"},0,null]'\nstreamMessage.serialize(30) // to MessageLayer version 30\n// > '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\n\nconst subscribeRequest = new SubscribeRequest({\n    streamId: 'streamId', \n    streamPartition: 0, \n    sessionToken: 'sessionToken',\n})\nsubscribeRequest.serialize() // to latest version\n// > '[2,9,\"requestId\",\"streamId\",0,\"sessionToken\"]'\nsubscribeRequest.serialize(1) // to ControlLayer version 1\n// > '[1,9,\"streamId\",0,\"sessionToken\"]'\n```\n\n#### Parsing messages from strings\n\nFor deserialization, use the static `deserialize` method that is present in `ControlMessage` for the ControlLayer and `StreamMessage` for the Message Layer. The `deserialize` method accepts both strings and arrays as input.\n\n```javascript\nconst serializedStreamMessage = '[30,[\"streamId\",0,1529549961116,\"publisherId\",\"msgChainId\"],null,27,{\"foo\":\"bar\"},0,null]'\nconst streamMessage = StreamMessage.deserialize(serializedStreamMessage)\n``` \n\nOn the other hand, the Control Layer has many different message types. So we can only know that the `deserialize` method will return a `ControlMessage`. We can use the `type` field to differentiate.\n\n```javascript\nconst serializedMessage = '[1,9,\"streamId\",0,\"sessionToken\"]'\nconst controlMessage = ControlMessage.deserialize(serializedMessage)\nif (controlMessage.type === ControlMessage.TYPES.UnicastMessage) {\n    //treat it as a UnicastMessage\n} else if (controlMessage.type === ControlMessage.TYPES.SubscribeRequest) {\n    //treat it as a SubscribeRequest\n} else if (...) {\n    \n} else {\n    throw new Error(`Unknown type: ${controlMessage.type}`)\n}\n```\n\n## Release\n\nPublishing to NPM is automated via Github Actions. Follow the steps below to publish stable (`latest`) or `beta`.\n\n### Publishing stable (latest)\n1. `git checkout master && git pull`\n2. Update version with either `npm version [patch|minor|major]`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n3. `git push --follow-tags`\n4. Wait for Github Actions to run tests\n5. If tests passed, Github Actions will publish the new version to NPM\n\n### Publishing beta\n1. Update version with either `npm version [prepatch|preminor|premajor] --preid=beta`. Use semantic versioning\nhttps://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. \n2. `git push --follow-tags`\n3. Wait for Github Actions to run tests\n4. If tests passed, Github Actions will publish the new version to NPM\n","readmeFilename":"README.md"}